GuidePor Thibault Mathian

Cómo integrar probador virtual con IA en tu aplicación mediante API

Genera una foto realista de una persona vistiendo cualquier prenda, gafas o accesorio con una llamada a la API. Guía de integración, código en TypeScript y Python, costes y buenas prácticas.

Tabla de contenidos

Una API de probador virtual recibe dos imágenes (la foto de una persona y la foto de un producto) y devuelve una nueva imagen de esa persona con la prenda puesta. En esta guía te explicamos cómo implementarlo en una aplicación web, una app móvil o un e-commerce a medida usando la API de probador virtual de Genlook. Funciona igual de bien para ropa, calzado, gafas, joyas, relojes, bolsos o sombreros.

Aviso de transparencia: Genlook desarrolla esta API. Si todavía estás comparando opciones en el mercado, en nuestra comparativa de 10 APIs de probador virtual puedes ver los resultados reales de cada alternativa frente a frente.

Qué necesitas para empezar

  • Una clave de API. Regístrate en platform.genlook.app. Las cuentas nuevas incluyen 10 créditos gratis, más que suficiente para probar todo el flujo.
  • Un backend. La clave nunca debe exponerse en el navegador ni en el paquete de una aplicación móvil; debe guardarse siempre en tu servidor.
  • La foto de una persona: en formato JPEG, PNG, WebP o HEIC de hasta 10 MB, de frente y mostrando claramente la parte del cuerpo donde se coloca el artículo.
  • La imagen del producto: te sirve la misma fotografía que ya usas en tu tienda online (de producto aislado, bodegón o sobre modelo). No necesitas ningún modelo 3D.

Cómo funciona el flujo

Cualquier integración sigue tres pasos muy sencillos:

  1. Sube la foto de la persona mediante POST /images/upload. Recibirás un imageId que puedes reutilizar para todas las pruebas que haga ese usuario con la misma imagen.
  2. Genera la prueba virtual con POST /try-on. Envía los datos del producto directamente en la petición (imagen, título y descripción) junto con el imageId. No hace falta sincronizar ningún catálogo de antemano.
  3. Obtén el resultado: puedes consultar periódicamente el estado en GET /generations/:id, usar waitFor() en el SDK o recibir un webhook con el evento generation.completed. El tiempo medio de respuesta ronda los 8 segundos.

Si prefieres resolverlo en una única llamada, el endpoint POST /try-on/sync mantiene la conexión abierta hasta que la imagen está lista y te la devuelve al instante. Es ideal para scripts y funciones serverless.

Tu primera prueba en TypeScript

El SDK oficial es @genlook/api. Es compatible con Node 20+, Deno, Bun y entornos edge.

import { Genlook } from "@genlook/api";
import { readFile } from "node:fs/promises";

const client = new Genlook({ apiKey: process.env.GENLOOK_API_KEY! });

// 1. Sube la foto de la persona una sola vez y reutiliza el imageId.
const { imageId } = await client.images.upload(
  await readFile("./person.jpg"),
  { mimeType: "image/jpeg" },
);

// 2. Crea la prueba virtual. El producto se define directamente en la petición.
const { generationId } = await client.tryOn.create({
  products: [{
    externalId: "camisa-lino-12",
    title: "Camisa de lino holgada",
    description: "Corte oversize, hombros caídos, por debajo de la cadera.",
    images: [{ source: { url: "https://cdn.example.com/camisa-lino.jpg" } }],
  }],
  person: { image: { source: { id: imageId } } },
});

// 3. Espera a que termine la generación.
const result = await client.generations.waitFor(generationId);
console.log(result.resultImageUrl);

La misma llamada con cURL o Python

Aunque no hay un SDK específico para Python, la API REST se puede invocar desde cualquier lenguaje. Este es el ejemplo con el endpoint síncrono en una sola petición:

curl -X POST "https://api.genlook.app/tryon/v1/try-on/sync" \
  -H "x-api-key: $GENLOOK_API_KEY" \
  -H "Content-Type: application/json" \
  --max-time 100 \
  -d '{
    "products": [{
      "externalId": "camisa-lino-12",
      "title": "Camisa de lino holgada",
      "description": "Corte oversize, hombros caídos, por debajo de la cadera.",
      "images": [{ "source": { "url": "https://cdn.example.com/camisa-lino.jpg" } }]
    }],
    "person": { "image": { "source": { "id": "<imageId>" } } }
  }'
import os, requests

BASE = "https://api.genlook.app/tryon/v1"
headers = {"x-api-key": os.environ["GENLOOK_API_KEY"]}

with open("person.jpg", "rb") as f:
    image_id = requests.post(f"{BASE}/images/upload", headers=headers,
                             files={"file": ("person.jpg", f, "image/jpeg")}).json()["imageId"]

