# Seedance 2.0 Fast (https://wanapi.app/fr/docs/seedance-2-0-fast)





Seedance 2.0 Fast 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. Créez des vidéos jusqu’à 15 secondes par requête. [Détails du modèle et espace d’essai](/fr/models/seedance-2-0-fast).

## Connexion à Wan API [#connect-to-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](/fr/settings/apikeys) 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.0 Fast                                                                  |
| --------------------- | ---------------------------------------------------------------------------------- |
| Identifiant du modèle | `bytedance/seedance-2.0-fast`                                                      |
| `resolution`          | `480p`, `720p` ; par défaut : `720p`.                                              |
| `duration`            | 4–15 secondes de sortie, ou `-1` pour automatique ; par défaut : `5`.              |
| `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](#request-fields) décrivent les 13 champs de premier niveau. Utilisez les noms indiqués ici, dont `aspectRatio` et `generateAudio`.

## Envoyer une tâche Seedance 2.0 Fast [#submit-a-seedance-20-task]

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.

```bash
curl https://api.wanapi.app/v1/videos \
  -H "Authorization: Bearer $WAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "bytedance/seedance-2.0-fast",
  "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.0 Fast [#query-a-seedance-20-task]

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](#poll-and-download-the-video).

```bash
curl "https://api.wanapi.app/v1/videos/$TASK_ID" \
  -H "Authorization: Bearer $WAN_API_KEY"
```

## Tarifs Seedance 2.0 Fast [#seedance-20-pricing]

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.

<SeedanceModelPricing model="findSeedanceModel('seedance-2-0-fast')" />

[Voir les tarifs et estimations Seedance 2.0 Fast](/fr/models/seedance-2-0-fast#pricing). Vérifiez l’estimation dans l’[espace d’essai](/fr/models/seedance-2-0-fast#playground) avant l’envoi.

## Champs de requête [#request-fields]

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.0-fast`.                                                                                                                                                                  |
| `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’à 9 images et 3 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`.                                                                                                                                         |
| `resolution`      | chaîne           | `480p`, `720p`. Par défaut : `720p`. Accepte aussi `854x480`, `1280x720` comme niveaux de résolution ; utilisez `aspectRatio` pour choisir le format.                                                         |
| `duration`        | entier           | 4–15 secondes de sortie, ou `-1` pour automatique. Par défaut : `5`.                                                                                                                                          |
| `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’à 3 URL HTTP(S)), `seed` (mêmes limites que le `seed` de premier niveau). `draft: true` n’est pas pris en charge. Les options inconnues sont rejetées. |

### Combinaisons d’entrées et limites des médias [#input-combinations-and-media-limits]

* Utilisez `image` pour une image de début, ou `frameImages` pour 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 `inputReferences` ou `providerOptions.bytedance.referenceAudio`.

* Le mode référence accepte jusqu’à 9 images, 3 vidéos et 3 clips audio, avec un maximum de 15 références au total.

* 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 ; moins de 30 MB ; 300–6000 pixels par côté ; format d’image 0.4–2.5.

* Vidéos : MP4 ou MOV ; 50 MB maximum par fichier ; 2–15 secondes par clip et 15 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–15 secondes par clip et 15 secondes maximum au total. Au moins une image ou vidéo de référence est requise.

* 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 [#frame-and-reference-examples]

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 [#first-and-last-frames]

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 :

```json
{
  "model": "bytedance/seedance-2.0-fast",
  "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 [#image-video-and-audio-references]

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.

```json
{
  "model": "bytedance/seedance-2.0-fast",
  "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
}
```

## Suivre la tâche et télécharger la vidéo [#poll-and-download-the-video]

Une tâche acceptée renvoie un objet comme celui-ci. Les identifiants et horodatages sont illustratifs :

```json
{
  "id": "task_EXAMPLE",
  "object": "video",
  "model": "bytedance/seedance-2.0-fast",
  "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é.

```json
{
  "id": "task_EXAMPLE",
  "object": "video",
  "model": "bytedance/seedance-2.0-fast",
  "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 :

```bash
curl "https://api.wanapi.app/v1/tasks/$TASK_ID/artifacts/video/content" \
  -H "Authorization: Bearer $WAN_API_KEY" \
  -o video.mp4
```

Si 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 :

```json
{
  "id": "task_EXAMPLE",
  "object": "video",
  "model": "bytedance/seedance-2.0-fast",
  "status": "failed",
  "error": {
    "code": "generation_failed",
    "message": "Video generation failed"
  }
}
```

## Facturation et gestion des échecs [#billing-and-failure-handling]

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](/fr/contact) si un envoi incertain nécessite une vérification.

[Télécharger le schéma OpenAPI Seedance 2.0 Fast](https://wanapi.app/models/seedance-2-0-fast/openapi.json).
