88API88API
User GuideAI ApplicationsAPI ReferenceHelp & Support
Video

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 un callback_url non 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 interrogeant GET /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èleID de modèleRésolutionDuréeDurée par défautLimites image / vidéo / audio
Seedance 2.0 Mini (multirésolution)doubao-seedance-2.0-mini480P / 720P-1 ou 4–15 s5 s9 / 3 / 3
Seedance 2.0 (multirésolution)doubao-seedance-2.0480P / 720P / 1080P / 4K-1 ou 4–15 s5 s9 / 3 / 3
Seedance 2.0 Fast (multirésolution)doubao-seedance-2.0-fast480P / 720P-1 ou 4–15 s5 s9 / 3 / 3
Seedance 2.5 (multirésolution)doubao-seedance-2.5480P / 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 : resolution choisit la résolution de sortie parmi les valeurs du tableau ci-dessus (insensible à la casse, par exemple 720p ou 4k) ; valeur par défaut 720p.
  • Durée : nombre entier de secondes dans duration (ou seconds) ; -1 laisse le modèle choisir la durée.
  • Format d’image : ratio (ou aspect_ratio) accepte 16:9, 4:3, 1:1, 3:4, 9:16, 21:9 et adaptive ; valeur par défaut adaptive (adapté aux médias d’entrée). size accepte aussi un format d’image ou un niveau de résolution (par exemple 16:9 ou 1080p) ; une valeur en conflit avec ratio, aspect_ratio ou resolution renvoie 400.
  • Prompt : prompt peut ê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) à false pour désactiver l’audio ; par défaut, la vidéo comporte de l’audio.
  • Champs facultatifs : watermark (booléen ; avec true, 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, frames et service_tier renvoient 400 ; draft n’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 dans metadata.referenceVideos et l’audio de référence dans metadata.referenceAudios.
  • Les champs au singulier sont aussi acceptés : image et input_reference comme images de référence, video comme vidéo de référence et audio comme 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 URI data: ; l’audio accepte des URL https:// publiques ou des Data URI data:.
  • Les vidéos de référence n’acceptent que des URL https:// publiques : ni http://, ni data:, 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 content de Volcengine Ark (éléments de contenu text, image_url, video_url et audio_url ; le role d’une image peut être first_frame, last_frame ou reference_image), au niveau racine ou dans metadata.
{
  "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 URL https:// publique). Les deux champs peuvent être placés au niveau racine ou dans metadata, et sont indépendants l’un de l’autre.
  • Les images locales envoyées avec multipart/form-data sont 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.

  • lastFrame doit être accompagné de firstFrame.
  • 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 :

ValeurSignificationConditions
auto (par défaut)Le modèle décide d’après les médiasLa durée de sortie suit la vidéo d’entrée (duration est traité comme -1)
referenceGénération à partir de références—
editÉdition vidéoVidéo de référence obligatoire ; ratio à adaptive ; duration à -1
extendProlongation vidéoVidé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.

  1. Générer le brouillon : ajoutez "draft": true à la requête ; la sortie est fixée à 480p. Un brouillon ne peut pas définir return_last_frame en même temps.
  2. Attendre la réussite du brouillon : interrogez GET /v1/videos/{id} comme d’habitude et consultez le brouillon lorsque l’état passe à completed.
  3. Générer la vidéo finale : ne placez qu’un seul draft_task dans content, avec pour id l’id de la tâche de brouillon (le task_… 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 à nouveau prompt, les médias, duration, ratio, generate_audio, omni_reference_task_type ni return_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" }]
}
  • tools n’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_reference ou content.
  • 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 URL https:// 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 URI data:.