Passer au contenu principal
POST
Envoyez la requête à POST /v1/images/generations, conservez data[0].task_id, puis consultez GET /v1/tasks/{task_id}.

Modes

Authentification

string
requis
Utilisez Authorization: Bearer <token>, où <token> est votre APIMart API Key.

Paramètres de requête

string
requis
Utilisez seedream-5-5.
string
Obligatoire pour la génération depuis du texte ou des images. Facultatif pour la décomposition : le modèle identifie automatiquement sujets, texte et arrière-plan. Vous pouvez préciser les éléments à séparer.
string[]
Jusqu’à 10 références en génération ; exactement 1 image en décomposition. URL d’image publique ou Data URI Base64. Pour un fichier local, utilisez l’API de téléversement puis transmettez l’url reçue.Utilisez des URL http(s) accessibles publiquement ou data:image/<format>;base64,…, avec le nom du format en minuscules dans la Data URI.
  • Formats acceptés : JPEG, PNG, WebP, BMP, TIFF, GIF, HEIC et HEIF. AVIF et JP2 ne sont pas acceptés.
  • Par image : 30 MiB (31,457,280 octets) et 36 millions de pixels au total maximum. Vérifiez largeur × hauteur ; ce n’est pas une limite de 6000 pixels par côté.
  • Un dépassement de taille ou de pixels renvoie HTTP 400 immédiatement. AVIF et JP2 peuvent créer une tâche avant son rejet en amont ; les échecs sont remboursés. Convertissez ces formats avant l’envoi.
L’endpoint de téléversement a ses propres restrictions de format. Pour un format accepté par le modèle mais pas par cet endpoint, utilisez une URL publique ou une Data URI.
string
Génération : 2K par défaut, palier, ratio ou dimensions exactes. Décomposition : auto par défaut, uniquement 1K / 1.5K / 2K / auto.En génération d’images, size: "auto" équivaut à 2K. Un ratio sans resolution utilise aussi 2K. Pour des dimensions exactes, omettez resolution et utilisez des entiers positifs pour largeur et hauteur.
string
En génération, utilisez 1K / 1.5K / 2K avec un ratio dans size. En décomposition, c’est un alias fourni par la plateforme : size est prioritaire, resolution ne sert que si size est omis ; sans les deux, la valeur est auto. Valeurs admises : 1K / 1.5K / 2K / auto. Les ratios ou pixels sont rejetés de façon synchrone avec HTTP 400. Pas de 3K / 4K.
string
Génération : auto (défaut), transparent ou opaque. Le fond transparent est disponible depuis du texte ou des images. Il nécessite PNG et exclut output_format: "jpeg". En décomposition, omettez entièrement ce champ, y compris auto.
string
défaut:"png"
png (défaut) ou jpeg. En décomposition, concerne uniquement l’image de base ; les calques extraits sont toujours des PNG transparents.
integer
Uniquement 1. La génération produit une image par requête. Utilisez layer_decomposition_options.max_images pour le nombre d’images en décomposition.
boolean
défaut:"false"
Indicateur facultatif d’ajout d’un filigrane.
object
Seul {"mode":"standard"} est accepté. Omettre le paramètre active toujours standard par défaut chez le fournisseur ; l’optimisation ne peut pas être désactivée dans Seedream 5.5. Le fournisseur rejette disabled / none / off avec HTTP 400 et must be one of: standard. La plateforme rejette immédiatement fast avec HTTP 400.
boolean
true sépare l’entrée en image de base et calques transparents. Exige exactement une image et l’absence de background. output_format concerne uniquement la base.
object
Uniquement avec layer_decomposition: true, sinon HTTP 400.

Formats de taille

Ratios : 1:1, 4:3, 3:4, 16:9, 9:16, 3:2, 2:3, 21:9, 2:1, 1:2. Les limites portent sur la surface en pixels et le ratio. La décomposition accepte uniquement les paliers ou auto, pas les ratios ni les dimensions exactes.

Dimensions des sorties en décomposition

  • Priorité : size → resolution → auto. resolution est un alias de la plateforme ; seul size est transmis au fournisseur. size: "1K" avec resolution: "2K" applique 1K ; resolution: "1.5K" seul applique 1.5K.
  • Avec 1K / 1.5K / 2K, la base et chaque calque sont produits au palier choisi en conservant chacun son propre ratio. Une base mesurée en 1K faisait 840×1248, les calques étant aussi proches de 1,05 million de pixels chacun. Ce sont des exemples, pas des dimensions fixes.
  • auto utilise les dimensions d’origine : les entrées sous 1K sont agrandies à 1K, celles au-dessus de 2K sont réduites à 2K.

