API Seedance 2.5 : clips de 30 secondes, tarifs et code
Seedance 2.5 est le modèle Seedance le plus récent du catalogue Revana. Il produit des clips pouvant durer jusqu'à 30 secondes à partir de texte, d'images ou de vidéo. Ce guide explique en quoi il diffère de Seedance 2.0, ce qu'il coûte et comment l'appeler.
Ce que Seedance 2.5 apporte par rapport à Seedance 2.0
Seedance 2.5 reprend le format de requête de la famille 2.0 et couvre les mêmes types de tâches : texte vers vidéo avec son, images de début et de fin, et images de référence. Les différences qui comptent quand on construit dessus sont d'ordre pratique, et toutes sont visibles dans le catalogue :
| Seedance 2.0 | Seedance 2.5 | |
|---|---|---|
| Tâches | texte vers vidéo, image vers vidéo, première et dernière images et images de référence | texte vers vidéo, image vers vidéo, première et dernière images, images de référence et vidéo vers vidéo |
| Durée du clip | 4 à 15 s | 4 à 30 s |
| Résolution | 480p, 720p, 1080p et 4K | 480p, 720p et 1080p |
| Images de référence | jusqu'à 9 | jusqu'à 30 |
| Format d'image | 16:9, 9:16, 1:1, 4:3, 3:4, 21:9 ou adaptatif | 16:9, 9:16, 1:1, 4:3, 3:4, 21:9 ou adaptatif |
| Prix à partir de | $0.08 / s | $0.11 / s |
| Routes | trois routes | cinq routes |
En résumé : Seedance 2.5 va jusqu'à 30 secondes en un seul clip contre 15 pour Seedance 2.0, accepte 30 images de référence au lieu de 9 et ajoute la vidéo vers vidéo. Seedance 2.0 reste le choix à faire si vous avez besoin d'une sortie en 4K. Pour des clips de 15 secondes ou moins, comparez les prix par seconde avant de choisir : en 720p, Seedance 2.0 est listé à $0.15 et Seedance 2.5 à $0.25.
Nous ne publions pas de scores de qualité pour l'un ou l'autre modèle. Le meilleur moyen de choisir est de passer trois ou quatre prompts tirés de votre propre produit dans les deux et de comparer.
Quand un clip de 30 secondes est utile
- Une seule prise continue. Une visite, une démo de produit ou une scène avec dialogue qui laisserait une coupure visible si vous aboutiez deux clips de 15 secondes.
- Des spots publicitaires complets. De nombreux formats de pub sur les réseaux sociaux durent de 15 à 30 secondes. Une seule génération peut couvrir tout le spot, avec le son conçu sur l'ensemble.
- Moins de raccords dans les longs montages. Même quand vous montez des clips bout à bout, des morceaux plus longs signifient moins d'endroits où un personnage ou la lumière peuvent dériver.
Si vos clips durent 15 secondes ou moins, vérifiez d'abord si Seedance 2.0 suffit : vous n'avez peut-être pas besoin de la limite plus longue.
Tarifs de Seedance 2.5 (octobre 2026)
Seedance 2.5 est facturé à la seconde de sortie, à partir de $0.11 la seconde en 480p. Le tableau indique le tarif listé et ce que coûte un clip de 10 secondes et de 30 secondes à chaque résolution. Pour les mêmes prix chez d'autres API, voir le comparatif de prix de Seedance 2.5.
| Résolution | Par seconde | Clip de 10 s | Clip de 30 s | Avec une vidéo en entrée |
|---|---|---|---|---|
| 480p | $0.11 | $1.10 | $3.30 | $0.06 / s |
| 720p | $0.25 | $2.50 | $7.50 | $0.15 / s |
| 1080p | $0.55 | $5.50 | $16.50 | $0.34 / s |
Le prix est le même avec ou sans son. Les tâches qui prennent une vidéo en entrée sont facturées au tarif plus bas avec vidéo en entrée, mais les secondes facturées incluent l'entrée : les secondes de sortie plus la durée du clip d'entrée. Un clip de 10 secondes en 720p créé à partir d'une vidéo source de 10 secondes est facturé comme 20 secondes, soit $3.00, contre $2.50 pour un clip de 10 secondes issu d'un prompt texte.
Le prix de chaque tâche est bloqué sur votre solde à l'envoi et n'est débité que si la tâche réussit. Une tâche en échec libère le montant bloqué : une tâche de 30 secondes qui échoue ne coûte donc rien. Le montant exact débité est renvoyé dans cost_usd ; les packs de crédits et le tableau complet sont sur la page des tarifs.
Générer une vidéo Seedance 2.5
Envoyez POST /v1/generations avec l'identifiant de modèle seedance-2.5. La réponse est un 202 avec un id de génération ; interrogez-le jusqu'à ce que le statut soit succeeded ou failed. Ce clip de 10 secondes en 720p avec son coûte $2.50.
export REVANA_API_KEY="sr_live_..."
# 1. Submit the job (returns 202 with the generation id)
curl https://api.revana.si/v1/generations \
-H "Authorization: Bearer $REVANA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.5",
"input": {
"prompt": "A street food vendor in a night market prepares noodles, wok flames rising. Shot 1: wide shot of the busy stall. Shot 2: close-up of noodles tossed in the wok. Shot 3: a customer takes the first bite and smiles. Sizzling wok, crowd chatter, distant music.",
"resolution": "720p",
"duration": 10,
"aspect_ratio": "16:9",
"audio": true
},
"max_cost_usd": 3
}'
# 2. Poll with the id from step 1 until status is "succeeded" or "failed"
curl https://api.revana.si/v1/generations/gen_01JBX7Q2M4 \
-H "Authorization: Bearer $REVANA_API_KEY"import os
import time
import requests
API = "https://api.revana.si/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['REVANA_API_KEY']}"}
resp = requests.post(f"{API}/generations", headers=HEADERS, json={
"model": "seedance-2.5",
"input": {
"prompt": "A street food vendor in a night market prepares noodles, wok flames rising. Shot 1: wide shot of the busy stall. Shot 2: close-up of noodles tossed in the wok. Shot 3: a customer takes the first bite and smiles. Sizzling wok, crowd chatter, distant music.",
"resolution": "720p",
"duration": 10,
"aspect_ratio": "16:9",
"audio": True,
},
"max_cost_usd": 3,
})
resp.raise_for_status()
job = resp.json()
while job["status"] in ("queued", "running"):
time.sleep(5)
job = requests.get(f"{API}/generations/{job['id']}", headers=HEADERS).json()
if job["status"] == "succeeded":
print(job["output"]["urls"], job["cost_usd"])
else:
print("Failed:", job["error"])// Node 18 or later. Save as generate.mjs and run: node generate.mjs
const API = "https://api.revana.si/v1";
const headers = {
Authorization: `Bearer ${process.env.REVANA_API_KEY}`,
"Content-Type": "application/json",
};
const res = await fetch(`${API}/generations`, {
method: "POST",
headers,
body: JSON.stringify({
model: "seedance-2.5",
input: {
prompt: "A street food vendor in a night market prepares noodles, wok flames rising. Shot 1: wide shot of the busy stall. Shot 2: close-up of noodles tossed in the wok. Shot 3: a customer takes the first bite and smiles. Sizzling wok, crowd chatter, distant music.",
resolution: "720p",
duration: 10,
aspect_ratio: "16:9",
audio: true,
},
max_cost_usd: 3,
}),
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
let job = await res.json();
while (job.status === "queued" || job.status === "running") {
await new Promise((r) => setTimeout(r, 5000));
job = await (await fetch(`${API}/generations/${job.id}`, { headers })).json();
}
if (job.status === "succeeded") console.log(job.output.urls, job.cost_usd);
else console.error("Failed:", job.error);Les tâches longues mettent plus de temps à se terminer que les courtes : interrogez donc toutes les cinq à dix secondes plutôt que de marteler le point de terminaison. Une tâche terminée ressemble à ceci :
{
"id": "gen_01JBX7Q2M4",
"model": "seedance-2.5",
"status": "succeeded",
"output": {
"urls": [
"https://cdn.revana.si/g/gen_01JBX7Q2M4/0.mp4"
]
},
"cost_usd": 2.5,
"attempts": 1,
"error": null,
"created_at": "2026-10-19T14:02:11Z",
"completed_at": "2026-10-19T14:03:47Z"
}Un clip vertical de 30 secondes avec références
Pour un spot vertical de pleine durée, envoyez les ressources de la marque comme images de référence et décrivez les plans dans l'ordre. En 1080p, cette tâche coûte $16.50 ; réglez max_cost_usd au-dessus de ce montant pour qu'elle ne soit pas ignorée. La même requête en 480p coûte $3.30, un moyen moins cher de vérifier la structure avant de passer à la pleine résolution.
{
"model": "seedance-2.5",
"input": {
"prompt": "A 30 second vertical ad. Shot 1: the runner from the first image laces the shoe from the second image at dawn. Shot 2: tracking shot as she runs along the seafront. Shot 3: close-up of the shoe hitting wet sand. Shot 4: she stops, breathing hard, and looks out to sea. Steady electronic beat, waves, footsteps.",
"image_urls": [
"https://example.com/runner.jpg",
"https://example.com/shoe.jpg"
],
"resolution": "1080p",
"duration": 30,
"aspect_ratio": "9:16",
"audio": true
},
"max_cost_usd": 20
}Utilisez des images de début et de fin (image_url, end_image_url) ou des images de référence (image_urls) dans une requête, pas les deux : ce sont des modes distincts, et une requête qui les mélange peut être rejetée avec 422 avant que quoi que ce soit ne soit facturé.
Conseils de prompt pour les clips longs
- Écrivez une liste de plans, pas un paragraphe. Numérotez les plans et donnez à chacun un sujet, une action et un mouvement de caméra. Sur 30 secondes, la structure compte plus que les adjectifs.
- Gardez une distribution réduite. Un ou deux personnages restent cohérents de façon plus fiable qu'une foule, surtout sur plusieurs coupes.
- Appuyez-vous sur les références. Avec jusqu'à 30 images, vous pouvez fixer le personnage sous plusieurs angles, le produit, le lieu et la palette de couleurs. Désignez chacune par sa position, par exemple « la chaussure de la deuxième image ».
- Concevez le son pour tout le clip. Dites ce qui court sous chaque plan (un rythme, une ambiance) et ce qui se passe à des moments précis (une porte qui claque, une réplique).
- Faites des brouillons courts et petits. Testez les premiers plans sous forme d'un clip de 10 secondes en 480p, puis produisez les 30 secondes complètes une fois le rendu validé. Les résultats diffèrent d'une résolution à l'autre : considérez donc les brouillons comme un guide plutôt que comme un aperçu.
- Laissez le texte hors du cadre. Ajoutez sous-titres, prix et logos dans votre éditeur.
Routage et repli
Seedance 2.5 dispose actuellement de cinq routes sur Revana. Le routeur envoie chaque tâche d'abord vers la route la moins chère et, si cette route échoue ou dépasse le délai, la renvoie vers la suivante. Les routes de secours coûtent plus cher à la seconde (la page du modèle liste chacune d'elles), et seule la route qui réussit est facturée. Le champ attempts indique combien de routes une tâche a utilisées.
Le repli augmente les chances d'obtenir un résultat, mais ce n'est pas une garantie de disponibilité. Pour les tâches longues en particulier, gérez failed dans votre application, par exemple en réessayant plus tard à une résolution plus basse.
Retrouvez tous les niveaux de Seedance sur la page des modèles, la référence des requêtes dans la documentation, ou obtenez une clé API et lancez l'exemple ci-dessus.
Questions fréquentes
Combien coûte l'API Seedance 2.5 ?
En octobre 2026, Seedance 2.5 coûte $0.11 la seconde en 480p, $0.25 en 720p et $0.55 en 1080p. Un clip de 10 secondes en 720p revient à $2.50 et un clip de 30 secondes en 1080p à $16.50.
Quelle est la différence entre Seedance 2.0 et Seedance 2.5 ?
Seedance 2.5 produit des clips jusqu'à 30 secondes (2.0 s'arrête à 15), accepte jusqu'à 30 images de référence (2.0 en prend 9) et ajoute la vidéo vers vidéo. Seedance 2.0 propose la 4K ; Seedance 2.5 va jusqu'à 1080p.
Quelle peut être la durée d'une vidéo Seedance 2.5 ?
Entre 4 et 30 secondes par requête. Réglez la durée avec le champ duration.
Seedance 2.5 prend-il en charge la 4K ?
Pas dans le catalogue actuel : il liste 480p, 720p et 1080p. Pour une sortie en 4K, utilisez Seedance 2.0.
Seedance 2.5 génère-t-il du son ?
Oui. Mettez audio à true pour un son généré avec l'image, ou à false pour un clip muet. Le prix est le même dans les deux cas.
Suis-je facturé si une longue tâche Seedance 2.5 échoue ?
Non. Le prix est bloqué à l'envoi et libéré si la tâche échoue. Le routeur essaie d'abord les autres routes, et vous ne payez que pour une tâche réussie.
Essayez Seedance 2.5 avec une seule clé
Une seule clé API pour Seedance 2.5, Seedance 2.0 et tous les autres modèles du catalogue. Crédit prépayé à partir de $10, débité uniquement pour les tâches réussies.