gradio_app / runold.py
mikx1's picture
Upload folder using huggingface_hub
b5ea024
import os
import logging
import gdown
import insightface
import gradio as gr
from insightface.app import FaceAnalysis
from insightface.data import get_image as ins_get_image
from PIL import Image
logging.basicConfig(format='%(levelname)s:%(message)s', level=logging.INFO)
app = FaceAnalysis(name='buffalo_l')
app.prepare(ctx_id=0, det_size=(640, 640))
# Download 'inswapper_128.onnx' file using gdown
model_url = 'https://drive.google.com/uc?id=1HvZ4MAtzlY74Dk4ASGIS9L6Rg5oZdqvu'
model_output_path = 'inswapper/inswapper_128.onnx'
if not os.path.exists(model_output_path):
gdown.download(model_url, model_output_path, quiet=False)
swapper = insightface.model_zoo.get_model('inswapper/inswapper_128.onnx', download=False, download_zip=False)
def swap_faces(user_image, celebrity_image):
try:
# Swap faces
input_name = swapper.get_inputs()[0].name
input_data = np.concatenate([user_image, celebrity_image], axis=0)
results = swapper.run(None, {input_name: input_data})
swapped_face = Image.fromarray(results[0])
except Exception as e:
logging.error(e)
gr.Interface.update_output("Couldn't swap faces: " + str(e))
swapped_face = user_image
return swapped_face
iface = gr.Interface(fn=swap_faces, inputs=["image", "image"], outputs="image")
iface.launch()