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="