Génération vidéo
Générez des clips vidéo cinématiques avec Seedance 2.5 — texte-vers-vidéo, image-vers-vidéo et vidéo-vers-vidéo.
Utiliser Portrait en entrée
Référencez des portraits virtuels ou de personnes réelles dans la génération vidéo en transmettant asset://<asset-id> comme entrée multimodale. asset:// n'est pris en charge que par seedance-2.0 / seedance-2.0-fast — pas seedance-2.5. Voir le guide Portrait pour le flux d'intégration de bout en bout.
Vue d’ensemble
Générez de courts clips vidéo cinématiques à partir d'un prompt textuel, d'images de référence ou d'une vidéo de référence à l'aide des modèles Seedance. seedance-2.5 est le produit phare actuel et couvre le texte-vers-vidéo, l'image-vers-vidéo et la vidéo-vers-vidéo (pilotez un nouveau clip à partir d'une vidéo de référence via un reference_video).
Créer une vidéo
Submit a video generation task using the Videos API:
| 1 | curl https://api.alltoken.ai/v1/videos/generations -H "Authorization: Bearer $ALLTOKEN_API_KEY" -H "Content-Type: application/json" -d '{ |
| 2 | "model": "seedance-2.5", |
| 3 | "prompt": "A serene mountain lake at sunrise, cinematic 4K", |
| 4 | "ratio": "16:9", |
| 5 | "duration": 5, |
| 6 | "resolution": "720p" |
| 7 | }' |
Matériaux de référence
Au-delà d'un simple prompt textuel, Seedance peut recevoir des images, des vidéos et de l'audio de référence via le tableau content[]. Chaque élément possède un type et un role :
| Matériau | type | role disponibles |
|---|---|---|
| Image | image_url | reference_image, first_frame, last_frame |
| Vidéo | video_url | reference_video |
| Audio | audio_url | reference_audio |
Deux façons de fournir chaque matériau, et elles peuvent être combinées au sein d'une même requête :
- Déjà sur un hôte public — transmettez l'URL
http(s)dans l'objet de type, par exemple{ "type": "image_url", "image_url": { "url": "https://..." }, "role": "reference_image" }. Elle doit être accessible publiquement en amont (pas de liens privés ni signés uniquement). - Fichier local — pré-signez et téléversez le fichier, puis référencez l'
upload_idretourné :{ "type": "image_url", "upload_id": "upl_...", "role": "reference_image" }.
Avertissement
La méthode base64 data: intégrée a été supprimée le 2026-08-06. Une requête vidéo transportant un média data: retourne désormais 400 inline_media_removed. Migrez en remplaçant l'URL intégrée par un upload_id — tous les autres champs restent identiques. Les URL http(s) et upload_id ne sont pas affectées.
| 1 | - { "type": "image_url", "image_url": { "url": "data:image/png;base64,iVBOR..." }, "role": "reference_image" } |
| 2 | + { "type": "image_url", "upload_id": "upl_9f3c...", "role": "reference_image" } |
Rôles, valeurs par défaut et règles des trames
Vous pouvez écrire type sous la forme courte image / video / audio (la passerelle la normalise), mais omettre role applique une valeur par défaut — et pour les images, cette valeur par défaut n'est pas celle à laquelle vous pourriez vous attendre :
type court | Normalisé en | role par défaut si omis |
|---|---|---|
image | image_url | first_frame — et non reference_image ! |
video | video_url | reference_video |
audio | audio_url | reference_audio |
Ainsi, { "type": "image", "upload_id": "upl_..." } est traité comme une première trame, et non comme une image de référence. Préférez la forme longue avec un role explicite et ne comptez pas sur les valeurs par défaut. La réponse de tâche GET renvoie le input_type détecté, ce qui vous permet de vérifier comment la passerelle a lu votre content[].
Avertissement
Les trames et les références visuelles ne peuvent pas être combinées. En amont, elles sont traitées comme des paradigmes mutuellement exclusifs : first_frame / last_frame (définissent l'image de début/de fin) face à reference_image / reference_video (fournissent une référence de style ou de sujet). Combiner les deux types de matériau visuel dans une même requête retourne 400 invalid_request. reference_audio fait exception — « une image comme première trame + un audio comme référence » est une combinaison prise en charge.
Contraintes sur les entrées
| Contrainte | Valeur | Origine de la limite |
|---|---|---|
| Nombre de pixels de la vidéo de référence | ≥ 409,600 (soit 640×640 et au-delà) | Modèle en amont — transmise telle quelle |
| Taille de téléversement par fichier | Voir les plafonds par purpose de Téléversement de médias | AllToken |
| Nombre d'images de référence | La documentation en amont indique 9 ; nous n'imposons pas de limite | En amont |
Lorsqu'une vidéo de référence est trop petite, l'erreur en amont est transmise sans modification (par exemple InvalidParameter: ... video pixel count ... must be greater than or equal to 409600 ...). Notez que frames et camera_fixed ne sont pas pris en charge par la série 2.0 et sont ignorés silencieusement plutôt que rejetés.
Modèles pris en charge
Appelez GET /videos/models pour la liste à jour. seedance-2.5 est le produit phare actuel (texte-vers-vidéo, image-vers-vidéo et vidéo-vers-vidéo) ; les références de portrait asset:// restent sur la gamme 2.0.
| Modèle | Idéal pour | Référence de portrait asset:// |
|---|---|---|
seedance-2.5 | Produit phare — texte / image / vidéo-vers-vidéo | ❌ Non pris en charge (le portrait est réservé à la 2.0) |
seedance-2.0 / seedance-2.0-fast | Workflows Portrait (asset://) | ✅ Pris en charge |
seedance-1.5-pro | Génération précédente | ❌ Non pris en charge (utilisez des URL d'image simples) |
Voir le guide Portrait pour savoir comment obtenir un asset_id.
Paramètres
model—"seedance-2.5"(produit phare),"seedance-2.0","seedance-2.0-fast"ou"seedance-1.5-pro"; appelezGET /videos/modelspour la liste à jourprompt— text description of the desired videoratio—"16:9","9:16","4:3","3:4","21:9","1:1", or"adaptive"duration— length in seconds;-1lets the model choose automaticallyresolution—"480p","720p", or"1080p"content— multimodal input array for image-to-video or references, for example{ "type": "image_url", "image_url": { "url": "..." }, "role": "first_frame" }. Images containing real human faces must go through Portrait first — passasset://<asset_id>after onboarding (see Portrait guide); public URLs of real-person images may be rejected upstream for deepfake / consent compliance.
Vérifier le statut
Video generation is asynchronous. Poll for status:
$curl https://api.alltoken.ai/v1/videos/generations/{task_id} -H "Authorization: Bearer $ALLTOKEN_API_KEY"The response includes status (queued, processing, completed, failed, expired, or cancelled) and a download URL when complete.
Annuler une tâche
Cancel a queued or processing task:
$curl -X POST https://api.alltoken.ai/v1/videos/generations/{task_id}/cancel -H "Authorization: Bearer $ALLTOKEN_API_KEY"Tasks already completed, failed, or cancelled cannot be cancelled.