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

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

> Texte-image, retouche d’une image, composition avec jusqu’à 5 images de référence et recherche web. Versions haute qualité et Flash.

## Choix du modèle

| ID du modèle | Caractéristiques |
| - | - |
| `mai-image-2.6` | Version haute qualité pour les usages privilégiant le rendu |
| `mai-image-2.6-flash` | Version plus rapide et moins chère, avec une qualité légèrement inférieure |

Les deux modèles ont les mêmes capacités et paramètres et génèrent 1 image par requête. Consultez les [tarifs des modèles](https://gccai.heqingsong.uk/pricing) pour les prix applicables.

> [!NOTE]
>
> Cet endpoint est asynchrone. Après soumission, récupérez l’ID dans `data[0].task_id`, puis utilisez la [consultation des tâches](https://gccai.heqingsong.uk/fr/api-reference/tasks/status.md). Interrogez toutes les 3–5 secondes avec un délai d’attente global de 3 minutes. Arrêtez lorsque l’état est `completed` ou `failed`.

```bash cURL theme={null}
curl --request POST \
  --url https://gccai.heqingsong.uk/v1/images/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "mai-image-2.6",
    "prompt": "Affiche photoréaliste d’un campus universitaire au coucher du soleil, éclairage cinématographique",
    "size": "16:9",
    "resolution": "2K"
  }'
```

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

response = requests.post(
    "https://gccai.heqingsong.uk/v1/images/generations",
    headers={"Authorization": "Bearer <token>"},
    json={
        "model": "mai-image-2.6",
        "prompt": "Affiche photoréaliste d’un campus universitaire au coucher du soleil, éclairage cinématographique",
        "size": "16:9",
        "resolution": "2K"
    }
)
response.raise_for_status()
print(response.json())
```

```javascript JavaScript theme={null}
const response = await fetch("https://gccai.heqingsong.uk/v1/images/generations", {
  method: "POST",
  headers: {
    Authorization: "Bearer <token>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    model: "mai-image-2.6",
    prompt: "Affiche photoréaliste d’un campus universitaire au coucher du soleil, éclairage cinématographique",
    size: "16:9",
    resolution: "2K"
  })
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
```

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

## En-têtes de requête

**Authorization** `string` *required*

Authentification Bearer au format `Bearer <token>`, où `<token>` est votre GccAi API Key.

## Paramètres de requête

**model** `string` *required*

ID du modèle : `mai-image-2.6` ou `mai-image-2.6-flash`.

**prompt** `string` *required*

Description de l’image ou instructions de retouche. Chinois et anglais pris en charge, jusqu’à environ 32 000 tokens (pas des caractères).

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

Accepte un rapport d’aspect (`16:9`), des dimensions en pixels (`1536x1024`) ou `auto`.

* Rapport d’aspect : tout rapport d’entiers entre `1:4` et `4:1`, avec `resolution`.
* Pixels : formats `largeurxhauteur`, `largeur*hauteur` ou `largeur×hauteur`. Dans ce cas, `resolution` ne détermine pas les dimensions.
* `auto` : le modèle choisit le rapport d’aspect selon le prompt.

Uniquement pour le texte-image. Avec des images de référence, le modèle détermine les dimensions.

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

Accepte `1K` et `2K`, y compris en minuscules. Les autres niveaux, comme `4K`, renvoient HTTP 400.

Détermine le niveau de taille en texte-image avec un rapport d’aspect. N’intervient pas dans le calcul si les pixels sont spécifiés directement. Ne permet pas de définir les dimensions en image-image.

**width** `integer`

Largeur exacte en pixels, à fournir avec `height`. Cette paire prime sur `size` et `resolution` pour les dimensions en texte-image.

Largeur et hauteur doivent être au moins égales à 768, avec au maximum 2 359 296 pixels au total. Utilisez des multiples de 32 ; sinon chaque dimension est arrondie au multiple de 32 inférieur.

Ce paramètre ne détermine pas les dimensions en image-image.

**height** `integer`

Hauteur exacte en pixels, à fournir avec `width`, selon les contraintes ci-dessus. Ne détermine pas les dimensions en image-image.

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

Liste de références, jusqu’à 5 images. Omettez pour le texte-image ; fournissez une image pour la retouche, plusieurs pour une composition.

Chaque élément accepte une URL HTTP(S) d’image accessible publiquement ou une Data URL Base64 comme `data:image/png;base64,...`.

JPEG et PNG sont acceptés ; WEBP et GIF sont convertis automatiquement en PNG. Les URL doivent être accessibles publiquement, sinon la tâche échoue.

**En image-image, le modèle détermine les dimensions selon les références**, soit environ 1 million de pixels avec un rapport similaire. `size`, `resolution`, `width` et `height` ne permettent pas de fixer ces dimensions.

**auto\_aspect\_ratio** `boolean` (default: false)

Avec `true`, le modèle choisit le rapport selon le prompt, ce qui équivaut à `size: "auto"`.

**web\_grounding** `boolean` (default: false)

Avec `true`, recherche des informations en temps réel avant la génération, utile pour les personnes, lieux ou événements réels.

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

Seule la valeur `1` est acceptée. Soumettez des tâches séparées pour plusieurs images. Une valeur supérieure à 1 renvoie HTTP 400.

## Dimensions en texte-image

| Besoin | Paramètres |
| - | - |
| Carré par défaut | Omettre les paramètres de taille : `1:1` + `1K`, sortie 1024×1024 |
| Résolution + rapport d’aspect | `size: "16:9"`, `resolution: "2K"` |
| Pixels exacts | `size: "1536x1024"`, ou `width: 1536`, `height: 1024` |
| Rapport automatique | `size: "auto"` ou `auto_aspect_ratio: true` |

Priorité en texte-image : paire `width` / `height` → `size` en pixels → `size` en rapport d’aspect combiné à `resolution`.

### Niveaux et rapports d’aspect

| Rapport d’aspect | 1K | 2K |
| - | - | - |
| 1:1 | 1024×1024 | 1536×1536 |
| 4:3 / 3:4 | 1152×864 / 864×1152 | 1760×1312 / 1312×1760 |
| 3:2 / 2:3 | 1248×832 / 832×1248 | 1856×1248 / 1248×1856 |
| 16:9 / 9:16 | 1344×768 / 768×1344 | 2048×1152 / 1152×2048 |
| 2:1 / 1:2 | 1536×768 / 768×1536 | 2144×1056 / 1056×2144 |
| 21:9 / 9:21 | 1792×768 / 768×1792 | 2336×992 / 992×2336 |
| 4:1 / 1:4 | 3072×768 / 768×3072 | 3072×768 / 768×3072 |

Les dimensions sont converties en multiples de 32. Comme le petit côté doit atteindre 768, les rapports extrêmes peuvent dépasser environ 1 million de pixels même en `1K`. La facturation utilise les tokens correspondant aux pixels réellement produits.

### Contraintes des pixels exacts

* Largeur et hauteur : au moins 768 chacune.
* Largeur × hauteur : au maximum 2 359 296 (1536 × 1536).
* Chaque dimension est arrondie au multiple de 32 inférieur. Par exemple, `1000x1000` produit `992x992`. Utilisez des multiples de 32 pour des dimensions exactes.

`1536x1024`, `2048x1152` et `3072x768` sont acceptés. `512x512` est rejeté car les côtés sont trop petits ; `2048x2048` dépasse la limite totale de pixels.

> [!WARNING]
>
> La limite porte sur le **nombre total de pixels**, pas sur un maximum de 1536 par côté. `2048x1152` et `3072x768` sont donc valides, mais le niveau 4K n’est pas pris en charge. Ces réglages s’appliquent uniquement au texte-image.

## Exemples de requêtes

### Pixels exacts et recherche web

```json theme={null}
{
  "model": "mai-image-2.6-flash",
  "prompt": "La tour Eiffel de nuit avec des feux d’artifice, style affiche de voyage",
  "width": 2048,
  "height": 1152,
  "web_grounding": true
}
```

### Retouche d’une image

```json theme={null}
{
  "model": "mai-image-2.6",
  "prompt": "Rendez le vélo bleu et ajoutez un petit chien à côté",
  "image_urls": ["https://example.com/bicycle.png"]
}
```

### Composition de plusieurs images

```json theme={null}
{
  "model": "mai-image-2.6-flash",
  "prompt": "Combinez les deux images de référence en une photo de produit épurée et futuriste",
  "image_urls": [
    "https://example.com/first.png",
    "https://example.com/second.jpg"
  ]
}
```

Remplacez les URL d’exemple par des URL d’images accessibles.

## Paramètres non pris en charge

`quality`, `style`, `background`, `output_format`, `response_format` et `mask_url` ne sont pas pris en charge et sont ignorés. La sortie est toujours en PNG. La retouche par masque n’est pas prise en charge.

## Réponse de soumission

**code** `integer`

Code de statut de la réponse. `200` indique un succès.

**data** `array`

Résultat de la soumission.

**Afficher les champs de la tâche**

**status** `string`

`submitted` indique une soumission réussie, pas la fin de la génération.

**task\_id** `string`

ID de tâche pour consulter l’état et les résultats.

## Consulter les résultats

```bash theme={null}
curl --request GET \
  --url https://gccai.heqingsong.uk/v1/tasks/task_01K... \
  --header 'Authorization: Bearer <token>'
```

Exemple de réponse réussie (l’URL d’image est fictive) :

```json theme={null}
{
  "code": 200,
  "data": {
    "id": "task_01K...",
    "status": "completed",
    "progress": 100,
    "result": {
      "images": [
        {
          "url": ["https://example.com/generated-image.png"]
        }
      ]
    }
  }
}
```

| État | Action |
| - | - |
| `pending` | En attente ; continuer les interrogations |
| `processing` | En cours ; continuer les interrogations |
| `completed` | Succès ; récupérer les liens dans le tableau `data.result.images[0].url` |
| `failed` | Échec ; consulter `data.error.message` et arrêter les interrogations. Remboursement intégral |

## Facturation

Facturation selon les tokens d’entrée et de sortie réellement utilisés. Voir les [tarifs des modèles](https://gccai.heqingsong.uk/pricing).

* Tokens de sortie image = largeur réelle × hauteur ÷ 1024. 1024×1024 correspond à 1024 tokens, 1536×1536 à 2304 tokens.
* Les tokens d’entrée par référence correspondent approximativement à sa largeur × hauteur ÷ 1024. Les prompts textuels comptent aussi en entrée.
* Un montant selon le niveau est prélevé à la soumission, puis ajusté après succès à la consommation réelle par remboursement ou prélèvement complémentaire.
* Les tâches échouées sont automatiquement remboursées intégralement. Les erreurs de paramètres rejetées à la soumission ne créent aucune tâche et ne sont pas facturées.

## Erreurs courantes

| HTTP | Cause et action |
| - | - |
| 400 | `resolution` non prise en charge, comme `4K` ; utiliser `1K` ou `2K` |
| 400 | Largeur ou hauteur inférieure à 768, ou total supérieur à 2 359 296 pixels |
| 400 | Seul `width` ou `height` est fourni ; les deux sont requis ensemble |
| 400 | Rapport hors de la plage `1:4` à `4:1`, ou format `size` non reconnu |
| 400 | `n` supérieur à 1 ou plus de 5 références |

En cas d’échec, vérifiez les erreurs de téléchargement ou de sécurité du contenu, puis modifiez le prompt ou les références avant de réessayer. La retouche de photos réalistes impliquant des mineurs peut être bloquée par les règles de sécurité.


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