File size: 2,232 Bytes
2bf015e
 
 
 
 
 
 
 
 
 
 
 
346a999
 
 
 
 
 
 
 
2bf015e
346a999
 
 
 
2bf015e
346a999
2bf015e
 
c0d77bd
2bf015e
5a0145c
2bf015e
 
4f79f19
 
2bf015e
 
 
1905640
 
 
 
 
 
2bf015e
54dee3b
5a0145c
1d2e37a
1905640
5156ad0
2bf015e
6956938
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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"), 
        gr.Image(label="Destination Image"), 
    ],
    gr.Image(),
    examples=[
        ['./examples/IMG-a.jpg', './examples/IMG-a1.jpg'],
        ['./examples/IMG-b.jpg', './examples/IMG-b1.jpg'],
        ['./examples/IMG-c.jpg', './examples/IMG-c1.jpg'],
        ['./examples/IMG-d.jpg', './examples/IMG-d1.jpg'],
        ['./examples/IMG-a.jpg', './examples/IMG-a2.jpg'],
        ['./examples/IMG-b1.jpg', './examples/IMG-b11.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>",
     
    css=" footer{display:none !important;}"
).launch()