File size: 2,354 Bytes
c9e4295 b3f99a3 566044b b3f99a3 c9e4295 b3f99a3 c9e4295 b3f99a3 c9e4295 b3f99a3 c9e4295 b3f99a3 c9e4295 b3f99a3 566044b 0b82811 c9e4295 b3f99a3 c9e4295 b3f99a3 566044b b3f99a3 c9e4295 b3f99a3 c9e4295 b3f99a3 c9e4295 b3f99a3 0b82811 |
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 |
# -*- coding: UTF-8 -*-
#!/usr/bin/env python
import gradio as gr
from PIL import Image
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
def swap_face(source_file, target_file, doFaceEnhancer):
source_path = "input.jpg"
target_path = "target.jpg"
# Salva le immagini
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
)
# Processori
if doFaceEnhancer:
roop.globals.frame_processors = ["face_swapper", "face_enhancer"]
else:
roop.globals.frame_processors = ["face_swapper"]
# Impostazioni globali
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()
# FORZA CPU per evitare problemi con onnxruntime-gpu
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,
)
# Controllo pre-processori
for frame_processor in get_frame_processors_modules(roop.globals.frame_processors):
if not frame_processor.pre_check():
return
# Avvio Roop
start()
return output_path
# Interfaccia Gradio
app = gr.Interface(
fn=swap_face,
inputs=[
gr.Image(label="Source Image"),
gr.Image(label="Target Image"),
gr.Checkbox(label="Face Enhancer?", info="Enable face enhancer?")
],
outputs="image"
)
app.launch()
|