Pour obtenir trois formats publicitaires à partir d'une seule photo produit, gardez le produit réel en découpe et ne générez que le décor. Faites un fond séparé pour chaque format, placez le sachet original par-dessus et saisissez le titre dans votre éditeur. Un modèle qui redessine le sachet peut déformer une lettre de l'étiquette ; un compositing conserve les pixels photographiés. D'après nos vérifications d'octobre 2026 sur le catalogue en direct et les tarifs, la génération pour les trois formats coûte environ $0.21.
L'exemple est un sachet de café crème avec une étiquette gris charbon, un sommet plié cuivre et la mention « RIVER NOTES / WHOLE BEAN / 250 g », livré en 1:1 (1080 × 1080), 4:5 (1440 × 1800) et 9:16 (1080 × 1920).
Choisissez la voie selon ce qui doit rester exact
| Ce qui doit rester exact | Voie | Coût pour les trois formats |
|---|---|---|
| L'étiquette, la forme et chaque mot imprimé | Générer les fonds avec GPT Image 2 et composer le sachet original | $0.2021, plus $0.0048 pour la découpe |
| Idem, et la lumière et l'ombre doivent suivre le sachet | Placer le sachet sur un plan, laisser GPT Image 2 Edit peindre autour via un masque, puis reposer l'original par-dessus | $0.2316, plus $0.0048 pour la découpe (une image source par format) |
| Le sachet peut être ré-éclairé ou redessiné | Nano Banana Pro Edit avec la photo en entrée | $0.2004 ($0.0668 par image ; au plus $0.3242 en cas de repli sur la route officielle) |
Tous les chiffres valent pour 2K, qualité moyenne, une sortie par format, sans réessai. Utilisez 2K pour la voie la plus simple : un carré 1K est rendu à 1024 px, en dessous du plan de 1080. Le 1K coûte environ la moitié ($0.101 pour le lot), mais chaque fichier demande ensuite l'agrandissement 2K ($0.012 chacun) et c'est cette étape supplémentaire qui fait apparaître le flou. Nano Banana Pro facture le même prix en 1K et en 2K.
Si vous avez seulement besoin du nouveau format et acceptez des contours redessinés, le guide de l'outpainting couvre une voie en un appel à $0.024 par image ; sa sortie plafonne à 1536 px sur le côté long, donc les formats 4:5 et 9:16 demanderaient un agrandissement.
Préparez les trois plans
| Plan | Sachet | Zone de texte | Pourquoi |
|---|---|---|---|
| 1080 × 1080 | Centré à x=760, base à y=940, environ 640 px de haut | Colonne gauche x=80–480, titre vers y=250 | Le minimum recommandé par Meta pour 1:1 est 1080 × 1080 |
| 1440 × 1800 | Centré à x=720, base à y=1600, environ 930 px de haut | Bandeau supérieur y=140–500 | Le minimum de Meta pour 4:5 dans Facebook Feed est 1440 × 1800 (Instagram Feed indique 1080 de large) ; 1080 × 1350 est en dessous |
| 1080 × 1920 | Centré à x=540, base à y=1230, environ 680 px de haut | Titre y=300–470 | Garde le sachet et le texte entre y≈270 et y≈1250 |
Pour les annonces 1:1 et 4:5 dans Instagram Feed, Meta demande de laisser le bord inférieur et les bords latéraux libres de tout élément clé ; environ 100 px constituent une marge sûre. Pour 9:16, Meta demande de laisser le haut, le bas et les côtés libres, et sa superposition de zone sûre dans Ads Manager dessine le cadre exact. Les guides qui mesurent cette zone situent les marges à environ 14 % en haut, 35 % en bas et 6 % sur les côtés, soit environ 270, 670 et 65 px sur 1080 × 1920. C'est pourquoi le sachet au format story se place plus haut que vous ne le mettriez au départ. D'autres plateformes utilisent d'autres superpositions, vérifiez donc l'aperçu de chaque destination avant l'export.
Le carré sépare le texte du produit à gauche et à droite, le portrait empile le texte au-dessus du produit et le format 9:16 garde tout dans la bande centrale. Mettez le sachet à l'échelle uniformément ; l'étirer pour remplir un plan change les proportions de l'emballage. Gardez l'angle de prise de vue dans les trois cas : une vue de face ne peut pas montrer le panneau arrière ni la couture latérale, et un côté généré serait une maquette, pas votre emballage.

