Vidéo & ressources
Créer une vidéo
Démarrer une tâche de génération vidéo
Aperçu
La génération de vidéo prend du temps. Une réponse de création réussie renvoie un ID de tâche et une poll_url ; utilisez cette URL pour vérifier la progression et récupérer le résultat.
Vérifier le statut de la tâche
Appelez la poll_url présente dans la réponse de création. id et task_id identifient la même tâche ; vous pouvez également utiliser GET /v1/tasks/{id}.
Entrée audio et média
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.
Utilisez des URL https accessibles publiquement pour les images, les vidéos et l'audio. Certains modèles acceptent également des URL data: en ligne ; les URL sont plus fiables pour les fichiers volumineux.
Corps de la requête
veo3.1ID du modèle vidéo. Utilisez l'API Models pour connaître les modèles actuels et operation pour les modes de génération texte-vers-vidéo, image-vers-vidéo, et autres.
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. Requis pour la plupart des modèles vidéo publics.
Mode de génération. Les valeurs prises en charge incluent text-to-video, image-to-video, reference-to-video, start-end-to-video, video-to-video, video-extension, audio-to-video, et motion-control. Si omis, TokenLab l'infère à partir des entrées. L'envoyer explicitement permet de détecter plus tôt les champs incompatibles.
URL accessible publiquement de l'image de départ pour la génération image-vers-vidéo. Pour les ressources matérielles Seedance, vous pouvez également transmettre asset://asset-YYYYMMDDHHMMSS-xxxxx pour utiliser un matériel TokenLab ACTIVE comme première image. Pour une meilleure compatibilité entre les modèles, préférez image_url avec une URL https.
Image en ligne sous forme d'URL de données (par exemple, data:image/jpeg;base64,...). Pris en charge par les modèles compatibles, mais image_url offre la plus large compatibilité parmi les modèles vidéo publics.
Entrées d'images de référence pour les modèles prenant en charge le conditionnement de référence dédié. Le nombre pris en charge 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. Chaque référence Seedance peut être une URL https ou un URI asset://asset-YYYYMMDDHHMMSS-xxxxx pour un matériel TokenLab ACTIVE. Pour la sélection de modèle, les limites 4K et les notes Mini, consultez le guide des modèles vidéo Seedance 2.0. Les URL https publiques sont recommandées pour les entrées non matérielles ; les modèles compatibles acceptent également les URL data: en ligne. Pour grok-imagine-video, reference-to-video accepte jusqu'à 7 références d'image et la duration est plafonnée à 10 secondes. grok-imagine-video-1.5-preview est uniquement image-vers-vidéo et n'accepte pas d'images de référence.
ID de ressource matérielle TokenLab Seedance renvoyé par Créer une ressource matérielle. Utilisez-le une fois que la ressource est ACTIVE avec les modèles Seedance pouvant utiliser la bibliothèque de matériaux TokenLab. Ce champ est une entrée de référence générique ; pour attribuer explicitement la sémantique de première image, dernière image ou image de référence, placez asset://<material_asset_id> dans start_image, end_image ou reference_images à la place.
Plusieurs ID de ressources matérielles TokenLab Seedance. Ils partagent la même limite de référence d'image Seedance que reference_images ; le modèle sélectionné doit être capable d'utiliser la bibliothèque de matériaux TokenLab.
Les URL d'image ordinaires sont transmises en tant qu'entrées d'image ; elles ne créent pas de ressources matérielles réutilisables. Créez des ressources réutilisables via l'API de matériaux, puis utilisez leurs ID TokenLab ou leurs URI asset://asset-YYYYMMDDHHMMSS-xxxxx. Si des matériaux explicites renvoient 409 seedance_material_preparing, vérifiez les inactive_asset_ids renvoyés et réessayez une fois que ces matériaux sont devenus ACTIVE.
Rôle de référence optionnel pour les modèles qui distinguent les références asset et style.
Utilisez kling_elements uniquement lorsque les détails publics actuels du modèle sélectionné listent ce champ. Fournissez des entrées d'image et 1 à 3 éléments, chacun avec un name, une description optionnelle et 2 à 4 element_input_urls ; référencez-les sous la forme @name dans le prompt. Ne combinez pas les références d'élément avec output_audio=true.
URL accessible publiquement de la vidéo source. Requis pour les flux video-to-video basés sur une URL vidéo et pour motion-control ; certains flux dérivés utilisent task_id à la place.
Entrées vidéo de référence supplémentaires pour les modèles prenant en charge le conditionnement de référence multimodal. Le nombre pris en charge 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 sélectionné.
Entrées audio de référence supplémentaires pour les modèles prenant en charge le conditionnement de référence multimodal. Le nombre pris en charge 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.
Décalage de début d'extension spécifique au modèle utilisé par certains flux video-extension.
Multiplicateur d'extension ou nombre de répétitions spécifique au modèle utilisé par certains flux video-extension.
Durée de la vidéo générée en sortie, en secondes. Pour les modèles Seedance 1.5/2.0, l'omission de ce champ utilise 5 ; envoyer -1 permet au modèle de choisir dans sa plage de durée prise en charge, et la facturation est estimée de manière prudente jusqu'à ce que la tâche soit terminée.
Alias de compatibilité pour duration. Si seconds et duration sont tous deux envoyés, ils doivent être identiques. Pour Seedance, seconds=-1 a la même signification de durée automatique que duration=-1.
Format d'image, par exemple adaptive, 16:9, 9:16, 1:1, 4:3, 3:4, ou 21:9. Seedance utilise adaptive par défaut lorsqu'il 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. L'omission suit la valeur par défaut du modèle ; false demande une sortie silencieuse uniquement lorsque cela est autorisé. Voir le comportement audio ci-dessus et les détails du modèle sélectionné.
Activer le mode brouillon Seedance 1.5 Pro. Ne pas envoyer avec draft_task_id.
ID de tâche de promotion de brouillon Seedance 1.5 Pro. Envoyez un ID de tâche de brouillon précédent pour créer la vidéo finale ; ce n'est pas un champ vidéo générique.
Alias de compatibilité pour aspect_ratio. Si ratio et aspect_ratio sont tous deux envoyés, ils doivent être identiques.
Alias de compatibilité pour output_audio. Si generate_audio, output_audio, et outputAudio apparaissent ensemble, toutes les valeurs doivent correspondre.
Expiration de l'exécution optionnelle en secondes pour les modèles vidéo compatibles. Seedance utilise 172800 secondes par défaut lorsqu'il est omis.
Priorité de tâche optionnelle de 0 à 9 pour les modèles vidéo compatibles. Ne combinez pas priority avec service_tier=flex.
Identifiant de sécurité de l'utilisateur final optionnel pour les modèles vidéo compatibles. Si omis pour Seedance, TokenLab utilise user lorsqu'il est fourni.
default est accepté comme une opération sans effet de compatibilité pour les modèles Seedance 2.0. flex n'est autorisé que lorsque le modèle sélectionné le prend en charge.
Nombre d'images optionnel pour les modèles vidéo compatibles. Les modèles Seedance 2.0 et Seedance 1.5 Pro ne prennent pas en charge ce champ.
Sélecteur de caméra fixe optionnel pour les modèles vidéo compatibles. Les modèles Seedance 2.0 ne prennent pas en charge ce champ.
Images par seconde (1-120) pour les modèles qui exposent le contrôle FPS.
Ce qu'il faut éviter dans la vidéo générée.
Graine aléatoire pour une génération reproductible. Seedance utilise -1 pour une graine aléatoire lorsqu'il est omis.
Force d'adhérence au prompt (0-20) pour les modèles qui exposent un contrôle de type CFG.
Intensité du mouvement (0-1) pour les modèles qui l'exposent.
URL ou entrée d'image compatible pour la première image dans start-end-to-video.
URL ou entrée d'image compatible pour la dernière image dans start-end-to-video.
Niveau de taille spécifique au modèle pour les modèles vidéo compatibles.
Basculement de filigrane optionnel pour les modèles qui l'exposent. Seedance utilise false par défaut lorsqu'il est omis.
Sélecteur d'effet spécifique au modèle pour les flux d'édition spécialisés.
Un identifiant unique pour l'utilisateur final. Pour Seedance, TokenLab utilise également cette valeur comme safety_identifier lorsque ce champ est omis.
Noms de champs compatibles
- Les champs principaux utilisent
snake_case:aspect_ratio,output_audio,reference_images, etreference_image_type. - Pour la compatibilité, TokenLab accepte également
ratio,generate_audio,outputAudio,seconds,referenceImages, etreferenceImageType. - Si un champ principal et son alias sont tous deux envoyés, leurs valeurs doivent correspondre.
- Si
operationest omis, TokenLab l'infère à partir des entrées.
Entrée média
- Préférez les URL
httpsaccessibles publiquement aux base64 en ligne pourimage_url,reference_images,video_url, etaudio_url. - Évitez de mélanger le base64 en ligne et les URL distantes dans la même requête.
- Gardez les URL de médias distants valides jusqu'au début du traitement de la tâche.
Paramètres Seedance
Pour les modèles Seedance 1.5/2.0, le point de terminaison unifié suit les noms de champs TokenLab tout en acceptant les alias de compatibilité seconds, ratio, et generate_audio. Les sélecteurs Seedance omis utilisent ces valeurs par défaut : 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 permet à Seedance de choisir la durée de sortie dans la plage prise en charge par le modèle. TokenLab estime le coût de manière prudente avant que la tâche ne soit terminée, puis effectue le règlement à partir de l'utilisation de la tâche terminée lorsqu'elle est disponible. service_tier=default est accepté pour Seedance 2.0 comme une opération sans effet de compatibilité ; 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 décrivant les résultats, les erreurs, les horodatages et le modèle sont renvoyés lorsqu'ils sont disponibles pour la tâche.
Identifiant de tâche asynchrone canonique. Traitez-le comme la même identité que task_id lorsque les deux sont présents.
Identifiant de tâche asynchrone canonique pour le sondage. Il s'agit de la même identité de tâche utilisée par les points de terminaison de statut asynchrone.
URL de sondage préférée pour cette tâche. Utilisez ce chemin exact lors de la vérification du statut.
ID de transaction de facturation TokenLab lorsque le règlement est déjà terminé. Il s'agit de l'identifiant de transaction du tableau de bord/comptabilité et il est distinct de l'ID / task_id asynchrone.
Statut de la tâche : pending, processing, completed, failed.
Horodatage Unix de création de la tâche.
Modèle utilisé.
URL vidéo directe lorsque le résultat est déjà disponible.
Résultat vidéo unique avec url, duration, width, et height lorsqu'il est disponible.
Résultats vidéo multiples lorsque la tâche renvoie plus d'une sortie.
Message d'erreur ou objet d'erreur structuré lorsque la tâche échoue.
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",
"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 lorsque les détails publics actuels du modèle sélectionné listent ce champ. Fournissez des entrées d'image et 1 à 3 éléments, chacun avec un name, une description optionnelle et 2 à 4 element_input_urls ; référencez-les sous la forme @name dans le prompt. Ne combinez pas les références d'élément avec output_audio=true.
Référence vers vidéo
Utilisez operation=reference-to-video lorsque le modèle prend en charge le conditionnement de référence dédié. Dans les requêtes 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 la sélection de 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 longueur de la sortie générée ; elle ne définit pas de limite distincte pour la durée de l'entrée vidéo de référence. Pour grok-imagine-video, reference-to-video accepte jusqu'à 7 références d'image (reference_images ou image_urls) et la duration est plafonnée à 10 secondes. Ne combinez pas les images de référence avec les entrées de première image image_url / image. grok-imagine-video-1.5-preview est uniquement image-vers-vidéo.
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, palette, and framing while adding subtle natural 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 des images clés
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 grok-imagine-video vidéo-vers-vidéo, envoyez une URL .mp4 HTTPS publique dans video_url et le prompt d'édition. Omettez resolution, duration, et aspect_ratio pour cette opération.
Utilisez operation=video-to-video lorsque le modèle accepte une vidéo existante comme entrée principale.
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 du mouvement
Utilisez operation=motion-control lorsque le modèle attend à la fois une image de sujet et une vidéo de référence de mouvement. TokenLab mappe la forme de requête image_url + video_url publique au format de requête de contrôle de mouvement pour 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 identity stable while following the motion reference.",
"image_url": "https://example.com/subject.png",
"video_url": "https://example.com/motion.mp4",
"resolution": "720p"
}
)Découverte de modèles
L'inventaire vidéo public et les opérations prises en charge changent avec le temps. Utilisez l'API Models pour vérifier la prise en charge actuelle avant de configurer un flux spécifique au 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 détaillée du modèle avant de vous fier à des opérations ou des champs spécifiques au modèle. Les opérations telles que audio-to-video et video-extension sont spécifiques au modèle ; confirmez leur disponibilité actuelle à cet endroit plutôt que de vous fier aux 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