Spaces:
Runtime error
Runtime error
File size: 4,445 Bytes
3250ceb a6397f7 3250ceb 9e3153a 3250ceb f27af24 3250ceb f27af24 7dfbf3a 3250ceb 7dfbf3a b48a9dc 7dfbf3a b48a9dc 7dfbf3a 3250ceb 3d20903 3250ceb b48a9dc 3250ceb 3d20903 64922a6 3250ceb b48a9dc 3250ceb b48a9dc 3250ceb |
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 |
import os
import time
import pathlib
from PIL import Image
def mass(input1, input2):
#video o cualquier otro ser铆a para imagenes.
modo = "pic"
#local o huggingface
plataforma = "huggingface"
#face_swapper o face_enhancer o la combinaci贸n de ellos.
procesador = "face_swapper"
print(f"Inicio: Estamos en modo {modo}, plataforma: {plataforma} y procesador: {procesador}.")
path_video = input2
print("Path_video es:", path_video)
time.sleep(4)
if modo == "video":
if plataforma == "local":
#Para local.
path_parts = path_video.split("\\")
else:
#Para HuggingFace
#Creo que no va en imagen.
print("La plataforma en la que basaremos la divisi贸n es HuggingFace.")
path_parts = path_video.split("/")
#Aqu铆 obtendremos nom_video
#Creo no va en imagen
filename = path_parts[-1]
nom_video = filename[:-4]
print("Esto es filename alias nom_video: ", nom_video)
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)
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 imagen:", ext_imagen)
extension = ext_imagen
#El source siempre es una imagen.
source_path = "source.png"
target_path = "target." + extension
result_path = "result182." + 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)
#FUTURE: Agrega por par谩metro o mejor a煤n por enviroment el hecho de si es compu para usar cpu o si es hf para usar cuda.
command = f"python run.py -s {source_path} -t {target_path} -o {result_path} --frame-processor {procesador} --execution-provider cpu"
print(command)
time.sleep(1)
proc = os.popen(command)
output = proc.read()
print("Output (resultado de la ejecuci贸n del c贸digo):")
#time.sleep(1)
print(output)
print("Y el tipo del output es: ", type(output))
time.sleep(1)
print("Termin贸 la impresi贸n del output...")
if "No face in source path detected" in output:
#Hacer algo si se encuentra el texto
print("No se detect贸 ninguna cara en la ruta de origen.")
else:
print("Si se detecto un rostro...")
print("脡ste es el momento en el que se creo result, revisar...")
time.sleep(1)
try:
print("脡sta vez no crearemos archivo zip.")
except Exception as e:
# c贸digo que se ejecutar谩 si se produce la excepci贸n
print(e)
#IMPORTANTE: No se necesita 茅ste IF si usas directo la variable result_path.
if modo == "video":
#Para video
path = pathlib.Path(result_path)
path_abs = os.path.abspath(path)
print("脡ste es el path para video:", path)
print("Y su ruta absoluta es: ", path_abs)
return path
else:
#Para imagen
path = pathlib.Path(result_path)
path_abs = os.path.abspath(path)
print("脡ste es el path para imagen:", path)
print("Y su ruta absoluta es: ", path_abs)
return path
print("Listo! Gracias!") |