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

# GPT-Image-2.6 Génération d’images

> Générez et modifiez des images de manière asynchrone avec Flare et Sunburst : annotations, GIF animés et sortie SVG.

La génération, la retouche, les GIF et les SVG utilisent tous `POST /v1/images/generations`. Lisez `data[0].task_id` dans la réponse, puis consultez la tâche pour obtenir les URL des fichiers.

```bash cURL theme={null}
curl --request POST \
  --url https://api.apimart.ai/v1/images/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "model": "gpt-image-2.6-flare",
  "prompt": "A cozy reading nook by a rainy window, warm lamp light",
  "size": "1:1",
  "resolution": "1k",
  "quality": "medium",
  "n": 1
}'
```

```python Python theme={null}
import requests

response = requests.post(
    "https://api.apimart.ai/v1/images/generations",
    headers={"Authorization": "Bearer <token>"},
    json={
        "model": "gpt-image-2.6-flare",
        "prompt": "A cozy reading nook by a rainy window, warm lamp light",
        "size": "1:1",
        "resolution": "1k",
        "quality": "medium",
        "n": 1
    },
)
response.raise_for_status()
print(response.json()["data"][0]["task_id"])
```

```javascript JavaScript theme={null}
const response = await fetch("https://api.apimart.ai/v1/images/generations", {
  method: "POST",
  headers: {
    Authorization: "Bearer <token>",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "model": "gpt-image-2.6-flare",
    "prompt": "A cozy reading nook by a rainy window, warm lamp light",
    "size": "1:1",
    "resolution": "1k",
    "quality": "medium",
    "n": 1
  }),
});
if (!response.ok) throw new Error(await response.text());
const result = await response.json();
console.log(result.data[0].task_id);
```

```json 200 theme={null}
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01KXXXXXXXXXXXXXXX"
    }
  ]
}
```

## Authentification

**Authorization** `string` *required*

