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

# Documentation de l'API de génération d'images SeeDream

> ByteDance Seedream Image Generation API guide - Ace Data Cloud

Cet article présentera une documentation sur l'intégration de l'API de génération d'images SeeDream, qui permet de générer des images officielles de SeeDream en entrant des paramètres personnalisés.

## Processus de demande

Pour utiliser l'API de génération d'images SeeDream, commencez par obtenir votre jeton API sur le [tableau de bord Ace Data Cloud](https://platform.acedata.cloud/console/applications) et conservez-le pour référence.

![](https://cdn.acedata.cloud/5hmkdg.jpg)

Si vous n'êtes pas encore connecté ou inscrit, vous serez automatiquement redirigé vers la page de connexion pour vous inviter à vous inscrire et à vous connecter, après quoi vous serez automatiquement renvoyé à la page actuelle.

**Un jeton API suffit pour appeler tous les services de la plateforme, sans avoir besoin de demander séparément pour chaque service.** La première demande vous donnera un quota gratuit pour une expérience sans frais ; si le quota est insuffisant, vous pouvez recharger le solde général sur le [tableau de bord](https://platform.acedata.cloud/console/coin).

> 📘 Documentation complète : [API de génération d'images SeeDream →](https://platform.acedata.cloud/documents/seedream-images)

## Utilisation de base

Tout d'abord, comprenez la méthode d'utilisation de base, qui consiste à entrer un mot-clé `prompt`, une action `action`, et une taille d'image `size`, pour obtenir le résultat traité. Vous devez d'abord transmettre un champ `action`, dont la valeur est `generate`, puis nous devons également entrer le mot-clé, dont le contenu est le suivant :

<p>
  <img src="https://cdn.acedata.cloud/seedream_request_body.png" width="500" className="m-auto" />
</p>

Ici, nous avons configuré les en-têtes de requête, y compris :

* `accept` : le format de réponse souhaité, ici rempli avec `application/json`, c'est-à-dire au format JSON.
* `authorization` : la clé pour appeler l'API, que vous pouvez sélectionner directement après la demande.

Nous avons également configuré le corps de la requête, y compris :

* `prompt` : le mot-clé.
* `model` : le modèle de génération, par défaut `doubao-seedream-5-0-260128` (SeeDream 5.0 Lite, le plus récent). Prend en charge `doubao-seedream-5-0-pro-260628`, `doubao-seedream-5-0-260128`, `doubao-seedream-4-5-251128`, `doubao-seedream-4-0-250828`, `doubao-seedream-3-0-t2i-250415`, `doubao-seededit-3-0-i2i-250628`. Parmi eux, `doubao-seedream-5-0-pro-260628` (SeeDream 5.0 Pro) est le modèle phare pour une seule image, ne générant qu'une seule image, **ne prend pas en charge la génération d'images séquentielles (`sequential_image_generation`), le streaming (`stream`) et la recherche en ligne (`tools`)**. **`model` doit être passé sous forme de chaîne de modèle complète (comme `doubao-seedream-5-0-260128`), passer `doubao-seedream-5.0-lite` ou d'autres abréviations renverra 400.**
* `image` : informations sur l'image d'entrée, prenant en charge l'URL ou le codage Base64. Parmi eux, `doubao-seedream-5-0-pro-260628` prend en charge l'entrée d'une ou plusieurs images (2 à 10 images, la facturation commence à partir de la 2ème image), `doubao-seedream-5-0-260128`, `doubao-seedream-4-5-251128`, `doubao-seedream-4-0-250828` prennent en charge l'entrée d'une ou plusieurs images, `doubao-seededit-3-0-i2i-250628` ne prend en charge que l'entrée d'une seule image, `doubao-seedream-3-0-t2i-250415` ne prend pas en charge ce paramètre.
* `size` : spécifie les informations de taille de l'image générée, prenant en charge les deux méthodes suivantes, qui ne peuvent pas être mélangées. Méthode 1 | Spécifiez la résolution de l'image générée et décrivez le rapport hauteur/largeur de l'image en langage naturel dans le prompt. **Les préréglages pris en charge varient selon les modèles** : `doubao-seedream-5-0-pro-260628` prend en charge `1K`/`2K` ; `doubao-seedream-5-0-260128` prend en charge `2K`/`3K`/`4K` ; `doubao-seedream-4-5-251128` prend uniquement en charge `2K`/`4K` ; `doubao-seedream-4-0-250828` prend en charge `1K`/`2K`/`4K` ; `doubao-seedream-3-0-t2i-250415` et `doubao-seededit-3-0-i2i-250628` **ne prennent pas en charge les préréglages**, acceptent uniquement la méthode 2. Méthode 2 | Spécifiez les valeurs de pixels de largeur et de hauteur de l'image générée : par défaut `2048x2048`, la plage de valeurs de pixels totaux et de rapport hauteur/largeur varie selon le modèle (par exemple, la plage de pixels totaux pour 5.0 Pro est \[921600, 4194304], la limite inférieure pour 5.0 Lite / 4.5 est de 3,686,400, la limite inférieure pour 4.0 est de 921,600, et pour 3.0-t2i / seededit-3.0-i2i, la plage est \[512x512, 2048x2048]).
* `seed` : graine aléatoire, utilisée pour contrôler la randomisation du contenu généré par le modèle. La plage de valeurs est \[-1, 2147483647]. **Seul `doubao-seedream-3-0-t2i-250415` prend en charge ce paramètre**.
* `sequential_image_generation` : images groupées : génère un ensemble d'images liées au contenu que vous avez entré. `doubao-seedream-5-0-260128`, `doubao-seedream-4-5-251128`, `doubao-seedream-4-0-250828` prennent en charge ce paramètre, par défaut `disabled`.
* `stream` : contrôle si le mode de sortie en streaming est activé. `doubao-seedream-5-0-260128`, `doubao-seedream-4-5-251128`, `doubao-seedream-4-0-250828` prennent en charge ce paramètre, par défaut `false`.
* `guidance_scale` : degré de correspondance entre le résultat du modèle et le prompt, plus la valeur est élevée, plus la corrélation est forte. Plage de valeurs \[1, 10]. `doubao-seedream-3-0-t2i-250415` a une valeur par défaut de 2.5, `doubao-seededit-3-0-i2i-250628` a une valeur par défaut de 5.5, les autres modèles ne prennent pas en charge.
* `response_format` : spécifie le format de retour de l'image générée. Par défaut, c'est `url`, mais prend également en charge `b64_json`.
* `watermark` : indique si un filigrane doit être ajouté à l'image générée. Par défaut, c'est `true`.
* `output_format` : spécifie le format de fichier de l'image générée, prenant en charge `jpeg` (par défaut) et `png`. Seuls `doubao-seedream-5-0-pro-260628` et `doubao-seedream-5-0-260128` prennent en charge.
* `tools` : configure les outils que le modèle doit appeler, actuellement prend en charge `web_search` (recherche en ligne). Seul `doubao-seedream-5-0-260128` prend en charge.
* `callback_url` : l'URL à laquelle les résultats doivent être rappelés.
* `async` : indique si le traitement doit être effectué en mode asynchrone. Si défini sur `true`, l'interface renvoie immédiatement `task_id`, sans avoir besoin de fournir `callback_url`, puis vous pouvez interroger les résultats via `/seedream/tasks`.

Après avoir fait votre choix, vous pouvez constater que le code correspondant a également été généré à droite, comme illustré ci-dessous :

<p>
  <img src="https://cdn.acedata.cloud/seedream_image.png" width="500" className="m-auto" />
</p>

Cliquez sur le bouton « Essayer » pour effectuer un test, comme indiqué ci-dessus, et nous avons obtenu le résultat suivant :

```json theme={null}
{
  "success": true,
  "task_id": "81246f86-05ff-4d7d-9553-1013e0c1cd32",
  "trace_id": "ab50a78d-ab1f-457f-a46b-c2259cd5d35b",
  "data": [
    {
      "prompt": "Une photo de produit en studio photoréaliste d'un flacon de parfum en verre dépoli sur un ardoise noire humide, lumière clé softbox unique, gouttes d'eau, fond sombre et moody, 85mm macro.",
      "size": "2048x2048",
      "image_url": "https://platform2.cdn.acedata.cloud/seedream/901c6af6-e83a-4849-b233-295f6c20bacb.jpg"
    }
  ]
}
```

Retour des résultats avec plusieurs champs, description comme suit :

* `success`, l'état de la tâche de génération de vidéo à ce moment.
* `task_id`, l'ID de la tâche de génération de vidéo à ce moment.
* `trace_id`, l'ID de suivi de génération de vidéo à ce moment.
* `data`, la liste des résultats de la tâche de génération d'images à ce moment.
  * `image_url`, le lien de la tâche de génération d'images à ce moment.
  * `prompt`, le mot d'invite.
  * `size`: la taille de l'image générée en pixels.

On peut voir que nous avons obtenu des informations d'image satisfaisantes, nous devons simplement obtenir l'image générée de SeeDream à partir de l'URL de l'image dans le résultat `data`.

De plus, si vous souhaitez générer le code correspondant, vous pouvez le copier directement, par exemple, le code CURL est comme suit :

```shell theme={null}
curl -X POST 'https://api.acedata.cloud/seedream/images' \
-H 'accept: application/json' \
-H 'authorization: Bearer ${token}' \
-H 'content-type: application/json' \
-d '{
  "action": "generate",
  "model": "doubao-seedream-5-0-260128",
  "prompt": "Une photo de produit en studio photoréaliste d'un flacon de parfum en verre dépoli sur un ardoise noire humide, lumière clé softbox unique, gouttes d'eau, fond sombre et moody, 85mm macro."
}'
```

## Édition de la tâche d'image

Si vous souhaitez éditer une image, le paramètre `image` doit d'abord contenir le lien de l'image à éditer.

* model : le modèle utilisé pour cette tâche d'édition d'image, `doubao-seedream-5-0-260128`, `doubao-seedream-4-5-251128`, `doubao-seedream-4-0-250828` prennent en charge l'entrée d'une ou plusieurs images, `doubao-seededit-3-0-i2i-250628` ne prend en charge qu'une seule image.
* image : téléchargez l'image à éditer, une ou plusieurs.

Exemple de remplissage :

<p>
  <img src="https://cdn.acedata.cloud/seedream_edit.png" width="500" className="m-auto" />
</p>

Code correspondant :

```python theme={null}
import requests

url = "https://api.acedata.cloud/flux/images"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "model": "doubao-seedream-4-0-250828",
  "prompt": "Conservez la pose du modèle et la forme fluide du vêtement liquide inchangées. Changez le matériau des vêtements de métal argenté à de l'eau complètement transparente (ou du verre). À travers l'écoulement du liquide, les détails de la peau du modèle sont visibles. L'effet de lumière et d'ombre passe de la réflexion à la réfraction.",
  "image": ["https://ark-project.tos-cn-beijing.volces.com/doc_image/seedream4_5_imageToimage.png"],
  "size": "2K",
  "watermark": False
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
```

En cliquant sur exécuter, vous pouvez voir que vous obtiendrez immédiatement un résultat, comme suit :

```json theme={null}
{
    "success": true,
    "task_id": "c9aaffa2-b8ac-40ff-8468-43e77cb9ddde",
    "trace_id": "131a40c3-2eaf-44c9-af28-c9b408577286",
    "data": [
        {
            "prompt": "Conservez la pose du modèle et la forme fluide du vêtement liquide inchangées. Changez le matériau des vêtements de métal argenté à de l'eau complètement transparente (ou du verre). À travers l'écoulement du liquide, les détails de la peau du modèle sont visibles. L'effet de lumière et d'ombre passe de la réflexion à la réfraction.",
            "size": "2048x2048",
            "image_url": "https://platform.cdn.acedata.cloud/seedream/3e88db7e-4771-4f6a-adbd-5ae4590c5d59.jpg"
        }
    ]
}
```

On peut voir que l'effet généré est l'effet d'édition de l'image d'origine, le résultat est similaire à celui ci-dessus.

## Rappel asynchrone

Étant donné que le temps de génération de l'API SeeDream Images Generation est relativement long, environ 1 à 2 minutes, si l'API ne répond pas pendant longtemps, la requête HTTP maintiendra la connexion, entraînant une consommation supplémentaire de ressources système, donc cette API propose également un support de rappel asynchrone.

Le processus global est le suivant : lorsque le client initie une demande, il spécifie un champ `callback_url` supplémentaire, après que le client a lancé la demande API, l'API renverra immédiatement un résultat, contenant un champ d'information `task_id`, représentant l'ID de la tâche actuelle. Lorsque la tâche est terminée, le résultat de l'image générée sera envoyé au `callback_url` spécifié par le client sous forme de POST JSON, qui inclut également le champ `task_id`, de sorte que le résultat de la tâche puisse être associé par ID.

Si vous n'avez pas d'adresse publique pour le rappel, vous pouvez également ne pas spécifier `callback_url`, mais définir le champ `async` sur `true` dans la demande. Dans ce cas, l'interface renverra également immédiatement `task_id`, mais ne poussera pas le résultat, vous devrez porter ce `task_id` pour appeler l'interface `/seedream/tasks` pour interroger l'état de la tâche afin d'obtenir le résultat final.

Voyons comment procéder avec un exemple.

En cliquant sur exécuter, vous pouvez voir que vous obtiendrez immédiatement un résultat, comme suit :

```
{
  "task_id": "c9aaffa2-b8ac-40ff-8468-43e77cb9ddde"
}
```

Le contenu est comme suit :

```json theme={null}
{
    "success": true,
    "task_id": "c9aaffa2-b8ac-40ff-8468-43e77cb9ddde",
    "trace_id": "131a40c3-2eaf-44c9-af28-c9b408577286",
    "data": [
        {
            "prompt": "Conservez la pose du modèle et la forme fluide du vêtement liquide inchangées. Changez le matériau des vêtements de métal argenté à de l'eau complètement transparente (ou du verre). À travers l'écoulement du liquide, les détails de la peau du modèle sont visibles. L'effet de lumière et d'ombre passe de la réflexion à la réfraction.",
            "size": "2048x2048",
            "image_url": "https://platform.cdn.acedata.cloud/seedream/3e88db7e-4771-4f6a-adbd-5ae4590c5d59.jpg"
        }
    ]
}
```

On peut voir qu'il y a un champ `task_id` dans le résultat, les autres champs sont similaires à ceux ci-dessus, et ce champ permet d'associer la tâche.

## Gestion des erreurs

Lors de l'appel de l'API, si une erreur se produit, l'API renverra le code d'erreur et les informations correspondantes. Par exemple :

* `400 token_mismatched` : Mauvaise demande, probablement en raison de paramètres manquants ou invalides.
* `400 api_not_implemented` : Mauvaise demande, probablement en raison de paramètres manquants ou invalides.
* `401 invalid_token` : Non autorisé, jeton d'autorisation invalide ou manquant.
* `429 too_many_requests` : Trop de demandes, vous avez dépassé la limite de taux.
* `500 api_error` : Erreur interne du serveur, quelque chose s'est mal passé sur le serveur.

### Exemple de réponse d'erreur

```json theme={null}
{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "échec de la récupération"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}
```

## Conclusion

Grâce à ce document, vous avez compris comment utiliser l'API de génération d'images SeeDream pour générer des images en saisissant des mots-clés. Nous espérons que ce document vous aidera à mieux intégrer et utiliser cette API. Si vous avez des questions, n'hésitez pas à contacter notre équipe de support technique.
