Guía de uso
Genera imágenes de productos de comercio electrónico con Nano-Banana-2-Lite a través de la API de hiapi
Cuando generas imágenes de productos para un catálogo de comercio electrónico, la economía unitaria importa más que cualquier imagen individual. Una imagen principal cuesta $0.17, lo cual está bien cuando solo necesitas diez; pero cuando necesitas generar tres imágenes para cada uno de 1000 SKU, la situación es completamente distinta. Esto es precisamente el vacío que llena Nano-Banana-2-Lite en hiapi: $0.033 por imagen, resolución 1K, la misma API de tareas asíncronas que los modelos Nano-Banana más grandes, y soporte para hasta 10 imágenes de referencia, suficiente para completar a precio de lote el clásico trío de comercio electrónico: imagen principal sobre fondo blanco, imagen de estilo de vida y variante premium oscura.
Esta guía es el artículo complementario de nivel presupuestario de nuestro anterior flujo de trabajo de comercio electrónico con Nano-Banana. Todo lo que aparece a continuación —solicitudes, salidas, tiempos de ejecución, costos— proviene de nuestras ejecuciones reales contra la API en vivo al momento de escribir este artículo.

El lugar de Lite dentro de la línea de productos Nano-Banana
La siguiente información fue verificada contra la página de precios de hiapi al momento de escribir:
| Modelo | Precio por imagen | Resolución | Imágenes de referencia |
|---|---|---|---|
| Nano-Banana-2-Lite | $0.033 | 1K | Hasta 10 mediante image_urls |
| nano-banana | $0.05 | Estándar | Compatible |
| nano-banana-2 | $0.085 (1K) / $0.076 (2K) / $0.114 (4K) | Hasta 4K | Mediante image_input |
| nano-banana-pro | $0.17 (1K/2K) / $0.2992 (4K) | Hasta 4K | Mediante image_input |
La regla de decisión para catálogos de productos es sencilla:
- Listados de marketplaces, SKU de cola larga, variantes A/B → Lite. A 1K (aproximadamente 1024 px en el lado corto), la salida iguala o supera el estándar de la mayoría de los marketplaces tras la compresión de imágenes subidas.
- Banners de página de inicio, imágenes clave de campañas de marketing, material impreso → sube a nano-banana-pro para obtener salidas de 2K/4K y una renderización de texto más potente. Lite es para volumen, Pro para imágenes destacadas: se complementan en lugar de competir.
Una solicitud funcional
Nano-Banana-2-Lite se ejecuta sobre la API unificada de tareas asíncronas de hiapi: envía una tarea, sondea hasta que se complete y descarga el resultado. Hay tres advertencias antes del código:
- El ID del modelo distingue mayúsculas y minúsculas. Envía exactamente
Nano-Banana-2-Lite: las variantes en minúsculas devuelven400 MODEL_UNAVAILABLE. aspect_ratioes un valor de enumeración, no formato libre. Valores permitidos:auto,1:1,2:3,3:2,3:4,4:3,4:5,5:4,9:16,16:9,21:9,1:4,4:1,1:8,8:1. No existe un camporesolution: Lite está fijado a 1K y enviarresolutionhará que la solicitud sea rechazada.- Las URL de salida son enlaces firmados y caducan. Descarga los bytes inmediatamente después de que la tarea tenga éxito; almacena los archivos, no las URL.
curl -s -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "Nano-Banana-2-Lite",
"input": {
"prompt": "Professional e-commerce product photo of a minimalist matte-white wireless earbuds charging case, centered on a seamless pure white background, soft even studio lighting, gentle shadow beneath, crisp edges, catalog-ready hero shot, no text, no logo",
"aspect_ratio": "1:1"
}
}'
La respuesta incluye un taskId. Sondea GET /v1/tasks/{taskId} hasta que status sea success y luego descarga data.output[0].url. En nuestra ejecución, una tarea individual se completó de extremo a extremo en aproximadamente 55–65 segundos, incluido el tiempo de sondeo.
A continuación, la salida de ese prompt exacto: una imagen generada por Lite sin retoques:

