> ## Documentation Index
> Fetch the complete documentation index at: https://docs.venice.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Images à arrière-plan transparent

> Générez et éditez des images PNG ou WebP avec un véritable canal alpha grâce à transparent_background sur /image/generate, /image/edit et /image/multi-edit, ou à background: transparent sur l'endpoint compatible OpenAI.

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.

<Frame as="div" caption="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.">
  <img src="https://mintcdn.com/veniceai/W3Pe6eTTsq9YXpsg/images/guides/transparent-backgrounds/before-after.webp?fit=max&auto=format&n=W3Pe6eTTsq9YXpsg&q=85&s=c9be8661231052a405dc949687f9f5ee" alt="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" width="1192" height="518" data-path="images/guides/transparent-backgrounds/before-after.webp" />
</Frame>

## Ce dont vous avez besoin

| Exigence | Détail |
| - | - |
| Modèle | Un modèle marqué `supportsTransparentBackground: true` dans les contraintes de `GET /models`. Actuellement `gpt-image-1-5`, `gpt-image-2-5-flare` et `gpt-image-2-5-sunburst` (ainsi que leurs variantes `-edit` pour les endpoints d'édition) |
| Format de sortie | `png` ou `webp`. Le JPEG n'a pas de canal alpha, donc `jpeg` est refusé |
| Paramètre | `transparent_background: true` sur `/image/generate`, `/image/edit`, `/image/multi-edit`. `background: "transparent"` sur `/images/generations` |

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`.

```bash theme={"system"}
curl https://api.venice.ai/api/v1/image/generate \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -H "Content-Type: application/json" \
  -o sticker.png \
  -d '{
    "model": "gpt-image-2-5-flare",
    "prompt": "A die-cut sticker of a cartoon rocket ship, bold outlines, flat colors, no background",
    "format": "png",
    "transparent_background": true,
    "quality": "low",
    "return_binary": 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.

<Tip>
  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.
</Tip>

## É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.

```python theme={"system"}
from PIL import Image

im = Image.open("sticker.png")
print(im.format, im.mode, im.size)  # PNG RGBA (1024, 1024)

alpha = im.getchannel("A")
hist = alpha.histogram()
total = sum(hist)
print(f"fully transparent: {100 * hist[0] / total:.1f}%")
print(f"partially transparent: {100 * sum(hist[1:255]) / total:.1f}%")
print("subject bbox:", alpha.getbbox())
```

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é.

<Frame as="div" caption="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.">
  <img src="https://mintcdn.com/veniceai/W3Pe6eTTsq9YXpsg/images/guides/transparent-backgrounds/alpha-channel.webp?fit=max&auto=format&n=W3Pe6eTTsq9YXpsg&q=85&s=e58c7a0a0d4e6aebb06a0341871731c5" alt="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" width="1776" height="607" data-path="images/guides/transparent-backgrounds/alpha-channel.webp" />
</Frame>

<Note>
  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`.
</Note>

## É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`.

```python theme={"system"}
import base64
from openai import OpenAI

client = OpenAI(
    base_url="https://api.venice.ai/api/v1",
    api_key=VENICE_API_KEY,
)

result = client.images.generate(
    model="gpt-image-2-5-flare",
    prompt="A flat vector icon of a paper airplane, isolated, no background",
    output_format="webp",
    background="transparent",
    quality="low",
)

with open("icon.webp", "wb") as f:
    f.write(base64.b64decode(result.data[0].b64_json))
```

`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.

## É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.

```bash theme={"system"}
curl https://api.venice.ai/api/v1/image/edit \
  -H "Authorization: Bearer $VENICE_API_KEY" \
  -F "model=gpt-image-2-5-flare-edit" \
  -F "prompt=Make the apple green and remove the background" \
  -F "image=@apple.jpg" \
  -F "transparent_background=true" \
  -o apple-green.png
```

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.

La forme multi-edit est identique, avec `images[]` au lieu de `image`. 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, qui pour GPT Image 2.5 dépend de `resolution` et de `quality`. Une génération `1K` `low` sur `gpt-image-2-5-flare` est le moyen le moins coûteux d'itérer sur un sticker ou une icône avant de payer pour `high` ou `4K`. Voir [Modèles d'image](/fr/models/image) pour le tableau des prix à jour.

## Erreurs

La validation s'exécute avant l'appel au modèle. Les deux messages indiquent la correction à apporter.

| Requête | Statut | Corps |
| - | - | - |
| `transparent_background: true` avec `format` / `output_format` `jpeg` | `400` | `Transparent background requires png or webp output format.` |
| `transparent_background: true` sur un modèle sans le flag | `400` | `Transparent background is not supported by model 'flux-2-pro'. Use a model with "supportsTransparentBackground": true in its constraints (see GET /api/v1/models).` |
| `background: "transparent"` avec `output_format: "jpeg"` sur `/images/generations` | `400` | `Transparent background requires png or webp output format.` |

`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.

```bash theme={"system"}
curl -s "https://api.venice.ai/api/v1/models?type=image" \
  | jq -r '.data[] | select(.model_spec.constraints.supportsTransparentBackground == true) | .id'
```

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`

| | `transparent_background` | `/image/background-remove` |
| - | - | - |
| Entrée | Un prompt (et éventuellement une image source à éditer) | Une image opaque existante |
| Production de l'alpha | Le modèle compose avec la transparence dès le départ | Un modèle de segmentation masque le premier plan après coup |
| Ombres et reflets | Conservés, avec un alpha partiel, car le modèle les a rendus comme faisant partie du sujet | Supprimés avec l'arrière-plan, puisqu'ils ne font pas partie du premier plan |
| Choix du modèle | GPT Image 1.5 / 2.5 uniquement | Modèle interne fixe, pas de champ `model` |
| Coût | Prix normal de génération ou d'édition du modèle | Prix forfaitaire de suppression d'arrière-plan |

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.

<Frame as="div" caption="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.">
  <img src="https://mintcdn.com/veniceai/W3Pe6eTTsq9YXpsg/images/guides/transparent-backgrounds/backgrounds.webp?fit=max&auto=format&n=W3Pe6eTTsq9YXpsg&q=85&s=4488165c3b98220102c945be301c64e1" alt="Le même sticker de fusée cartoon composé sur une couleur unie sombre, un dégradé chaud et un damier" width="1356" height="413" data-path="images/guides/transparent-backgrounds/backgrounds.webp" />
</Frame>

## Pages liées

* [Génération d'images](/fr/guides/media/image-generation) pour le dimensionnement, les niveaux de qualité et la liste complète des paramètres de `/image/generate`
* [Édition d'images](/fr/guides/media/image-editing) pour `/image/edit`, `/image/multi-edit` et `/image/background-remove`
* [Modèles d'image](/fr/models/image) pour la tarification et les contraintes actuelles


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.