result = requests.post(f"{BASE}/try-on/sync", headers=headers, timeout=100, json={
    "products": [{
        "externalId": "camisa-lino-12",
        "title": "Camisa de lino holgada",
        "description": "Corte oversize, hombros caídos, por debajo de la cadera.",
        "images": [{"source": {"url": "https://cdn.example.com/camisa-lino.jpg"}}],
    }],
    "person": {"image": {"source": {"id": image_id}}},
}).json()

print(result["resultImageUrl"])

La petición síncrona aguarda hasta 90 segundos. Si el procesamiento tarda más por cualquier motivo, recibirás un estado 202 con el generationId para que puedas consultar el resultado cuando finalice.

Gafas, joyas, calzado y otros accesorios

No tienes que indicarle a la API qué tipo de producto es. La IA analiza la imagen y sitúa el artículo en su lugar exacto: las gafas en el rostro, los pendientes en las orejas, el collar en el escote o los zapatos en los pies. La llamada es idéntica a la que harías para una camisa.

Hay dos detalles importantes a tener en cuenta:

  • Los conjuntos combinados son exclusivos para ropa. Puedes enviar hasta cuatro prendas textiles a la vez (como camiseta, pantalón y chaqueta). En cambio, gafas, sombreros, zapatos, bolsos o accesorios de joyería deben generarse en peticiones individuales.
  • La foto de la persona debe encuadrar la zona donde va el producto. Un selfie de hombros para arriba va perfecto para unas gafas o unos pendientes, pero no servirá para probar calzado.

Aplicaciones móviles (iOS, Android, Flutter, React Native)

Dado que tu API key nunca debe incluirse dentro del código de la app, cualquier integración en dispositivos móviles pasa por tu propio servidor:

  1. El usuario toma o selecciona una foto en la app, que se envía a tu backend.
  2. Tu backend sube la imagen a la API e inicia la prueba.
  3. Tu backend devuelve la URL generada o se la notifica a la app al recibir el webhook.
  4. La app muestra la imagen con el resultado.

Tu backend puede estar programado en cualquier tecnología con soporte para peticiones HTTP; el framework o lenguaje con el que esté hecha tu app móvil da exactamente igual.

Precios y tarifas

Cada prueba consume 1 crédito, y si alguna generación falla, el crédito se te devuelve automáticamente. En la modalidad de pago por uso el coste es de 0,04 $ por prueba, mediante paquetes de créditos a partir de 5 $ que no caducan nunca. Con los planes mensuales el precio baja a 0,02 $ por prueba (plan Starter: 20 $ por 1000 generaciones) y hasta 0,015 $ en el plan Scale (300 $ por 20 000). Puedes calcular tu presupuesto exacto según tu volumen con la calculadora de tarifas de la página para desarrolladores.

Errores habituales que conviene evitar

  • Llamar a la API directamente desde el navegador. Cualquiera podría inspeccionar el tráfico y robar tu clave. Pasa siempre por tu servidor.
  • Usar títulos de producto demasiado genéricos. El título y la descripción guían a la IA sobre qué prenda es y cómo debe quedar. «Cárdigan corto de lana, corte holgado» da resultados infinitamente más precisos que «Artículo 4417».
  • Reenviar toda la información del producto en cada prueba. La primera vez que envías un producto, la IA lo analiza y eso añade un par de segundos. A partir de ahí, basta con pasar solo su externalId para reutilizar el análisis previo al instante.
  • Conservar las fotos más tiempo del necesario. Configura el parámetro keepForDays en 1, 3 o 7 días al subir cada imagen y añade tu propio externalUserId. Así podrás eliminar todas las imágenes de un usuario con una sola llamada cuando lo solicite.
  • Gastar créditos durante la fase de desarrollo. Envía un producto con el título mock: la API te devolverá la foto original sin modificar, de forma instantánea y completamente gratuita, perfecta para maquetar y probar tu interfaz.

FAQ

Preguntas, respondidas.

¿Existe alguna API que permita generar la foto de una persona vistiendo una prenda concreta?↓

Sí, las APIs de probador virtual están diseñadas justo para eso: les facilitas la foto de una persona y la del producto, y te devuelven una imagen hiperrealista de esa persona vistiéndolo. Con Genlook basta con una sola petición al endpoint síncrono (o dos si prefieres polling) y la respuesta tarda unos 8 segundos.

¿Es obligatorio contar con modelos 3D de los productos?↓

No. La API trabaja directamente a partir de las fotografías habituales de producto que ya tienes publicadas en tu catálogo.

¿Se pueden utilizar los resultados con fines comerciales?↓

Sí. Genlook es una API comercial concebida para entornos de producción en tiendas online y aplicaciones. A diferencia de modelos académicos como IDM-VTON o CatVTON, que tienen licencias no comerciales, aquí cuentas con total libertad para su explotación comercial.

Tengo una tienda en Shopify, WooCommerce o PrestaShop. ¿Necesito integrar la API?↓

No es necesario. Dispones de aplicaciones, plugins y módulos de Genlook listos para usar que añaden el probador virtual a tus fichas de producto sin escribir una sola línea de código. La API está pensada para desarrollos a medida, apps móviles u otros productos personalizados.