GPT-6 Sol y Claude Opus 5.5 ya disponiblesGPT-6 Sol por la mitad del precio de 5.6 Sol

API de probador virtual: cambia la ropa con GPT Image 2

Una foto y un prompt bastan para cambiar la ropa. Aquí están el código de la petición, tres cambios que ejecutamos el 28 de octubre de 2026 y dónde se desvía la edición.

Kiki, OmniaKey COO7 min de lectura
En esta página

Sí, con un prompt de texto. El endpoint de edición de GPT-Image 2 cambió la ropa de una foto y mantuvo la pose, la cara y el fondo en los tres cambios que ejecutamos el 28 de octubre de 2026. No tiene una entrada dedicada para la prenda, pero en nuestra prueba una segunda foto de la prenda cambió el largo del vestido. Revisa cada resultado a ojo.

La petición es una edición de imagen en la API de medios de OmniaKey: una foto de origen, un prompt y fotos de referencia opcionales. Comprobamos la función de abajo el 28 de octubre de 2026 con otro prompt (un impermeable amarillo) sobre un JPEG de 1024 píxeles del modelo base, y devolvió un PNG de 1024x1536.

Qué puede y qué no puede hacer una edición para un probador virtual

Una edición de imagen parte de una foto de origen y un prompt. La operación es edit, el origen se envía en línea como Base64 y el prompt nombra la ropa nueva; la documentación de la API de imágenes de OmniaKey (consultada el 28 de octubre de 2026) también permite varias imágenes de referencia en un array images. El resultado es una imagen nueva, así que la ropa cambia mientras la persona se queda: en nuestras pruebas se mantuvieron la cara, la pose, el pelo y el fondo de estudio.

Dos límites importan en un probador virtual: no hay un campo separado para la prenda, así que el modelo dibuja la ropa a partir de tu descripción o de una segunda foto, y la imagen nueva puede tocar detalles que no nombraste. Una función de probador virtual debería mostrar el resultado para revisarlo y dejar que el comprador juzgue si encaja. La misma operación también sirve para quitar un objeto de una escena; para ediciones guiadas por instrucciones, consulta la guía de la alternativa FLUX Kontext.

Envía la foto y el prompt de la ropa

Envía un POST a https://api.omniakey.com/v1/media/tasks con una clave bearer, un cuerpo JSON y una cabecera Idempotency-Key; la documentación de la API de imágenes de OmniaKey (consultada el 28 de octubre de 2026) indica que la creación devuelve HTTP 202 y un id de tarea. Consulta la URL de la tarea mientras el estado sea queued o processing; succeeded significa que los recursos están listos, y una tarea fallida lleva error.code y error.message y no se cobra.

Configura los campos de la tarea así:

CampoValor
modelgpt-image-2
typeimage
operationedit
input.promptla instrucción de la ropa
input.imagela foto de origen como objeto data y mime_type
input.imagesfotos de referencia adicionales
parameters.sizeWIDTHxHEIGHT
parameters.qualitylow, medium, high o auto
parameters.n1

Mantén la petición por debajo de 1 MiB, porque el Base64 en línea cuenta para ese límite. El número de muestras debe ser 1, y la API siempre devuelve un PNG opaco, así que lee las dimensiones reales del archivo descargado.

La función es esta:

python
import base64
import json
import os
import time
import urllib.request
import uuid

API = "https://api.omniakey.com/v1/media/tasks"
KEY = os.environ["OMNIAKEY_API_KEY"]


def request(method, url, body=None, extra_headers=None):
    headers = {"Authorization": f"Bearer {KEY}", "User-Agent": "omniakey-example/1"}
    data = None
    if body is not None:
        headers["Content-Type"] = "application/json"
        data = json.dumps(body).encode()
    headers.update(extra_headers or {})
    req = urllib.request.Request(url, data=data, headers=headers, method=method)
    with urllib.request.urlopen(req, timeout=120) as resp:
        return json.load(resp)