Utilisez un jeton Bearer, disponible sur la [page des clés API](https://apimart.ai/keys).

```text theme={null}
Authorization: Bearer YOUR_API_KEY
```

## Choix du modèle

| Modèle | Usage |
| - | - |
| `gpt-image-2.6-flare` | Privilégie la rapidité pour les itérations fréquentes ; choix recommandé par défaut. |
| `gpt-image-2.6-sunburst` | Privilégie les détails et la cohérence des retouches successives, surtout en qualité `medium` / `high`. |

Les tarifs par token et la consommation à paramètres identiques sont les mêmes. Choisissez selon vos besoins de rapidité et de détail.

## Paramètres de la requête

**model** `string` *required*

Nom du modèle : `gpt-image-2.6-flare` ou `gpt-image-2.6-sunburst`.

**prompt** `string` *required*

Instructions de génération ou de retouche, jusqu’à 32 000 caractères. Décrivez le sujet, la composition et les éléments à modifier ou à conserver.

**size** `string` (default: auto)

Les images fixes et SVG acceptent 15 ratios, des dimensions exactes comme `1600x1200`, ou `auto`. Avec `auto` explicite, le modèle amont choisit. En retouche, omettre ce champ détermine les dimensions à partir du ratio de la première image et de `resolution`. Les GIF suivent les règles distinctes ci-dessous.

**resolution** `string` (default: 1k)

`1k` / `2k` / `4k`, en minuscules. Détermine les pixels avec un `size` exprimé en ratio ; ignoré si des dimensions exactes sont fournies.

**quality** `string` (default: auto)

`low` / `medium` / `high` / `xhigh` / `max` / `auto`. Toute autre valeur renvoie HTTP 400 lors de la soumission. Si le champ est omis ou vaut `auto`, le modèle choisit automatiquement le niveau de qualité. Ce niveau peut varier et n’est pas fixé à `low`. Indiquez explicitement un niveau pour conserver un réglage fixe.

Si le champ est omis ou vaut `auto`, le montant du niveau `max` est réservé, puis la facturation finale est calculée selon le niveau réellement sélectionné.

**n** `integer` (default: 1)

Entier de `1` à `4` ; pour un GIF, nombre d’animations. SVG impose `1`. Une valeur explicite `0`, négative ou supérieure à `4` renvoie HTTP 400 au lieu d’être remplacée par la valeur par défaut.

**output\_format** `string` (default: png)

`png` / `jpeg` / `webp` / `gif` / `svg`. GIF et SVG acceptent uniquement la génération à partir de texte. Toute autre valeur renvoie HTTP 400 lors de la soumission.

**output\_compression** `integer`

Entier de `0` à `100`, uniquement pour `jpeg` / `webp`. Une valeur hors limites ou une association avec `png` / `gif` / `svg` renvoie HTTP 400 lors de la soumission.

**background** `string`

`transparent` / `opaque` / `auto` ; valeur amont par défaut si omis. `transparent` explicite exige `png` / `webp`. Le fond SVG est transparent par défaut : omettez ce champ pour SVG.

**moderation** `string` (default: low)

Niveau de modération : `auto` / `low`. Toute autre valeur renvoie HTTP 400 lors de la soumission.

**image\_urls** `string[]`

Jusqu’à 16 images de référence ; leur présence active la retouche. Utilisez des URL HTTP(S) publiques. Pour un fichier local, utilisez d’abord l’[API de téléversement d’images](https://docs.apimart.ai/fr/api-reference/uploads/images.md), puis transmettez la `url` obtenue.

**mask\_url** `string`

Masque de retouche locale, nécessitant `image_urls`. Utilisez un PNG avec canal alpha aux dimensions de la première image ; les zones entièrement transparentes sont à modifier. URL d’image ou Data URL PNG acceptée. Incompatible avec les annotations ; la conservation exacte des pixels hors masque n’est pas garantie.

**complexity** `string`

Intensité de planification : `low` / `medium` / `high`, valeur amont par défaut `high`, indépendante de `quality`. Utilisez `low` pour une retouche ciblée et `high` pour du texte dense, des mises en page ou relations complexes ; cela peut ralentir le traitement ou ajouter des modifications. Aucun frais distinct ; disponible uniquement sur 2.6.

**safety\_identifier** `string`

Identifiant stable facultatif de l’utilisateur final, jusqu’à 128 caractères ; un hachage du nom ou de l’adresse e-mail est recommandé. APIMart ne le transmet pas en amont par défaut, uniquement si le canal l’autorise. Il peut être omis.

## Dimensions des images fixes et SVG

Les dimensions exactes doivent être des multiples de 16 sur les deux axes, avec chaque côté au plus égal à 3840, un ratio grand côté/petit côté maximal de 3:1 et 655 360–8 294 400 pixels au total. Au-delà de 2560×1440, les résolutions sont expérimentales. Le tableau est identique à GPT-Image-2.5 ; ces limites ne s’appliquent pas directement à chaque image d’un GIF.

| `size` | `1k` | `2k` | `4k` |
| - | - | - | - |
| `1:1` | 1024×1024 | 2048×2048 | 2880×2880 |
| `3:2` | 1536×1024 | 2048×1360 | 3520×2336 |
| `2:3` | 1024×1536 | 1360×2048 | 2336×3520 |
| `4:3` | 1024×768 | 2048×1536 | 3312×2480 |
| `3:4` | 768×1024 | 1536×2048 | 2480×3312 |
| `5:4` | 1280×1024 | 2560×2048 | 3216×2576 |
| `4:5` | 1024×1280 | 2048×2560 | 2576×3216 |
| `16:9` | 1536×864 | 2048×1152 | 3840×2160 |
| `9:16` | 864×1536 | 1152×2048 | 2160×3840 |
| `2:1` | 2048×1024 | 2688×1344 | 3840×1920 |
| `1:2` | 1024×2048 | 1344×2688 | 1920×3840 |
| `21:9` | 2016×864 | 2688×1152 | 3840×1648 |
| `9:21` | 864×2016 | 1152×2688 | 1648×3840 |
| `3:1` | 1536×512 | 3072×1024 | 3840×1280 |
| `1:3` | 512×1536 | 1024×3072 | 1280×3840 |

## Retouche et masques

Cette requête retouche une zone de la première image. Omettez `mask_url` pour retoucher l’ensemble selon le prompt ; omettez `size` pour choisir les dimensions via le ratio de la première image et `resolution`. Remplacez les URL d’exemple par des fichiers accessibles.

```json theme={null}
{
  "model": "gpt-image-2.6-sunburst",
  "prompt": "Replace the fully transparent masked area with a gold ribbon. Preserve the product and the rest of the background.",
  "image_urls": [
    "https://example.com/product.png"
  ],
  "mask_url": "https://example.com/product-mask.png",
  "resolution": "2k",
  "quality": "high",
  "complexity": "low"
}
```

## Retouche guidée par annotations

Fournissez `markup_url` sous forme d’URL HTTPS ou de Data URL Base64. L’alias `markup` accepte une chaîne ou un objet `{"image_url":"..."}`. `file_id` n’est pas pris en charge.

* `image_urls` est obligatoire. Les annotations concernent la première image ; les suivantes servent de références.
* Utilisez un calque PNG transparent distinct, de dimensions identiques à la première image. Ne fusionnez pas les annotations avec l’original.
* La première image et le calque sont chacun limités à 16 777 216 pixels ; le fichier du calque à 50 MB.
* Ne combinez pas avec `mask_url`. Le calque ne consomme pas de tokens image, mais la requête peut entraîner des tokens texte supplémentaires.

```json theme={null}
{
  "model": "gpt-image-2.6-flare",
  "prompt": "Recolor the striped vase inside the red circle to solid cobalt blue ceramic. Keep everything else unchanged. Remove the red circle.",
  "image_urls": [
    "https://example.com/kitchen.webp"
  ],
  "markup_url": "https://example.com/vase-circle-overlay.png",
  "quality": "medium"
}
```

## GIF animés

Définissez `output_format: "gif"`. Génération depuis du texte uniquement : ne transmettez pas `image_urls`, `mask_url`, `markup_url`, `markup` ni `output_compression`.

| Paramètre | Défaut | Description |
| - | - | - |
| `frame_count` | `9` | Entier **2–16**. APIMart impose actuellement 16 images au maximum, et non les 64 du guide amont. |
| `frame_duration_ms` | `200` | Durée par image en millisecondes entières, au moins 20, arrondie par pas de 10 ms. |
| `size` | `auto` | Dimensions en pixels de **chaque image**, multiples de 16 sur les deux axes. Omission ou `auto` donne actuellement 512×512. Les ratios tels que `1:1` sont interdits. |

Le modèle amont assemble les images sur une planche : 4×2 pour 2–8 images, 3×3 pour 9, 4×3 pour 10–12 et 4×4 pour 13–16. Lignes et colonnes peuvent être inversées pour se rapprocher d’un carré. La planche entière doit respecter un côté maximal de 3840, au plus 8 294 400 pixels et un ratio maximal de 3:1 ; sinon la soumission renvoie 400.

> [!WARNING]
>
> `512x512` accepte toutes les valeurs de 2 à 16 images ; `768x768` en accepte au plus 12. Même 2 images en `1024x1024` dépassent la longueur maximale de la planche. Chaque animation est facturée sur la planche entière ; `n > 1` génère et facture plusieurs animations.

```json theme={null}
{
  "model": "gpt-image-2.6-sunburst",
  "prompt": "A paper lantern swaying gently in the night breeze, seamless loop",
  "output_format": "gif",
  "frame_count": 9,
  "frame_duration_ms": 200,
  "quality": "low"
}
```

## Sortie SVG

**svg** `object`

Définissez `output_format: "svg"`. Le modèle d’image génère une référence, puis le modèle de texte désigné par `svg.model` rédige le SVG.

**svg**

**model** `string` *required*

Obligatoire. Choisissez un modèle disposant de tarifs par token texte sur la plateforme, comme `gpt-5.4-mini` ou `gpt-5.6-sol`.

**reasoning** `object`

**reasoning**

**effort** `string`

Facultatif : `none` / `minimal` / `low` / `medium` / `high` / `xhigh` / `max`. Les valeurs disponibles dépendent du modèle de texte. Il est conseillé d’omettre ce champ pour utiliser sa valeur par défaut.

* Génération depuis du texte uniquement, avec `n` égal à 1. Aucune référence, aucun masque, aucune annotation ni `output_compression`.
* `quality` et `complexity` s’appliquent à l’image de référence intermédiaire. Le résultat est un `.svg` statique sans scripts, ressources externes ni images matricielles intégrées.
* L’usage texte de `svg.model` est facturé en plus de la génération d’image. Les comptes sous contrat à prix fixe par image ne prennent pas encore en charge SVG ; la soumission renvoie 400.

```json theme={null}
{
  "model": "gpt-image-2.6-flare",
  "prompt": "A minimalist bakery logo with a wheat stalk, flat colors",
  "output_format": "svg",
  "svg": {
    "model": "gpt-5.4-mini"
  },
  "size": "1:1",
  "quality": "low",
  "n": 1
}
```

## Consulter le résultat

Interrogez l’[API de statut des tâches](https://docs.apimart.ai/fr/api-reference/tasks/status.md) toutes les 2–5 secondes jusqu’à `completed` ou `failed`. Ne soumettez pas une nouvelle génération pendant l’attente.

```bash theme={null}
curl --request GET \
  --url https://api.apimart.ai/v1/tasks/task_01KXXXXXXXXXXXXXXX \
  --header 'Authorization: Bearer <token>'
```

À la fin, lisez les URL dans `data.result.images[].url[]` et téléchargez rapidement les fichiers. Seuls les principaux champs sont présentés ci-dessous. En cas de `failed`, consultez `data.error.message`. `POST /v1/tasks/batch` permet de consulter plusieurs tâches.

```json theme={null}
{
  "code": 200,
  "data": {
    "id": "task_01KXXXXXXXXXXXXXXX",
    "status": "completed",
    "progress": 100,
    "result": {
      "images": [
        {
          "url": [
            "https://upload.apimart.ai/f/image/example.png"
          ]
        }
      ]
    }
  }
}
```

### Consommation SVG et exemple de réponse

Dans la réponse de consultation d’une tâche, `data.usage.svg_usage` décrit la consommation du modèle de texte qui rédige le SVG. Les autres champs de tokens dans `data.usage` concernent le modèle d’image qui génère la référence. Comptabilisez chaque partie selon les règles de facturation du modèle correspondant.

| Champ | Type | Description |
| - | - | - |
| `model` | string | Modèle de texte effectivement utilisé pour rédiger le SVG. |
| `input_tokens` | integer | Tokens d’entrée du modèle de texte. |
| `output_tokens` | integer | Tokens de sortie du modèle de texte, incluant les tokens de raisonnement. |
| `reasoning_tokens` | integer | Part des tokens de sortie consacrée au raisonnement ; ne pas l’ajouter une seconde fois à `output_tokens`. |

L’exemple présente les principaux champs d’une réponse de tâche SVG. Les nombres de tokens illustrent les relations entre champs et ne représentent pas une consommation fixe.

```json theme={null}
{
  "code": 200,
  "data": {
    "id": "task_01KXXXXXXXXXXXXXXX",
    "status": "completed",
    "progress": 100,
    "result": {
      "images": [
        {
          "url": [
            "https://upload.apimart.ai/f/image/example.svg"
          ]
        }
      ]
    },
    "usage": {
      "input_tokens": 40,
      "output_tokens": 1800,
      "total_tokens": 1840,
      "svg_usage": {
        "model": "gpt-5.4-mini",
        "input_tokens": 1200,
        "output_tokens": 800,
        "reasoning_tokens": 200
      }
    }
  }
}
```

## Erreurs de paramètres courantes

Les erreurs de validation ci-dessous renvoient HTTP 400 de façon synchrone lors de la soumission. Aucune tâche n’est créée et aucun frais n’est facturé. Corrigez les paramètres avant de soumettre à nouveau.

| Erreur | Solution |
| - | - |
| `quality "ultra" is not supported by gpt-image-2.6-flare` | Utilisez `low` / `medium` / `high` / `xhigh` / `max` / `auto` ; les autres valeurs comme `ultra` ne sont pas prises en charge. |
| `` `n` must be an integer from 1 to 4 `` | Définissez `n` comme entier de 1 à 4 ; `0`, les valeurs négatives et celles supérieures à 4 sont invalides. |
| `output_compression must be an integer from 0 to 100` | Définissez `output_compression` comme entier de 0 à 100. |
| `output_compression is only supported with output_format jpeg or webp` | Utilisez la compression uniquement avec JPEG / WebP ; retirez le paramètre pour PNG / GIF / SVG. |
| `moderation "xxx" is not supported` | Définissez `moderation` sur `low` ou `auto`. |
| `markup requires image_urls` | Ajoutez `image_urls` et adaptez le calque à la première image. |
| `markup cannot be combined with mask` | Choisissez soit les annotations, soit un masque. |
| `frame_count must be an integer from 2 to 16` | Définissez `frame_count` comme entier de 2 à 16. |
| `no supported sheet fits N GIF frames at size WxH` | Réduisez la taille ou le nombre d’images ; n’utilisez pas de ratio nommé. |
| `output_format=svg requires svg.model` | Ajoutez un objet `svg` avec un modèle de texte pris en charge. |
| `output_format=svg requires n=1` | Utilisez `n: 1` pour SVG. |
| `background=transparent requires an alpha-capable output_format` | La transparence explicite exige PNG / WebP ; omettez ce champ pour SVG. |

## Paramètres non pris en charge et facturation

Ne transmettez pas `stream`, `partial_images`, `input_fidelity`, `prompt_rewriter` ni `response_format`. Cet endpoint renvoie des tâches asynchrones et des URL CDN, pas d’images partielles en streaming ni de réponses image Base64. `frame_count` / `frame_duration_ms` sont réservés aux GIF ; la configuration `svg` aux SVG.

Flare et Sunburst ont la même tarification. GPT-Image-2.6 consomme plus de tokens en `low` / `medium` que 2.5 ; ne réutilisez pas telles quelles les anciennes estimations. Les tarifs actuels figurent sur la [page des prix APIMart](https://apimart.ai/pricing) ou via `/api/pricing`. Aucun prix fixe n’est listé ici.

Consultez le [guide OpenAI de génération d’images](https://developers.openai.com/api/docs/guides/image-generation) pour les fonctionnalités amont. Pour APIMart, suivez les endpoints, réponses asynchrones et limites de cette page.


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