Aiconvert's picture
Update app.py
1e649e3 verified
raw
history blame
No virus
2.16 kB
import gradio as gr
import insightface
from insightface.app import FaceAnalysis
assert insightface.__version__ >= '0.7'
def prepare_app():
app = FaceAnalysis(name='buffalo_l')
app.prepare(ctx_id=0, det_size=(640, 640))
swapper = insightface.model_zoo.get_model('inswapper_128.onnx', download=True, download_zip=True)
return app, swapper
def swap_faces(sourceImage, destinationImage):
"""Swaps faces between the source and destination images."""
app, swapper = prepare_app()
source_faces = app.get(sourceImage)
if not source_faces:
raise gr.Error("No face found in the source image.")
source_face = source_faces[0]
destination_faces = app.get(destinationImage)
if not destination_faces:
raise gr.Error("No face found in the destination image.")
destination_face = destination_faces[0]
result = swapper.get(destinationImage, destination_face, source_face, paste_back=True)
return result
gr.Interface(
swap_faces,
[
gr.Image(label="Source Image (the image with the face that you want to use)"),
gr.Image(label="Destination Image (the image with the face that you want to replace)"),
],
gr.Image(),
examples=[
['./examples/rihanna.jpg', './examples/margaret_thatcher.jpg'],
['./examples/game_of_thrones.jpg', './examples/game_of_thrones.jpg'],
],
theme="syddharth/gray-minimal",
title="<h1 style='color: black; text-decoration: underline;'>AI Face Swapping - Free Face Swap</h1>",
description="<span>● Experience the power of Ai Reface with Mergify.,</span><br><span>●Swap faces with anyone in seconds - photos or AI images!</span><br><span>● A gradio demo for <a href='https://aiconvert.online/ai-face-merge/' style='color: blue; text-decoration: none;'>Mergify's Ai Face Swap </a></span><br><span>● Full features and Multiple Face Swapping For Free with no limitations at <a href='https://aiconvert.online' style='color: crimson; text-decoration: underline;'>Aiconvert.online</a></span>",
thumbnail='./examples/rihatcher.jpg',
css=" footer{display:none !important;}"
).launch()