def edit_image(source_path, prompt, out_path, size="1024x1536", quality="medium"):
    with open(source_path, "rb") as f:
        image = base64.b64encode(f.read()).decode()
    body = {
        "model": "gpt-image-2",
        "type": "image",
        "operation": "edit",
        "input": {"prompt": prompt, "image": {"data": image, "mime_type": "image/jpeg"}},
        "parameters": {"size": size, "quality": quality},
    }
    task = request("POST", API, body, {"Idempotency-Key": str(uuid.uuid4())})["id"]
    for _ in range(150):
        time.sleep(4)
        state = request("GET", f"{API}/{task}")
        if state["status"] not in ("queued", "processing"):
            break
    if state["status"] != "succeeded":
        raise RuntimeError(state.get("error") or state["status"])
    asset_url = state["assets"][0]["url"]  # enlace firmado: válido una hora aproximadamente, descárgalo ahora
    req = urllib.request.Request(asset_url, headers={"User-Agent": "omniakey-example/1"})
    with urllib.request.urlopen(req, timeout=120) as resp, open(out_path, "wb") as f:
        f.write(resp.read())
    return task
if __name__ == "__main__":
    task = edit_image(
        "vto-base.jpg",
        "Change the outfit: she now wears a red satin slip dress with thin straps that falls to mid-calf. Keep the same pose, face, hair, body, the plain light-gray studio background and the lighting exactly as they are. Photorealistic, no text, no logos.",
        "vto-slip.png",
        size="1024x1536",
    )
    print("task", task)

La URL firmada del recurso dura alrededor de una hora y el archivo se conserva 24 horas, según la misma documentación, así que descárgalo en cuanto la tarea termine bien. Nuestra comprobación del 28 de octubre de 2026 usó el prompt del impermeable amarillo sobre un JPEG de 1024 píxeles del modelo base y devolvió un PNG de 1024x1536. El script envía una cabecera User-Agent: el valor por defecto de Python fue rechazado con HTTP 403 en nuestra prueba, y añadir la cabecera lo resolvió.

Tres cambios de ropa que ejecutamos

Los tres cambios partieron de la misma foto sintética: una mujer con camiseta blanca de cuello redondo y vaqueros azul oscuro ante un fondo de estudio liso de color gris claro, creada en 1024x1536 y calidad medium en nuestras pruebas del 28 de octubre de 2026.

El primer cambio pidió un vestido lencero de satén rojo con tirantes finos que llega a media pantorrilla. El vestido salió, y la pose, la cara, el pelo y el fondo siguieron igual. Las zapatillas blancas se convirtieron en tacones blancos con tiras sin que los pidiéramos.

El segundo pidió una chaqueta de lana verde oscuro sobre un top lencero de seda color crema, con pantalones rectos negros. Aparecieron las tres piezas, y las zapatillas blancas se quedaron.

El tercero pidió un top de manga larga de rayas horizontales azul marino y blancas, con un pequeño corazón rojo bordado en el pecho izquierdo. Las rayas y el corazón quedaron en el pecho izquierdo; los vaqueros azul oscuro y las zapatillas blancas se quedaron.

Cuatro retratos de estudio: la camiseta blanca y los vaqueros originales, un vestido lencero de satén rojo, una chaqueta de lana verde oscuro y un top de rayas
Original y tres cambios de ropa solo con texto. La misma pose, cara y fondo de estudio en cada uno.

Todas las personas y escenas son sintéticas, y ejecutamos cada prompt una vez, así que cada imagen es una sola muestra.

Generado con GPT-Image 2 a través de la API de OmniaKey el 28 de octubre de 2026, tamaño 1024x1536, calidad medium.

Una foto de la prenda como segunda referencia

Para acercarte más, envía la prenda como segunda imagen. Pusimos primero la foto de la persona, segundo un vestido lencero de satén rojo colocado en plano, y usamos input.images con este prompt: "Dress the woman in the first image in the red satin slip dress shown in the second image. Keep her pose, face, hair, body, the plain light-gray studio background and the lighting exactly as they are. Photorealistic, no text, no logos."

El vestido llegó al suelo, cerca del largo de la foto en plano. La versión del mismo vestido solo con texto se detuvo a media pantorrilla. En nuestra única muestra, la foto de la prenda aportó el largo que las palabras dejaban abierto.

Tres paneles: un vestido lencero rojo en plano, el mismo vestido en la modelo hasta el suelo y una versión solo de texto que termina a media pantorrilla
Izquierda: la foto de la prenda que enviamos. Centro: con dos imágenes, el vestido sigue el largo de la foto. Derecha: el mismo vestido descrito solo con palabras.

