ByteDance Seedream
Modèles Seedream en vente : seedream-5.0-pro et seedream-5.0-lite. Ils sont servis par des canaux Volcengine (Doubao) et appelés via les mêmes points de terminaison images compatibles OpenAI que ceux décrits dans Format d’image OpenAI ; cette page couvre ce que l’adaptateur Volcengine modifie.
Les modèles Seedream ont image-generation dans supported_endpoint_types — voir Modèles pour lire ce champ.
Points de terminaison
Section intitulée « Points de terminaison »POST /v1/images/generationsPOST /v1/images/edits/v1/images/generations prend un corps JSON. La modification image à image utilise /v1/images/edits avec l’image source passée comme chaîne dans image ; RouteAPI transmet les deux vers le point de terminaison de génération d’images amont (Volcengine n’expose pas de point de terminaison de modification basé sur formulaire via ce canal).
Paramètres de requête
Section intitulée « Paramètres de requête »| Champ | Type | Requis | Description |
|---|---|---|---|
model | string | Oui | seedream-5.0-pro ou seedream-5.0-lite |
prompt | string | Oui | Description textuelle ou instruction de modification |
size | string | Non | Taille ou palier de sortie. Normalisé avant d’atteindre Volcengine (voir Normalisation des tailles) |
image | string | Non | Image source pour l’image à image, sous forme d’URL http(s) ou de chaîne data:image/...;base64,.... À envoyer dans un corps JSON |
watermark | boolean | Non | Faut-il appliquer un filigrane à la sortie ; un false explicite est transmis |
sequential_image_generation | string | Non | "auto" active la génération multi-images ; "disabled" la désactive |
sequential_image_generation_options | object | Non | Options de génération séquentielle ; {"max_images": <entier>} fixe le nombre |
layer_decomposition | boolean | Non | Découpe le résultat en calques. Activé, cela change aussi la façon dont la requête est facturée (voir Facturation) |
background | string | Non | Gestion du fond, par exemple "transparent" ou "opaque" |
tools | array | Non | Outils amont tels que [{"type": "web_search"}] |
optimize_prompt_options | object | Non | Optimisation du prompt, par exemple {"mode": "standard"} ou {"mode": "fast"} |
Ces champs font partie de la structure de requête d’image de la passerelle et sont transmis à Volcengine. Les champs facultatifs omis sont retirés du corps amont plutôt qu’envoyés à null. Les autres champs JSON inconnus sont abandonnés — activez le passthrough du corps de requête sur le canal si vous avez besoin d’un champ que la passerelle ne modélise pas.
Normalisation des tailles
Section intitulée « Normalisation des tailles »Le traitement de size dépend du modèle :
| Modèle | Traitement de size |
|---|---|
seedream-5.0-pro | Les tailles natives sont conservées telles quelles : 1K, 1.5K, des valeurs en pixels comme 1024x1024, et d’autres valeurs |
seedream-5.0-lite | Les tailles en pixels sont réécrites vers un palier 2K / 3K / 4K |
Pour les modèles réécrits, le grand côté décide du palier : il est divisé par 1024 puis arrondi à l’entier le plus proche (les .5 arrondissent au supérieur), puis borné entre 2K et 4K. Les paliers envoyés directement, comme 2K ou 3k, sont seulement bornés, et les valeurs non reconnues comme auto sont transmises pour que Volcengine les valide. Exemples pour seedream-5.0-lite :
size demandé | Envoyé en amont |
|---|---|
1024x1024 | 2K |
2048x2048 | 2K |
1536x1536 | 2K |
1440x2560 | 3K |
3840x2160 | 4K |
1K | 2K |
5K | 4K |
auto | auto |
Générer une image
Section intitulée « Générer une image »curl https://api.routeapi.ai/v1/images/generations \ -H "Authorization: Bearer $ROUTEAPI_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "seedream-5.0-pro", "prompt": "A misty mountain lake at sunrise, cinematic", "size": "2K" }'Génération séquentielle
Section intitulée « Génération séquentielle »curl https://api.routeapi.ai/v1/images/generations \ -H "Authorization: Bearer $ROUTEAPI_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "seedream-5.0-lite", "prompt": "A series of four postcards from the same coastal town, consistent style", "sequential_image_generation": "auto", "sequential_image_generation_options": { "max_images": 4 } }'Lorsque sequential_image_generation vaut "auto" sans max_images, l’estimation de coût initiale prévoit 15 images si le modèle a une tarification des sorties supplémentaires.
Modifier une image
Section intitulée « Modifier une image »Envoyez l’image source comme chaîne dans le corps JSON. La passerelle transmet la valeur image à Volcengine sans modification — une URL http(s) ou une chaîne data:image/...;base64,.... La normalisation des tailles ci-dessus s’applique aussi à la requête de modification.
curl https://api.routeapi.ai/v1/images/edits \ -H "Authorization: Bearer $ROUTEAPI_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "seedream-5.0-pro", "prompt": "Replace the background with a sunset beach, keep the subject unchanged", "image": "https://example.com/photo.png", "size": "2K" }'layer_decomposition: true demande à l’amont de découper le résultat en calques séparés ; background: "transparent" demande un fond transparent. Les deux sont transmis inchangés.
L’objet images de l’amont vous est transmis tel quel. Les champs que vous pouvez analyser sont :
{ "data": [ { "url": "https://example.com/generated.png", "size": "2048x2048" } ], "usage": { "input_images": 1, "generated_images": 1, "output_tokens": 4096, "total_tokens": 4096 }}- Lisez les images dans
data[].url. Chaque entrée peut indiquer lasizelivrée, qui peut différer du palier demandé. usage.input_imagesetusage.generated_imagesservent au règlement lorsque le modèle est facturé à l’image ;output_tokensalimente le règlement au token.
Facturation
Section intitulée « Facturation »Les modèles Seedream sont facturés à l’image lorsque le modèle est configuré ainsi. Si la page de détail du modèle affiche des paliers de taille, le palier est choisi à partir du nombre de pixels du size envoyé, avant la sélection du canal. Voir Tarification des modèles et la page de détail du modèle pour le prix applicable.
Deux points propres à Seedream :
- L’adaptateur réécrit
sizepourseedream-5.0-lite, donc l’image livrée peut tomber dans un palier différent de celui facturé. Pour éviter cette incohérence, les modèles facturés par palier de taille sont rejetés avec400lorsqu’ils sont routés vers un canal Volcengine — le mode passthrough est exempté car l’adaptateur ne réécrit alors pas le corps. layer_decomposition: truebascule la requête vers la configuration tarifaire de décomposition en calques, lorsque le modèle en a une. Les images de référence au-delà de la franchise et les sorties séquentielles sont aussi facturées ; la page de détail du modèle indique les valeurs applicables.
Erreurs et limites
Section intitulée « Erreurs et limites »| Statut | Signification | Cause typique |
|---|---|---|
| 400 | Requête invalide | model manquant, n supérieur à 128, × utilisé comme séparateur de taille dans un corps JSON, ou modèle facturé par palier de taille routé vers Volcengine |
| 401 | Échec d’authentification | Clé API manquante, invalide, expirée ou épuisée |
| 403 | Solde ou quota épuisé | insufficient_user_quota ou pre_consume_token_quota_failed |
| 429 | Limitation de débit | Réduisez la concurrence |
| 500 | Erreur de conversion ou interne | La requête n’a pas pu être convertie, ou l’amont n’a renvoyé aucune image |
Les erreurs amont comme un size non pris en charge ou un prompt rejeté reviennent avec le statut et le message de l’amont, suivis de l’ID de requête RouteAPI.
Étapes suivantes
Section intitulée « Étapes suivantes »- Format d’image OpenAI — l’enveloppe
/v1/imagespartagée et les modèles OpenAI. - Nano Banana — modèles d’image Gemini.
- Modèles — trouver les modèles d’image et confirmer la prise en charge de
image-generation. - Tarification des modèles — paliers de taille et facturation à l’image.