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