Para sacar tres formatos de anuncio de una sola foto de producto, deja el producto real como recorte y genera solo el entorno. Haz un fondo distinto para cada formato, coloca encima la bolsa original y escribe el titular en tu editor. Un modelo que vuelva a dibujar la bolsa puede doblar una letra de la etiqueta; una composición conserva los píxeles fotografiados. Según nuestras comprobaciones de octubre de 2026 sobre el catálogo en vivo y las tarifas, generar el conjunto completo cuesta unos $0.21.
El ejemplo es una bolsa de café color crema con etiqueta gris carbón, cierre plegado cobrizo y el texto «RIVER NOTES / WHOLE BEAN / 250 g», entregada en 1:1 (1080 × 1080), 4:5 (1440 × 1800) y 9:16 (1080 × 1920).
Elige la ruta según lo que deba quedar exacto
| Lo que debe quedar exacto | Ruta | Coste de los tres formatos |
|---|---|---|
| Etiqueta, forma y cada palabra impresa | Generar fondos con GPT Image 2 y componer la bolsa original | $0.2021, más $0.0048 por el recorte |
| Lo mismo, y la luz y la sombra deben seguir a la bolsa | Colocar la bolsa en un lienzo, dejar que GPT Image 2 Edit pinte alrededor con una máscara y volver a poner encima el original | $0.2316, más $0.0048 por el recorte (una imagen de origen por formato) |
| La bolsa puede cambiar de luz o redibujarse | Nano Banana Pro Edit con la foto como entrada | $0.2004 ($0.0668 por imagen; como máximo $0.3242 si recurre a la ruta oficial) |
Todas las cifras son para 2K, calidad media, una salida por formato y sin reintentos. Usa 2K para la ruta más sencilla: un cuadrado 1K se renderiza a 1024 px, por debajo del lienzo de 1080. 1K cuesta aproximadamente la mitad ($0.101 por el conjunto), pero entonces cada archivo necesita el aumento a 2K ($0.012 cada uno) y ese paso extra es justo donde aparece la falta de nitidez. Nano Banana Pro cobra lo mismo en 1K y en 2K.
Si solo necesitas la nueva forma y aceptas bordes redibujados, la guía de outpainting cubre una ruta de una sola llamada a $0.024 por imagen; su salida llega como máximo a 1536 px en el lado largo, así que los formatos 4:5 y 9:16 necesitarían aumento.
Prepara los tres lienzos
| Lienzo | Bolsa | Zona de texto | Por qué |
|---|---|---|---|
| 1080 × 1080 | Centrada en x=760, base en y=940, unos 640 px de alto | Columna izquierda x=80–480, titular cerca de y=250 | El mínimo recomendado de Meta para 1:1 es 1080 × 1080 |
| 1440 × 1800 | Centrada en x=720, base en y=1600, unos 930 px de alto | Banda superior y=140–500 | El mínimo de Meta para 4:5 en Facebook Feed es 1440 × 1800 (Instagram Feed indica 1080 de ancho); 1080 × 1350 queda por debajo |
| 1080 × 1920 | Centrada en x=540, base en y=1230, unos 680 px de alto | Titular y=300–470 | Mantiene bolsa y texto entre y≈270 e y≈1250 |
Para los anuncios 1:1 y 4:5 en Instagram Feed, Meta pide que los bordes inferior y laterales queden libres de elementos clave; unos 100 px son un margen seguro. Para 9:16, Meta pide dejar libres arriba, abajo y a los lados, y su superposición de zona segura en Ads Manager dibuja el recuadro exacto. Las guías que lo miden sitúan los márgenes en torno al 14 % arriba, 35 % abajo y 6 % en los lados, unos 270, 670 y 65 px sobre 1080 × 1920. Por eso la bolsa en formato story queda más alta de lo que la colocarías al principio. Otras plataformas usan otras superposiciones, así que revisa la vista previa de cada destino antes de exportar.
El cuadrado separa el texto del producto a izquierda y derecha, el vertical apila el texto sobre el producto y el formato 9:16 lo mantiene todo dentro de la banda central. Escala la bolsa de forma uniforme; estirarla para llenar un lienzo cambia las proporciones del envase. Mantén el ángulo de la foto en los tres casos: una toma frontal no puede enseñar el panel trasero ni la costura lateral, y un lateral generado sería una maqueta, no tu envase.

