Spaces:
Running
Running
File size: 2,345 Bytes
ed99d08 205ca4b ed99d08 205ca4b d4baf14 ed99d08 d4baf14 ed99d08 d4baf14 ed99d08 d4baf14 ed99d08 d4baf14 ed99d08 d4baf14 00e82f0 d4baf14 00e82f0 4e23ed1 0b96432 4e23ed1 d4baf14 ed99d08 d4baf14 ed99d08 d4baf14 ed99d08 00e82f0 205ca4b ed99d08 cdb416f a67ef29 ed99d08 6ca78f5 |
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 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
import numpy as np
import gradio as gr
import roop.globals
from roop.core import (
start,
decode_execution_providers,
suggest_max_memory,
suggest_execution_threads,
)
from roop.processors.frame.core import get_frame_processors_modules
from roop.utilities import normalize_output_path
import os
from PIL import Image
def swap_face(source_file, target_file, doFaceEnhancer):
source_path = "input.jpg"
target_path = "target.jpg"
source_image = Image.fromarray(source_file)
source_image.save(source_path)
target_image = Image.fromarray(target_file)
target_image.save(target_path)
print("source_path: ", source_path)
print("target_path: ", target_path)
roop.globals.source_path = source_path
roop.globals.target_path = target_path
output_path = "output.jpg"
roop.globals.output_path = normalize_output_path(
roop.globals.source_path, roop.globals.target_path, output_path
)
if doFaceEnhancer:
roop.globals.frame_processors = ["face_swapper", "face_enhancer"]
else:
roop.globals.frame_processors = ["face_swapper"]
roop.globals.headless = True
roop.globals.keep_fps = True
roop.globals.keep_audio = True
roop.globals.keep_frames = False
roop.globals.many_faces = False
roop.globals.video_encoder = "libx264"
roop.globals.video_quality = 18
roop.globals.max_memory = suggest_max_memory()
roop.globals.execution_providers = decode_execution_providers(["cpu"])
roop.globals.execution_threads = suggest_execution_threads()
print(
"start process",
roop.globals.source_path,
roop.globals.target_path,
roop.globals.output_path,
)
for frame_processor in get_frame_processors_modules(
roop.globals.frame_processors
):
if not frame_processor.pre_check():
return
start()
return output_path
app = gr.Blocks()
with app:
gr.Interface(
fn=swap_face,
inputs=[gr.Image(), gr.Image(), gr.Checkbox(label="Apply Face Enhancer")],
outputs="image",
description="Sorry for the inconvenience. The model is currently running on the CPU, which might affect performance. We appreciate your understanding. ( Apply Face Enhancer to get better result. )",
theme="Nymbo/Nymbo_Theme"
)
app.launch() |