> ## Documentation Index
> Fetch the complete documentation index at: https://docs.venice.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Seedance 2.0 & 2.5

> Générez, éditez, prolongez et assemblez des vidéos avec Seedance 2.0 et 2.5 sur Venice — workflows text-, image- et reference-to-video, politique média de l'API publique et limites multimodales spécifiques à chaque famille.

Seedance est une famille multimodale phare de génération vidéo sur Venice pour la création à partir de texte, d'images et de références. **Seedance 2.0** (et Fast) et **Seedance 2.5** partagent le même modèle de routage de prompts R2V : un unique endpoint reference-to-video gère **quatre workflows distincts** (Reference, Edit, Extend, Stitch) — le workflow est déduit de la **forme de votre prompt**.

Ce guide couvre les variantes, les quatre workflows, la **politique média de l'API publique**, les **limites multimodales spécifiques à chaque famille**, la tarification et des exemples `curl`.

<Warning>
  **Les médias contenant des personnes ne sont pas pris en charge par l'API publique Seedance.** Les modèles publics `*-basic` n'utilisent pas d'attestation de consentement (`consents.seedance` / `needs_consent`). De telles entrées peuvent être rejetées en amont sous forme d'erreur de politique de contenu ou de fournisseur. Utilisez l'application Venice ou Studio pour bénéficier de l'ensemble complet des fonctionnalités Seedance.
</Warning>

## Variantes

| ID de modèle                                 | Variante | Résolutions de sortie        | Notes                                                                                                                              |
| -------------------------------------------- | -------- | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `seedance-2-0-text-to-video-basic`           | T2V      | 480p / 720p / 1080p / **4k** | Prompt texte uniquement                                                                                                            |
| `seedance-2-0-image-to-video-basic`          | I2V      | 480p / 720p / 1080p / **4k** | Ancrage à partir d'une image de première frame (et facultativement de dernière frame)                                              |
| `seedance-2-0-reference-to-video-basic`      | R2V      | 480p / 720p / 1080p / **4k** | Jusqu'à 9 images de référence + 3 vidéos de référence + 3 donneurs audio de référence. Alimente Reference / Edit / Extend / Stitch |
| `seedance-2-0-fast-text-to-video-basic`      | Fast T2V | 480p / 720p                  | Palier plus rapide et de moindre fidélité (pas de 1080p / 4k)                                                                      |
| `seedance-2-0-fast-image-to-video-basic`     | Fast I2V | 480p / 720p                  | Palier plus rapide et de moindre fidélité (pas de 1080p / 4k)                                                                      |
| `seedance-2-0-fast-reference-to-video-basic` | Fast R2V | 480p / 720p                  | Palier plus rapide et de moindre fidélité (pas de 1080p / 4k) ; même ensemble de workflows                                         |
| `seedance-2-5-text-to-video-basic`           | T2V      | 480p / 720p                  | Sortie jusqu'à 30 s ; audio natif                                                                                                  |
| `seedance-2-5-image-to-video-basic`          | I2V      | 480p / 720p                  | Sortie jusqu'à 30 s ; ancrage sur première frame (et facultativement dernière frame)                                               |
| `seedance-2-5-reference-to-video-basic`      | R2V      | 480p / 720p                  | Jusqu'à 30 images + 10 vidéos + 10 donneurs audio ; mêmes workflows Reference / Edit / Extend / Stitch                             |

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](/guides/media/video-generation) pour le flux général de file d'attente.

Passez `resolution` parmi : `480p`, `720p`, `1080p` ou `4k` (en minuscules). Seedance **2.0** (non Fast) accepte les quatre ; **2.0 Fast** et **2.5** n'acceptent que `480p` / `720p`. Découvrez les ID de modèles disponibles et leurs capacités avec `GET /models?type=video` — ne codez pas la disponibilité en dur.

## Le modèle « un modèle, quatre workflows »