Escribir prompts para imágenes principales de nivel catálogo
Para listados de productos sobre fondo blanco, el patrón de prompt que siempre nos ha funcionado:
*Professional e-commerce product photo of [producto, materiales, colores], centered on a seamless pure white background, soft even studio lighting, subtle natural shadow, crisp focus, marketplace catalog style, no text, no logo*
Otros dos productos con la misma plantilla, cambiando solo la descripción del producto y la relación de aspecto (4:5 para la categoría vertical de moda/belleza, 4:3 para calzado y productos electrónicos):


Consejos prácticos para la generación por lotes:
- Termina siempre con "no text, no logo". Como la mayoría de los modelos de imagen, de lo contrario Lite inventa texto de etiquetas y logotipos de marca: un problema de cumplimiento normativo en listados de productos reales. Si tu producto tiene etiquetas reales, compónlas después o usa la ruta de imagen de referencia que se describe a continuación.
- Solicita la sombra explícitamente ("subtle natural shadow"). Sin este requisito, a menudo obtendrás un efecto de recorte flotante que parece falso en los marketplaces.
- Un solo producto por imagen. Lite maneja de forma fiable composiciones de un solo sujeto; con varios productos dispuestos en plano, empiezas a necesitar modelos más grandes.
El mismo producto, nueva escena: el flujo de trabajo con image_urls
El verdadero truco del comercio electrónico está en la consistencia: una imagen estándar del producto, reubicada en escenas de estilo de vida y escenas premium, sin que el producto se deforme entre imágenes. Lite acepta hasta 10 imágenes de referencia mediante el campo image_urls (nota: los modelos Nano-Banana-2 más grandes llaman a este campo image_input; el cambio de nombre es la principal trampa de portabilidad, consulta nuestro tutorial de la API de Lite).
Usamos la imagen principal anterior como referencia y solicitamos dos reubicaciones:
{
"model": "Nano-Banana-2-Lite",
"input": {
"prompt": "Place this exact product on a warm oak wooden desk next to a laptop keyboard and a small green potted plant, soft morning window light from the left, shallow depth of field, cozy home-office lifestyle e-commerce scene, keep the product design, colors and proportions unchanged",
"aspect_ratio": "4:3",
"image_urls": ["https://your-cdn.example.com/hero-earbuds.jpg"]
}
}


