# Génération d'images

> Générez et modifiez des images à partir d'invites textuelles avec tous les modèles d'image pris en charge.

- Canonical: https://tchavi.com/fr/docs/image-generation

---


<Endpoint method="POST" path="/v1/images/generations" />

Générez des images à partir d'invites textuelles avec tous les modèles d'image pris en charge — Nano Banana, Imagen, GPT Image, DALL·E et bien d'autres. Le même point d'accès gère également la modification d'images lorsque vous passez des images de référence (aliasé en `POST /v1/images/edits`).

## Corps de requête commun

Les champs ci-dessous sont partagés par tous les modèles d'image. Les options propres à chaque modèle — `size`, `aspect_ratio`, `resolution`, `quality`, `output_format`, `negative_prompt`, `seed`, `background`, etc. — dépendent de la famille. Ouvrez le modèle sur [Modèles](/fr/models) et basculez vers l'onglet **API** pour la référence complète des paramètres.

| Paramètre         | Type     | Requis | Description                                                                                                                                               |
| ----------------- | -------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `model`           | string   | Oui    | N'importe quel ID de modèle d'image — par ex. `nano-banana-pro`, `imagen-4`, `gpt-image-1`, `dall-e-3`.                                                   |
| `prompt`          | string   | Oui    | Description textuelle de l'image à générer.                                                                                                               |
| `n`               | integer  | Non    | Nombre d'images (1–4). Par défaut : 1                                                                                                                     |
| `response_format` | string   | Non    | `b64_json` (par défaut — base64 dans la réponse) ou `url` (URL hébergée). La prise en charge varie selon le modèle.                                       |
| `images`          | string[] | Non    | Images de référence encodées en base64 pour la modification. Le nombre maximal accepté dépend du modèle (par ex. 14 pour Nano Banana, 16 pour GPT Image). |
| `user`            | string   | Non    | Identifiant facultatif de l'utilisateur final pour la surveillance des abus.                                                                              |

## Exemple

Remplacez `model` par n'importe quel ID de modèle d'image — les paramètres au-delà de ceux présentés ci-dessous doivent correspondre à l'onglet API de ce modèle.

<CodeTabs>

```tchavi
import Tchavi from '@tchavi/sdk';

const client = new Tchavi({ apiKey: 'YOUR_API_KEY' });

const result = await client.images.generations.create({
  model: 'YOUR_MODEL_ID',
  prompt: 'Un perroquet coloré sur une branche, art numérique',
});

console.log(result.data[0].b64_json);
console.log('Crédits utilisés :', result.tchavi.credits_used);
```

```javascript
const response = await fetch('https://tchavi.com/api/v1/images/generations', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    Authorization: 'Bearer YOUR_API_KEY',
  },
  body: JSON.stringify({
    model: 'YOUR_MODEL_ID',
    prompt: 'Un perroquet coloré sur une branche, art numérique',
  }),
});

const data = await response.json();
// Décoder l'image base64
const imageData = data.data[0].b64_json;
console.log('Crédits utilisés :', data.tchavi.credits_used);
```

```python
import requests, base64

response = requests.post(
    "https://tchavi.com/api/v1/images/generations",
    headers={
        "Content-Type": "application/json",
        "Authorization": "Bearer YOUR_API_KEY",
    },
    json={
        "model": "YOUR_MODEL_ID",
        "prompt": "Un perroquet coloré sur une branche, art numérique",
    },
)

data = response.json()
image_bytes = base64.b64decode(data["data"][0]["b64_json"])
with open("image.png", "wb") as f:
    f.write(image_bytes)
```

```curl
curl -X POST https://tchavi.com/api/v1/images/generations \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "YOUR_MODEL_ID",
    "prompt": "Un perroquet coloré sur une branche, art numérique"
  }'
```

</CodeTabs>

La réponse contient les données de l'image encodées en base64 dans `data[0].b64_json`. Voici comment l'utiliser :

<CodeTabs>

```javascript
// Afficher l'image dans un navigateur
const img = document.createElement('img');
img.src = `data:image/png;base64,${data.data[0].b64_json}`;
document.body.appendChild(img);
```

```tchavi
// Enregistrer sur le disque avec Node.js
import { writeFileSync } from 'fs';
writeFileSync('image.png', Buffer.from(data.data[0].b64_json, 'base64'));
```

```python
# Enregistrer sur le disque avec Python
import base64
with open("image.png", "wb") as f:
    f.write(base64.b64decode(data["data"][0]["b64_json"]))
```

</CodeTabs>