Illustration générée par IA des trois proportions avec un sachet de café dans chacune ; les mises en page réelles suivent le tableau de coordonnées ci-dessus.
Essayez dans le Playground
Suivez ces étapes dans le Playground ; le code et la voie avec Agent viennent plus bas.
- Ouvrez Background Remover, restez dans l'onglet Playground en vue Form (connectez-vous avec un compte approvisionné pour lancer), ajoutez la photo du sachet sous Input image et lancez. Enregistrez le PNG transparent.
- Ouvrez GPT Image 2 text to image avec le prompt 1:1 déjà rempli. Réglez Aspect ratio sur
1:1, Resolution sur2k, Quality surmedium(lowpendant que vous réglez) et Output format surpng, vérifiez l'estimation de prix et lancez. - Recommencez avec
4:5et9:16, en remplaçant les phrases de placement par celles des prompts ci-dessous, puis composez le sachet original dans votre éditeur.
Découpez le sachet une seule fois
Envoyez la meilleure photo, avec le sachet entier visible et l'étiquette lisible, à Background Remover : une URL d'image en entrée, un PNG transparent à la taille d'origine en sortie, $0.0048. Le guide de suppression d'arrière-plan couvre les vérifications de contour. Examinez le contour à 200 % sur un fond sombre et sur un fond clair, et conservez le pli cuivre et les petites ombres des plis plutôt que d'aplatir le sachet en rectangle.
Gardez le fichier original séparé de la découpe. Si la source a une ombre de contact dure, adoucissez-la ou retirez-la avant de poser le sachet sur une nouvelle surface ; sinon la composition montrera deux ombres contradictoires. Si la photo est trop petite pour la taille de sachet prévue, réduisez le sachet dans la maquette ou procurez-vous une photo plus grande. Une étiquette générée plus nette n'est pas l'étiquette imprimée.
Générez les fonds
Ouvrez GPT Image 2 text to image avec les réglages des étapes Playground ci-dessus et choisissez le rapport d'aspect selon le format. Indiquez dans chaque prompt la direction de la lumière de votre photo ; le sachet d'exemple est éclairé depuis le haut à gauche, comme dans les prompts ci-dessous. Utilisez 1:1 avec :
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.
Pour 4:5, remplacez les phrases de placement par :
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.
Pour 9:16, utilisez :
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.
Laissez le sachet de côté pour qu'aucun emballage synthétique ne concurrence l'original. Les grains de café peuvent être ajoutés plus tard comme élément séparé, à l'écart de l'étiquette et du bord de contact du sachet. Pour économiser de l'argent pendant que vous réglez le prompt, lancez-le d'abord avec Quality en low (environ $0.024 pour les trois en 2K) et passez en medium une fois les zones vides placées là où la maquette les attend. Vérifiez la taille en pixels livrée face au plan ; si elle est trop courte, agrandissez-la avec le niveau 2K d'Image Upscaler ($0.012, voir le guide d'agrandissement) au lieu de l'étirer dans l'éditeur.
Composez le sachet et placez le texte
Posez la découpe aux coordonnées ci-dessus. Ajoutez une ombre de contact douce juste sous la base (une ellipse sombre floutée en mode multiply autour de 30–40 %) et une ombre plus discrète et plus large qui s'éloigne de la lumière. Si le sachet est éclairé depuis la droite et le fond depuis la gauche, régénérez le fond avec une lumière à droite plutôt que de peindre des reflets contradictoires sur l'emballage imprimé. Un contour pâle autour du sachet est un problème de contour de la découpe : rétrécissez sa sélection d'un ou deux pixels plutôt que de régénérer quoi que ce soit.
Saisissez le titre et l'appel à l'action dans l'éditeur. Conservez les informations produit comme « 250 g » telles qu'elles sont fournies et n'ajoutez aucune affirmation non étayée.
La même étape en Pillow, pour un plan de 1080 × 1080 (le sachet est placé par sa base, comme dans le tableau) :
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")Enregistrez un maître en calques avec des calques séparés pour le fond, le produit, l'ombre et le texte, puis exportez chaque format depuis celui-ci. Un nouveau prix ou un nouveau titre ne coûte alors aucune génération supplémentaire et ne peut pas changer l'étiquette.
Laissez le modèle peindre autour du sachet
Si la composition semble plaquée, laissez GPT Image 2 Edit peindre le décor. Les zones transparentes du masque indiquent où éditer, mais ne garantissent pas que les pixels extérieurs restent inchangés ; la superposition du produit original à l'étape 4 conserve intacte l'étiquette photographiée.
- Placez la découpe sur un plan neutre et plat ayant le même rapport que la sortie, et exportez-la comme image source. En 2K, le modèle renvoie 2048 px sur le côté long d'un carré, construisez donc à cette taille (pour 1:1, 2048 × 2048 avec le sachet mis à l'échelle au même facteur que dans le tableau des plans), ou réduisez le résultat à la taille du plan avant la superposition finale.
- Exportez le calque produit seul, sachet opaque et tout le reste transparent, à la même taille en pixels que la source.
- Ouvrez GPT Image 2 Edit dans le Playground. Ajoutez le plan sous Images, ouvrez Advanced parameters et ajoutez le calque produit sous Mask (les pixels transparents sont repeints, les opaques sont conservés). Réglez Aspect ratio sur celui du plan, Resolution sur
2ket Input Fidelity surhigh, puis utilisez un prompt comme : « 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. » - Posez la découpe originale sur le résultat, sur les mêmes pixels autour desquels le modèle a peint, avant d'ajouter le texte, afin que l'étiquette soit bien celle photographiée quoi qu'il arrive au bord.
Le modèle voit le sachet pendant qu'il peint, donc la lumière et l'ombre peuvent le suivre. L'image source ajoute $0.0098 par requête : $0.0959 (1:1), $0.0778 (4:5) et $0.0579 (9:16) en 2K medium.
Quand le sachet lui-même peut changer
Choisissez Nano Banana Pro Edit quand vous voulez le sachet ré-éclairé dans une nouvelle scène et que vous pouvez examiner les changements de ses plis, de son étiquette et de sa silhouette. Ajoutez la photo du produit sous Images, réglez Resolution sur 2k, choisissez le Aspect ratio et utilisez :
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 vous joignez le visuel d'étiquette approuvé comme seconde image, précisez quelle image est le sachet et laquelle est l'étiquette. Demander la préservation ne la garantit pas. Si « 250 g » devient une autre quantité, remplacez l'étiquette par le visuel approuvé dans la composition finale ou revenez à la voie fonds seuls.
Appelez-la depuis du code
Le même appel de fond pour le format 9:16 (installez avec pip install spicyapi et définissez SPICY_API_KEY) ; l'étape Pillow ci-dessus place ensuite le sachet. Environ $0.048 par image.
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 référence du SDK Python couvre le reste.
Ou laissez un Agent s'en charger
Enregistrez les champs input dans input.json, puis exécutez npx @spicyapi/cli tasks create --model openai/gpt-image-2/text-to-image --input-file input.json --wait (CLI). Avec le serveur MCP, votre assistant appelle spicyapi_task_create, qui affiche le prix pour que vous le confirmiez, puis spicyapi_task_wait. Vous pouvez aussi installer l'Agent Skill avec npx skills add spicyapi-ai/spicy-skill.
Corrigez les problèmes habituels
| Problème | Correction |
|---|---|
| L'étiquette paraît douce à la taille finale | Réduisez le sachet ou utilisez une photo plus haute résolution ; conservez les pixels d'origine de l'étiquette. |
| Le sachet semble flotter | Déplacez l'ombre de contact sur la base réelle et fermez tout espace. |
| La lumière du produit et celle du fond divergent | Indiquez la direction de la lumière de la photo dans le prompt du fond, ou utilisez l'édition avec masque. |
| Le texte chevauche le pli cuivre | Déplacez le texte dans la zone réservée ; ne comprimez pas le sachet. |
| La version verticale perd la base ou tombe dans la bande d'interface | Reconstruisez-la depuis les calques aux coordonnées 9:16 ; ne recadrez pas le carré. |
| La scène générée modifie le texte de l'emballage | Revenez à la composition fonds seuls ou restaurez l'étiquette depuis l'artwork approuvé. |
Avant livraison, comparez l'étiquette de chaque fichier exporté en plein zoom à la photo source.
Pour la plupart des travaux, générez uniquement des fonds et composez le sachet original. Passez à l'édition avec masque quand la composition semble plaquée.