Dónde se desvió

La desviación apareció en las partes que dejamos fuera del prompt: el cambio del vestido lencero alteró el calzado aunque el prompt solo nombraba el vestido. Revisa la cara, las manos, el bajo, el calzado y cualquier estampado a tamaño completo antes de mostrar un resultado a un comprador. No probamos una prenda con logo impreso, el estampado exacto de la tela en una foto de producto ni más de dos imágenes.

Cuándo encaja mejor una API de probador virtual dedicada

Una API de probador virtual dedicada toma a la persona y la prenda como entradas separadas. La página de Vertex AI de Google "Generate Virtual Try-On Images" (última actualización, 26 de octubre de 2026; consultada el 28 de octubre de 2026) dice: "You provide an image of a person and an image of a clothing product." La misma página enumera personImage y productImages como campos Base64, un sampleCount de 1 a 4 y el id de modelo virtual-try-on-001. También incluye un aviso de que la documentación de Vertex AI ya no se actualiza.

Elige ese tipo de endpoint cuando la foto de la prenda sea la fuente de verdad y necesites varias muestras por petición. Elige la edición de GPT-Image 2 cuando un solo flujo para cambios de ropa y otras ediciones importe más que las muestras por llamada.

La página de precios de OpenAI (consultada el 28 de octubre de 2026) dice que gpt-image-2 se factura por tokens: la página enumera tarifas por token y ninguna tabla por imagen, y remite a una calculadora en la guía de generación de imágenes. La tarifa actual de OmniaKey está en precios.

Una plantilla de prompt para cambiar de ropa

Usa la forma que funcionó en nuestras pruebas: nombra la prenda primero y luego fija a la persona y el set.

Change the outfit: she now wears [garment, colour, fabric, length]. Keep the same pose, face, hair, body, the plain light-gray studio background and the lighting exactly as they are. Photorealistic, no text, no logos.

  • Prenda: una frase con color, tejido y largo. "A red satin slip dress with thin straps that falls to mid-calf" dio un cambio claro.
  • Elementos que se mantienen: pose, cara, pelo, cuerpo, fondo, iluminación. Enuméralos de forma explícita en el prompt.
  • Acabado: "Photorealistic, no text, no logos." Nuestros prompts usaron ese final.
  • Calzado: nómbralo si debe quedarse, por ejemplo "keep the white sneakers". Nuestro cambio del vestido lo alteró cuando no había calzado en el texto.

Añade una segunda imagen cuando el largo importe más que las palabras: pon a la persona primero, la prenda después y refiérete a "the first image" y "the second image" en el prompt, como hicimos. Para el orden general del prompt, consulta la guía de prompts de GPT Image 2.

Preguntas frecuentes

¿Hay un endpoint dedicado de probador virtual en la API de GPT Image 2?

No. La página del modelo de OmniaKey (consultada el 28 de octubre de 2026) enumera texto a imagen y edición de imagen. En nuestras pruebas, un probador virtual fue una edición con un prompt de texto y una segunda imagen opcional.

¿Puedo enviar una foto de la prenda?

Sí, como segunda imagen de referencia en input.images. En nuestra prueba del 28 de octubre de 2026, cambió el largo del vestido para igualar la foto en plano.

¿La cara se mantiene igual?

En nuestros tres cambios y en la prueba con dos referencias sí, a ojo. Revisa cada resultado a tamaño completo antes de mostrarlo.

¿Cuánto duran los enlaces de resultado?

Alrededor de una hora, según la documentación de la API de imágenes de OmniaKey consultada el 28 de octubre de 2026, y el archivo se conserva 24 horas. Descárgalo en cuanto la tarea termine bien.

¿Qué tamaño debería pedir?

Pasa size como WIDTHxHEIGHT, por ejemplo 1024x1536, y luego lee las dimensiones reales del PNG descargado. Nuestras pruebas usaron 1024x1536 con calidad medium.

Empieza con una foto y un prompt de ropa. La página de GPT-Image 2 cubre el modelo; las tarifas actuales van aparte.

Modelos de este artículo

API de probador virtualGPT Image 2edición de imágenescambio de ropaAPI

Artículos relacionados

Artículos recientes