Spaces:
Running
Running
File size: 6,190 Bytes
1f5f680 f2c9245 ced9582 7310428 8e363d1 1f5f680 14bab5c 372a6ba 8e363d1 159f3d7 8e363d1 14bab5c 8e363d1 372a6ba 5b71a2f f2c9245 3bca149 e756b69 c0d75d4 e756b69 3bca149 e756b69 f2c9245 3bca149 5739d02 3bca149 e756b69 c0d75d4 e756b69 4296c87 e756b69 08e132f 4296c87 159f3d7 4296c87 e756b69 f2c9245 e756b69 3bca149 e756b69 3bca149 159f3d7 3bca149 faa2cc3 3bca149 f2c9245 3bca149 faa2cc3 f2c9245 e756b69 ced9582 3bca149 ced9582 3bca149 1f5f680 8e363d1 7e398ae e756b69 7e398ae 8e363d1 95cbdc8 52e1485 95cbdc8 8e363d1 14bab5c 8e363d1 3bca149 4296c87 95cbdc8 8e363d1 95cbdc8 4296c87 95cbdc8 8e363d1 95cbdc8 3bca149 55ad643 8e363d1 95cbdc8 3bca149 f1a3cbd faa2cc3 3bca149 faa2cc3 f1a3cbd 95cbdc8 410276e 95cbdc8 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 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 |
import gradio as gr
from PIL import Image
import time
import os
import pathlib
import zipfile36 as zipfile
def save_images_as_zip(path_foto, filename, plataforma):
print("Entr茅 a la funci贸n que hace los zips...")
with zipfile.ZipFile(filename, "w") as zip_file:
for foto in os.listdir(path_foto):
print("La foto en os.listdir es: ", foto)
#Si Local
# path_foto_zippable = str(path_foto) + "\\" + foto
# #Si HuggingFace
# path_foto_zippable = str(path_foto) + "/" + foto
path_foto_zippable = str(path_foto) + (os.sep if plataforma == "local" else "/") + foto
print("La ruta textual final de esa foto en particular es: ", path_foto_zippable)
time.sleep(1)
# ruta = pathlib.Path(path_foto_zippable)
# zip_file.write(ruta)
ruta = os.path.basename(path_foto_zippable)
zip_file.write(path_foto_zippable, ruta)
def greet(input1, input2):
modo = "video"
#local o huggingface
plataforma = "huggingface"
#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
print("La plataforma en la que basaremos la divisi贸n es HuggingFace.")
path_parts = path_video.split("/")
print("Esto es parth_paths, de aqu铆 lo puedes obtener?: ", path_parts)
time.sleep(10)
print("Imprimiendo path_parts: ", path_parts)
#Aqu铆 obtendremos nom_video
filename = path_parts[-1]
nom_video = filename[:-4]
print("Esto es filename alias nom_video: ", nom_video)
time.sleep(1)
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")
files = os.listdir(path_general)
print("Estos son los files que hay:")
print(files)
time.sleep(1)
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("脡ste es el momento en el que se creo result, revisar...")
time.sleep(10)
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)
#Creaci贸n de la galer铆a:
images = []
#nom_video = "whitebeauty"
path_foto = pathlib.Path(path_particular + "/temp/" + nom_video + "/")
print("脡ste es el path foto: ", path_foto)
#脡ste es el segmento que crea la galer铆a de imagenes, que por el momento no usaremos por rendimiento.
#Se reintegrar谩 si agregamos interacci贸n de poder borrar cada imagen desde la interfaz web.
# for filename in os.listdir(path_foto):
# if filename.endswith(".png"):
# path = os.path.join(path_foto, filename)
# image = Image.open(path)
# images.append(image)
# print("Esto es la lista de imagenes: ", images)
nombre_zip = nom_video + ".zip"
print("El nombre del zip ser谩: ", nombre_zip)
save_images_as_zip(path_foto, nombre_zip, plataforma)
if modo == "video":
#Para video
path = pathlib.Path("result.mp4")
path_abs = os.path.abspath(path)
path_zip = pathlib.Path(nombre_zip)
path_zip_abs = os.path.abspath(path_zip)
print("脡ste es el path para video:", path)
print("Y su ruta absoluta es: ", path_abs)
print("Y 茅ste es el path para el zip: ", path_zip)
print("Y su ruta absoluta es: ", path_zip_abs)
return path, nombre_zip
else:
#Para imagen
path = pathlib.Path("result.png")
print("脡ste es el path para imagen:", path)
return path, images, images
print("Listo! Gracias!")
#As铆 para imagenes
# demo = gr.Interface(
# fn=greet, inputs=[gr.Image(), gr.Image()], outputs=[gr.Image(), gr.Image()]
# )
#As铆 para video y 3 outputs: Video, Galer铆a y Archivo Zip.
# demo = gr.Interface(
# fn=greet, inputs=[gr.Image(), gr.Video()], outputs=[gr.Video(), gr.Gallery(), gr.File()]
# )
demo = gr.Interface(
fn=greet, inputs=[gr.Image(), gr.Video()], outputs=[gr.Video(), gr.File()]
)
demo.launch() |