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 à Funny AI
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 14 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 Funny AI | 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 Funny AI 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. Pour une nouvelle scène, model et un prompt non vide ou au moins un média d’entrée sont requis ; les autres champs sont facultatifs. Pour un rendu final, envoyez uniquement model, draftTaskId et resolution: "1080p" (avec n: 1 et providerOptions.bytedance.output_format facultatifs). Les champs inconnus sont rejetés.
| Champ | Type | Contrat |
|---|---|---|
model | chaîne | Obligatoire : bytedance/seedance-2.5. |
draftTaskId | chaîne | Identifiant public de votre brouillon Seedance 2.5 terminé. Pour le rendu final, envoyez uniquement model, draftTaskId et resolution: "1080p" (avec n: 1 et providerOptions.bytedance.output_format facultatifs). |
prompt | chaîne | Instructions textuelles ; jusqu’à 20 000 caractères sur ce service. Une nouvelle scène nécessite un prompt ou un média d’entrée ; omettez ce champ lorsque vous utilisez draftTaskId. |
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), output_format (mp4 ou mov ; mp4 par défaut). 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.
-
Utilisez
draftTaskIdpour produire un rendu en 1080p à partir d’un brouillon terminé. Les options natives de tâche arbitraires ne sont pas acceptées.
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. Une fois terminé, utilisez son identifiant public de tâche pour un rendu final distinct en 1080p.
{
"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
}
}
}Produire un rendu du brouillon en 1080p
Envoyez ce corps à POST /v1/videos, en utilisant l’identifiant public task_… du brouillon terminé. Le brouillon doit appartenir à votre compte, utiliser le même modèle et le même canal, et avoir été créé il y a moins de 7 jours. Cette durée de validité native du brouillon est distincte de la durée de conservation des vidéos.
{
"model": "bytedance/seedance-2.5",
"draftTaskId": "task_YOUR_COMPLETED_DRAFT",
"resolution": "1080p"
}Ne renvoyez pas prompt, les médias, duration, aspectRatio, seed, generateAudio, fps, draft ou referenceAudio. Ces paramètres sont repris du brouillon. Vous pouvez définir providerOptions.bytedance.output_format pour la sortie finale. L’API renvoie un nouvel identifiant de tâche ; interrogez GET /v1/videos/{new_task_id} pour obtenir la vidéo finale et son URL Bunny.
Le rendu final est facturé séparément au tarif 1080p actuel, selon la catégorie tarifaire du brouillon d’origine avec ou sans vidéo de référence, et sur la base des tokens réellement consommés à l’achèvement. Le suivi ne relance pas la génération et n’entraîne pas de nouvelle facturation. Si l’envoi est incertain, ne le répétez pas automatiquement.
Sortie MOV
Définissez providerOptions.bytedance.output_format sur mov pour une sortie MOV ou sur mp4 pour une sortie MP4 (par défaut). Cette option de sortie fonctionne pour une nouvelle scène comme pour un rendu final à partir d’un brouillon.
{
"model": "bytedance/seedance-2.5",
"prompt": "A red ball on a plain table. Static camera.",
"resolution": "480p",
"duration": 4,
"providerOptions": {
"bytedance": {
"output_format": "mov"
}
}
}Une fois la tâche terminée, videos[0].url est l’URL Bunny signée du fichier .mov d’origine et videos[0].mediaType vaut video/quicktime. Le MOV n’est pas converti en MP4. La lecture dans le navigateur dépend de la prise en charge des codecs ; téléchargez le fichier si votre navigateur ne peut pas le lire. Les fichiers sont téléversés sur Bunny ; seules les références aux fichiers et les métadonnées des tâches sont stockées dans la base de données. Les médias d’entrée en Base64 ne sont pas acceptés.
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.