Seedance 2.0 est un modèle vidéo multimodal phare exposé sur Venice sous forme d’une famille de trois variantes pour la génération vidéo pilotée par texte, image et référence. La variante reference-to-video est exceptionnellement puissante : un seul endpoint et un seul identifiant de modèle gèrent quatre workflows distincts (Reference, Edit, Extend, Stitch) — le workflow est inféré à partir de la forme de votre prompt.
Ce guide passe en revue les variantes, les quatre workflows avec leurs prompts canoniques, les limites d’entrée multimodale, la tarification et des exemples curl complets.
Variantes
| Identifiant du modèle | Variante | Résolutions de sortie | Notes |
|---|
seedance-2-0-text-to-video | T2V | 480p / 720p / 1080p | Prompt textuel uniquement |
seedance-2-0-image-to-video | I2V | 480p / 720p / 1080p | Ancrage par première image (et optionnellement dernière image) |
seedance-2-0-reference-to-video | R2V | 480p / 720p / 1080p | Jusqu’à 9 images de référence + 3 vidéos de référence + 3 audios de référence. Alimente Reference / Edit / Extend / Stitch |
seedance-2-0-fast-text-to-video | Fast T2V | 480p / 720p | Palier plus rapide, fidélité moindre |
seedance-2-0-fast-image-to-video | Fast I2V | 480p / 720p | Palier plus rapide, fidélité moindre |
seedance-2-0-fast-reference-to-video | Fast R2V | 480p / 720p | Palier plus rapide, fidélité moindre ; même ensemble de workflows |
Toutes les variantes sont asynchrones. Soumettez via POST /api/v1/video/queue, puis interrogez POST /api/v1/video/retrieve jusqu’à ce que le corps de la réponse soit video/mp4. Voir Génération vidéo pour le flux général de file d’attente.
Le modèle « un modèle, quatre workflows »
La variante reference-to-video (seedance-2-0-reference-to-video et son équivalent Fast) est le même modèle sous-jacent servant quatre tâches différentes. Le modèle déduit la tâche à partir du préfixe du prompt et de la forme de vos entrées. Il n’y a pas de champ task ou workflow — la syntaxe du prompt est le routage.
| Workflow | Ce qu’il fait | Préfixe de prompt | Entrées |
|---|
| Reference | Génère une nouvelle vidéo en utilisant les fichiers de référence téléversés comme donneurs pour le sujet / le mouvement / le style / l’audio | Refer to ... in <Image|Video|Audio N> to generate ... | Texte + ≥1 référence image OU vidéo (0-9 images, 0-3 vidéos), plus optionnellement jusqu’à 3 donneurs audio |
| Edit | Modifie une seule vidéo d’entrée tout en préservant le reste | Strictly edit <Video 1>, changing its ... | 1 vidéo d’entrée + texte (ancrage par images optionnel) |
| Extend | Prolongation avant / arrière d’un clip | Extend <Video 1>, generate ... | 1 vidéo d’entrée + texte |
| Stitch | Assemble 2-3 clips avec des transitions générées automatiquement | <Video 1> + <transition description> + followed by <Video 2> + ... | 2-3 vidéos d’entrée + texte |
La syntaxe du prompt est canonique et sensible à la casse : crochets pointus, première lettre en majuscule, espace unique avant le numéro — <Video 1>, <Image 1>, <Audio 1>.
Modèles de workflow
Workflow Reference
Utilise les fichiers de référence téléversés comme donneurs — sujet, scène, mouvement, style, timbre vocal — pour générer une toute nouvelle vidéo.
Modèles de prompt canoniques :
Refer to <Subject N> in <Image N> to generate ...
Refer to the [action | camera scene | style | sound effect] in <Video N> to generate ...
Refer to the [tone | timbre] in <Audio N> to generate ...
Exemples :
Refer to <Subject 1> in <Image 1> to generate a 5-second clip of the same character riding a horse through snow.
Refer to the camera scene in <Video 1> to generate a similar establishing shot of a futuristic city at dawn.
Refer to <Subject 1> in <Image 1> and use the timbre in <Audio 1> for the narrator describing the scene. (les donneurs audio doivent être associés à au moins une référence image ou vidéo — l’audio seul est rejeté)
Workflow Edit
Modifie une seule vidéo d’entrée. Tout ce qui n’est pas explicitement nommé dans le prompt est préservé. Utilisez-le lorsque vous voulez un changement localisé (remplacement de sujet, changement de météo/couleur, ajout/suppression d’élément) plutôt qu’une vidéo entièrement nouvelle.
Modèle de prompt canonique :
Strictly edit <Video 1>, changing its [original feature] to [new feature] ...
Sous-modèles pour un contrôle plus fin :
Add Elements:
At [timestamp / timing] and [spatial location] of <Video 1>, add [description of intended element].
Remove Elements:
Remove [element to be deleted] from <Video 1>, keeping the rest of the video content unchanged.
Modify Elements:
Replace [description of element to be changed] in <Video 1> with [description of intended element].
Exemples :
Strictly edit <Video 1>, changing its weather from sunny to a heavy rainstorm.
Add snacks such as fried chicken and pizza to the countertop in <Video 1>.
Remove the red car from <Video 1>, keeping the rest of the video content unchanged.
Replace the perfume featured in <Video 1> with the face cream from <Image 1>, with all original motions and camera work preserved.
Le dernier exemple combine Edit avec une référence d’image — parfaitement légal, le modèle utilise <Image 1> comme donneur visuel pour le remplacement.
Workflow Extend
Prolonge un seul clip vers l’avant ou l’arrière dans le temps. Par défaut, Seedance ne renvoie que le nouveau contenu — pas l’entrée originale concaténée avec l’extension. C’est intentionnel, pour la continuité de transition ; si vous voulez que le clip d’entrée soit préservé à côté de l’extension, indiquez-le explicitement :
Extend <Video 1>, generate [description of extended content]
Extend <Video 1> backward, [description of extended content]
Extend <Video 1>, start with <Video 1>, then [description of extended content] ← préserve l'entrée au début
Extend <Video 1> backward, [description], and then end with <Video 1> ← préserve l'entrée à la fin
Gestion des transitions : le modèle extrait automatiquement les images de transition pour un fondu fluide, et les segments originaux de la vidéo d’entrée ne sont pas régénérés.
Exemples :
Extend <Video 1>, generate a dramatic chase scene through narrow alleys at dusk.
Extend <Video 1> backward, the same character walking toward the camera before the original shot begins.
Extend <Video 1>, start with <Video 1>, then the camera pulls back to reveal a vast landscape.
Workflow Stitch (Track Completion)
Connecte 2-3 clips d’entrée avec des transitions générées par IA. La durée totale d’entrée combinée doit être ≤ 15 s.
Modèle de prompt canonique :
<Video 1> + [transition description] + followed by <Video 2> [+ [transition description] + followed by <Video 3>]
Exemples :
<Video 1> + a smooth seamless cut + followed by <Video 2>
<Video 1>. The moment a leaf falls to the ground, it sets off a special effect of golden particles. A gust of wind blows by, leading into <Video 2>.
<Video 1> + a wisp of smoke transforms into a flock of birds + followed by <Video 2> + a slow dolly-in + followed by <Video 3>
Le modèle ajuste automatiquement les segments de liaison aux points de jonction pour assurer la continuité.
À travers les quatre workflows, la formule de rédaction recommandée est :
Subject + Motion + Environment (Optional)
+ Camera Movement / Cut (Optional)
+ Aesthetic Description (Optional)
+ Audio (Optional)
- Subject + Motion : la base logique — définit « qui » effectue « quelle action »
- Environment + Aesthetics : arrière-plan spatial, éclairage, style visuel
- Camera : type ou mouvement de prise de vue explicite
- Audio : effets sonores ambiants ou direction vocale pour une sortie immersive
Superposer cela à un préfixe de workflow (par exemple, Strictly edit <Video 1>, changing its <subject + motion + environment + ...>) produit les sorties de plus haute qualité.
Limites d’entrée multimodale
Les valeurs ci-dessous sont celles que l’API Venice accepte. Les requêtes hors de ces plages sont rejetées au niveau du schéma avec un 400 avant d’atteindre l’inférence.
Images
| Contrainte | Valeur |
|---|
| Méthodes d’entrée | URL (http://, https://) ou URL data Base64 (data:image/...) |
| Formats | .jpeg, .png, .webp, .bmp, .tiff, .gif, .heic, .heif |
| Ratio d’aspect (L / H) | exclusif (0.4, 2.5) |
| Côté minimum | ≥ 300 px |
| Nombre d’images : première image I2V | 1 |
| Nombre d’images : première + dernière image I2V | 2 |
| Nombre d’images : R2V (V2 / Fast) | 1 – 9 |
Vidéos
| Contrainte | Valeur |
|---|
| Méthodes d’entrée | URL (http://, https://) ou URL data Base64 (data:video/...) |
| Formats | .mp4, .mov |
| Codecs vidéo | H.264 / AVC, H.265 / HEVC |
| Codecs audio (dans le conteneur) | AAC, MP3 |
| Durée par clip | [2, 15] s (inclusif) |
| Nombre maximum de clips | 3 (R2V / Stitch / Extend) |
| Durée totale combinée | ≤ 15 s à travers tous les clips |
| Taille par clip | ≤ 50 Mo |
Audio
| Contrainte | Valeur |
|---|
| Méthodes d’entrée | URL (http://, https://) ou URL data Base64 (data:audio/...) |
| Formats | .wav, .mp3 |
| Durée par clip | [2, 15] s |
| Nombre maximum de clips | 3 |
| Durée totale combinée | ≤ 15 s à travers tous les clips |
| Taille par clip | ≤ 15 Mo |
L’audio de référence n’est pris en charge que sur les variantes R2V. Chaque entrée est transmise au modèle en tant qu’élément de contenu role: "reference_audio" que le prompt adresse comme <Audio 1>, <Audio 2>, <Audio 3> — le modèle utilise chaque clip pour le timbre vocal, les effets sonores ou la musique de fond selon la façon dont le prompt le formule. L’ancien champ singulier audio_url mappe vers la même forme de contenu et équivaut désormais au passage d’un reference_audio_urls à un seul élément.
reference_audio_urls ne peut pas être la seule entrée de référence. Le modèle requiert au moins une référence image ou vidéo en plus de tout donneur audio. Associez reference_audio_urls à reference_image_urls, reference_video_urls, image_url ou video_url — les soumissions audio seules sont rejetées.
Taille de la requête
L’endpoint de file d’attente accepte des corps JSON jusqu’à 35 Mo. Les URL data en ligne pour de grandes vidéos peuvent dépasser cette limite — pour le Stitch multi-clips en particulier, préférez les URL aux base64 en ligne.
Tarification
Appelez POST /api/v1/video/quote pour obtenir un devis pour une forme de requête donnée avant de la soumettre à /video/queue. L’endpoint de devis est la seule source faisant autorité ; les détails de tarification peuvent changer et ne doivent pas être mis en cache ou dupliqués côté client.
Lorsque des vidéos de référence font partie de la requête, transmettez également reference_video_total_duration (la somme de toutes les durées des clips de référence en secondes) afin que le devis corresponde à ce que /video/queue facturera :
curl -X POST https://api.venice.ai/api/v1/video/quote \
-H "Authorization: Bearer $VENICE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-0-reference-to-video",
"duration": "5s",
"resolution": "1080p",
"aspect_ratio": "16:9",
"reference_video_total_duration": 5
}'
Exemples complets
Tous les exemples supposent que VENICE_API_KEY est défini dans l’environnement.
Text-to-video
curl -X POST https://api.venice.ai/api/v1/video/queue \
-H "Authorization: Bearer $VENICE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-0-text-to-video",
"prompt": "A golden retriever frolicking through a sunlit meadow at sunset, slow camera dolly-in, shallow depth of field, warm cinematic lighting.",
"duration": "5s",
"aspect_ratio": "16:9",
"resolution": "1080p"
}'
Image-to-video (première image)
curl -X POST https://api.venice.ai/api/v1/video/queue \
-H "Authorization: Bearer $VENICE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-0-image-to-video",
"prompt": "The lighthouse keeper turns toward the storm, lantern raised, waves crashing against the rocks.",
"image_url": "https://example.com/lighthouse.jpg",
"duration": "5s",
"resolution": "720p"
}'
seedance-2-0-image-to-video (et sa variante Fast) n’accepte pas aspect_ratio — le ratio d’aspect de sortie est dérivé automatiquement des dimensions de l’image d’entrée. Passer ce champ renvoie un 400 avec « This model does not support aspect_ratio ». Utilisez les variantes T2V ou R2V si vous avez besoin d’un contrôle explicite du ratio d’aspect.
Workflow Reference — donneur de sujet
curl -X POST https://api.venice.ai/api/v1/video/queue \
-H "Authorization: Bearer $VENICE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-0-reference-to-video",
"prompt": "Refer to <Subject 1> in <Image 1> to generate a 5-second clip of the same character walking through a neon-lit Tokyo street at night.",
"reference_image_urls": ["https://example.com/character.png"],
"duration": "5s",
"aspect_ratio": "9:16",
"resolution": "1080p"
}'
Workflow Reference — donneur sujet + audio
curl -X POST https://api.venice.ai/api/v1/video/queue \
-H "Authorization: Bearer $VENICE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-0-reference-to-video",
"prompt": "Refer to <Subject 1> in <Image 1> to generate a 5-second clip of the same character walking through a neon-lit Tokyo street at night. Refer to the timbre in <Audio 1> for a soft female voiceover describing the scene.",
"reference_image_urls": ["https://example.com/character.png"],
"reference_audio_urls": ["https://example.com/voice-sample.mp3"],
"duration": "5s",
"aspect_ratio": "9:16",
"resolution": "1080p"
}'
Workflow Edit
curl -X POST https://api.venice.ai/api/v1/video/queue \
-H "Authorization: Bearer $VENICE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-0-reference-to-video",
"prompt": "Strictly edit <Video 1>, changing its weather from sunny to a heavy rainstorm, with all original motions and camera work preserved.",
"reference_video_urls": ["https://example.com/sunny-scene.mp4"],
"reference_video_total_duration": 5,
"duration": "5s",
"aspect_ratio": "16:9",
"resolution": "1080p"
}'
Workflow Edit avec ancrage par image
curl -X POST https://api.venice.ai/api/v1/video/queue \
-H "Authorization: Bearer $VENICE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-0-reference-to-video",
"prompt": "Replace the perfume featured in <Video 1> with the face cream from <Image 1>, with all original motions and camera work preserved.",
"reference_video_urls": ["https://example.com/perfume-ad.mp4"],
"reference_image_urls": ["https://example.com/face-cream.png"],
"reference_video_total_duration": 4,
"duration": "5s",
"aspect_ratio": "16:9",
"resolution": "1080p"
}'
Extend vers l’avant
curl -X POST https://api.venice.ai/api/v1/video/queue \
-H "Authorization: Bearer $VENICE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-0-reference-to-video",
"prompt": "Extend <Video 1>, generate a dramatic chase scene through narrow alleys at dusk, with neon signs flickering and rain on the pavement.",
"reference_video_urls": ["https://example.com/alley-intro.mp4"],
"reference_video_total_duration": 4,
"duration": "5s",
"aspect_ratio": "16:9",
"resolution": "1080p"
}'
Stitch (3 clips)
curl -X POST https://api.venice.ai/api/v1/video/queue \
-H "Authorization: Bearer $VENICE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-0-reference-to-video",
"prompt": "<Video 1> + a wisp of smoke transforms into a flock of birds + followed by <Video 2> + a slow dolly-in + followed by <Video 3>",
"reference_video_urls": [
"https://example.com/clip-1.mp4",
"https://example.com/clip-2.mp4",
"https://example.com/clip-3.mp4"
],
"reference_video_total_duration": 12,
"duration": "5s",
"aspect_ratio": "16:9",
"resolution": "1080p"
}'
Sondage jusqu’à la fin
Après chaque soumission de file d’attente, enregistrez le queue_id retourné et interrogez /video/retrieve jusqu’à ce que le corps de la réponse soit video/mp4 :
curl -X POST https://api.venice.ai/api/v1/video/retrieve \
-H "Authorization: Bearer $VENICE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-0-reference-to-video",
"queue_id": "123e4567-e89b-12d3-a456-426614174000"
}' \
-o output.mp4
La réponse est en JSON ({ "status": "queued" | "running" | "failed", ... }) jusqu’à ce que la tâche se termine, moment auquel le corps de la réponse bascule vers des octets video/mp4. Voir Génération vidéo pour le modèle complet de sondage.
Dépannage
At least one reference is required for this model
Les soumissions reference-to-video doivent inclure au moins l’un de reference_image_urls, reference_video_urls, image_references ou video_references. Une génération purement textuelle n’est pas un workflow R2V valide — utilisez plutôt seedance-2-0-text-to-video. reference_audio_urls seul ne suffit pas (voir la section Audio ci-dessus).
reference_video_urls must have at most 3 videos
Le modèle plafonne les vidéos de référence à 3. Si vous avez besoin de plus de clips, exécutez d’abord un Stitch (3 → 1), puis utilisez la sortie comme référence pour une suite.
Per clip must be 2–15s / agrégat > 15s
La durée par clip est [2, 15] secondes inclusif ; la somme à travers toutes les vidéos de référence est également plafonnée à 15 secondes. Coupez les clips côté client avant la soumission.
Le prompt achemine vers le mauvais workflow
Le workflow est inféré à partir de la syntaxe du prompt. Erreurs d’acheminement courantes :
- Vouloir Extend mais écrire
Refer to ... → le modèle traite votre vidéo comme un donneur, pas comme une toile à continuer
- Vouloir Stitch mais écrire
Refer to ... → le modèle en choisit une comme donneur, ignore les autres
- Vouloir Edit mais écrire
Generate a video based on <Video 1> → ambigu ; le modèle peut basculer par défaut sur Reference
Utilisez les préfixes canoniques exactement tels qu’écrits : Strictly edit <Video 1>, ..., Extend <Video 1>, ..., <Video 1> + ... + followed by <Video 2>.
Le devis ne correspond pas au montant en file d’attente
Si vous avez inclus une vidéo de référence mais n’avez pas transmis reference_video_total_duration à /video/quote, le devis et le montant en file d’attente peuvent différer. Transmettez toujours reference_video_total_duration (somme de toutes les durées des clips de référence, en secondes) lorsque des vidéos de référence sont présentes.
Références