Les variantes reference-to-video (`seedance-2-0-reference-to-video-basic`, sa sœur Fast et `seedance-2-5-reference-to-video-basic`) utilisent le même modèle de routage par prompt. **Le modèle déduit la tâche du préfixe du prompt et de la forme de vos entrées.** Il n'existe pas de champ `task` ou `workflow` — la syntaxe du prompt fait office de routage.

| Workflow      | Ce qu'il fait                                                                                                                | Préfixe du prompt                                                       | Entrées                                                                                                                              |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| **Reference** | Génère une nouvelle vidéo en utilisant les fichiers de référence chargés comme donneurs de sujet / mouvement / style / audio | `Refer to ... in <Image\|Video\|Audio N> to generate ...`               | Texte + ≥1 image OU vidéo de référence, plus des donneurs audio optionnels (les nombres varient selon la famille — voir les limites) |
| **Edit**      | Modifie une seule vidéo d'entrée en préservant le reste                                                                      | `Strictly edit <Video 1>, changing its ...`                             | 1 vidéo d'entrée + texte (images optionnelles pour l'ancrage)                                                                        |
| **Extend**    | Extension en avant / en arrière d'un clip                                                                                    | `Extend <Video 1>, generate ...`                                        | 1 vidéo d'entrée + texte                                                                                                             |
| **Stitch**    | Assemble des clips d'entrée avec des transitions générées automatiquement                                                    | `<Video 1> + <description de transition> + followed by <Video 2> + ...` | Plusieurs vidéos d'entrée + texte (les plafonds de nombre de clips / durée varient selon la famille)                                 |

La **syntaxe du prompt est canonique et sensible à la casse** : chevrons, majuscule à la première lettre, un espace avant le nombre — `<Video 1>`, `<Image 1>`, `<Audio 1>`.

***

## Modèles de workflow

### Workflow Reference

Utilisez les fichiers de référence chargé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 image ou vidéo de référence — l'audio seul est rejeté)

### Workflow Edit

Modifiez une seule vidéo d'entrée. **Tout ce qui n'est pas explicitement mentionné dans le prompt est préservé.** Utilisez-le lorsque vous souhaitez un changement localisé (échange 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 image — parfaitement légal, le modèle utilise `<Image 1>` comme donneur visuel pour le remplacement.

### Ratio d'aspect et durée alignés sur la source

Pour Seedance reference-to-video **edit / extend**, vous pouvez demander à la sortie de suivre le clip source au lieu de choisir un ratio ou une longueur fixe :

| Champ          | Valeurs              | Comportement                                                                                                   |
| -------------- | -------------------- | -------------------------------------------------------------------------------------------------------------- |
| `aspect_ratio` | `adaptive` ou `auto` | Le ratio d'aspect de sortie correspond à la vidéo source (Seedance 2.0 et 2.5 R2V)                             |
| `duration`     | `-1` ou `auto`       | La longueur de sortie correspond à la vidéo source (Seedance **2.5** R2V edit ; la source doit être de 4–30 s) |

Exigences :

* **File d'attente :** toute valeur alignée sur la source nécessite `reference_video_urls`.
* **Devis :** toute valeur alignée sur la source nécessite `reference_video_total_duration`. Une durée alignée sur la source est facturée `ceil(reference_video_total_duration)` secondes.
* Le ratio et la durée sont indépendants — vous pouvez aligner l'un sans l'autre.
* Pour **extend**, préférez une `duration` fixe (la durée à générer) et éventuellement `aspect_ratio: "adaptive"`. Une `duration` alignée sur la source est destinée aux tâches d'édition de type « même longueur que la source ».

### Workflow Extend

Prolongez un clip unique en avant ou en arrière dans le temps. **Par défaut, Seedance ne renvoie que le nouveau contenu** — pas le clip d'entrée concaténé avec l'extension. C'est intentionnel, pour la continuité des transitions ; si vous souhaitez que le clip d'entrée soit préservé aux côtés 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]      ← preserves input at start
Extend <Video 1> backward, [description], and then end with <Video 1>               ← preserves input at end
```

Gestion des transitions : le modèle extrait automatiquement les frames de transition pour un mélange 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)

Reliez des clips d'entrée avec des transitions générées par IA. Respectez les plafonds **spécifiques à chaque famille** de durée combinée et de nombre de clips dans [Limites d'entrée multimodale](#multimodal-input-limits) (Seedance 2.0 : ≤3 clips / ≤15 s combinés ; Seedance 2.5 : plafonds vidéo plus élevé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 rogne automatiquement les segments de liaison aux points de jonction pour assurer la continuité.

***

## Formule universelle de prompt

À 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 fondation logique — définit « Qui » réalise « Quelle action »
* **Environment + Aesthetics** : arrière-plan spatial, éclairage, style visuel
* **Camera** : type de plan ou mouvement explicite
* **Audio** : effets sonores d'ambiance ou direction vocale pour une sortie immersive

Superposer cette structure à un préfixe de workflow (par ex., `Strictly edit <Video 1>, changing its <subject + motion + environment + ...>`) produit les sorties de la plus haute qualité.

***

## Limites d'entrée multimodale

Les valeurs ci-dessous sont celles acceptées par l'API Venice. Les requêtes hors de ces plages sont rejetées au niveau du schéma avec un 400 avant même d'atteindre l'inférence.

**Seedance 2.0 et Seedance 2.5 utilisent des plafonds différents.** Vérifiez toujours la colonne correspondant à la famille de modèles que vous appelez.

### Planchers média partagés

| Contrainte                              | Valeur                                                              |
| --------------------------------------- | ------------------------------------------------------------------- |
| Méthodes d'entrée image / vidéo / audio | URL (`http://`, `https://`) ou URL de données Base64                |
| Formats d'image                         | `.jpeg`, `.png`, `.webp`, `.bmp`, `.tiff`, `.gif`, `.heic`, `.heif` |
| Ratio d'aspect image (L / H)            | exclusif `(0.4, 2.5)`                                               |
| Côté minimum image                      | ≥ 300 px                                                            |
| Formats vidéo                           | `.mp4`, `.mov`                                                      |
| Codecs vidéo                            | H.264 / AVC, H.265 / HEVC                                           |
| Codecs audio (dans le conteneur)        | AAC, MP3                                                            |
| Formats audio (audio de référence)      | `.wav`, `.mp3`                                                      |
| Taille vidéo par clip                   | ≤ 50 MB                                                             |
| Taille audio par clip                   | ≤ 15 MB                                                             |
| Images de première frame I2V            | 1                                                                   |
| Première + dernière frame I2V           | 2                                                                   |

### Comparaison entre familles

| Contrainte                             | Seedance 2.0 (+ Fast)                                        | Seedance 2.5           |
| -------------------------------------- | ------------------------------------------------------------ | ---------------------- |
| Durée de sortie                        | 4–15 s                                                       | 4–30 s (par défaut 10) |
| Résolutions de sortie                  | 480p / 720p / 1080p / **4k** (Fast : 480p / 720p uniquement) | 480p / 720p uniquement |
| Images de référence R2V                | 1–9                                                          | 1–30                   |
| Taille max d'image de référence R2V    | (limites partagées de la requête)                            | ≤ 30 MB par image      |
| Vidéos de référence R2V                | ≤ 3                                                          | ≤ 10                   |
| Durée par vidéo de référence           | `[2, 15]` s                                                  | `[2, 30]` s            |
| Durée combinée des vidéos de référence | ≤ 15 s                                                       | ≤ 30 s                 |
| Clips audio de référence R2V           | ≤ 3                                                          | ≤ 10                   |
| Durée par audio de référence           | `[2, 15]` s                                                  | `[2, 30]` s            |
| Durée combinée des audios de référence | ≤ 15 s                                                       | ≤ 30 s                 |

L'audio de référence n'est pris en charge que sur les variantes R2V. Chaque entrée est transmise au modèle sous forme d'élément de contenu `role: "reference_audio"` que le prompt adresse comme `<Audio 1>`, `<Audio 2>`, … — le modèle utilise chaque clip pour le timbre vocal, les effets sonores ou la musique de fond selon la manière dont le prompt le formule. L'ancien champ singulier `audio_url` correspond à la même forme de contenu et équivaut désormais à passer un `reference_audio_urls` à un seul élément.

<Warning>
  **`reference_audio_urls` ne peut pas être la seule entrée de référence.** Le modèle exige au moins une image ou une vidéo de référence 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.
</Warning>

### Taille de la requête

L'endpoint de file d'attente accepte des corps JSON jusqu'à **35 MB**. Les URLs de données inline pour de grandes vidéos peuvent dépasser cette limite — pour le workflow Stitch multi-clips en particulier, préférez les URLs à la base64 inline.

***

## 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 tarifaires 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, passez également `reference_video_total_duration` (la somme des durées de tous les clips de référence en secondes) afin que le devis corresponde à ce que `/video/queue` facturera :

```bash theme={"system"}
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-basic",
    "duration": "5s",
    "resolution": "1080p",
    "aspect_ratio": "16:9",
    "reference_video_total_duration": 5
  }'
```

Devis Seedance 2.5 edit aligné sur la source (facturé à partir de la longueur source) :

```bash theme={"system"}
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-5-reference-to-video-basic",
    "duration": "auto",
    "resolution": "720p",
    "aspect_ratio": "adaptive",
    "reference_video_total_duration": 5.2
  }'
```

***

## Exemples complets

Tous les exemples supposent que `VENICE_API_KEY` est défini dans l'environnement.

### Text-to-video

```bash theme={"system"}
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-basic",
    "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"
  }'
```

### Seedance 2.0 text-to-video (4K)

```bash theme={"system"}
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-basic",
    "prompt": "Ultra-detailed aerial glide over a sunlit alpine lake, crystal water, distant peaks, cinematic color grade.",
    "duration": "5s",
    "aspect_ratio": "16:9",
    "resolution": "4k"
  }'
```

### Seedance 2.5 text-to-video (durée plus longue)

```bash theme={"system"}
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-5-text-to-video-basic",
    "prompt": "A slow aerial push over misty mountains at sunrise, clouds parting, soft orchestral ambience, cinematic widescreen framing.",
    "duration": "20s",
    "aspect_ratio": "16:9",
    "resolution": "720p"
  }'
```

### Image-to-video (première frame)

```bash theme={"system"}
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-basic",
    "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"
  }'
```

<Note>
  Les modèles Seedance I2V (`seedance-2-0-image-to-video-basic`, sa variante Fast et `seedance-2-5-image-to-video-basic`) **n'acceptent 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.
</Note>

### Workflow Reference — donneur de sujet

```bash theme={"system"}
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-basic",
    "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 Seedance 2.5 — multi-images

```bash theme={"system"}
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-5-reference-to-video-basic",
    "prompt": "Refer to <Subject 1> in <Image 1> and the style in <Image 2> to generate a 12-second clip of the same character exploring a rainy cyberpunk alley.",
    "reference_image_urls": [
      "https://example.com/character.png",
      "https://example.com/style-board.png"
    ],
    "duration": "12s",
    "aspect_ratio": "9:16",
    "resolution": "720p"
  }'
