API vidéo Seedance relais officiel
Règles de résolution, durée, format d’image, médias de référence, bibliothèque de portraits virtuels, brouillons, dernière image, recherche web, annulation de tâche et édition ou prolongation vidéo pour Seedance 2.0 Mini, 2.0, 2.0 Fast et 2.5.
Cette page décrit l’appel des modèles vidéo Seedance relais officiel. Comme les autres modèles vidéo, ils se créent avec POST /v1/videos et s’interrogent avec GET /v1/videos/{id} ; l’authentification, le téléversement des médias, les états d’interrogation, le téléchargement des résultats et la gestion des erreurs sont décrits dans la spécification complète de l’API vidéo. Cette page ne présente que les champs et règles propres à ce groupe de modèles.
Mis à jour le 2026-10-13. Ces modèles relaient l’API officielle Seedance de Volcengine et forment un groupe distinct de Seedance édition officielle et de SD édition cloud : paramètres et capacités ne sont pas interchangeables. Ces modèles ne prennent pas en charge
callback_url: une requête avec uncallback_urlnon vide renvoie une erreur 400, sans création de tâche ni facturation (une chaîne vide est traitée comme absente) ; récupérez les résultats en interrogeantGET /v1/videos/{id}.
Modèles
Le tableau indique les ID model de ce groupe. Ils ne sont visibles que pour les clés API dont le groupe correspondant est activé ; sinon, GET /v1/models ne les renvoie pas.
| Modèle | ID de modèle | Résolution | Durée | Durée par défaut | Limites image / vidéo / audio |
|---|---|---|---|---|---|
| Seedance 2.0 Mini (multirésolution) | doubao-seedance-2.0-mini | 480P / 720P | -1 ou 4–15 s | 5 s | 9 / 3 / 3 |
| Seedance 2.0 (multirésolution) | doubao-seedance-2.0 | 480P / 720P / 1080P / 4K | -1 ou 4–15 s | 5 s | 9 / 3 / 3 |
| Seedance 2.0 Fast (multirésolution) | doubao-seedance-2.0-fast | 480P / 720P | -1 ou 4–15 s | 5 s | 9 / 3 / 3 |
| Seedance 2.5 (multirésolution) | doubao-seedance-2.5 | 480P / 720P / 1080P | -1 ou 4–30 s | -1 (automatique) | 30 / 10 / 10 |
Les anciens ID de modèle doubao-seedance-2-0-mini-260615, doubao-seedance-2-0-260128, doubao-seedance-2-0-fast-260128 et doubao-seedance-2-5-260628 restent utilisables et sont strictement identiques aux modèles de même nom du tableau ; ils ne sont plus affichés dans la galerie des modèles, utilisez donc les ID du tableau pour toute nouvelle intégration.
Règles communes
- Résolution :
resolutionchoisit la résolution de sortie parmi les valeurs du tableau ci-dessus (insensible à la casse, par exemple720pou4k) ; valeur par défaut720p. - Durée : nombre entier de secondes dans
duration(ouseconds) ;-1laisse le modèle choisir la durée. - Format d’image :
ratio(ouaspect_ratio) accepte16:9,4:3,1:1,3:4,9:16,21:9etadaptive; valeur par défautadaptive(adapté aux médias d’entrée).sizeaccepte aussi un format d’image ou un niveau de résolution (par exemple16:9ou1080p) ; une valeur en conflit avecratio,aspect_ratioouresolutionrenvoie 400. - Prompt :
promptpeut être omis en présence de médias de référence ou d’images de début et de fin ; une requête sans aucun des deux renvoie 400. - Génération audio : passez
generate_audio(booléen) àfalsepour désactiver l’audio ; par défaut, la vidéo comporte de l’audio. - Champs facultatifs :
watermark(booléen ; avectrue, un filigrane « AI 生成 » (généré par IA) est ajouté en bas à droite ; aucun filigrane par défaut),priority(entier de 0 à 9, priorité dans la file d’attente),return_last_frame(booléen, voir Dernière image). - Champs non pris en charge :
seed,camera_fixed,framesetservice_tierrenvoient 400 ;draftn’est pris en charge que par Seedance 2.5, voir Brouillon et vidéo finale.
Facturation
Ces modèles sont facturés selon les tokens de sortie renvoyés par la plateforme du modèle une fois la tâche terminée, au tarif correspondant au couple « résolution × présence d’une vidéo de référence ». Rien n’est prélevé à la soumission : le journal d’utilisation affiche d’abord un enregistrement de soumission « 操作 … » (opération) d’un montant de 0, puis, une fois la tâche terminée, un enregistrement « 任务用量表达式结算 » (règlement selon l’expression d’usage de la tâche) qui débite l’usage réel.
Lorsque la durée est choisie par le modèle (duration à -1, ou durée non renseignée avec Seedance 2.5), le nombre de secondes de l’enregistrement de soumission est une estimation fondée sur la durée maximale et s’affiche sous la forme « seconds: 30(预估) » (estimation) ; le montant réellement débité est celui de l’enregistrement de règlement. Les tâches échouées ou annulées ne sont pas facturées.
Médias de référence
- Placez les images de référence dans
images, les vidéos de référence dansmetadata.referenceVideoset l’audio de référence dansmetadata.referenceAudios. - Les champs au singulier sont aussi acceptés :
imageetinput_referencecomme images de référence,videocomme vidéo de référence etaudiocomme audio de référence. Un même média envoyé dans plusieurs champs n’est compté qu’une fois. - Chaque élément peut être une chaîne d’URL ou un objet
{ "url": "...", "role": "..." }. - Les images acceptent des URL
https://publiques ou des Data URIdata:; l’audio accepte des URLhttps://publiques ou des Data URIdata:. - Les vidéos de référence n’acceptent que des URL
https://publiques : nihttp://, nidata:, ni Base64, ni fichier local. Pour une vidéo locale, obtenez d’abord une URL comme indiqué dans Téléverser un média local. Le lien doit être accessible sans connexion et rester valide jusqu’à la fin de la tâche. - La série 2.0 (Mini, 2.0, Fast) n’accepte pas l’audio de référence seul : ajoutez une image ou une vidéo de référence.
- Il est conseillé de limiter la durée cumulée des vidéos et celle des audios de référence à 15 secondes chacune pour la série 2.0, et à 30 secondes chacune pour 2.5 ; au-delà, la plateforme du modèle peut renvoyer un échec après la soumission.
- Vous pouvez aussi utiliser directement le format de tableau
contentde Volcengine Ark (éléments de contenutext,image_url,video_urletaudio_url; leroled’une image peut êtrefirst_frame,last_frameoureference_image), au niveau racine ou dansmetadata.
{
"model": "doubao-seedance-2.0",
"prompt": "La personne de l’image danse sur le rythme de l’audio de référence, avec le style de mouvement de la vidéo de référence",
"duration": 8,
"resolution": "1080p",
"ratio": "16:9",
"images": ["https://cdn.example.com/dancer.jpg"],
"metadata": {
"referenceVideos": ["https://cdn.example.com/dance-motion.mp4"],
"referenceAudios": ["https://cdn.example.com/music.mp3"]
}
}Bibliothèque de portraits virtuels (mode asset)
Par défaut, les médias de référence sont envoyés directement à l’API de génération pour vérification. Vous pouvez aussi d’abord les placer dans la bibliothèque de portraits virtuels et ne les utiliser pour la génération qu’une fois la vérification d’enregistrement réussie :
- Pour les images, définissez
"image_source_mode": "asset"; pour les vidéos de référence,"video_source_mode": "asset"(la vidéo doit toujours être une URLhttps://publique). Les deux champs peuvent être placés au niveau racine ou dansmetadata, et sont indépendants l’un de l’autre. - Les images locales envoyées avec
multipart/form-datasont automatiquement placées dans la bibliothèque de portraits virtuels et soumises en mode asset, sans autre réglage ; voir Téléversement de fichier. - La vérification d’enregistrement contrôle seulement que le média est utilisable ; ce n’est ni une vérification d’identité, ni une reconnaissance faciale, ni un contrôle du caractère vivant. Il n’existe pas encore de procédure d’enregistrement avec autorisation d’une personne réelle : une photo de personne réelle peut donc être refusée même en mode asset.
- Il n’existe pas pour l’instant de gestion indépendante des médias (téléversement séparé, liste des médias, ID de média) : chaque requête de génération doit inclure ses médias.
{
"model": "doubao-seedance-2.5",
"prompt": "La personne de l’image 1 porte le collier de l’image 2 et se retourne lentement dans un studio photo lumineux",
"duration": 6,
"resolution": "720p",
"ratio": "9:16",
"image_source_mode": "asset",
"images": [
{ "url": "https://cdn.example.com/model.png", "role": "reference_image" },
{ "url": "https://cdn.example.com/necklace.png", "role": "reference_image" }
]
}Plusieurs images de référence sont conservées dans l’ordre d’envoi ; indiquez dans le prompt ce que représentent « image 1 », « image 2 », etc., pour éviter de confondre personnes ou objets.
Images de début et de fin
Placez l’image de début et l’image de fin dans metadata.firstFrame et metadata.lastFrame ; elles comptent dans la limite d’images.
lastFramedoit être accompagné defirstFrame.- Les images de début et de fin ne peuvent pas être combinées avec des images, vidéos ou audios de référence.
- Avec des images de début et de fin, Seedance 2.5 (multirésolution) exige
ratioàadaptive(ou omis).
{
"model": "doubao-seedance-2.0-fast",
"prompt": "Transition fluide d’une place vide à l’aube vers le même cadrage la nuit, lumières allumées",
"duration": 5,
"resolution": "720p",
"metadata": {
"firstFrame": "https://cdn.example.com/start.jpg",
"lastFrame": "https://cdn.example.com/end.jpg"
}
}Édition et prolongation vidéo avec Seedance 2.5
Lorsque Seedance 2.5 (multirésolution) reçoit une vidéo de référence, omni_reference_task_type permet de choisir la tâche :
| Valeur | Signification | Conditions |
|---|---|---|
auto (par défaut) | Le modèle décide d’après les médias | La durée de sortie suit la vidéo d’entrée (duration est traité comme -1) |
reference | Génération à partir de références | — |
edit | Édition vidéo | Vidéo de référence obligatoire ; ratio à adaptive ; duration à -1 |
extend | Prolongation vidéo | Vidéo de référence obligatoire ; ratio à adaptive |
output_format permet en outre de choisir mp4 ou mov. Ces deux champs ne s’appliquent qu’à 2.5 ; la série 2.0 renvoie 400 s’ils sont envoyés.
{
"model": "doubao-seedance-2.5",
"prompt": "Transformer la scène de jour en nuit pluvieuse en conservant les mouvements de la personne",
"omni_reference_task_type": "edit",
"duration": -1,
"ratio": "adaptive",
"metadata": {
"referenceVideos": ["https://cdn.example.com/source.mp4"]
}
}Brouillon et vidéo finale (Seedance 2.5)
Seedance 2.5 (multirésolution) peut d’abord générer un brouillon 480p peu coûteux, puis, une fois le résultat validé, une vidéo finale 1080p à partir de ce brouillon. Les autres modèles ne prennent pas en charge les brouillons.
- Générer le brouillon : ajoutez
"draft": trueà la requête ; la sortie est fixée à 480p. Un brouillon ne peut pas définirreturn_last_frameen même temps. - Attendre la réussite du brouillon : interrogez
GET /v1/videos/{id}comme d’habitude et consultez le brouillon lorsque l’état passe àcompleted. - Générer la vidéo finale : ne placez qu’un seul
draft_taskdanscontent, avec pouridl’idde la tâche de brouillon (letask_…renvoyé à la création du brouillon). La vidéo finale est fixée à 1080p ; le prompt, les médias, la durée, le format d’image, l’audio, etc. sont hérités du brouillon. N’envoyez pas à nouveauprompt, les médias,duration,ratio,generate_audio,omni_reference_task_typenireturn_last_frame, sinon la requête renvoie 400.
{
"model": "doubao-seedance-2.5",
"content": [
{ "type": "draft_task", "draft_task": { "id": "task_REPLACE_WITH_YOUR_DRAFT_TASK_ID" } }
],
"watermark": false
}- Seules les tâches de brouillon créées par ce compte et terminées avec succès peuvent être utilisées ; générez la vidéo finale dans les 7 jours suivant la création du brouillon.
- Le brouillon et la vidéo finale sont deux tâches facturées séparément ; la vidéo finale est réglée au tarif 1080p et, si le brouillon comportait une vidéo de référence, la vidéo finale est également réglée au tarif avec vidéo de référence.
Dernière image
Définissez "return_last_frame": true dans la requête pour récupérer, une fois la tâche réussie, la dernière image de la vidéo, utile pour poursuivre le plan ou servir d’image de début à la vidéo suivante :
curl https://api.88api.ai/v1/tasks/task_xxx/artifacts \
-H "Authorization: Bearer sk-votre-cle-api"Dans les artifacts renvoyés, l’élément dont la key vaut last_frame est l’image de fin ; téléchargez-la via son content_url (avec la clé API, là aussi). La dernière image n’est pas renvoyée dans la réponse de GET /v1/videos/{id}. Le format de l’image est celui indiqué par le Content-Type du téléchargement ; ce n’est pas forcément du PNG.
Recherche web
La série Seedance 2.0 et 2.5 prennent en charge la recherche web via tools, utile pour les prompts qui nécessitent des informations en temps réel :
{
"model": "doubao-seedance-2.0",
"prompt": "En fonction de la météo d’aujourd’hui à Shanghai, générer une vidéo des rues du Bund",
"duration": 5,
"resolution": "720p",
"tools": [{ "type": "web_search" }]
}toolsn’accepte que{"type": "web_search"}.- Le modèle décide d’après le prompt s’il lance réellement une recherche ; un supplément n’est facturé, selon le nombre de recherches, que si une recherche a effectivement eu lieu (tarif indiqué dans les prix de la console). Sans recherche, aucun supplément.
Annuler une tâche
Une tâche peut être annulée tant qu’elle est en file d’attente et que la génération n’a pas commencé :
curl -X DELETE https://api.88api.ai/v1/videos/task_xxx \
-H "Authorization: Bearer sk-votre-cle-api"- En cas de succès, la réponse est
{"id": "task_xxx", "object": "video", "status": "cancelled", "cancelled": true}; la tâche apparaît ensuite comme échouée (motif « 任务已被用户取消 », annulée par l’utilisateur) et n’est pas facturée. - Une tâche dont la préparation ou la génération a commencé, ou qui est déjà terminée, ne peut pas être annulée : la réponse est 409
task_not_cancellable; continuez à interroger le résultat de la tâche. DELETE /v1/video/generations/{id}a le même effet.
ID de tâche officiel
Une fois la tâche acceptée par Volcengine Ark, GET /v1/videos/{id} renvoie official_task_id (par exemple cgt-20261012120000-abcde), et le journal des tâches de la console affiche aussi « 官方任务 ID » (ID de tâche officiel). Pour toute vérification d’un problème de génération, fournissez à la fois l’id de la tâche et l’ID de tâche officiel. Ce champ n’est pas renvoyé tant que la tâche est en file d’attente et n’a pas encore été acceptée.
Téléversement de fichier
Vous pouvez envoyer directement des images locales avec multipart/form-data, y compris plusieurs : répétez le même nom de champ (par exemple image) ; l’ordre d’envoi correspond à « image 1 », « image 2 ». Les images envoyées sont automatiquement placées dans la bibliothèque de portraits virtuels et soumises en mode asset.
curl https://api.88api.ai/v1/videos \
-H "Authorization: Bearer sk-votre-cle-api" \
-F model=doubao-seedance-2.5 \
-F "prompt=La personne de l’image 1 porte le collier de l’image 2 et se retourne lentement" \
-F duration=6 \
-F resolution=720p \
-F "image=@./model.png" \
-F "image=@./necklace.png"- Avec des fichiers locaux, n’envoyez pas en même temps des images dans
images,image,input_referenceoucontent. - Chaque fichier ne doit pas dépasser 64 Mo, et la requête entière 128 Mo.
- Les vidéos et audios locaux ne peuvent pas être envoyés directement avec
multipart/form-data: obtenez d’abord une URLhttps://comme indiqué dans Téléverser un média local, puis renseignez-la dans le champ de vidéo ou d’audio de référence ; l’audio de référence accepte aussi une Data URIdata:.
API vidéo SD édition cloud
Appel de SD2.0 et SD2.5 avec facturation selon la résolution, ainsi que les règles de durée, de format d’image, de médias de référence, d’images de début et de fin et d’audio.
API vidéo Google
Spécification d’appel de Veo 3.1, Veo 3.1 Fast, Gemini Omni Flash et Gemini Omni 1.1.