Ilustración generada por IA de las tres proporciones con una bolsa de café en cada una; los diseños reales siguen la tabla de coordenadas de arriba.
Pruébalo en Playground
Sigue estos pasos en Playground; el código y la ruta con Agent están más abajo.
- Abre Background Remover, quédate en la pestaña Playground en la vista Form (inicia sesión con una cuenta con saldo para ejecutar), añade la foto de la bolsa en Input image y ejecútalo. Guarda el PNG transparente.
- Abre GPT Image 2 text to image con el prompt de 1:1 ya rellenado. Pon Aspect ratio en
1:1, Resolution en2k, Quality enmedium(lowmientras ajustas) y Output format enpng, comprueba la estimación de precio y ejecútalo. - Repite con
4:5y9:16, cambiando las frases de colocación por las de los prompts de abajo, y luego compón la bolsa original en tu editor.
Recorta la bolsa una sola vez
Envía la mejor foto, con la bolsa entera visible y la etiqueta legible, a Background Remover: una URL de imagen dentro, un PNG transparente del tamaño original fuera, $0.0048. La guía de eliminación de fondo cubre las comprobaciones del borde. Mira el borde al 200 % sobre un fondo oscuro y otro claro, y conserva el pliegue cobrizo y las sombras pequeñas de los pliegues en vez de aplanar la bolsa en un rectángulo.
Mantén el archivo original separado del recorte. Si el origen tiene una sombra de contacto dura, suavízala o quítala antes de colocar la bolsa sobre una superficie nueva; si no, la composición mostrará dos sombras contradictorias. Si la foto es demasiado pequeña para el tamaño de bolsa previsto, haz la bolsa más pequeña en el diseño o consigue una foto mayor. Una etiqueta generada más nítida no es la etiqueta impresa.
Genera los fondos
Abre GPT Image 2 text to image con los ajustes de los pasos de Playground anteriores y elige la relación de aspecto según el formato. Escribe en cada prompt la dirección de la luz de tu foto; la bolsa de ejemplo está iluminada desde arriba a la izquierda, como en los prompts de abajo. Usa 1:1 con:
Photographic still-life advertising background, empty warm stone tabletop in the lower third, softly lit charcoal wall, gentle window light from upper left, subtle warm copper accents far in the background. Leave the right half of the tabletop clear for a coffee bag to be composited later. Leave the left half of the wall quiet and low-detail for editable copy. No product, no lettering, no logo, no cup in the reserved product area.
Para 4:5, sustituye las frases de colocación por:
Leave the lower centre clear for a coffee bag to be composited later; keep the upper third as a simple charcoal wall for editable copy.
Para 9:16, usa:
Vertical photographic background with a broad clear tabletop below the centre. Reserve the central lower-middle area for a coffee bag, with quiet charcoal wall above and uncluttered space below. No lettering, no product, no foreground props.
Deja fuera la bolsa para que ningún envase sintético compita con el original. Los granos de café se pueden añadir después como elemento separado, lejos de la etiqueta y del borde de contacto de la bolsa. Para ahorrar dinero mientras ajustas el prompt, ejecútalo primero con Quality en low (unos $0.024 por los tres a 2K) y pasa a medium cuando las zonas vacías caigan donde el diseño las necesita. Comprueba el tamaño en píxeles entregado frente al lienzo; si se queda corto, amplíalo con el nivel 2K de Image Upscaler ($0.012, consulta la guía de aumento) en vez de estirarlo en el editor.
Compón la bolsa y ajusta la tipografía
Coloca el recorte en las coordenadas de arriba. Añade una sombra de contacto suave justo debajo de la base (una elipse oscura desenfocada en modo multiply con una opacidad aproximada del 30–40 %) y otra más tenue y amplia que caiga en dirección contraria a la luz. Si la bolsa está iluminada desde la derecha y el fondo desde la izquierda, vuelve a generar el fondo con luz por la derecha en lugar de pintar brillos contradictorios sobre el envase impreso. Un contorno pálido alrededor de la bolsa es un problema de borde del recorte: reduce su selección en uno o dos píxeles en vez de regenerar nada.
Escribe el titular y la llamada a la acción en el editor. Mantén los datos del producto como «250 g» tal como se entregan y no añadas afirmaciones sin respaldo.
El mismo paso en Pillow, para un lienzo de 1080 × 1080 (la bolsa se coloca por su base, como en la tabla):
from PIL import Image, ImageFilter
bg = Image.open("bg-1x1.png").convert("RGBA").resize((1080, 1080))
bag = Image.open("bag-cutout.png").convert("RGBA")
h = 640
bag = bag.resize((round(bag.width * h / bag.height), h), Image.LANCZOS)
x, base_y = 760 - bag.width // 2, 940
shadow = Image.new("L", bg.size, 0)
shadow.paste(90, (x + 20, base_y - 12, x + bag.width - 20, base_y + 12))
shadow = shadow.filter(ImageFilter.GaussianBlur(14))
dark = Image.new("RGBA", bg.size, (20, 12, 8, 255))
bg = Image.composite(dark, bg, shadow)
bg.alpha_composite(bag, (x, base_y - h))
bg.convert("RGB").save("ad-1x1.png")Guarda un maestro en capas con capas separadas de fondo, producto, sombra y texto, y exporta cada formato desde ahí. Un precio nuevo o un titular nuevo ya no cuestan una generación adicional y no pueden cambiar la etiqueta.
Deja que el modelo pinte alrededor de la bolsa
Si la composición parece pegada, deja que GPT Image 2 Edit pinte el entorno. Las zonas transparentes de la máscara indican dónde editar, pero no garantizan que los píxeles de fuera queden sin cambios; la superposición del producto original en el paso 4 mantiene intacta la etiqueta fotografiada.
- Coloca el recorte en un lienzo plano y neutro con la misma proporción que la salida y expórtalo como imagen de origen. A 2K el modelo devuelve 2048 px en el lado largo de un cuadrado, así que constrúyelo a ese tamaño (para 1:1, 2048 × 2048 con la bolsa escalada por el mismo factor que en la tabla de lienzos), o reduce el resultado al tamaño del lienzo antes de la superposición final.
- Exporta solo la capa de producto, con la bolsa opaca y todo lo demás transparente, al mismo tamaño en píxeles que el origen.
- Abre GPT Image 2 Edit en Playground. Añade el lienzo en Images, abre Advanced parameters y añade la capa de producto en Mask (los píxeles transparentes se repintan, los opacos se conservan). Pon Aspect ratio igual al lienzo, Resolution en
2ke Input Fidelity enhigh, y usa un prompt como: «Paint a warm stone tabletop and charcoal wall around the existing coffee bag. Keep the bag unchanged. Soft window light from the left with a natural contact shadow under the bag. Leave the upper third as quiet wall for copy.» - Coloca el recorte original sobre el resultado, en los mismos píxeles alrededor de los cuales pintó el modelo, antes de añadir texto, para que la etiqueta sea la fotografiada pase lo que pase en el borde.
El modelo ve la bolsa mientras pinta, así que la luz y la sombra pueden seguirla. La imagen de origen añade $0.0098 por petición: $0.0959 (1:1), $0.0778 (4:5) y $0.0579 (9:16) a 2K medium.
Cuando la bolsa en sí puede cambiar
Elige Nano Banana Pro Edit cuando quieras la bolsa con nueva iluminación en una escena nueva y puedas revisar los cambios en sus pliegues, su etiqueta y su silueta. Añade la foto del producto en Images, pon Resolution en 2k, elige el Aspect ratio y usa:
Place the coffee bag from the supplied photograph on a warm stone tabletop against a charcoal wall. Preserve its cream package, copper folded top, charcoal label and overall proportions. Soft window light from the left. Leave clear space above for copy. Do not add claims, extra logos or extra products.
Si adjuntas el arte final aprobado de la etiqueta como segunda imagen, di cuál imagen es la bolsa y cuál es la etiqueta. Pedir que se conserve no lo garantiza. Si «250 g» se convierte en otra cantidad, sustituye la etiqueta por el arte final aprobado en la composición final o vuelve a la ruta de solo fondo.
Llámalo desde código
La misma llamada de fondo para el formato 9:16 (instala con pip install spicyapi y define SPICY_API_KEY); el paso de Pillow de arriba coloca luego la bolsa. Unos $0.048 por imagen.
import uuid
from spicyapi import SpicyClient, output_assets
client = SpicyClient() # reads SPICY_API_KEY from the environment
task = client.create_task(
model="openai/gpt-image-2/text-to-image",
input_data={
"prompt": "Vertical photographic background with a broad clear tabletop below the centre. Reserve the central lower-middle area for a coffee bag, with quiet charcoal wall above and uncluttered space below. No lettering, no product, no foreground props.",
"aspect_ratio": "9:16",
"resolution": "2k",
"quality": "medium",
"output_format": "png",
},
idempotency_key=str(uuid.uuid4()), # new key per new request; reuse only to retry the same one
)
print("Resume task:", task["taskId"], flush=True)
final = client.wait_for_terminal(task["taskId"])
if final["state"] != "succeeded":
raise RuntimeError(f"Task {task['taskId']} ended as {final['state']}")
assets = output_assets(final)
if not assets or any(a.get("pending") or a.get("unavailable") or not a.get("url") for a in assets):
raise RuntimeError(f"Task {task['taskId']} has no ready output; check this task before a new run")
print(assets[0]["url"])La referencia del SDK de Python cubre el resto.
O deja que un Agent lo ejecute
Guarda los campos input como input.json y luego ejecuta npx @spicyapi/cli tasks create --model openai/gpt-image-2/text-to-image --input-file input.json --wait (CLI). Con el servidor MCP, tu asistente llama a spicyapi_task_create, que te muestra el precio para que lo confirmes, y luego a spicyapi_task_wait. O instala el Agent Skill con npx skills add spicyapi-ai/spicy-skill.
Resuelve los problemas habituales
| Problema | Corrección |
|---|---|
| La etiqueta se ve suave al tamaño final | Haz la bolsa más pequeña o usa una foto de mayor resolución; conserva los píxeles originales de la etiqueta. |
| La bolsa parece flotar | Mueve la sombra de contacto a la base real y cierra cualquier hueco. |
| La luz del producto y la del fondo no coinciden | Pon la dirección de la luz de la foto en el prompt del fondo o usa la edición con máscara. |
| El texto se solapa con el pliegue cobrizo | Mueve el texto a la zona reservada; no comprimas la bolsa. |
| La versión vertical pierde la base o queda en la banda de la interfaz | Reconstruye con las capas en las coordenadas 9:16; no recortes el cuadrado. |
| La escena generada cambia el texto del envase | Vuelve a la composición de solo fondo o restaura la etiqueta desde el arte final aprobado. |
Antes de entregar, compara la etiqueta de cada archivo exportado a todo aumento con la foto original.
Para la mayoría de los trabajos, genera solo fondos y compon la bolsa original. Cambia a la edición con máscara cuando la composición parezca pegada.








