TokenLab

Vidéo & ressources

Créer une vidéo

Démarrer une tâche de génération vidéo

POST
/v1/videos/generations

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.1 et veo3.1-fast génèrent toujours du son selon le contrat Gemini API. La génération vidéo de wan-2.6 et wan-2.7 ne permet pas non plus de désactiver le son. Omettez output_audio ou utilisez true si la fiche du modèle le permet.
  • hailuo-h3 et 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-turbo activent le son par défaut et permettent une sortie silencieuse. PixVerse C1/V5.6/V6 désactivent le son par défaut. Utilisez output_audio uniquement pour les opérations qui le déclarent ; Vidu accepte aussi son champ booléen déclaré audio.
  • audio_url / audio_urls fournissent 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

modelstringpar défaut: veo3.1

ID 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, false par 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
promptstring

Description textuelle de la vidéo à générer. Requis pour la plupart des modèles vidéo publics.

operationstring

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.

image_urlstring

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.

imagestring

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.

reference_imagesarray

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.

material_asset_idstring

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.

material_asset_idsarray

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.

reference_image_typestring

Rôle de référence optionnel pour les modèles qui distinguent les références asset et style.

kling_elementsarray

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.

video_urlstring

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.

video_urlsarray

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.

audio_urlstring

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é.

audio_urlsarray

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.

task_idstring

Identifiant de tâche utilisé par certains flux de continuation, d'extension ou dérivés.

extend_atinteger

Décalage de début d'extension spécifique au modèle utilisé par certains flux video-extension.

extend_timesstring

Multiplicateur d'extension ou nombre de répétitions spécifique au modèle utilisé par certains flux video-extension.

durationinteger

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.

secondsinteger

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.

aspect_ratiostring

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.

resolutionstring

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.

output_audioboolean

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é.

draftboolean

Activer le mode brouillon Seedance 1.5 Pro. Ne pas envoyer avec draft_task_id.

draft_task_idstring

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.

ratiostring

Alias de compatibilité pour aspect_ratio. Si ratio et aspect_ratio sont tous deux envoyés, ils doivent être identiques.

generate_audioboolean

Alias de compatibilité pour output_audio. Si generate_audio, output_audio, et outputAudio apparaissent ensemble, toutes les valeurs doivent correspondre.

execution_expires_afterinteger

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.

priorityinteger

Priorité de tâche optionnelle de 0 à 9 pour les modèles vidéo compatibles. Ne combinez pas priority avec service_tier=flex.

safety_identifierstring

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.

service_tierstring

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.

framesinteger

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.

camera_fixedboolean

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.

fpsinteger

Images par seconde (1-120) pour les modèles qui exposent le contrôle FPS.

negative_promptstring

Ce qu'il faut éviter dans la vidéo générée.

seedinteger

Graine aléatoire pour une génération reproductible. Seedance utilise -1 pour une graine aléatoire lorsqu'il est omis.

cfg_scalenumber

Force d'adhérence au prompt (0-20) pour les modèles qui exposent un contrôle de type CFG.

motion_strengthnumber

Intensité du mouvement (0-1) pour les modèles qui l'exposent.

start_imagestring

URL ou entrée d'image compatible pour la première image dans start-end-to-video.

end_imagestring

URL ou entrée d'image compatible pour la dernière image dans start-end-to-video.

sizestring

Niveau de taille spécifique au modèle pour les modèles vidéo compatibles.

watermarkboolean

Basculement de filigrane optionnel pour les modèles qui l'exposent. Seedance utilise false par défaut lorsqu'il est omis.

effect_typestring

Sélecteur d'effet spécifique au modèle pour les flux d'édition spécialisés.

userstring

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, et reference_image_type.
  • Pour la compatibilité, TokenLab accepte également ratio, generate_audio, outputAudio, seconds, referenceImages, et referenceImageType.
  • Si un champ principal et son alias sont tous deux envoyés, leurs valeurs doivent correspondre.
  • Si operation est omis, TokenLab l'infère à partir des entrées.

Entrée média

  • Préférez les URL https accessibles publiquement aux base64 en ligne pour image_url, reference_images, video_url, et audio_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
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.

idstring

Identifiant de tâche asynchrone canonique. Traitez-le comme la même identité que task_id lorsque les deux sont présents.

task_idstring

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.

poll_urlstring

URL de sondage préférée pour cette tâche. Utilisez ce chemin exact lors de la vérification du statut.

billing_transaction_idstring

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.

statusstring

Statut de la tâche : pending, processing, completed, failed.

createdinteger

Horodatage Unix de création de la tâche.

modelstring

Modèle utilisé.

video_urlstring

URL vidéo directe lorsque le résultat est déjà disponible.

videoobject

Résultat vidéo unique avec url, duration, width, et height lorsqu'il est disponible.

videosarray

Résultats vidéo multiples lorsque la tâche renvoie plus d'une sortie.

errorstring | object

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

Response
{
  "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
AuthorizationBearer <token>

Authentification par clé API. Créez ou gérez vos clés API dans Dashboard > API > API Keys.

Emplacement: header

En-têtes

X-TokenLab-Delivery-Policy?string

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