HiAPI
Blog

Guía de uso

gpt-image-2 para imágenes de producto de e-commerce: flujo de trabajo por lotes en hiapi

Usa la API de tareas gpt-image-2/text-to-image de hiapi para generar imágenes de listado limpias sobre fondo blanco, variantes de ángulo/detalle y escenas de lifestyle para todo tu catálogo de productos: imágenes reproducidas de verdad, precios verificados de $0.03 por imagen y scripts por lotes listos para copiar y pegar.

Jul 1, 2026
gpt-image-2 para imágenes de producto de e-commerce: flujo de trabajo por lotes en hiapi

TL;DR

  • Qué es: un flujo de trabajo ejecutable y reproducible que usa gpt-image-2/text-to-image en hiapi para generar imágenes de producto de e-commerce. Cada imagen de esta página se renderizó con el prompt original que aparece junto a ella: sin fotos de archivo, sin demos prestadas.
  • Un modelo, tres usos: imágenes de catálogo limpias sobre fondo blanco, variantes de ángulo/detalle del mismo producto y escenas de lifestyle, todo desde la misma interfaz de tareas de texto a imagen.
  • Datos de la API (verificados en la plataforma): gpt-image-2/text-to-image se ejecuta en una interfaz de tareas asíncrona (/v1/tasks). El objeto input requiere prompt, aspect_ratio (1:1 para listados, 4:5 para redes sociales, 16:9 para banners) y resolution (1K / 2K / 4K). La imagen resultante se encuentra en output[0].url.
  • Precio: gpt-image-2/text-to-image cuesta una tarifa plana de $0.03 por imagen. Un catálogo de 20 SKU con 3 imágenes por producto son 60 imágenes y cuesta $1.80. Consulta los precios en tiempo real en la página de precios.
  • Cómo ejecutarlo: haz POST a la API de tareas, sondea hasta que el estado sea success y luego descarga la imagen desde output[0].url; esa URL caduca, así que guarda los bytes de inmediato. Al final se incluyen los scripts completos de envío/sondeo/descarga listos para copiar y pegar, además del bucle por lotes.

Por qué usar gpt-image-2 para imágenes de producto

El pipeline de imágenes de producto tiene una especificación aburrida pero estricta: el mismo producto, presentación limpia, fondo consistente y una relación de aspecto apta para listados. gpt-image-2/text-to-image encaja en esto por tres razones.

Primero, mantiene estable la descripción del producto a lo largo de un lote de tareas: describes el artículo una vez, reutilizas esa descripción y solo cambias el ángulo de cámara. Esto es justo la clave para convertir «una imagen principal» en un conjunto completo de imágenes de listado.

Segundo, es una tarea asíncrona por imagen. Envías la tarea, sondeas el id de la tarea y recuperas el archivo terminado, usando el mismo protocolo de tareas que todos los demás modelos generativos de hiapi, así que si ya estás llamando a otros modelos, el flujo de control aquí es idéntico.

Tercero, es lo bastante barato como para iterar repetidamente. A $0.03 por imagen, puedes renderizar tres ángulos por SKU y descartar los que no te convenzan.

La única regla: escribe la especificación del producto una vez y reutilízala

El truco para mantener un conjunto de imágenes de listado consistente es fijar la mitad del prompt que describe el producto y cambiar solo la mitad que describe la cámara. Esta es la especificación de producto fija que se usa en todas las imágenes de abajo:

a matte ceramic pour-over coffee dripper in sage green with a short conical body and a small pouring spout

Todo lo demás —ángulo, fondo, iluminación, composición— se añade según la toma. Guárdalo en una variable y concatena.

Toma 1: imagen de listado sobre fondo blanco

Esta es la toma que piden los marketplaces: blanco puro, luz suave y uniforme, una sombra tenue y nada más en el encuadre.