Ambas variantes regresaron con las proporciones del estuche de carga, la junta de la tapa y el LED indicador intactos. La frase "keep the product design, colors and proportions unchanged" marca una gran diferencia aquí: inclúyela en cada prompt con imagen de referencia. La URL de referencia debe ser de acceso público (un enlace privado firmado que caduque a mitad de la tarea hará que la tarea falle).
Pipeline de lotes en Python
Las tareas son independientes, por lo que el rendimiento por lotes proviene de enviar todas las tareas a la vez y sondearlas como un grupo: en nuestra ejecución, cinco tareas concurrentes tardaron aproximadamente el mismo tiempo real en completarse que una sola tarea. Un pipeline mínimo:
import json
import subprocess
import time
API = "https://api.hiapi.ai/v1/tasks"
TOKEN = "sk-..." # your hiapi API key
def _curl(args):
out = subprocess.run(["curl", "-s", *args], capture_output=True, text=True, timeout=90)
return json.loads(out.stdout)
def submit(prompt, aspect_ratio="1:1", image_urls=None):
inp = {"prompt": prompt, "aspect_ratio": aspect_ratio}
if image_urls:
inp["image_urls"] = image_urls
data = _curl(["-X", "POST", API,
"-H", f"Authorization: Bearer {TOKEN}",
"-H", "Content-Type: application/json",
"-d", json.dumps({"model": "Nano-Banana-2-Lite", "input": inp})])
return data["data"]["taskId"]
def wait(task_id, timeout_s=600):
deadline = time.time() + timeout_s
while time.time() < deadline:
task = _curl([f"{API}/{task_id}", "-H", f"Authorization: Bearer {TOKEN}"])["data"]
if task["status"] == "success":
return task["output"][0]["url"]
if task["status"] == "fail":
raise RuntimeError(f"{task_id}: {task.get('error')}")
time.sleep(5)
raise TimeoutError(task_id)
HERO_TMPL = ("Professional e-commerce product photo of {product}, centered on a "
"seamless pure white background, soft even studio lighting, subtle "
"natural shadow, crisp focus, marketplace catalog style, no text, no logo")
skus = [
{"id": "SKU-001", "product": "a matte-white wireless earbuds charging case"},
{"id": "SKU-002", "product": "an amber glass serum bottle with black dropper cap"},
{"id": "SKU-003", "product": "a white minimalist running sneaker with light gray sole"},
]
# 1) submit everything up front
tasks = {sku["id"]: submit(HERO_TMPL.format(product=sku["product"])) for sku in skus}
# 2) collect results and persist bytes immediately — output URLs expire
for sku_id, task_id in tasks.items():
url = wait(task_id)
subprocess.run(["curl", "-s", "-o", f"{sku_id}.jpg", url], timeout=120)
print(f"{sku_id} done")
Para volúmenes de producción, vale la pena implementar dos mejoras: usar callbacks webhook en lugar de sondeo (pasa callback.url y when: "final" al crear la tarea) y persistir cada taskId junto con tus registros de SKU, de modo que un proceso de trabajo que se caiga pueda recuperarse en lugar de volver a gastar. Ambas se tratan en el tutorial de la API de tareas y en la documentación de hiapi.
El costo real de un catálogo de productos
A $0.033 por imagen, con el tratamiento estándar de tres imágenes (principal + estilo de vida + variante oscura/detalle):
| Tamaño del catálogo | Número de imágenes (×3) | Nano-Banana-2-Lite | El mismo trabajo con nano-banana-pro |
|---|---|---|---|
| 100 SKU | 300 | $9.90 | $51.00 |
| 500 SKU | 1,500 | $49.50 | $255.00 |
| 1,000 SKU | 3,000 | $99.00 | $510.00 |
Un esquema híbrido razonable: procesa todo el catálogo con Lite y luego vuelve a fotografiar solo los 20 SKU de mayores ingresos con nano-banana-pro en 2K/4K para la página de inicio y las campañas de marketing. Para el ejemplo de 100 SKU, esto es $9.90 + aproximadamente $10 en imágenes de Pro: sigue siendo una fracción del costo de un día de estudio fotográfico.
Reserva un margen de reintento del 5–10 % para los prompts que necesiten un segundo intento (normalmente texto sobrante en las etiquetas) y recuerda que las tareas fallidas se reportan con fail y un objeto de error: solo las generaciones exitosas merecen pasar tu control de calidad.
Conclusión
Nano-Banana-2-Lite no reemplaza tu pipeline de imágenes clave insignia: para eso está el nivel Pro. Pero para la cola larga de un catálogo de productos, donde cada SKU necesita imágenes presentables y consistentes y el presupuesto se mide por cada mil imágenes, $0.033 a resolución 1K con soporte de imágenes de referencia es difícil de rebatir.
Obtén una clave de API y comienza desde la página del modelo Nano-Banana-2-Lite: la solicitud anterior funciona directamente después de sustituir tu token, y el script por lotes puede escalarla de un SKU a mil.
Artículos relacionados
Ver todos los artículos →-
Guía de uso
seedream-5.0-pro/image-to-image: guía de introducción — capacidades, precios y puntos clave de integración
Límites de capacidad, modelo de facturación y prácticas de integración técnica del modelo de edición de imágenes de ByteDance
-
Guía de uso
Guía de inicio de seedream-5.0-pro texto a imagen: límites de capacidad, integración de API y control de costes
Perspectiva práctica para desarrolladores: desde los puntos clave de los parámetros hasta la estimación de coste de $0.05 por imagen
-
Guía de uso
Guía de inicio de Hailuo 2.3 Fast de imagen a video: límites de capacidad, precios e integración práctica
Claves de selección e integración del modelo MiniMax de imagen a video para desarrolladores