File size: 3,522 Bytes
1f5f680
f2c9245
ced9582
 
7310428
1f5f680
5b71a2f
f2c9245
3bca149
e756b69
 
 
 
3bca149
e756b69
 
f2c9245
3bca149
 
 
 
5739d02
3bca149
e756b69
 
 
 
 
 
 
 
 
08e132f
e756b69
 
f2c9245
e756b69
 
 
3bca149
e756b69
 
 
 
 
 
 
 
3bca149
 
 
e756b69
3bca149
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
faa2cc3
 
 
3bca149
 
 
 
 
 
 
 
 
 
 
f2c9245
3bca149
faa2cc3
 
f2c9245
e756b69
ced9582
 
 
 
 
3bca149
 
ced9582
3bca149
1f5f680
7e398ae
e756b69
7e398ae
 
 
3bca149
 
e756b69
3bca149
 
 
55ad643
3bca149
 
f1a3cbd
faa2cc3
3bca149
faa2cc3
f1a3cbd
410276e
 
e756b69
410276e
 
b1b5fc5
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
import gradio as gr
from PIL import Image
import time
import os
import pathlib

def greet(input1, input2):

    modo = "video"
    #local o huggingface
    plataforma = "local"
    #face_swapper o face_enhancer o la combinaci贸n de ellos.
    procesador = "face_swapper"
    print("Inicio: Estamos en modo ", modo)
    print("Estamos en la plataforma:", plataforma)
    print("El procesador es: ", procesador)

    print("Input1:")
    print(input1)
    print("Input2:")
    print(input2)

    path_video = input2

    if plataforma == "local":
        #Para local.
        path_parts = path_video.split("\\")
    else:
        #Para HuggingFace
        path_parts = path_video.split("/")
    
    
    print("Imprimiendo path_parts: ", path_parts)
    path_particular = "/".join(path_parts[0:len(path_parts) - 1])
    path_general = "/".join(path_parts[0:len(path_parts) - 2])

    
    path_general = path_general.replace("\\", "/")
    path_particular = path_particular.replace("\\", "/")

    print("Path general: ", path_general)
    print("Path general: ", path_particular)

    path = pathlib.Path("result.mp4")
    path_foto = pathlib.Path(path_particular + "/temp/whitebeauty/0015.png")
    print("脡ste es el path foto: ", path_foto)
    
    files = os.listdir(path_general)
    print("Estos son los files que hay:")
    print(files)

    time.sleep(5)

    ext_imagen = "png"
    ext_video = "mp4"

    #Selector de modo.
    if modo == "video": 
        print("Se asigno la extensi贸n de video:", ext_video)
        extension = ext_video
    else:
        print("Se asigno la extensi贸n de video:", ext_video)
        extension = ext_imagen

    #El source siempre es una imagen.
    source_path = "source.png"
    target_path = "target." + extension
    result_path = "result." + extension

    #La primera siempre ser谩 una imagen, por eso no entra en el modo selector.
    source_image = Image.fromarray(input1)
    print("Esto es source_image: ", source_image)
    source_image.save(source_path)
        
    #Aqu铆 trabajaremos solo el target.
    if modo == "video":
        #Para Video
        target_path = input2
    else:
        #Es decir si es modo imagen
        #Para Imagenes
        target_image = Image.fromarray(input2)
        print("Esto es target_image: ", target_image)
        target_image.save(target_path)

    print("Despu茅s de los selectores de modo los paths quedaron as铆:")
    print("source_path: ", source_path)
    print("target_path: ", target_path)

    command = f"python run.py -s {source_path}  -t {target_path} -o {result_path} --frame-processor {procesador}"
    print(command)
    time.sleep(1)
    proc = os.popen(command)
    output = proc.read()

    print("Output (resultado de la ejecuci贸n del c贸digo):")
    time.sleep(2)
    print(output)
    print("Termin贸 la impresi贸n del output...")

    print("Ahora estamos imprimiendo las rutas para ver si apareci贸 una nueva:")
    files = os.listdir(path_general)
    print("Estos son los files que hay:")
    print(files)

    if modo == "video":
        #Para video
        return path, path_foto
    else:
        #Para imagen
        path = pathlib.Path("result.png")
        print("脡ste es el path para imagen:", path)
        return path, path
     
#As铆 para imagenes
# demo = gr.Interface(
# fn=greet, inputs=[gr.Image(), gr.Image()], outputs=[gr.Image(), gr.Image()]
# )

#As铆 para video
demo = gr.Interface(
fn=greet, inputs=[gr.Image(), gr.Video()], outputs=[gr.Video(), gr.Image()]
)

demo.launch()