Aller au contenu

Génération de vidéos

Les agents OpenClaw peuvent générer des vidéos à partir de invites textuelles, d’images de référence ou de vidéos existantes. Douze backends de fournisseurs sont pris en charge, chacun avec différentes options de modèle, des modes d’entrée et des ensembles de fonctionnalités. L’agent choisit automatiquement le bon fournisseur en fonction de votre configuration et des clés API disponibles.

OpenClaw traite la génération de vidéo selon trois modes d’exécution :

  • generate pour les requêtes de texte vers vidéo sans média de référence
  • imageToVideo lorsque la requête inclut une ou plusieurs images de référence
  • videoToVideo lorsque la requête inclut une ou plusieurs vidéos de référence

Les providers peuvent prendre en charge n’importe quel sous-ensemble de ces modes. L’outil valide le mode actif avant la soumission et signale les modes pris en charge dans action=list.

  1. Définissez une clé API pour n’importe quel fournisseur pris en charge :
Fenêtre de terminal
export GEMINI_API_KEY="your-key"
  1. Épinglez éventuellement un modèle par défaut :
Fenêtre de terminal
openclaw config set agents.defaults.videoGenerationModel.primary "google/veo-3.1-fast-generate-preview"
  1. Demandez à l’agent :

Générez une vidéo cinématique de 5 secondes d’un homard amical faisant du surf au coucher du soleil.

L’agent appelle video_generate automatiquement. Aucune liste d’autorisation d’outil n’est nécessaire.

La génération de vidéos est asynchrone. Lorsque l’agent appelle video_generate dans une session :

  1. OpenClaw soumet la requête au fournisseur et renvoie immédiatement un ID de tâche.
  2. Le fournisseur traite la tâche en arrière-plan (généralement de 30 secondes à 5 minutes selon le fournisseur et la résolution).
  3. Lorsque la vidéo est prête, OpenClaw réveille la même session avec un événement interne d’achèvement.
  4. L’agent publie la vidéo terminée dans la conversation d’origine.

Pendant qu’une tâche est en cours, les appels en double à video_generate dans la même session renvoient l’état actuel de la tâche au lieu de lancer une autre génération. Utilisez openclaw tasks list ou openclaw tasks show <taskId> pour vérifier la progression depuis la CLI.

En dehors des exécutions d’agent soutenues par une session (par exemple, les invocations directes d’outils), l’outil revient à la génération en ligne et renvoie le chemin final du média dans le même tour.

Chaque requête video_generate passe par quatre états :

  1. en file d’attente — tâche créée, en attente que le provider l’accepte.
  2. en cours — le provider traite la demande (généralement de 30 secondes à 5 minutes selon le provider et la résolution).
  3. réussi — vidéo prête ; l’agent se réveille et la publie dans la conversation.
  4. échoué — erreur ou expiration du délai du provider ; l’agent se réveille avec les détails de l’erreur.

Vérifiez le statut depuis la CLI :

Fenêtre de terminal
openclaw tasks list
openclaw tasks show <taskId>
openclaw tasks cancel <taskId>

Prévention des doublons : si une tâche vidéo est déjà queued ou running pour la session actuelle, video_generate renvoie l’état de la tâche existante au lieu d’en commencer une nouvelle. Utilisez action: "status" pour vérifier explicitement sans déclencher de nouvelle génération.

ProviderModèle par défautTexteRéf imageRéf vidéoClé API
Alibabawan2.6-t2vOuiOui (URL distante)Oui (URL distante)MODELSTUDIO_API_KEY
BytePlusseedance-1-0-lite-t2v-250428Oui1 imageNonBYTEPLUS_API_KEY
ComfyUIworkflowOui1 imageNonCOMFY_API_KEY ou COMFY_CLOUD_API_KEY
falfal-ai/minimax/video-01-liveOui1 imageNonFAL_KEY
Googleveo-3.1-fast-generate-previewOui1 image1 vidéoGEMINI_API_KEY
MiniMaxMiniMax-Hailuo-2.3Oui1 imageNonMINIMAX_API_KEY
OpenAIsora-2Oui1 image1 vidéoOPENAI_API_KEY
Qwenwan2.6-t2vOuiOui (URL distante)Oui (URL distante)QWEN_API_KEY
Runwaygen4.5Oui1 image1 vidéoRUNWAYML_API_SECRET
TogetherWan-AI/Wan2.2-T2V-A14BOui1 imageNonTOGETHER_API_KEY
Vydraveo3Oui1 image (kling)NonVYDRA_API_KEY
xAIgrok-imagine-videoOui1 image1 vidéoXAI_API_KEY

Certains fournisseurs acceptent des variables d’environnement de clé API supplémentaires ou alternatives. Consultez les pages des fournisseurs pour plus de détails.

Exécutez video_generate action=list pour inspecter les fournisseurs, les modèles et les modes d’exécution disponibles lors de l’exécution.

