File size: 1,752 Bytes
347e752 c9d215e 97cce26 061b0a1 c9d215e 061b0a1 c9d215e 97cce26 c9d215e 97cce26 c9d215e f5a5165 347e752 c9d215e 061b0a1 |
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 |
import gradio as gr
from PIL import Image
import torch
from torchvision import transforms
# Aquí deberías importar tu modelo real
# Este es un ejemplo genérico
class DummyFashionGAN(torch.nn.Module):
def forward(self, person, clothes):
# Este es solo un dummy para no lanzar errores
return person
# Cargar modelo (usa tu modelo real aquí)
model = DummyFashionGAN()
model.eval()
# Transformación de imágenes
transform = transforms.Compose([
transforms.Resize((256, 256)),
transforms.ToTensor()
])
# Función principal con depuración
def tryon(person_img, clothes_img):
try:
print("📤 Iniciando procesamiento de imágenes...")
person = transform(person_img).unsqueeze(0)
clothes = transform(clothes_img).unsqueeze(0)
print("✅ Imágenes cargadas y transformadas.")
with torch.no_grad():
output = model(person, clothes)
print("🎯 Generación de imagen completada.")
result = transforms.ToPILImage()(output.squeeze(0).clamp(0, 1))
return result
except Exception as e:
print("❌ Error durante el procesamiento:", str(e))
# Devolver una imagen roja como error
return Image.new("RGB", (256, 256), color="red")
# Interfaz de Gradio
demo = gr.Interface(
fn=tryon,
inputs=[
gr.Image(label="👤 Tu maniquí o imagen de cuerpo", type="pil"),
gr.Image(label="👕 Imagen de la prenda", type="pil")
],
outputs=gr.Image(label="🪄 Resultado: Prueba virtual"),
title="👗 Probador Virtual AI",
description="Sube una imagen tuya (o maniquí) y una prenda para probarla virtualmente. Esta es una demo."
)
# Lanzar app
if __name__ == "__main__":
demo.launch()
|