Passer au contenu principal
Cet article présentera une documentation sur l’intégration de l’API SeeDream Images Generation, 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, vous devez d’abord vous rendre sur la page correspondante de SeeDream Images Generation API pour demander le service correspondant. Une fois sur la page, cliquez sur le bouton « Acquire », comme indiqué dans l’image ci-dessous : 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 vous être connecté ou inscrit, vous serez automatiquement renvoyé à la page actuelle. Lors de la première demande, un quota gratuit sera offert, vous permettant d’utiliser cette API gratuitement.

Utilisation de base

Tout d’abord, comprenons 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 :

Nous pouvons voir ici que nous avons défini les en-têtes de la 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é d’API pour appeler l’API, que vous pouvez sélectionner directement après la demande.
De plus, nous avons défini 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-4.0.
  • image : les informations sur l’image d’entrée, prenant en charge l’URL ou le codage Base64. Parmi ceux-ci, doubao-seedream-4.5, doubao-seedream-4.0 prennent en charge l’entrée d’une ou plusieurs images, doubao-seededit-3.0-i2i prend uniquement en charge l’entrée d’une seule image, doubao-seededit-3.0-t2i 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, la forme ou l’utilisation de l’image en langage naturel dans le prompt, le modèle déterminera finalement la taille de l’image générée. Méthode 2 | Spécifiez les valeurs de pixels de largeur et de hauteur de l’image générée : valeur par défaut : 2048x2048, la valeur par défaut varie selon le modèle.
  • seed : la graine de nombre 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]. Seuls doubao-seedream-3.0-t2i, doubao-seededit-3.0-i2i prennent en charge ce paramètre.
  • sequential_image_generation : série d’images : un ensemble d’images associées générées en fonction de votre contenu d’entrée. Seuls doubao-seedream-4.5, doubao-seedream-4.0 prennent en charge ce paramètre, par défaut disabled.
  • stream : contrôle si le mode de sortie en continu est activé. Seuls doubao-seedream-4.5, doubao-seedream-4.0 prennent en charge ce paramètre, par défaut false.
  • guidance_scale : le degré de correspondance entre le résultat de sortie du modèle et le prompt, la liberté de génération de l’image, également appelée poids du texte ; plus la valeur est grande, plus la liberté du modèle est faible, et plus la corrélation avec le mot-clé d’entrée de l’utilisateur est forte. Plage de valeurs : [1, 10]. doubao-seedream-3.0-t2i valeur par défaut 2.5, doubao-seededit-3.0-i2i valeur par défaut 5.5, les autres ne sont pas pris 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 : si un filigrane doit être ajouté à l’image générée. Par défaut, c’est true.
  • callback_url : l’URL à laquelle les résultats doivent être rappelés.
Après avoir fait votre sélection, vous pouvez voir que le code correspondant a également été généré à droite, comme indiqué dans l’image ci-dessous :

Cliquez sur le bouton « Try » pour effectuer un test, comme indiqué ci-dessus, et nous avons obtenu le résultat suivant :
{
  "success": true,
  "task_id": "25027ba3-0430-4a1b-91c8-d2297f19ba73",
  "trace_id": "8043a9e9-692f-43b0-82f7-5890f798be38",
  "data": [
    {
      "prompt": "un chat siamois blanc",
      "size": "2048x2048",
      "image_url": "https://platform.cdn.acedata.cloud/seedream/3c060029-69b1-406f-a957-fcd55ddc9386.jpg"
    }
  ]
}
Le résultat de retour contient plusieurs champs, décrits 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 la 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-clé.
    • size : les pixels de l’image générée.
Nous pouvons voir que nous avons obtenu des informations d’image satisfaisantes, nous n’avons qu’à récupérer l’image SeeDream générée à partir de l’adresse du lien d’image dans data. De plus, si vous souhaitez générer le code d’intégration correspondant, vous pouvez le copier directement, par exemple, le code CURL est le suivant :
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-4-0-250828",
  "prompt": "un chat siamois blanc"
}'

Tâche d’édition 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, cette tâche prend actuellement en charge doubao-seedream-4.5, doubao-seedream-4.0 pour une ou plusieurs images, doubao-seededit-3.0-i2i prend uniquement en charge une seule image.
  • image : téléchargez l’image à éditer, une ou plusieurs.
Exemple de remplissage :

Code correspondant :
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 inchangées. Changez le matériau du vêtement de métal argenté à de l'eau complètement transparente (ou du verre). À travers le flux 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)
Cliquez sur exécuter, et vous verrez immédiatement un résultat, comme suit :
{
    "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 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 un effet d’édition de l’image originale, le résultat est similaire au texte 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, c’est pourquoi 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 ait 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, permettant ainsi de relier le résultat de la tâche par ID. Voyons comment procéder à travers un exemple. Cliquez sur exécuter, et vous constaterez que vous obtiendrez immédiatement un résultat, comme suit :
{
  "task_id": "c9aaffa2-b8ac-40ff-8468-43e77cb9ddde"
}
Le contenu est le suivant :
{
    "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 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 au texte ci-dessus, et ce champ permet de relier 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 requête, probablement en raison de paramètres manquants ou invalides.
  • 400 api_not_implemented : Mauvaise requête, 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

{
  "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 SeeDream Images Generation pour générer des images en saisissant des mots d’invite. 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.