Seedance 2.5
Référence API Seedance 2.5 : génération vidéo, images et références, exemples de requêtes, suivi des tâches, téléchargements et tarifs.
Seedance 2.5 accepte le texte, les images de début et de fin ainsi que les références image, vidéo et audio, avec des sorties en 480p, 720p, 1080p. Créez des vidéos jusqu’à 30 secondes par requête. Détails du modèle et espace d’essai.
Connexion à Wan API
Utilisez https://api.wanapi.app comme URL de base de l’API. Créez une clé pour la famille de modèles Seedance dans les paramètres des clés API et transmettez-la dans Authorization: Bearer YOUR_API_KEY. Conservez les clés sur votre serveur. L’espace d’essai utilise votre session sur le site et débite le même solde ; aucune clé ne doit être collée dans le navigateur.
L’accès nécessite un compte activé avec un solde suffisant. GET /v1/models répertorie les modèles accessibles à votre clé. Les modèles Seedance utilisent POST /v1/videos ; sélectionnez le modèle dans le corps JSON.
| Paramètre | Seedance 2.5 |
|---|---|
| Identifiant du modèle | bytedance/seedance-2.5 |
resolution | 480p, 720p, 1080p ; par défaut : 720p. |
duration | 4–30 secondes de sortie, ou -1 pour automatique ; par défaut : -1. |
aspectRatio | adaptive, 16:9, 4:3, 1:1, 3:4, 9:16, 21:9 ; par défaut : adaptive. |
generateAudio | true par défaut. false ne réduit pas le tarif par token. |
| Sortie | Une vidéo par requête, à 24 fps. |
Les champs de requête décrivent les 13 champs de premier niveau. Utilisez les noms indiqués ici, dont aspectRatio et generateAudio.
Envoyer une tâche Seedance 2.5
Voici une requête texte vers vidéo de quatre secondes en 720p. Définissez WAN_API_KEY avec votre clé Seedance sur le serveur. Envoyez une seule fois et conservez l’id reçu.
curl https://api.wanapi.app/v1/videos \
-H "Authorization: Bearer $WAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "bytedance/seedance-2.5",
"prompt": "A paper boat floats through a sunlit stream. Slow tracking shot.",
"resolution": "720p",
"aspectRatio": "16:9",
"duration": 4,
"generateAudio": true
}'Consulter une tâche Seedance 2.5
Enregistrez l’id reçu dans TASK_ID, puis consultez la tâche avec la même clé. L’envoi renvoie un accusé de réception de tâche ; la vidéo est disponible après achèvement. Commencez par une interrogation toutes les cinq secondes ; voir les états des tâches et téléchargements.
curl "https://api.wanapi.app/v1/videos/$TASK_ID" \
-H "Authorization: Bearer $WAN_API_KEY"Tarifs Seedance 2.5
Les tarifs sont en USD par million de tokens vidéo. Les tokens vidéo d’entrée et de sortie déterminent le coût final. La résolution, la durée et les vidéos de référence influent sur la consommation ; utilisez le tarif correspondant aux requêtes avec ou sans vidéo de référence. L’audio n’a pas de grille tarifaire distincte.
| Résolution | Vidéo de référence | Tarif officiel | Tarif Wan API | Vous économisez |
|---|---|---|---|---|
| 480p | Sans vidéo | 0,1028 $US | Indisponible | — |
| 480p | Avec vidéo | 0,0615 $US | Indisponible | — |
| 720p | Sans vidéo | 0,2311 $US | Indisponible | — |
| 720p | Avec vidéo | 0,1382 $US | Indisponible | — |
| 1080p | Sans vidéo | 0,5686 $US | Indisponible | — |
| 1080p | Avec vidéo | 0,3402 $US | Indisponible | — |
Les estimations sont basées sur une sortie en 16:9 à 24 fps. Les autres formats d’image et les dimensions réelles de sortie peuvent modifier le coût.
Sans vidéo de référence, seules les secondes de sortie comptent. Avec une vidéo de référence, les secondes d’entrée et de sortie comptent ; la durée d’entrée facturable est au minimum égale aux deux tiers de la durée de sortie, arrondis à la seconde entière supérieure.
Comparaison officielle : Tarifs internationaux à la demande BytePlus. Vérifié le 2026-10-15. Les prix Wan API se mettent à jour automatiquement.
Les tokens vidéo d’entrée et de sortie déterminent le coût final. Les requêtes échouées ne sont pas facturées.
Voir les tarifs et estimations Seedance 2.5. Vérifiez l’estimation dans l’espace d’essai avant l’envoi.
Champs de requête
Envoyez un objet JSON. model est obligatoire, accompagné d’un prompt non vide ou d’au moins un média d’entrée. Les autres champs sont facultatifs. Les champs inconnus sont rejetés.
| Champ | Type | Contrat |
|---|---|---|
model | chaîne | Obligatoire : bytedance/seedance-2.5. |
prompt | chaîne | Instructions textuelles ; jusqu’à 20 000 caractères sur ce service. Un prompt ou un média d’entrée est requis. |
image | URL ou objet URL | URL de l’image de début, ou objet avec type: "url", url et mediaType facultatif. Utilisez image ou frameImages, pas les deux. |
frameImages | tableau | Un first_frame et un last_frame facultatif. Chaque entrée contient frameType et image ; voir l’exemple d’images ci-dessous. |
inputReferences | tableau | Jusqu’à 30 images et 10 vidéos. Chaque entrée contient type: "url", url et mediaType. La forme d’URL data/mediaType est aussi acceptée. |
aspectRatio | chaîne | adaptive (par défaut), 16:9, 4:3, 1:1, 3:4, 9:16, 21:9. Les modes avec image de début nécessitent adaptive. |
resolution | chaîne | 480p, 720p, 1080p. Par défaut : 720p. Accepte aussi 854x480, 1280x720, 1920x1080 comme niveaux de résolution ; utilisez aspectRatio pour choisir le format. |
duration | entier | 4–30 secondes de sortie, ou -1 pour automatique. Par défaut : -1. |
fps | entier | Fixé à 24 ; omettez-le ou envoyez 24. |
seed | entier | Facultatif ; de -1 à 2147483647. Aucune reproductibilité garantie. N’indiquez pas aussi providerOptions.bytedance.seed. |
generateAudio | booléen | Générer l’audio. Par défaut : true ; le désactiver ne change pas le tarif par token. |
n | entier | Fixé à 1 ; une vidéo par requête. |
providerOptions | objet | Objet bytedance facultatif : referenceAudio (jusqu’à 10 URL HTTP(S)), seed (mêmes limites que le seed de premier niveau), draft (booléen ; false par défaut ; true nécessite 480p). Les options inconnues sont rejetées. |
Combinaisons d’entrées et limites des médias
-
Utilisez
imagepour une image de début, ouframeImagespour une image de début et une image de fin facultative. Une image de fin seule et les types d’image en double sont rejetés. -
Les images de début et de fin ne peuvent pas être combinées avec
inputReferencesouproviderOptions.bytedance.referenceAudio. -
Le mode référence accepte jusqu’à 30 images, 10 vidéos et 10 clips audio, avec un maximum de 50 références au total.
-
Les images de début et de fin nécessitent
aspectRatio: "adaptive". L’audio de référence peut être utilisé sans image ni vidéo. -
Les médias d’entrée doivent être des URL HTTP(S) publiques. Les données binaires téléversées et les URL contenant des identifiants ne sont pas acceptées.
-
Images : JPEG, PNG, WebP, BMP, TIFF ou GIF, HEIC ou HEIF ; moins de 30 MB ; 300–6000 pixels par côté ; format d’image 0.4–2.5.
-
Vidéos : MP4 ou MOV ; 200 MB maximum par fichier ; 2–30 secondes par clip et 30 secondes maximum au total ; 300–6000 pixels par côté, format d’image 0.4–2.5, 24–60 fps.
-
Audio : MP3 ou WAV ; 15 MB maximum par fichier ; 2–30 secondes par clip et 30 secondes maximum au total.
-
La taille, l’encodage et la durée des médias distants sont vérifiés pendant le traitement ; la validation de l’URL seule ne garantit pas qu’un fichier est exploitable.
-
Ce point d’accès ne propose ni rendu final à partir d’une tâche de brouillon antérieure ni options natives de tâche arbitraires.
Exemples d’images et de références
Envoyez ces corps au même point d’accès POST /v1/videos. Remplacez chaque URL example.com par votre propre URL de média directement accessible avant l’envoi. Gardez les URL d’entrée disponibles jusqu’à la fin de la tâche.
Images de début et de fin
Pour une seule image de début, utilisez image: "https://example.com/first-frame.jpg" et omettez frameImages. Pour définir les deux extrémités du clip, utilisez :
{
"model": "bytedance/seedance-2.5",
"prompt": "The camera slowly moves from the opening scene to the closing scene.",
"frameImages": [
{
"frameType": "first_frame",
"image": "https://example.com/first-frame.jpg"
},
{
"frameType": "last_frame",
"image": "https://example.com/last-frame.jpg"
}
],
"aspectRatio": "adaptive",
"resolution": "720p",
"duration": 4
}Références image, vidéo et audio
Placez les images et vidéos dans inputReferences, avec un type MIME explicite. Placez les URL audio dans providerOptions.bytedance.referenceAudio. N’ajoutez pas d’images de début ou de fin à cette requête.
{
"model": "bytedance/seedance-2.5",
"prompt": "Use the character from the image and the camera movement from the video.",
"inputReferences": [
{
"type": "url",
"url": "https://example.com/character.jpg",
"mediaType": "image/jpeg"
},
{
"type": "url",
"url": "https://example.com/motion.mp4",
"mediaType": "video/mp4"
}
],
"providerOptions": {
"bytedance": {
"referenceAudio": [
"https://example.com/sound.wav"
]
}
},
"resolution": "720p",
"duration": 4
}Aperçu en brouillon
Utilisez providerOptions.bytedance.draft: true avec resolution: "480p" pour créer un brouillon. Le brouillon utilise le tarif normal par token 480p. Ce point d’accès n’accepte pas une tâche de brouillon antérieure comme entrée d’un rendu final ; une nouvelle génération est une requête distincte.
{
"model": "bytedance/seedance-2.5",
"prompt": "A paper boat floats through a sunlit stream. Slow tracking shot.",
"resolution": "480p",
"aspectRatio": "16:9",
"duration": 4,
"generateAudio": true,
"providerOptions": {
"bytedance": {
"draft": true
}
}
}Suivre la tâche et télécharger la vidéo
Une tâche acceptée renvoie un objet comme celui-ci. Les identifiants et horodatages sont illustratifs :
{
"id": "task_EXAMPLE",
"object": "video",
"model": "bytedance/seedance-2.5",
"status": "queued",
"progress": 0,
"created_at": 1792022400
}Interrogez GET /v1/videos/{task_id} avec votre clé API. La réponse renvoie le même identifiant public de tâche et le même modèle. Utilisez status pour décider quand arrêter ; progress n’est pas une estimation du temps restant.
| État | Signification | Étape suivante |
|---|---|---|
queued | La tâche a été acceptée. | Continuez les interrogations. |
in_progress | La génération est en cours. | Continuez les interrogations. |
completed | La vidéo est prête. | Lisez videos[0].url et téléchargez. |
failed | La génération a échoué. | Arrêtez les interrogations et examinez error. |
Une réponse terminée comprend videos, un tableau d’objets contenant url et mediaType. Les horodatages utilisent les secondes Unix ; completed_at apparaît lorsque l’achèvement est enregistré.
{
"id": "task_EXAMPLE",
"object": "video",
"model": "bytedance/seedance-2.5",
"status": "completed",
"progress": 100,
"created_at": 1792022400,
"completed_at": 1792022460,
"videos": [
{
"url": "/v1/tasks/task_EXAMPLE/artifacts/video/content",
"mediaType": "video/mp4"
}
]
}Si l’URL renvoyée est relative, résolvez-la à partir de https://api.wanapi.app et authentifiez-vous avec votre clé API. Pour l’exemple ci-dessus :
curl "https://api.wanapi.app/v1/tasks/$TASK_ID/artifacts/video/content" \
-H "Authorization: Bearer $WAN_API_KEY" \
-o video.mp4Si une URL HTTPS signée de média est renvoyée, utilisez-la directement sans transmettre votre clé API à cet hôte. Les URL de résultat peuvent expirer. Enregistrez les vidéos à conserver dans votre propre stockage. Suivre une tâche et télécharger un résultat existant ne crée pas de nouvelle génération.
Une tâche échouée comprend un objet error avec code et message, par exemple :
{
"id": "task_EXAMPLE",
"object": "video",
"model": "bytedance/seedance-2.5",
"status": "failed",
"error": {
"code": "generation_failed",
"message": "Video generation failed"
}
}Facturation et gestion des échecs
Le coût final dépend de la consommation réelle de tokens vidéo et du tarif actuel du modèle. L’estimation de l’espace d’essai est un maximum estimé, pas un devis fixe. Les clips plus longs et les résolutions supérieures peuvent augmenter la consommation de tokens. Les requêtes échouées ne sont pas facturées.
- Paramètres invalides : corrigez les champs ou la combinaison d’entrées avant un nouvel envoi. Vérifiez les formats et limites des médias ainsi que la syntaxe des URL.
- Authentification ou accès au modèle : utilisez une clé Seedance valide et autorisée pour le modèle demandé.
- Solde insuffisant : ajoutez des fonds avant une nouvelle requête payante. Une limite de clé n’ajoute pas de crédit au compte.
- Échec temporaire du suivi : réessayez le GET avec un délai croissant et une durée d’attente maximale. L’échec d’une consultation ne signifie pas que la génération a échoué.
- Délai d’envoi dépassé ou identifiant de tâche manquant : le résultat peut être incertain. Ne répétez pas automatiquement le POST ; cela pourrait créer une seconde tâche payante.
- Échec du téléchargement : réessayez le résultat existant avant de lancer une nouvelle génération.
Conservez l’identifiant de tâche et contactez l’assistance si un envoi incertain nécessite une vérification.
Wan 3.0 Prime Pro
API Wan 3.0 Prime Pro : génération vidéo en 1080p, 2K et 4K, paramètres, exemples de requêtes, suivi des tâches, téléchargements et tarifs.
Seedance 2.0
Référence API Seedance 2.0 : génération vidéo, images et références, exemples de requêtes, suivi des tâches, téléchargements et tarifs.