Prompt: Studio e-commerce product photo of a matte ceramic pour-over coffee dripper in sage green with a short conical body and a small pouring spout, front three-quarter angle, centered on a pure white seamless background (#ffffff), soft even box lighting, subtle soft shadow directly beneath, sharp focus, true-to-life color, catalog listing style, no props, no text.

Ajustes: aspect_ratio: 1:1, resolution: 1K

Tomas 2 y 3: variantes del mismo producto

Ahora reutiliza exactamente la misma especificación de producto y cambia solo la instrucción de cámara. Como la mitad del prompt que describe el producto es idéntica, el goteador sigue siendo reconocible como el mismo artículo en todo el conjunto.

Prompt (ángulo): …high side angle looking down into the cone, pure white seamless background (#ffffff), soft even box lighting, subtle soft shadow, sharp focus, true-to-life color, catalog listing style, no props, no text.

Prompt (detalle): Close-up… focus on the spout and rim texture, pure white seamless background (#ffffff), soft even box lighting, subtle soft shadow, sharp focus, macro detail, catalog listing style, no props, no text.

Toma 4: variante lifestyle / redes sociales

Los listados necesitan recortes limpios; los anuncios y las redes sociales necesitan contexto. La misma especificación de producto, una escena nueva y un formato vertical 4:5 apto para el feed.

Prompt: Lifestyle e-commerce scene of a matte ceramic pour-over coffee dripper in sage green with a short conical body and a small pouring spout sitting on a light oak kitchen counter beside a glass carafe and a small pile of coffee beans, warm morning window light, shallow depth of field, cozy Scandinavian interior blurred in the background, natural color, premium social-media product shot, no text.

Ajustes: aspect_ratio: 4:5, resolution: 1K

La API de principio a fin

Tres llamadas: enviar la tarea, sondearla y descargar el archivo.

1. Enviar: haz POST con el modelo y el objeto input:

curl -s -X POST https://api.hiapi.ai/v1/tasks \
  -H "Authorization: Bearer $HIAPI_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-image-2/text-to-image",
    "input": {
      "prompt": "Studio e-commerce product photo ... no text.",
      "aspect_ratio": "1:1",
      "resolution": "1K"
    }
  }'
# -> {"data": {"taskId": "task_abc123"}}

2. Sondear: haz GET de la tarea hasta que status sea success:

curl -s https://api.hiapi.ai/v1/tasks/task_abc123 \
  -H "Authorization: Bearer $HIAPI_TOKEN"
# -> {"data": {"status": "success", "output": [{"url": "https://.../image.png"}]}}

3. Descargar: output[0].url es temporal, así que guárdala de inmediato:

curl -s -o dripper-front.jpg "<output[0].url>"

Script por lotes: un producto, varias imágenes

A continuación, un bucle de Python listo para copiar y pegar que renderiza un conjunto completo de imágenes de listado a partir de una especificación de producto. Mantiene fija la descripción del producto e itera sobre las instrucciones de toma.

import os, time, requests

BASE = "https://api.hiapi.ai/v1/tasks"
TOKEN = os.environ["HIAPI_TOKEN"]
HEAD = {"Authorization": f"Bearer {TOKEN}", "Content-Type": "application/json"}

# Fixed product spec — write it once.
PRODUCT = ("a matte ceramic pour-over coffee dripper in sage green with a short "
           "conical body and a small pouring spout")

# Vary only the shot half.
SHOTS = {
    "front":     ("1:1", "front three-quarter angle, pure white seamless background (#ffffff), "
                         "soft even box lighting, subtle soft shadow, catalog listing style, no text"),
    "angle":     ("1:1", "high side angle looking into the cone, pure white background, "
                         "soft even lighting, catalog listing style, no text"),
    "detail":    ("1:1", "close-up macro on the spout and rim, pure white background, "
                         "soft even lighting, catalog listing style, no text"),
    "lifestyle": ("4:5", "on a light oak kitchen counter with a glass carafe and coffee beans, "
                         "warm morning window light, shallow depth of field, no text"),
}

def submit(prompt, ratio):
    body = {"model": "gpt-image-2/text-to-image",
            "input": {"prompt": prompt, "aspect_ratio": ratio, "resolution": "1K"}}
    r = requests.post(BASE, headers=HEAD, json=body, timeout=60)
    return r.json()["data"]["taskId"]

def wait(task_id, timeout=600):
    deadline = time.time() + timeout
    while time.time() < deadline:
        d = requests.get(f"{BASE}/{task_id}", headers=HEAD, timeout=30).json()["data"]
        if d["status"] == "success":
            return d["output"][0]["url"]
        if d["status"] == "fail":
            raise RuntimeError(d.get("error"))
        time.sleep(5)
    raise TimeoutError(task_id)

for name, (ratio, shot) in SHOTS.items():
    prompt = f"Studio e-commerce product photo of {PRODUCT}, {shot}."
    url = wait(submit(prompt, ratio))
    img = requests.get(url, timeout=120).content   # URL expires — save now
    open(f"dripper-{name}.jpg", "wb").write(img)
    print(f"saved dripper-{name}.jpg  (cost $0.03)")

Sustituye PRODUCT por tu SKU, conserva el mapa SHOTS y envuelve todo en un bucle que recorra tu catálogo de productos para renderizar cada producto de la misma manera.

Cálculo de costes de un catálogo real

gpt-image-2/text-to-image se factura a una tarifa plana de $0.03 por imagen (verificado en la plataforma; consulta las cifras actuales en la página de precios). Por lo tanto:

Tamaño del catálogo Tomas por SKU Imágenes Coste
20 SKU 3 60 $1.80
100 SKU 3 300 $9.00
100 SKU 4 (con lifestyle) 400 $12.00

Es lo bastante barato como para volver a renderizar todo el catálogo cuando cambies el estándar de fondo, en lugar de volver a hacer las fotos.

Conclusión

El flujo de trabajo se mantiene deliberadamente mínimo: fija la especificación del producto, varía la toma, envía → sondea → descarga, y guarda los bytes de salida antes de que caduque la URL. Una tarea gpt-image-2/text-to-image por imagen, $0.03 por imagen, usando el mismo protocolo de tareas que ya usas con otros modelos de hiapi. Apunta el bucle por lotes a tu catálogo y escala de forma lineal.

Artículos relacionados

Ver todos los artículos →

Empieza a crear con artefactos de IA persistentes

Consigue tu API key y llama a modelos de imagen, vídeo y audio a través de una única API basada en tasks.

Leer la documentación de la API