Il s’agit du contrat de mode explicite utilisé par video_generate, les tests de contrat et le balayage en direct partagé.

ProvidergenerateimageToVideovideoToVideoVoies de test partagées aujourd’hui
AlibabaOuiOuiOuigenerate, imageToVideo; videoToVideo ignoré car ce fournisseur a besoin d’URLs vidéo http(s) distantes
BytePlusOuiOuiNongenerate, imageToVideo
ComfyUIOuiOuiNonPas dans le balayage partagé ; la couverture spécifique aux flux de travail réside avec les tests Comfy
falOuiOuiNongenerate, imageToVideo
GoogleOuiOuiOuigenerate, imageToVideo; videoToVideo partagé ignoré car le balayage Gemini/Veo actuel avec tampon n’accepte pas cette entrée
MiniMaxOuiOuiNongenerate, imageToVideo
OpenAIOuiOuiOuigenerate, imageToVideo; videoToVideo partagé ignoré car ce chemin org/input a actuellement besoin d’un accès inpaint/remix côté fournisseur
QwenOuiOuiOuigenerate, imageToVideo; videoToVideo ignoré car ce fournisseur a besoin d’URLs vidéo http(s) distantes
RunwayOuiOuiOuigenerate, imageToVideo; videoToVideo ne s’exécute que lorsque le modèle sélectionné est runway/gen4_aleph
TogetherOuiOuiNongenerate, imageToVideo
VydraOuiOuiNongenerate ; imageToVideo partagé ignoré car veo3 groupé est texte uniquement et kling groupé nécessite une URL d’image distante
xAIOuiOuiOuigenerate, imageToVideo ; videoToVideo ignoré car ce provider nécessite actuellement une URL MP4 distante
ParamètreTypeDescription
promptstringDescription textuelle de la vidéo à générer (requis pour action: "generate")
ParamètreTypeDescription
imagestringImage de référence unique (chemin ou URL)
imagesstring[]Images de référence multiples (jusqu’à 5)
videostringVidéo de référence unique (chemin ou URL)
videosstring[]Vidéos de référence multiples (jusqu’à 4)
ParamètreTypeDescription
aspectRatiostring1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9
resolutionstring480P, 720P, 768P, ou 1080P
durationSecondsnumberDurée cible en secondes (arrondie à la valeur prise en charge la plus proche par le provider)
sizestringIndication de taille lorsque le provider la prend en charge
audiobooleanActiver l’audio généré lorsque pris en charge
watermarkbooleanActiver le filigrane du provider lorsque pris en charge
ParamètreTypeDescription
actionstring"generate" (par défaut), "status", ou "list"
modelstringSubstitution de provider/model (ex. runway/gen4.5)
filenamestringIndication de nom de fichier de sortie

Tous les providers ne prennent pas en charge tous les paramètres. OpenClaw normalise déjà la durée à la valeur la plus proche prise en charge par le provider, et il remappe également les indications géométriques traduites telles que la taille vers le format d’image lorsqu’un provider de secours expose une surface de contrôle différente. Les remplacements non pris en charge sont ignorés sur la base du meilleur effort et signalés sous forme d’avertissements dans le résultat de l’outil. Les limites strictes de capacité (telles que trop de références d’entrée) échouent avant la soumission.

Les résultats de l’outil signalent les paramètres appliqués. Lorsque OpenClaw remappe la durée ou la géométrie lors du repli de provider, les valeurs durationSeconds, size, aspectRatio et resolution renvoyées reflètent ce qui a été soumis, et details.normalization capture la traduction de la demande vers l’appliqué.

Les entrées de référence sélectionnent également le mode d’exécution :

  • Aucun média de référence : generate
  • Toute référence image : imageToVideo
  • Toute référence vidéo : videoToVideo

Les références mixtes d’images et de vidéos ne constituent pas une surface de capacité partagée stable. Préférez un seul type de référence par demande.

  • generate (par défaut) — crée une vidéo à partir de l’invite donnée et des entrées de référence facultatives.
  • status — vérifie l’état de la tâche vidéo en cours pour la session actuelle sans démarrer une autre génération.
  • list — affiche les providers, les modèles disponibles et leurs capacités.

Lors de la génération d’une vidéo, OpenClaw résout le modèle dans cet ordre :

  1. Paramètre de l’outil model — si l’agent en spécifie un dans l’appel.
  2. videoGenerationModel.primary — depuis la configuration.
  3. videoGenerationModel.fallbacks — essayés dans l’ordre.
  4. Détection automatique — utilise les providers qui ont une authentification valide, en commençant par le provider par défaut actuel, puis les autres providers par ordre alphabétique.

Si un provider échoue, le candidat suivant est essayé automatiquement. Si tous les candidats échouent, l’erreur inclut les détails de chaque tentative.

