Vidéo & ressources
Créer une vidéo
Crée une tâche de génération vidéo
Vue d’ensemble
La génération vidéo est asynchrone. Une fois la requête envoyée, vous recevez un task_id et un poll_url, puis vous interrogez ce task jusqu’au résultat final.
Comportement de polling
Pour un polling fiable, utilisez exactement le poll_url renvoyé par la requête de création.
Si une réponse de création renvoie poll_url, appelez exactement cette URL. Lorsqu’elle pointe vers /v1/tasks/{id}, traitez-la comme l’endpoint fixe canonique de statut.
Comportement des modèles et des médias
Le comportement audio dépend du modèle et de l’opération. Une vidéo peut contenir du son sans sélecteur audio. Omettre un champ n’équivaut pas à envoyer false.
veo3.1etveo3.1-fastgénèrent toujours du son selon le contrat Gemini API. La génération vidéo dewan-2.6etwan-2.7ne permet pas non plus de désactiver le son. Omettezoutput_audioou utiliseztruesi la fiche du modèle le permet.hailuo-h3et les modèles vidéo Grok génèrent du son natif. N’ajoutez pas de sélecteur absent de la fiche du modèle.- Seedance 1.5/2.x et
viduq3-pro/viduq3-turboactivent le son par défaut et permettent une sortie silencieuse. PixVerse C1/V5.6/V6 désactivent le son par défaut. Utilisezoutput_audiouniquement pour les opérations qui le déclarent ; Vidu accepte aussi son champ booléen déclaréaudio. audio_url/audio_urlsfournissent une entrée ou une référence audio, pas un interrupteur de sortie. Le montage, le transfert de mouvement et de style peuvent conserver la piste d’origine. Conserver le son d’origine ne signifie pas le couper.
Consultez la fiche du modèle pour les valeurs autorisées et les tarifs audio. Les alias pris en charge outputAudio, generate_audio et le booléen audio doivent correspondre à output_audio lorsqu’ils sont combinés. Les contrôles varient selon la version et l’opération.
En production, privilégiez des URLs https publiques pour les images, vidéos et fichiers audio. Les modèles compatibles acceptent toujours les data: URLs, mais les gros payloads base64 compliquent les retries, l’observabilité et le débogage.
Corps de la requête
veo3.1ID du modele video. Utilisez les IDs de modèle affichés par TokenLab comme veo3.1, wan-2.7, happyhorse-1.0, viduq3, pixverse-v6 ou kling-3.0-video; choisissez text-to-video, image-to-video, reference-to-video ou d autres variantes avec operation. Voir le guide video et Models API.
PixVerse
- Modèle:
pixverse-c1,pixverse-v6,pixverse-v5.6 - Opérations:
text-to-video,image-to-video,start-end-to-video,reference-to-video - Sélecteur audio:
output_audio,falsepar défaut
Sur TokenLab, les modèles PixVerse ci-dessus n'acceptent pas operation=video-extension.
HappyHorse
- Modèle:
happyhorse-1.0 - Opérations:
text-to-video,image-to-video,reference-to-video,video-to-video - Sélecteur audio: Ne pas envoyer
output_audio
Description textuelle de la vidéo à générer. Ce champ est requis pour la plupart des modèles publics.
Opération vidéo à exécuter. Les valeurs acceptées sont text-to-video, image-to-video, reference-to-video, start-end-to-video, video-to-video, video-extension, audio-to-video et motion-control. TokenLab peut déduire l’opération à partir des entrées, mais une valeur explicite est recommandée en production.
URL de l’image de départ pour les flux image-vers-vidéo. Pour la compatibilité la plus large, privilégiez image_url.
Image inline au format data: (par exemple data:image/jpeg;base64,...). Les modèles compatibles la prennent en charge, mais image_url reste l’option la plus robuste.
Images de référence pour les flux avec conditionnement dédié. Le nombre autorisé dépend du modèle. Pour seedance-2.0 et seedance-2.0-fast, TokenLab prend actuellement en charge jusqu'à 9 images de référence, ainsi que jusqu'à 3 vidéos de référence et 3 audios de référence. Pour le choix du modèle, les limites 4K et les notes Mini, consultez le guide des modèles vidéo Seedance 2.0. Les URL publiques https sont recommandées ; les modèles compatibles acceptent aussi les URL data:. Pour grok-imagine-video, reference-to-video accepte jusqu’à 7 références image et duration est limitée à 10 secondes. grok-imagine-video-1.5-preview est limité à image-to-video et n’accepte pas les références image.
ID de matériau Seedance TokenLab renvoyé par Créer un matériau. Utilisez-le après le statut ACTIVE avec les modèles Seedance qui peuvent utiliser la bibliothèque de matériaux TokenLab.
Plusieurs ID de matériaux Seedance TokenLab. Ils partagent la limite de références image Seedance avec reference_images; le modèle sélectionné doit pouvoir utiliser la bibliothèque de matériaux TokenLab.
Les URL d’images ordinaires servent d’entrées et ne créent pas automatiquement de matériaux réutilisables. Créez-les via l’API de matériaux, puis utilisez leurs ID TokenLab ou URI asset://asset-YYYYMMDDHHMMSS-xxxxx. Si des matériaux explicites renvoient 409 seedance_material_preparing, vérifiez les inactive_asset_ids et réessayez après leur passage à ACTIVE.
Champ facultatif pour les modèles qui distinguent les références asset et style.
Utilisez kling_elements uniquement si les détails publics actuels du modèle mentionnent ce champ. Fournissez des images et 1 à 3 éléments avec name, une description facultative et 2 à 4 element_input_urls, référencés par @name dans prompt. Ne combinez pas ces éléments avec output_audio=true.
URL publique de la vidéo source. Requise pour les flux video-to-video basés sur une URL vidéo et pour motion-control ; certains flux dérivés utilisent plutôt task_id.
Entrées vidéo de référence supplémentaires pour les modèles qui prennent en charge un conditionnement multimodal. Le nombre autorisé dépend du modèle. Pour seedance-2.0 et seedance-2.0-fast, TokenLab prend actuellement en charge jusqu'à 3 vidéos de référence.
URL audio publique pour une opération pilotée par l’audio ou une référence audio prise en charge par le modèle.
Entrées audio de référence supplémentaires pour les modèles qui prennent en charge un conditionnement multimodal. Le nombre autorisé dépend du modèle. Pour seedance-2.0 et seedance-2.0-fast, TokenLab prend actuellement en charge jusqu'à 3 audios de référence.
Identifiant de tâche utilisé par certains flux de continuation, d’extension ou dérivés.
Offset de départ spécifique au modèle pour certains flux video-extension.
Multiplicateur ou nombre de répétitions spécifique au modèle pour certains flux video-extension.
Durée de la vidéo générée en secondes. Pour les modèles Seedance 1.5/2.0, l’omission de ce champ utilise 5; envoyer -1 laisse le modèle choisir dans sa plage prise en charge, et la facturation est estimée de façon conservatrice jusqu’à la fin de la tâche.
Alias compatible de duration. Si seconds et duration sont envoyés ensemble, ils doivent être identiques. Pour Seedance, seconds=-1 a le même sens de durée automatique que duration=-1.
Format d’image canonique, par exemple adaptive, 16:9, 9:16, 1:1, 4:3, 3:4 ou 21:9. Seedance utilise adaptive par défaut lorsque ce champ est omis.
Résolution de sortie dépendante du modèle. Seedance utilise 720p par défaut ; seedance-2.0 prend en charge 480p, 720p, 1080p et 4k, tandis que seedance-2.0-fast et seedance-2.0-mini sont limités à 480p et 720p.
Sélecteur de sortie audio pour les opérations qui le déclarent. Sans valeur, le comportement par défaut du modèle s’applique. false demande une sortie silencieuse uniquement si elle est permise. Voir les précisions ci-dessus et la fiche du modèle.
Sélecteur du workflow Draft de Seedance 1.5 Pro. Utilisez draft=true avec les modèles Seedance compatibles avec les tâches draft. Ne l'envoyez pas avec draft_task_id.
ID de tâche draft Seedance 1.5 Pro à promouvoir. Envoyez l'ID d'une tâche draft précédente pour créer la vidéo finale ; ce n'est pas un champ vidéo générique.
Alias compatible de aspect_ratio. Si ratio et aspect_ratio sont envoyés ensemble, ils doivent être identiques.
Alias compatible de output_audio. Si generate_audio, output_audio et outputAudio apparaissent ensemble, toutes les valeurs doivent correspondre.
Fenêtre optionnelle d’expiration d’exécution en secondes pour les modèles vidéo compatibles. Seedance utilise 172800 secondes par défaut lorsque le champ est omis.
Priorité optionnelle de tâche de 0 à 9 pour les modèles vidéo compatibles. Ne combinez pas priority avec service_tier=flex.
Identifiant optionnel de sécurité de l’utilisateur final pour les modèles vidéo compatibles. S’il est omis pour Seedance, TokenLab utilise user lorsqu’il est fourni.
default est accepté comme no-op compatible pour les modèles Seedance 2.0. flex n’est autorisé que lorsque le modèle sélectionné le prend en charge.
Nombre optionnel d’images pour les modèles vidéo compatibles. Les modèles Seedance 2.0 et Seedance 1.5 Pro ne prennent pas ce champ en charge.
Sélecteur optionnel de caméra fixe pour les modèles vidéo compatibles. Les modèles Seedance 2.0 ne prennent pas ce champ en charge.
Fréquence d’images (1–120). N’a d’effet que sur les modèles qui l’exposent publiquement.
Éléments à éviter dans la génération.
Graine aléatoire pour une génération reproductible. Seedance utilise -1 comme graine aléatoire lorsque le champ est omis.
Intensité de suivi du prompt (0–20), effective uniquement sur les modèles qui la prennent en charge.
Intensité du mouvement (0–1), effective uniquement sur les modèles compatibles.
URL de l’image de premier frame, ou entrée image compatible, pour start-end-to-video.
URL de l’image de dernier frame, ou entrée image compatible, pour start-end-to-video.
Niveau de taille propre au modèle pour les modèles vidéo compatibles.
Option de filigrane pour les modèles qui l’exposent. Seedance utilise false par défaut lorsque le champ est omis.
Sélecteur d’effet spécifique au modèle pour certains flux d’édition ou d’effets.
Identifiant unique de l’utilisateur final. Pour Seedance, TokenLab utilise aussi cette valeur comme safety_identifier lorsque ce champ est omis.
Notes de compatibilité
- Les champs publics canoniques utilisent le snake_case :
reference_images,reference_image_typeetoutput_audio. - Les champs publics canoniques restent en snake_case :
aspect_ratio,output_audio,reference_imagesetreference_image_type. - Pour compatibilité, TokenLab accepte aussi
ratio,generate_audio,outputAudio,seconds,referenceImagesetreferenceImageType. - Si des champs canoniques et des alias sont envoyés ensemble, leurs valeurs doivent correspondre ; les alias en conflit sont rejetés avant la création de la tâche.
Bonnes pratiques d’entrée
- Pour
image_url,reference_images,video_urletaudio_url, privilégiez des URLshttpspubliques. - Évitez, si possible, de mélanger base64 inline et URLs distantes dans une même requête.
- Assurez-vous que les URLs média distantes restent valides pendant la fenêtre de retry et la création asynchrone.
Paramètres Seedance
Pour les modèles Seedance 1.5/2.0, l’endpoint unifié suit les noms de champs TokenLab tout en acceptant les alias compatibles seconds, ratio et generate_audio. Lorsque les sélecteurs Seedance sont omis, ces valeurs par défaut sont utilisées : duration=5, resolution=720p, aspect_ratio=adaptive, output_audio=true, watermark=false, return_last_frame=false, execution_expires_after=172800, priority=0 et seed=-1.
duration=-1 ou seconds=-1 laisse Seedance choisir la durée de sortie dans la plage prise en charge par le modèle. TokenLab estime le coût de façon conservatrice avant la fin de la tâche, puis règle selon l’usage de la tâche terminée lorsque disponible. service_tier=default est accepté comme no-op compatible pour Seedance 2.0 ; service_tier=flex, frames et camera_fixed sont rejetés lorsque le modèle sélectionné ne les prend pas en charge.
Exemple Seedance
curl -X POST "https://api.tokenlab.sh/v1/videos/generations" \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.5",
"prompt": "A sleek product reveal with cinematic camera movement",
"operation": "text-to-video",
"duration": -1,
"aspect_ratio": "adaptive",
"resolution": "720p",
"output_audio": true
}'Réponse
Les champs de résultat, d’erreur, d’horodatage et de modèle sont renvoyés lorsqu’ils sont disponibles pour la tâche.
Identifiant canonique de tâche asynchrone. Lorsque id et task_id sont tous les deux présents, considérez-les comme la même tâche.
Identifiant unique du task pour le polling.
URL de polling recommandée pour ce task. Utilisez ce chemin tel quel lors des vérifications d’état.
ID de transaction de facturation TokenLab lorsque le règlement est déjà terminé. Il s'agit de l'identifiant utilisé pour le dashboard / le rapprochement, distinct de l'id / task_id asynchrone.
Statut de la tâche : pending, processing, completed, failed.
Timestamp Unix de création de la tâche.
Modèle utilisé.
Charge utile d'une seule vidéo avec url, duration, width et height lorsque disponible.
Plusieurs charges utiles vidéo lorsque la tâche de génération renvoie plus d'une sortie.
Message d'erreur (en cas d'échec).
Requête
curl -X POST "https://api.tokenlab.sh/v1/videos/generations" \
-H "Authorization: Bearer sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"model": "veo3.1",
"prompt": "A cat walking through a garden, cinematic lighting",
"operation": "text-to-video",
"duration": 4,
"aspect_ratio": "16:9"
}'Réponse
{
"id": "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"task_id": "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"poll_url": "/v1/tasks/ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"status": "pending",
"model": "veo3.1",
"created": 1706000000
}Image vers vidéo
response = requests.post(
"https://api.tokenlab.sh/v1/videos/generations",
headers={"Authorization": "Bearer sk-your-api-key"},
json={
"model": "hailuo-2.3-standard",
"prompt": "The scene begins from the provided image and adds gentle natural motion.",
"operation": "image-to-video",
"image_url": "https://example.com/image.jpg",
"duration": 6,
"resolution": "768p"
}
)Éléments Kling 3.0
Utilisez kling_elements uniquement si les détails publics actuels du modèle mentionnent ce champ. Fournissez des images et 1 à 3 éléments avec name, une description facultative et 2 à 4 element_input_urls, référencés par @name dans prompt. Ne combinez pas ces éléments avec output_audio=true.
Référence vers vidéo
Utilisez operation=reference-to-video lorsque le modèle prend en charge un conditionnement de référence dédié. Dans le détails du modèle de TokenLab, les références d'image utilisent reference_images, tandis que les vidéos et audios de référence multimodaux utilisent video_urls et audio_urls. Pour seedance-2.0 et seedance-2.0-fast, TokenLab prend actuellement en charge jusqu'à 9 images de référence, ainsi que jusqu'à 3 vidéos de référence et 3 audios de référence. Pour le choix du modèle, les limites 4K et les notes Mini, consultez le guide des modèles vidéo Seedance 2.0. duration contrôle uniquement la durée de sortie générée ; il ne fixe pas de limite distincte pour la durée de la vidéo de référence en entrée. Pour grok-imagine-video, reference-to-video accepte jusqu’à 7 références image (reference_images ou image_urls) et duration est limitée à 10 secondes. Ne combinez pas les références image avec des entrées de première frame image_url / image. grok-imagine-video-1.5-preview est limité à image-to-video.
response = requests.post(
"https://api.tokenlab.sh/v1/videos/generations",
headers={"Authorization": "Bearer sk-your-api-key"},
json={
"model": "veo3.1",
"prompt": "Keep the same subject identity and palette while adding subtle motion.",
"operation": "reference-to-video",
"reference_images": [
"https://example.com/ref-a.jpg",
"https://example.com/ref-b.jpg"
],
"reference_image_type": "asset",
"duration": 8,
"resolution": "720p",
"aspect_ratio": "9:16"
}
)Contrôle début / fin
Utilisez start_image et end_image pour contrôler la première et la dernière image.
response = requests.post(
"https://api.tokenlab.sh/v1/videos/generations",
headers={"Authorization": "Bearer sk-your-api-key"},
json={
"model": "viduq2-pro",
"operation": "start-end-to-video",
"start_image": "https://example.com/day.jpg",
"end_image": "https://example.com/night.jpg",
"duration": 5,
"resolution": "720p",
"aspect_ratio": "16:9"
}
)Vidéo vers vidéo
Pour le video-to-video de grok-imagine-video, envoyez une URL .mp4 HTTPS publique dans video_url. Vous pouvez définir resolution sur 480p ou 720p; duration et aspect_ratio ne sont pas acceptés pour ce flux d’édition.
Si un modèle accepte une vidéo existante comme entrée principale, utilisez operation=video-to-video.
response = requests.post(
"https://api.tokenlab.sh/v1/videos/generations",
headers={"Authorization": "Bearer sk-your-api-key"},
json={
"model": "grok-imagine-video",
"operation": "video-to-video",
"video_url": "https://example.com/source.mp4",
"prompt": "Enhance the clip while preserving the original motion."
}
)Contrôle de mouvement
Quand un modèle exige à la fois une image de sujet et une vidéo de mouvement de référence, utilisez operation=motion-control. TokenLab normalise la forme publique image_url + video_url vers le format motion-control de ce modèle.
response = requests.post(
"https://api.tokenlab.sh/v1/videos/generations",
headers={"Authorization": "Bearer sk-your-api-key"},
json={
"model": "kling-3.0-motion-control",
"operation": "motion-control",
"prompt": "Keep the subject stable while following the motion reference.",
"image_url": "https://example.com/subject.png",
"video_url": "https://example.com/motion.mp4",
"resolution": "720p"
}
)Découverte des modèles
L’inventaire vidéo public et les opérations prises en charge évoluent dans le temps. Utilisez la Models API comme référence actuelle avant d’implémenter un flux propre à un modèle :
curl "https://api.tokenlab.sh/v1/models?recommended_for=video"
curl "https://api.tokenlab.sh/v1/models/veo3.1"Lisez la réponse de détail du modèle avant de dépendre d’opérations ou de champs propres au modèle. Les opérations comme audio-to-video et video-extension sont propres à certains modèles ; confirmez leur disponibilité actuelle à cet endroit plutôt que de vous appuyer sur les exemples statiques de cette page.
Autorisation
BearerAuth Authentification par clé API. Créez ou gérez vos clés API dans Dashboard > API > API Keys.
Emplacement: header
En-têtes
Politique de livraison par requête. Remplace les valeurs par défaut de la clé API et de l'espace de travail. Tente automatiquement TokenLab Verified en premier et peut basculer une fois vers Official uniquement avant la sortie, l'acceptation de la requête ou la création de ressource persistante.
Valeurs possibles
- "auto"
- "verified"
- "official"
Corps de la requête
application/json
Réponse
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json