Exemples de requête

Édition et fusion de références

Décomposition et OCR

Cette requête produit au maximum 10 images, base comprise. prompt est facultatif ; omettez background. Remplacez l’URL par une image accessible.

Consulter une tâche

Utilisez l’API de statut toutes les 3 secondes pendant les 30 premières secondes, puis toutes les 5–10 secondes. La décomposition peut durer plusieurs minutes ; le serveur attend au maximum 13 minutes. Conservez task_id et interrogez jusqu’à un état final sans renvoyer la génération.
Dans data.status, pending / processing signifie en cours, completed signifie réussi. En cas de failed, lisez data.error.message ; les frais sont remboursés automatiquement. Les URL sont dans data.result.images[].url[].
Les images de résultat sont conservées 3 jours ; téléchargez-les rapidement. Les enregistrements des tâches sont également conservés 3 jours, après quoi ils ne peuvent plus être consultés par task_id.data.result.images[].expires_at renvoie actuellement un timestamp Unix en secondes égal à la fin de la tâche + 24 heures. Cette indication prudente précède la suppression réelle. Ne l’utilisez pas pour calculer la durée réelle de conservation ou un compte à rebours avant suppression.

Résultats des calques et OCR

Cet exemple illustre la structure, pas une exécution enregistrée. Dimensions, coordonnées et texte sont indicatifs. Les métadonnées peuvent être absentes.
Dans chaque objet data.result.images[], url, sizes, output_formats, backgrounds et layers correspondent par indice. Un tableau de métadonnées peut être omis si sa longueur diffère de celle de url. Coordonnées absolues : x=left, y=top, w=right-left, h=bottom-top. Pour un canevas de W × H, convertissez les coordonnées normalisées ainsi :
Les fichiers des calques sont dimensionnés séparément au palier choisi et peuvent différer de leur bounding_box. Pour composer, redimensionnez chaque calque à w × h puis placez-le en (x, y). N’utilisez pas directement les pixels du fichier comme coordonnées de la base.

Champs de reconnaissance de texte

text_recognition suit la structure OCR du modèle en amont. La plateforme transmet sans modification les champs tels que text, lines, runs et style. L’OCR et les polices facilitent l’affichage, la copie ou l’édition, sans garantir une correspondance exacte avec l’original. Les images restent utilisables sans OCR.

Facturation

Les images produites et les références d’entrée sont facturées séparément. Chaque référence est payante, y compris la première et l’unique entrée utilisée pour la décomposition.
  • Chaque sortie est classée selon ses pixels réels : jusqu’à 2,610,000 pixels inclus, palier bas ; au-delà, palier haut. 1K / 1.5K correspondent au palier bas, 2K au palier haut. Les dimensions exactes utilisent largeur × hauteur.
  • La génération réserve le prix du palier de sortie choisi plus nombre de références × prix d’entrée. Sans size ou avec auto, la réservation utilise 2K.
  • La décomposition réserve max_images × prix du palier de sortie plus une image d’entrée. max_images vaut 30 par défaut, fond inclus ; le résultat réel peut contenir moins d’images.
  • La décomposition utilise le size effectif, sinon resolution : 1K / 1.5K réservent au palier bas, 2K / auto au palier haut. Sans les deux, auto réserve au palier haut.
  • Le règlement dépend du nombre réel de sorties, du palier de pixels de chaque image et du nombre d’entrées, avec remboursement ou complément. Le fond et chaque calque comptent séparément ; n’appliquez pas uniformément le palier demandé à toutes les sorties. Les tâches échouées sont intégralement remboursées.
Voir les tarifs des modèles.

Erreurs de paramètres courantes

Cette liste couvre les validations de la plateforme et du fournisseur. Consultez error.message en cas d’échec à l’envoi et data.error.message pour une tâche asynchrone échouée.

Motifs d’échec des tâches

Si data.status vaut failed, consultez data.error.message et data.error.reason. Les frais sont remboursés automatiquement. Si reason est absent ou inconnu, utilisez message comme indication de secours.