Définissez agents.defaults.mediaGenerationAutoProviderFallback: false si vous souhaitez que la génération de vidéos utilise uniquement les entrées explicites model, primary et fallbacks.

{
agents: {
defaults: {
videoGenerationModel: {
primary: "google/veo-3.1-fast-generate-preview",
fallbacks: ["runway/gen4.5", "qwen/wan2.6-t2v"],
},
},
},
}

HeyGen video-agent sur fal peut être épinglé avec :

{
agents: {
defaults: {
videoGenerationModel: {
primary: "fal/fal-ai/heygen/v2/video-agent",
},
},
},
}

Seedance 2.0 sur fal peut être épinglé avec :

{
agents: {
defaults: {
videoGenerationModel: {
primary: "fal/bytedance/seedance-2.0/fast/text-to-video",
},
},
},
}
FournisseurNotes
AlibabaUtilise le point de terminaison asynchrone DashScope/Model Studio. Les images et vidéos de référence doivent être des URL http(s) distantes.
BytePlusRéférence image unique uniquement.
ComfyUIExécution locale ou dans le cloud pilotée par le flux de travail. Prend en charge le texte vers vidéo et l’image vers vidéo via le graphe configuré.
falUtilise un flux avec file d’attente pour les tâches de longue durée. Référence image unique uniquement. Inclut les références de modèle texte vers vidéo et image vers vidéo HeyGen video-agent et Seedance 2.0.
GoogleUtilise Gemini/Veo. Prend en charge une image ou une vidéo de référence.
MiniMaxRéférence image unique uniquement.
OpenAISeul le remplacement size est transmis. Les autres remplacements de style (aspectRatio, resolution, audio, watermark) sont ignorés avec un avertissement.
QwenMême backend DashScope qu’Alibaba. Les entrées de référence doivent être des URL http(s) distantes ; les fichiers locaux sont rejetés immédiatement.
RunwayPrend en charge les fichiers locaux via des URI de données. La vidéo vers vidéo nécessite runway/gen4_aleph. Les exécutions en mode texte uniquement exposent les formats d’aspect 16:9 et 9:16.
TogetherRéférence image unique uniquement.
VydraUtilise https://www.vydra.ai/api/v1 directement pour éviter les redirections entraînant une perte d’authentification. veo3 est fourni uniquement en mode texte vers vidéo ; kling nécessite une URL d’image distante.
xAIPrend en charge les flux texte vers vidéo, image vers vidéo, et d’édition/extension de vidéo distante.

Le contrat partagé de génération vidéo permet désormais aux fournisseurs de déclarer des capacités spécifiques au mode au lieu de simples limites globales. Les nouvelles implémentations de fournisseurs devraient préférer des blocs de mode explicites :

capabilities: {
generate: {
maxVideos: 1,
maxDurationSeconds: 10,
supportsResolution: true,
},
imageToVideo: {
enabled: true,
maxVideos: 1,
maxInputImages: 1,
maxDurationSeconds: 5,
},
videoToVideo: {
enabled: true,
maxVideos: 1,
maxInputVideos: 1,
maxDurationSeconds: 5,
},
}

Les champs globaux plats tels que maxInputImages et maxInputVideos ne suffisent pas pour annoncer la prise en charge du mode de transformation. Les fournisseurs doivent déclarer generate, imageToVideo et videoToVideo explicitement afin que les tests en direct, les tests de contrat et l’outil video_generate partagé puissent valider la prise en charge du mode de manière déterministe.

Couverture en direct optionnelle pour les fournisseurs groupés partagés :

Fenêtre de terminal
OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/video-generation-providers.live.test.ts

Wrapper de dépôt :

Fenêtre de terminal
pnpm test:live:media video

Ce fichier en direct charge les variables d’environnement de fournisseur manquantes à partir de ~/.profile, préfère par défaut les clés API live/env aux profils d’authentification stockés, et exécute les modes déclarés qu’il peut tester en toute sécurité avec des médias locaux :

  • generate pour chaque fournisseur du sweep
  • imageToVideo lorsque capabilities.imageToVideo.enabled
  • videoToVideo lorsque capabilities.videoToVideo.enabled et que le fournisseur/modèle accepte l’entrée vidéo locale sauvegardée dans le tampon dans le sweep partagé

Aujourd’hui, la voie en direct partagée videoToVideo couvre :

  • runway uniquement lorsque vous sélectionnez runway/gen4_aleph

Définissez le modèle de génération vidéo par défaut dans votre configuration OpenClaw :

{
agents: {
defaults: {
videoGenerationModel: {
primary: "qwen/wan2.6-t2v",
fallbacks: ["qwen/wan2.6-r2v-flash"],
},
},
},
}

Ou via la CLI :

Fenêtre de terminal
openclaw config set agents.defaults.videoGenerationModel.primary "qwen/wan2.6-t2v"