```

### Workflow Reference — donneur de sujet + donneur audio

```bash theme={"system"}
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-basic",
    "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

```bash theme={"system"}
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-basic",
    "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"],
    "duration": "5s",
    "aspect_ratio": "adaptive",
    "resolution": "1080p"
  }'
```

### Seedance 2.5 edit — durée et ratio alignés sur la source

```bash theme={"system"}
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-5-reference-to-video-basic",
    "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"],
    "duration": "auto",
    "aspect_ratio": "adaptive",
    "resolution": "720p"
  }'
```

`duration: "auto"` (ou `"-1"`) et `aspect_ratio: "adaptive"` (ou `"auto"`) font suivre la sortie au clip source. Voir [Ratio d'aspect et durée alignés sur la source](#source-matched-aspect-ratio-and-duration).

### Workflow Edit avec ancrage image

```bash theme={"system"}
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-basic",
    "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"],
    "duration": "5s",
    "aspect_ratio": "adaptive",
    "resolution": "1080p"
  }'
```

### Extend en avant

```bash theme={"system"}
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-basic",
    "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"],
    "duration": "5s",
    "aspect_ratio": "adaptive",
    "resolution": "1080p"
  }'
```

### Stitch (3 clips)

```bash theme={"system"}
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-basic",
    "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"
  }'
```

### Interrogation pour la fin de la génération

Après chaque soumission à la file d'attente, enregistrez le `queue_id` renvoyé et interrogez `/video/retrieve` jusqu'à ce que le corps de la réponse soit `video/mp4` :

```bash theme={"system"}
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-basic",
    "queue_id": "123e4567-e89b-12d3-a456-426614174000"
  }' \
  -o output.mp4
```

La réponse est du JSON (`{ "status": "queued" | "running" | "failed", ... }`) jusqu'à ce que la tâche se termine, moment auquel le corps de la réponse bascule sur des octets `video/mp4`. Voir [Génération vidéo](/guides/media/video-generation) pour le modèle complet d'interrogation.

***

## 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`. La génération purement à partir de texte n'est pas un workflow R2V valide — utilisez plutôt un ID de modèle text-to-video. `reference_audio_urls` seul ne suffit pas (voir la section Audio ci-dessus).

### Trop de vidéos / images de référence

Seedance **2.0** plafonne R2V à **9 images** et **3 vidéos**. Seedance **2.5** relève ces plafonds à **30 images** et **10 vidéos**. Si vous dépassez la limite de la famille, réduisez les entrées ou assemblez-les hors ligne au préalable.

### Erreurs de durée / de durée agrégée

* **2.0 :** vidéo/audio de référence par clip `[2, 15]` s ; vidéo/audio combinés ≤ 15 s ; sortie 4–15 s.
* **2.5 :** vidéo/audio de référence par clip `[2, 30]` s ; vidéo/audio combinés ≤ 30 s ; sortie 4–30 s.
* **Durée alignée sur la source** (`-1` / `auto` sur Seedance 2.5) : le clip source doit être de 4–30 s, et `reference_video_urls` (file d'attente) ou `reference_video_total_duration` (devis) est requis.

Rognez les clips côté client avant la soumission.

### Le prompt route vers le mauvais workflow

Le workflow est déduit de la syntaxe du prompt. Erreurs de routage courantes :

* Vouloir **Extend** mais écrire `Refer to ...` → le modèle traite votre vidéo comme un *donneur*, non comme un canevas à prolonger
* Vouloir **Stitch** mais écrire `Refer to ...` → le modèle en choisit un comme donneur et 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>`.

### Médias contenant des personnes non pris en charge

Les modèles publics de l'API Seedance n'exécutent pas de flux d'attestation de consentement (`consents.seedance` / `needs_consent`). Les médias contenant des personnes détectables peuvent échouer avec une erreur de politique de contenu ou de fournisseur. Utilisez l'application Venice ou Studio à la place.

### Le devis ne correspond pas au montant mis en file d'attente

Si vous avez inclus une vidéo de référence mais n'avez pas passé `reference_video_total_duration` à `/video/quote`, le devis et le montant mis en file d'attente peuvent différer. Passez toujours `reference_video_total_duration` (somme des durées de tous les clips de référence, en secondes) lorsque des vidéos de référence sont présentes.

***

## Références

* Endpoint de file d'attente vidéo Venice : [`POST /api/v1/video/queue`](/api-reference/endpoint/video/queue)
* Endpoint de devis Venice : [`POST /api/v1/video/quote`](/api-reference/endpoint/video/quote)
* Guide compagnon : [Reference to Video](/guides/media/reference-to-video) (couvre Kling O3 + Grok Imagine R2V)
* Guide compagnon : [Génération vidéo](/guides/media/video-generation) (aperçu file d'attente / interrogation)
