Tools
Geração de vídeo
Os agentes OpenClaw podem gerar vídeos a partir de prompts de texto, imagens de referência ou vídeos existentes. Há suporte para dezesseis backends de provedores, cada um com diferentes opções de modelo, modos de entrada e conjuntos de recursos. O agente escolhe o provedor certo automaticamente com base na sua configuração e nas chaves de API disponíveis.
OpenClaw trata a geração de vídeo como três modos de runtime:
generate- solicitações de texto para vídeo sem mídia de referência.imageToVideo- a solicitação inclui uma ou mais imagens de referência.videoToVideo- a solicitação inclui um ou mais vídeos de referência.
Os provedores podem oferecer suporte a qualquer subconjunto desses modos. A ferramenta valida o
modo ativo antes do envio e relata os modos compatíveis em action=list.
Início rápido
Configurar autenticação
Defina uma chave de API para qualquer provedor compatível:
export GEMINI_API_KEY="your-key"
Escolha um modelo padrão (opcional)
openclaw config set agents.defaults.videoGenerationModel.primary "google/veo-3.1-fast-generate-preview"
Peça ao agente
Gere um vídeo cinematográfico de 5 segundos de uma lagosta simpática surfando ao pôr do sol.
O agente chama video_generate automaticamente. Nenhuma allowlist de ferramentas
é necessária.
Como a geração assíncrona funciona
A geração de vídeo é assíncrona. Quando o agente chama video_generate em uma
sessão:
- OpenClaw envia a solicitação ao provedor e retorna imediatamente um id de tarefa.
- O provedor processa o trabalho em segundo plano (normalmente de 30 segundos a vários minutos, dependendo do provedor e da resolução; provedores lentos baseados em fila podem executar até o timeout configurado).
- Quando o vídeo fica pronto, OpenClaw desperta a mesma sessão com um evento interno de conclusão.
- O agente informa o usuário e anexa o vídeo finalizado. Em chats de grupo/canal que usam entrega visível somente por ferramenta de mensagem, o agente retransmite o resultado pela ferramenta de mensagem em vez de o OpenClaw publicá-lo diretamente.
Enquanto um trabalho está em andamento, chamadas duplicadas de video_generate na mesma
sessão retornam o status da tarefa atual em vez de iniciar outra
geração. Use openclaw tasks list ou openclaw tasks show <taskId> para
verificar o progresso pela CLI.
Fora de execuções de agente apoiadas por sessão (por exemplo, invocações diretas de ferramenta), a ferramenta recorre à geração inline e retorna o caminho da mídia final no mesmo turno.
Arquivos de vídeo gerados são salvos no armazenamento de mídia gerenciado pelo OpenClaw quando
o provedor retorna bytes. O limite padrão de salvamento de vídeo gerado segue
o limite de mídia de vídeo, e agents.defaults.mediaMaxMb o aumenta para
renderizações maiores. Quando um provedor também retorna uma URL de saída hospedada, OpenClaw
pode entregar essa URL em vez de falhar a tarefa se a persistência local
rejeitar um arquivo grande demais.
Ciclo de vida da tarefa
| Estado | Significado |
|---|---|
queued |
Tarefa criada, aguardando o provedor aceitá-la. |
running |
O provedor está processando (normalmente de 30 segundos a vários minutos, dependendo do provedor e da resolução). |
succeeded |
Vídeo pronto; o agente desperta e o publica na conversa. |
failed |
Erro do provedor ou timeout; o agente desperta com detalhes do erro. |
Verifique o status pela CLI:
openclaw tasks list
openclaw tasks show <taskId>
openclaw tasks cancel <taskId>
Se uma tarefa de vídeo já estiver queued ou running para a sessão atual,
video_generate retornará o status da tarefa existente em vez de iniciar uma nova
tarefa. Use action: "status" para verificar explicitamente sem disparar uma nova
geração.
Provedores compatíveis
| Provedor | Modelo padrão | Texto | Ref. de imagem | Ref. de vídeo | Autenticação |
|---|---|---|---|---|---|
| Alibaba | wan2.6-t2v |
✓ | Sim (URL remota) | Sim (URL remota) | MODELSTUDIO_API_KEY |
| BytePlus (1.0) | seedance-1-0-pro-250528 |
✓ | Até 2 imagens (somente modelos I2V; primeiro + último quadro) | - | BYTEPLUS_API_KEY |
| BytePlus Seedance 1.5 | seedance-1-5-pro-251215 |
✓ | Até 2 imagens (primeiro + último quadro via função) | - | BYTEPLUS_API_KEY |
| BytePlus Seedance 2.0 | dreamina-seedance-2-0-260128 |
✓ | Até 9 imagens de referência | Até 3 vídeos | BYTEPLUS_API_KEY |
| ComfyUI | workflow |
✓ | 1 imagem | - | COMFY_API_KEY ou COMFY_CLOUD_API_KEY |
| DeepInfra | Pixverse/Pixverse-T2V |
✓ | - | - | DEEPINFRA_API_KEY |
| fal | fal-ai/minimax/video-01-live |
✓ | 1 imagem; até 9 com Seedance reference-to-video | Até 3 vídeos com Seedance reference-to-video | FAL_KEY |
veo-3.1-fast-generate-preview |
✓ | 1 imagem | 1 vídeo | GEMINI_API_KEY |
|
| MiniMax | MiniMax-Hailuo-2.3 |
✓ | 1 imagem | - | MINIMAX_API_KEY ou OAuth MiniMax |
| OpenAI | sora-2 |
✓ | 1 imagem | 1 vídeo | OPENAI_API_KEY |
| OpenRouter | google/veo-3.1-fast |
✓ | Até 4 imagens (primeiro/último quadro ou referências) | - | OPENROUTER_API_KEY |
| Qwen | wan2.6-t2v |
✓ | Sim (URL remota) | Sim (URL remota) | QWEN_API_KEY |
| Runway | gen4.5 |
✓ | 1 imagem | 1 vídeo | RUNWAYML_API_SECRET |
| Together | Wan-AI/Wan2.2-T2V-A14B |
✓ | 1 imagem | - | TOGETHER_API_KEY |
| Vydra | veo3 |
✓ | 1 imagem (kling) |
- | VYDRA_API_KEY |
| xAI | grok-imagine-video |
✓ | 1 imagem de primeiro quadro ou até 7 reference_images |
1 vídeo | XAI_API_KEY |
Alguns provedores aceitam variáveis de ambiente de chave de API adicionais ou alternativas. Consulte as páginas de provedores individuais para obter detalhes.
Execute video_generate action=list para inspecionar provedores, modelos e
modos de runtime disponíveis em tempo de execução.
Matriz de capacidades
O contrato explícito de modo usado por video_generate, testes de contrato e
a varredura live compartilhada:
| Provedor | generate |
imageToVideo |
videoToVideo |
Lanes live compartilhadas hoje |
|---|---|---|---|---|
| Alibaba | ✓ | ✓ | ✓ | generate, imageToVideo; videoToVideo ignorado porque este provedor precisa de URLs de vídeo http(s) remotas |
| BytePlus | ✓ | ✓ | - | generate, imageToVideo |
| ComfyUI | ✓ | ✓ | - | Não incluído na varredura compartilhada; a cobertura específica de workflow fica com os testes do Comfy |
| DeepInfra | ✓ | - | - | generate; os esquemas nativos de vídeo do DeepInfra são texto para vídeo no contrato incluído |
| fal | ✓ | ✓ | ✓ | generate, imageToVideo; videoToVideo somente ao usar Seedance reference-to-video |
| ✓ | ✓ | ✓ | generate, imageToVideo; videoToVideo compartilhado ignorado porque a varredura atual Gemini/Veo baseada em buffer não aceita essa entrada |
|
| MiniMax | ✓ | ✓ | - | generate, imageToVideo |
| OpenAI | ✓ | ✓ | ✓ | generate, imageToVideo; videoToVideo compartilhado ignorado porque este caminho de organização/entrada atualmente precisa de acesso de inpaint/remix no lado do provedor |
| OpenRouter | ✓ | ✓ | - | generate, imageToVideo |
| Qwen | ✓ | ✓ | ✓ | generate, imageToVideo; videoToVideo ignorado porque este provedor precisa de URLs de vídeo http(s) remotas |
| Runway | ✓ | ✓ | ✓ | generate, imageToVideo; videoToVideo é executado somente quando o modelo selecionado é runway/gen4_aleph |
| Together | ✓ | ✓ | - | generate, imageToVideo |
| Vydra | ✓ | ✓ | - | generate; imageToVideo compartilhado ignorado porque o veo3 incluído é somente texto e o kling incluído exige uma URL de imagem remota |
| xAI | ✓ | ✓ | ✓ | generate, imageToVideo; videoToVideo ignorado porque este provedor atualmente precisa de uma URL MP4 remota |
Parâmetros da ferramenta
Obrigatórios
promptstringrequiredDescrição textual do vídeo a gerar. Obrigatório para action: "generate".
Entradas de conteúdo
imagestringimagesstring[]imageRolesstring[]Dicas opcionais de função por posição, paralelas à lista combinada de imagens.
Valores canônicos: first_frame, last_frame, reference_image.
videostringvideosstring[]videoRolesstring[]Dicas opcionais de função por posição, paralelas à lista combinada de vídeos.
Valor canônico: reference_video.
audioRefstringÁudio de referência único (caminho ou URL). Usado para música de fundo ou referência de voz quando o provedor oferece suporte a entradas de áudio.
audioRefsstring[]audioRolesstring[]Dicas opcionais de função por posição, paralelas à lista combinada de áudios.
Valor canônico: reference_audio.
Controles de estilo
aspectRatiostringDica de proporção de tela, como 1:1, 16:9, 9:16, adaptive ou um valor específico do provedor. O OpenClaw normaliza ou ignora valores sem suporte por provedor.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJlc29sdXRpb24iIHR5cGU9InN0cmluZyI
Dica de resolução, como 480P, 720P, 768P, 1080P, 4K ou um valor específico do provedor. O OpenClaw normaliza ou ignora valores sem suporte por provedor.
OPENCLAW_DOCS_MARKER:paramClose:
durationSecondsnumberDuração-alvo em segundos (arredondada para o valor mais próximo compatível com o provedor).
sizestringaudiobooleanAtiva áudio gerado na saída quando houver suporte. Diferente de audioRef* (entradas).
watermarkbooleanadaptive é um sentinela específico do provedor: ele é encaminhado como está para
provedores que declaram adaptive em seus recursos (por exemplo, BytePlus
Seedance o usa para detectar automaticamente a proporção a partir das dimensões
da imagem de entrada). Provedores que não o declaram expõem o valor por meio de
details.ignoredOverrides no resultado da ferramenta, para que o descarte fique visível.
Avançado
action"generate" | "status" | "list""status" retorna a tarefa da sessão atual; "list" inspeciona os provedores.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci
Substituição de provedor/modelo (por exemplo, runway/gen4.5).
OPENCLAW_DOCS_MARKER:paramClose:
filenamestringtimeoutMsnumberproviderOptionsobjectOpções específicas do provedor como um objeto JSON (por exemplo, {"seed": 42, "draft": true}).
Provedores que declaram um esquema tipado validam as chaves e os tipos; chaves
desconhecidas ou incompatibilidades pulam o candidato durante o fallback. Provedores sem um
esquema declarado recebem as opções como estão. Execute video_generate action=list
para ver o que cada provedor aceita.
As entradas de referência selecionam o modo de execução:
- Nenhuma mídia de referência →
generate - Qualquer referência de imagem →
imageToVideo - Qualquer referência de vídeo →
videoToVideo - Entradas de áudio de referência não alteram o modo resolvido; elas se aplicam
sobre qualquer modo selecionado pelas referências de imagem/vídeo e só funcionam
com provedores que declaram
maxInputAudios.
Referências mistas de imagem e vídeo não são uma superfície de recurso compartilhada estável. Prefira um tipo de referência por solicitação.
Fallback e opções tipadas
Algumas verificações de capacidade são aplicadas na camada de fallback, em vez de no limite da ferramenta, de modo que uma solicitação que exceda os limites do provedor primário ainda pode ser executada em um fallback capaz:
- Candidato ativo que não declara
maxInputAudios(ou declara0) é ignorado quando a solicitação contém referências de áudio; o próximo candidato é tentado. maxDurationSecondsdo candidato ativo abaixo dodurationSecondssolicitado sem listasupportedDurationSecondsdeclarada → ignorado.- A solicitação contém
providerOptionse o candidato ativo declara explicitamente um esquema tipado deproviderOptions→ ignorado se as chaves fornecidas não estiverem no esquema ou os tipos dos valores não corresponderem. Provedores sem um esquema declarado recebem as opções como estão (repasse compatível com versões anteriores). Um provedor pode recusar todas as opções do provedor declarando um esquema vazio (capabilities.providerOptions: {}), o que causa o mesmo salto que uma incompatibilidade de tipo.
O primeiro motivo de salto em uma solicitação é registrado em warn, para que operadores vejam quando
o provedor primário foi ignorado; saltos subsequentes são registrados em debug para
manter silenciosas cadeias longas de fallback. Se todos os candidatos forem ignorados, o
erro agregado incluirá o motivo de salto de cada um.
Ações
| Ação | O que faz |
|---|---|
generate |
Padrão. Cria um vídeo a partir do prompt informado e das entradas de referência opcionais. |
status |
Verifica o estado da tarefa de vídeo em andamento da sessão atual sem iniciar outra geração. |
list |
Mostra provedores, modelos e seus recursos disponíveis. |
Seleção de modelo
O OpenClaw resolve o modelo nesta ordem:
- Parâmetro de ferramenta
model- se o agente especificar um na chamada. videoGenerationModel.primaryda configuração.videoGenerationModel.fallbacksem ordem.- Detecção automática - provedores que têm autenticação válida, começando pelo provedor padrão atual e depois os provedores restantes em ordem alfabética.
Se um provedor falhar, o próximo candidato é tentado automaticamente. Se todos os candidatos falharem, o erro inclui detalhes de cada tentativa.
Defina agents.defaults.mediaGenerationAutoProviderFallback: false para usar
apenas as entradas explícitas de model, primary e fallbacks.
{
agents: {
defaults: {
videoGenerationModel: {
primary: "google/veo-3.1-fast-generate-preview",
fallbacks: ["runway/gen4.5", "qwen/wan2.6-t2v"],
},
},
},
}
Notas dos provedores
Alibaba
Usa o endpoint assíncrono DashScope / Model Studio. Imagens e
vídeos de referência devem ser URLs http(s) remotas.
BytePlus (1.0)
ID do provedor: byteplus.
Modelos: seedance-1-0-pro-250528 (padrão),
seedance-1-0-pro-t2v-250528, seedance-1-0-pro-fast-251015,
seedance-1-0-lite-t2v-250428, seedance-1-0-lite-i2v-250428.
Modelos T2V (*-t2v-*) não aceitam entradas de imagem; modelos I2V e
modelos gerais *-pro-* oferecem suporte a uma única imagem de referência (primeiro
quadro). Passe a imagem posicionalmente ou defina role: "first_frame".
IDs de modelo T2V são alternados automaticamente para a variante I2V
correspondente quando uma imagem é fornecida.
Chaves de providerOptions compatíveis: seed (número), draft (booleano -
força 480p), camera_fixed (booleano).
BytePlus Seedance 1.5
Requer o Plugin @openclaw/byteplus-modelark.
ID do provedor: byteplus-seedance15. Modelo:
seedance-1-5-pro-251215.
Usa a API unificada content[]. Oferece suporte a no máximo 2 imagens de entrada
(first_frame + last_frame). Todas as entradas devem ser URLs remotas
https://. Defina role: "first_frame" / "last_frame" em cada imagem ou
passe as imagens posicionalmente.
aspectRatio: "adaptive" detecta automaticamente a proporção a partir da imagem de entrada.
audio: true é mapeado para generate_audio. providerOptions.seed
(número) é encaminhado.
BytePlus Seedance 2.0
Requer o Plugin @openclaw/byteplus-modelark.
ID do provedor: byteplus-seedance2. Modelos:
dreamina-seedance-2-0-260128,
dreamina-seedance-2-0-fast-260128.
Usa a API unificada content[]. Oferece suporte a até 9 imagens de referência,
3 vídeos de referência e 3 áudios de referência. Todas as entradas devem ser URLs remotas
https://. Defina role em cada ativo - valores compatíveis:
"first_frame", "last_frame", "reference_image",
"reference_video", "reference_audio".
aspectRatio: "adaptive" detecta automaticamente a proporção a partir da imagem de entrada.
audio: true é mapeado para generate_audio. providerOptions.seed
(número) é encaminhado.
ComfyUI
Execução local ou em nuvem orientada por workflow. Suporta texto para vídeo e imagem para vídeo por meio do grafo configurado.
fal
Usa um fluxo baseado em fila para trabalhos de longa duração. O OpenClaw aguarda até 20 minutos por padrão antes de tratar um trabalho de fila fal em andamento como esgotado por tempo limite. A maioria dos modelos de vídeo fal aceita uma única referência de imagem. Modelos Seedance 2.0 de referência para vídeo aceitam até 9 imagens, 3 vídeos e 3 referências de áudio, com no máximo 12 arquivos de referência no total.
Google (Gemini / Veo)
Suporta uma referência de imagem ou uma referência de vídeo. Solicitações de áudio gerado são
ignoradas com um aviso no caminho da API Gemini porque essa API rejeita
o parâmetro generateAudio para a geração de vídeo Veo atual.
MiniMax
Apenas uma referência de imagem. O MiniMax aceita resoluções 768P e 1080P;
solicitações como 720P são normalizadas para o valor compatível
mais próximo antes do envio.
OpenAI
Apenas a substituição de size é encaminhada. Outras substituições de estilo
(aspectRatio, resolution, audio, watermark) são ignoradas com
um aviso.
OpenRouter
Usa a API assíncrona /videos do OpenRouter. O OpenClaw envia o
trabalho, consulta polling_url e baixa unsigned_urls ou o
endpoint documentado de conteúdo do trabalho. O padrão empacotado google/veo-3.1-fast
anuncia durações de 4/6/8 segundos, resoluções 720P/1080P e
proporções 16:9/9:16.
Qwen
Mesmo backend DashScope do Alibaba. Entradas de referência devem ser URLs
http(s) remotas; arquivos locais são rejeitados antecipadamente.
Runway
Suporta arquivos locais por meio de URIs de dados. Vídeo para vídeo requer
runway/gen4_aleph. Execuções somente texto expõem proporções
16:9 e 9:16.
Together
Apenas uma referência de imagem.
Vydra
Usa https://www.vydra.ai/api/v1 diretamente para evitar redirecionamentos
que removem autenticação. veo3 é empacotado apenas como texto para vídeo; kling requer
uma URL de imagem remota.
xAI
Suporta texto para vídeo, imagem de primeiro quadro única para vídeo, até 7
entradas reference_image por meio de reference_images da xAI, e fluxos remotos
de edição/extensão de vídeo.
Modos de capacidade do provedor
O contrato compartilhado de geração de vídeo oferece suporte a capacidades específicas por modo, em vez de apenas limites agregados planos. Novas implementações de provedor devem preferir blocos de modo explícitos:
capabilities: {
generate: {
maxVideos: 1,
maxDurationSeconds: 10,
supportsResolution: true,
},
imageToVideo: {
enabled: true,
maxVideos: 1,
maxInputImages: 1,
maxInputImagesByModel: { "provider/reference-to-video": 9 },
maxDurationSeconds: 5,
},
videoToVideo: {
enabled: true,
maxVideos: 1,
maxInputVideos: 1,
maxDurationSeconds: 5,
},
}
Campos agregados planos como maxInputImages e maxInputVideos não
são suficientes para anunciar suporte a modos de transformação. Provedores devem
declarar generate, imageToVideo e videoToVideo explicitamente para que testes
ao vivo, testes de contrato e a ferramenta compartilhada video_generate possam validar
o suporte a modos de forma determinística.
Quando um modelo em um provedor tiver suporte mais amplo a entradas de referência do que o
restante, use maxInputImagesByModel, maxInputVideosByModel ou
maxInputAudiosByModel em vez de aumentar o limite de todo o modo.
Testes ao vivo
Cobertura ao vivo opcional para os provedores compartilhados empacotados:
OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/video-generation-providers.live.test.ts
Wrapper do repositório:
pnpm test:live:media video
Este arquivo ao vivo carrega variáveis de ambiente ausentes do provedor a partir de ~/.profile, prefere
chaves de API ao vivo/de ambiente em vez de perfis de autenticação armazenados por padrão, e executa um
smoke seguro para release por padrão:
generatepara todos os provedores não FAL na varredura.- Prompt de lagosta de um segundo.
- Limite de operação por provedor a partir de
OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS(180000por padrão).
FAL é opcional porque a latência de fila no lado do provedor pode dominar o tempo de release:
pnpm test:live:media video --video-providers fal
Defina OPENCLAW_LIVE_VIDEO_GENERATION_FULL_MODES=1 para também executar modos
de transformação declarados que a varredura compartilhada consegue exercitar com segurança com mídia local:
imageToVideoquandocapabilities.imageToVideo.enabled.videoToVideoquandocapabilities.videoToVideo.enablede o provedor/modelo aceitar entrada de vídeo local baseada em buffer na varredura compartilhada.
Hoje, a faixa ao vivo compartilhada videoToVideo cobre runway apenas quando você
seleciona runway/gen4_aleph.
Configuração
Defina o modelo padrão de geração de vídeo na sua configuração do OpenClaw:
{
agents: {
defaults: {
videoGenerationModel: {
primary: "qwen/wan2.6-t2v",
fallbacks: ["qwen/wan2.6-r2v-flash"],
},
},
},
}
Ou pela CLI:
openclaw config set agents.defaults.videoGenerationModel.primary "qwen/wan2.6-t2v"
Relacionado
- Alibaba Model Studio
- Tarefas em segundo plano - rastreamento de tarefas para geração assíncrona de vídeo
- BytePlus
- ComfyUI
- Referência de configuração
- fal
- Google (Gemini)
- MiniMax
- Modelos
- OpenAI
- Qwen
- Runway
- Together AI
- Visão geral das ferramentas
- Vydra
- xAI