Spaces:
Running
Running
File size: 2,599 Bytes
879dd87 37f5033 879dd87 37f5033 879dd87 37f5033 879dd87 37f5033 879dd87 37f5033 879dd87 37f5033 879dd87 37f5033 879dd87 37f5033 879dd87 37f5033 879dd87 37f5033 879dd87 37f5033 ff92796 23a3c1d 879dd87 23a3c1d 879dd87 23a3c1d 879dd87 |
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 79 80 81 82 83 84 85 86 87 |
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(["cuda"])
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
html_section_1 = "<div style='text-align:center'><h1>Ai Pengganti Wajah</h1></div>"
html_section_2 = "<div style='text-align:center'><p>Unggah gambar sumber dan target untuk bertukar wajah, Kemudian anda bisa meningkatkan kualitas wajah dengan cara mencentang opsi dibawah</p></div>"
app = gr.Blocks()
with app:
gr.HTML(html_section_1)
gr.HTML(html_section_2)
gr.Interface(
fn=swap_face,
inputs=[
gr.Image(label="Gambar Sumber"),
gr.Image(label="Gambar Target"),
gr.Checkbox(label="Ya", info="Tingkatkan kualitas wajah ?")
],
outputs=[
gr.Image(label="Hasil Gambar")
]
)
app.launch() |