Spaces:
ALSv
/
Runtime error

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()