Passer au contenu principal
L’API d’images de Venice peut renvoyer des images avec un véritable canal alpha au lieu d’un fond blanc ou d’un damier peint dans l’image. Le modèle compose le sujet avec la transparence dès le départ, de sorte que les contours, les ombres et les zones semi-transparentes (verre, cheveux, fumée) portent un alpha par pixel plutôt qu’un masque net. C’est différent de /image/background-remove, qui prend une image opaque finalisée et segmente le premier plan après coup. Utilisez la transparence native lorsque vous générez ou éditez l’asset de toute façon ; utilisez la suppression d’arrière-plan lorsque vous ne disposez que de l’image opaque.
Côte à côte : un verre de thé glacé rendu sur un fond de studio opaque, et le même verre sur un arrière-plan transparent affiché sur un damier

Même prompt et même seed sur gpt-image-2-5-flare. À gauche : sortie par défaut. À droite : transparent_background: true, affiché sur un damier. L'ombre portée est conservée sous forme d'alpha partiel.

Ce dont vous avez besoin

Toute autre configuration renvoie une erreur 400 avant l’inférence, vous n’êtes donc pas facturé pour une requête refusée.

Étape 1 : Générer une image transparente

/image/generate est l’endpoint natif. Définissez format sur png ou webp et transparent_background sur true.
La réponse est de type content-type: image/png avec une disposition de pixels RGBA. Sans return_binary, vous obtenez l’enveloppe JSON habituelle avec une chaîne base64 dans images[0]. format vaut webp par défaut, qui prend également en charge l’alpha, donc omettre format fonctionne. Seul un "format": "jpeg" explicite échoue.
Indiquez « no background » ou « isolated on transparent background » dans le prompt en plus de définir le paramètre. Le paramètre garantit un canal alpha ; le prompt dissuade le modèle de dessiner un sol, une table ou un décor qui resterait opaque à l’intérieur de la zone englobante du sujet.

Étape 2 : Vérifier le canal alpha

Ne vous fiez pas à l’extension du fichier. Vérifiez le mode des pixels et examinez la distribution de l’alpha pour confirmer que l’arrière-plan est réellement transparent et non un remplissage blanc aplati.
Un résultat correct présente une large proportion de pixels à alpha 0 (l’arrière-plan), une bande de valeurs partielles le long des contours (anticrénelage et ombres douces), et une zone englobante du sujet plus petite que le canevas. Si im.mode vaut RGB ou si la proportion transparente est de 0%, le canal alpha a été perdu quelque part dans votre pipeline, généralement lors d’une étape de redimensionnement ou de réencodage qui l’a supprimé.
Trois panneaux : l'image transparente sur un damier, son canal alpha sous forme de masque en niveaux de gris, et un recadrage agrandi du bord de l'ombre montrant un dégradé doux

Le canal alpha de l'image ci-dessus, isolé. L'ombre sous le verre s'estompe sur des dizaines de niveaux de gris au lieu de passer brusquement du blanc au noir, ce qui est exactement ce que vous voulez pour composer sur n'importe quel arrière-plan.

Les modèles GPT Image renvoient actuellement la zone opaque avec un alpha de 252–254 plutôt que 255. La différence est visuellement imperceptible, mais si vous appliquez un seuil == 255 pour trouver le sujet, vous obtiendrez un masque vide. Utilisez plutôt un seuil > 0 ou >= 250.

Étape 3 : Utiliser l’endpoint compatible OpenAI

Si vous utilisez déjà le SDK OpenAI, /images/generations accepte le même paramètre background qu’OpenAI. Définissez-le sur "transparent" et choisissez png ou webp comme output_format.
background accepte transparent, opaque ou auto. opaque, auto et null conservent tous le comportement par défaut du modèle, donc la seule valeur qui change quelque chose est transparent. output_format vaut png par défaut sur cet endpoint, vous pouvez donc l’omettre.
/images/generations accepte quality, style, output_compression et size pour la compatibilité OpenAI, mais les ignore. Sur les modèles GPT Image couverts par cette page, size n’a aucun effet : la sortie conserve le ratio d’aspect et la résolution par défaut du modèle. En dehors de model et prompt, les champs qui affectent l’image sont background, output_format et moderation ; response_format choisit seulement entre base64 et une data URL. resolution et aspect_ratio ne sont pas des champs, et le schéma est strict, donc envoyer l’un ou l’autre renvoie 400. Omettez quality ici ; utilisez l’endpoint natif /image/generate lorsque vous avez besoin de contrôler le niveau (voir Tarification ci-dessous).

Étape 4 : Éditer avec transparence

/image/edit et /image/multi-edit acceptent également transparent_background. L’image source n’a pas besoin d’être transparente ; vous pouvez envoyer une photo opaque et demander au modèle d’isoler le sujet pendant l’édition.
Sur les endpoints d’édition, output_format est déduit lorsqu’il est omis : normalement PNG pour les éditions 1K et JPEG pour les éditions 2K/4K, mais lorsque transparent_background vaut true, la déduction passe à PNG pour toutes les résolutions. Vous n’avez donc besoin d’envoyer output_format explicitement que si vous voulez du WebP. /image/multi-edit prend les mêmes champs, avec deux différences : envoyez chaque image d’entrée comme une partie images répétée, et indiquez le modèle avec modelId au lieu de model. C’est la solution idéale pour composer une photo de produit dans une nouvelle scène et récupérer le résultat composé sous forme de détourage à placer dans votre propre mise en page.

Tarification

La transparence n’entraîne aucun supplément. Vous payez le prix normal par image du modèle. Les deux routes facturent différemment : Si vous devez maîtriser le coût par image, utilisez l’endpoint natif. Consultez Modèles d’image pour la grille tarifaire à jour.

Erreurs

La validation s’exécute avant l’appel au modèle. Les deux messages indiquent la correction à apporter. transparent_background: false avec jpeg fonctionne et renvoie un JPEG opaque normal.

Découvrir les modèles compatibles à l’exécution

Les identifiants de modèles évoluent. Au lieu de coder en dur la liste ci-dessus, filtrez GET /models sur le flag de contrainte. La clé n’est présente, avec la valeur true, que sur les modèles qui la prennent en charge.
Utilisez type=inpaint pour les endpoints d’édition, qui renvoient les identifiants de modèles -edit.

Quand utiliser cette option plutôt que /image/background-remove

Si vous générez l’asset de toute façon, demandez la transparence dès le départ et évitez le second appel. Optez pour /image/background-remove lorsque l’image opaque existe déjà et que vous ne souhaitez pas la régénérer.
Le même sticker de fusée cartoon composé sur une couleur unie sombre, un dégradé chaud et un damier

Un seul sticker transparent issu de la requête de l'étape 1, déposé sur trois arrière-plans sans aucun traitement supplémentaire.

Pages liées