Communitygithub.com

0xsline/openchatcut

Geração de vídeo por IA via Fal.ai, Seedance 2.0, Kling, MiniMax Hailuo, xAI Grok Imagine e OFox. Use quando o usuário quiser gerar um clipe de vídeo — texto-para-vídeo, imagem-para-vídeo, transições de primeiro/último quadro, geração guiada por referência, multi-corte ou edição/extensão generativa de um clipe existente.

O que é openchatcut?

Esta skill permite gerar clipes de vídeo por meio de diversos provedores de IA como Fal.ai, Seedance 2.0, Kling, MiniMax Hailuo, xAI Grok Imagine e OFox. Ela suporta múltiplas modalidades: texto-para-vídeo, imagem-para-vídeo, transições de primeiro/último quadro, geração baseada em referência, storyboard multi-corte e edição/extensão generativa de clipes existentes. A skill envia um trabalho de geração por chamada, retornando um `jobId` para gerenciamento de progresso — ela não coloca vídeos automaticamente na linha do tempo. Oferece seleção inteligente de modelo com base nos provedores configurados e nas necessidades do usuário, respeitando as capacidades e limitações de cada modelo (duração, resolução, modos de referência). Inclui um fluxo de trabalho completo de alinhamento com o usuário, escrita de prompts, submissão e iteração, com forte ênfase na consistência visual entre cortes por meio de âncoras (imagens/vídeos de referência).

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/0xsline/openchatcut/tree/HEAD/src/agent/skills/video-gen

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Geração de Vídeo

Submete um trabalho de geração de vídeo por chamada e retorna um jobId. O gerenciamento de trabalhos (espera/status) pertence ao track_progress; esta skill não coloca vídeos na linha do tempo automaticamente.

Quando Usar

Sempre que o usuário quiser gerar um clipe de vídeo — texto-para-vídeo, imagem-para-vídeo, transição primeiro-último quadro, geração baseada em referência, storyboard multi-corte, ou editar/estender generativamente um vídeo existente (produzindo novas imagens geradas a partir de um clipe fonte; não corte na linha do tempo).

Modelos

ModeloReferênciaPontos Fortes
fal + falModelreferências/fal.mdCatálogo explícito Fal; veja o esquema da ferramenta para limites por modelo
seedance2referências/seedance2.mdPadrão quando configurado. Referências multimodais, primeiro/último, editar/estender/ponte, 2–15s, 480p/720p/1080p/4k, controles de áudio/semente/câmera/marca d'água/último quadro/tarefa.
klingreferências/kling.mdCâmera/performance técnica; Omni multi-corte; imagens ≤7 (≤4 com um recurso refVideos); std/pro; 3–15s.
hailuoreferências/hailuo.mdMiniMax 海螺. T2V / I2V / primeiro+último; 6s ou 10s; 512P (Hailuo-02), 720p→768P, 1080P (6s); sem multi-ref / multi-corte.
grok-imagine-videoreferências/grok-imagine-video.mdxAI Grok Imagine. Apenas texto-para-vídeo; 1–15s; 480p/720p/1080p; trilha de áudio incluída.
ofoxreferências/ofox.mdGateway multi-modelo OFox (Seedance/Wan e mais por trás de uma chave). Texto/imagem-para-vídeo, primeiro+último quadro, até 9 referências de imagem; 2–30s com limites de API por modelo; 480p/720p/1080p por modelo.

IMPORTANTE: Antes de gerar, LEIA a referência do modelo escolhido para capacidades, canais de entrada, modos, estrutura de prompt e comportamento específico do modelo. Nunca invente parâmetros que a referência proíba.

Seleção de Modelo

Respeite os fornecedores configurados do prompt de capacidades (chame apenas um modelo cuja chave esteja ativa).

  1. Usuário nomeou um fornecedor ("用海螺", "MiniMax", "Kling", "Seedance") → esse model, se configurado.
  2. Se Fal.ai estiver selecionado ou solicitado, use model: "fal" e o falModel solicitado ou o padrão Fal salvo das capacidades. Pergunte se nenhum modelo Fal foi selecionado. Leia as restrições do catálogo Fal no esquema da ferramenta; os limites do provedor nativo abaixo não se aplicam.
  3. Caso contrário, padrão seedance2 quando Seedance estiver configurado.
  4. Caso contrário, se apenas Kling estiver ativo → kling. Caso contrário, se apenas MiniMax estiver ativo → hailuo. Caso contrário, se apenas xAI estiver ativo → grok-imagine-video. Caso contrário, se apenas OFox estiver ativo → ofox.
  5. Mudar do padrão quando:
    • Precisar de customização/inteligência multi-corte → kling (confirme se não foi nomeado pelo usuário).
    • Precisar de referências multimodais ricas (referências de vídeo/áudio, editar/estender) → seedance2.
    • Precisar de uma batida curta única e apenas MiniMax estiver disponível, ou o usuário quiser Hailuo → hailuo com duração 6 ou 10.

Se o modelo necessário não estiver configurado, informe e ofereça: outro fornecedor de vídeo configurado, upload ou Motion Graphic — não finja que a API existe.

Informe brevemente ao usuário o que você irá gerar antes de submeter.

Parâmetros da Ferramenta

ParâmetroValoresPadrão
modelseedance2, kling, hailuo, grok-imagine-video, ofox, falseedance2 quando disponível
durationSecondsespecífico do modeloseedance/kling ~5; hailuo 6 ou 10 (1080p → 6 apenas); grok 1–15; ofox 2–30 (limites de API por modelo)
ratioveja docs do modelo16:9 (seedance/kling/grok/ofox); ignorado no hailuo
resolution480p, 512p, 720p, 1080p, 4kespecífico do provedor; hailuo adiciona 512p para Hailuo-02; grok: 480p/720p/1080p
refVideoModefeature, baseapenas kling, com refVideos
promptOptimizer / fastPretreatmentbooleanoapenas hailuo
generateAudio, seed, cameraFixed, watermarkcontrolesapenas seedance
returnLastFrame, executionExpiresAfter, prioritycontrolesapenas seedance; o último quadro solicitado se torna outro asset de imagem
namenome descritivo do assetnecessário para boa UX do pool
firstFramereferência de asset de imagem do projetoopcional
lastFramereferência de asset de imagem do projetoseedance / kling / hailuo (requer firstFrame; não com multi-ref no seedance)
refImages / refVideos / refAudiosreferências de assetseedance completo; kling: imagens + 1 vídeo funcional (sem áudio); hailuo: nenhum (quadros / assunto S2V)
mode / shotType / multiPromptsKling multi-corteapenas kling

Parâmetros específicos do modelo — veja a referência do modelo.

Resolução de Entrada

firstFrame / lastFrame / refImages / refVideos / refAudios todos aceitam uma referência de asset do projeto. Prefira um UUID completo ou prefixo curto de read_project; asset://<id> e URLs de assets do mesmo projeto retornadas por read_project também são aceitas. Tipo por slot: slots de quadro e refImages → imagem; refVideos → vídeo; refAudios → áudio.

URLs externas e base64 não são aceitos. Se a fonte for uma URL pública, faça o download para o projeto primeiro (download_media para vídeo/áudio, submit_image para imagens) e passe o id do asset resultante.

Fluxo de Trabalho

Loop de quatro etapas. Para cada nova geração, recomece da Etapa 1 se a intenção do usuário mudou.

Etapa 1 — Alinhar escopo com o usuário

Antes de escrever qualquer prompt, alinhe três dimensões:

  1. Duração e segmentos — duração total, quantos cortes, e se eles vivem em um clipe ou vários.

    Se o usuário já declarou uma direção ("做一段", "em um vídeo", "分别生成", "dividir em N cortes", etc.), siga — não questione.

    Caso contrário, apresente os dois caminhos e deixe o usuário escolher:

    • Multi-corte dentro de um clipe (veja ref do modelo) — inferência única, assunto/iluminação/estilo fisicamente consistente entre sub-cortes; adequa-se a uma narrativa coesa dentro do limite de duração por clipe.
    • Múltiplos clipes — cada clipe é independentemente controlável e regerável, mas a continuidade de identidade e estilo tem que ser mantida por âncoras; adequa-se a durações além do limite ou quebras de cena bruscas.

    Ofereça a troca; não escolha pelo usuário.

  2. Conteúdo — o que cada clipe retrata. Resuma de volta o que você entendeu, segmento por segmento. Quando o conteúdo for vago (exemplo: "gerar um vídeo de uma garota dançando"), o usuário normalmente não especificou um ou mais de:

    • Assunto: quem / o que é o assunto principal (aparência, roupa, características definidoras)?
    • Ação: o que estão fazendo? (Para tomadas de fala/emoção, qual microexpressão?)
    • Cena: onde — cenário, hora do dia, detalhes ambientais?
    • Iluminação / clima de cor: qual atmosfera?
    • Câmera: alguma preferência de tamanho de plano/ângulo/movimento?
    • Estilo: estilo visual ou referência (cinematográfico/anime/documentário/...).

    Foque nos itens que importam para esta solicitação específica e não podem ser inferidos com segurança — não transforme isso em um exercício de preenchimento de lacunas. Resuma as partes compreendidas de volta ao usuário antes de prosseguir.

  3. Âncoras de consistência — apenas quando vários cortes reutilizam um personagem, objeto ou cena: identifique qual âncora (imagem ou vídeo de referência) fixar entre os cortes. Para regras de obtenção, veja §Consistência visual entre cortes abaixo.

Para cada dimensão, verifique as palavras do usuário:

  • Claro — prossiga.
  • Ambíguo ou faltando — PERGUNTE ao usuário. Não adivinhe, não use sua própria interpretação como padrão. Uma confirmação de ida e volta é mais barata que uma geração desperdiçada.

O que NÃO fazer

  • Não "diga e depois submeta" — anunciar "Vou fazer isso como 2 clipes" e submeter imediatamente não é alinhamento, é uma decisão unilateral com anúncio.
  • Não divida por padrão uma solicitação de um único vídeo em múltiplos clipes. Um único clipe pode carregar vários sub-cortes (veja ref do modelo), com assunto/iluminação/estilo fisicamente consistente entre eles. Apresente a troca, depois deixe o usuário escolher.
  • Não pule a pergunta porque você acha que a resposta é óbvia.

Substituições forçadas (a palavra explícita do usuário vence)

  • "um clipe / clipe único / 一条 / 一个镜头 / em 1 clipe" → nunca divida, mesmo que a descrição seja objetivamente longa.
  • "N cortes / N 段 / N 个镜头" → gere exatamente N.
  • "use esta imagem / 用这张图" → use como referência, não substitua.

Etapa 2 — Escrever o prompt

Veja a referência do modelo escolhido para estrutura de prompt e combinações de parâmetros (por exemplo, estrutura de 8 elementos e modos do Seedance; dicas de prompt do Kling). Antes de submeter, verifique:

  • name é um nome de asset descritivo — descritivo o suficiente para o usuário (e você em turnos posteriores) reconhecer este asset na biblioteca do projeto. Evite nomes vagos como "Sem título" ou "clipe 1".
  • A combinação de parâmetros corresponde à intenção do usuário — veja a seção Modos na referência do modelo.
  • O áudio do vídeo gerado não é um parâmetro da ferramenta (lado do provedor). Hailuo não tem ratio/multi-ref; não invente esses parâmetros.
  • Em falha de validação, leia o erro e corrija as entradas — não tente novamente cegamente os mesmos argumentos inválidos.

Etapa 3 — Submeter um, aguardar, confirmar

Submeta um trabalho de geração por vez. A menos que o usuário tenha explicitamente solicitado múltiplos clipes em paralelo, não submeta o próximo clipe até que o atual termine e o usuário o revise. Submissão paralela esconde problemas: se o primeiro corte tiver deriva ou enquadramento errado, o usuário prefere refazê-lo uma vez do que ter vários cortes desalinhados para descartar.

  • submit_video.ratio controla apenas o asset gerado; não altera a tela da linha do tempo do projeto. Se o usuário solicitou uma proporção de aspecto final (por exemplo "9:16 vertical" ou "16:9 paisagem"), defina a tela da linha do tempo para a mesma proporção com manage_timelines action=update (exemplo: ratio:"9:16") antes de colocar o asset completo. Se o usuário pediu sem barras pretas / sem bordas, passe fit:"cover" ao definir a tela ou ao atualizar/adicionar o item visual.
  • Não use esta skill para gerenciamento de trabalhos — use a ferramenta track_progress para status/espera.
  • Após submeter, termine seu turno (informe ao usuário que o trabalho foi criado) a menos que uma tarefa de acompanhamento já esteja na fila.
  • Quando o trabalho terminar, apresente o resultado ao usuário para revisão antes de prosseguir para o próximo corte.
  • Tratamento de falha específico do modelo — veja a referência do modelo.

Etapa 4 — Iterar

Quando o usuário quiser um próximo clipe, uma revisão ou uma continuação:

  • Se for o próximo corte em uma sequência multi-corte — reutilize a âncora estabelecida (veja §Consistência visual entre cortes abaixo para princípios, ref do modelo para detalhes de flags).
  • Se o feedback do usuário for ambíguo ("não parece certo") — pergunte o que especificamente mudar antes de regenerar.
  • Se o mesmo ajuste de prompt de texto falhou duas vezes — pare de ajustar texto. Mude para imagens de referência, ou mude para modo de edição onde o modelo suporta (veja ref do modelo).
  • Cada nova geração reinicia o loop na Etapa 1 — realinhe se o escopo mudou.

Consistência visual entre cortes

Apenas texto não pode manter de forma confiável a identidade visual entre cortes; referências visuais restringem a saída de forma muito mais precisa do que palavras.

Âncoras: a pedra angular da consistência

Uma âncora é uma imagem ou vídeo de referência fixado em todos os cortes que compartilham o mesmo personagem, objeto ou estilo. Qualquer sequência multi-corte com elementos visuais recorrentes precisa de uma âncora — não tente reproduzi-los a partir de texto.

Obtendo uma âncora

Tenha consciência de referências. Quando a solicitação do usuário envolver um personagem/objeto/cena recorrente, pense em qual âncora usar antes de escrever prompts:

  • Verifique o projeto primeiro. O que o usuário já forneceu ou aprovou? Imagens enviadas, cortes gerados e aprovados anteriormente, ou assets de projetos anteriores podem servir como âncoras.
  • Combine com a intenção do usuário. Se o usuário apontou para um asset específico ("use esta foto", "像上一段那样"), use esse. Se descreveram um personagem apenas em palavras, nenhuma âncora existe ainda e uma deve ser estabelecida.
  • Quando em dúvida, pergunte ao usuário. Não adivinhe qual asset fixar e não gere silenciosamente uma nova âncora quando o usuário pode já ter uma em mente.

Estabelecendo uma nova âncora (com consentimento do usuário)

Quando nenhum asset existente se encaixa e um deve ser gerado, proponha-o ao usuário primeiro — ele molda todos os cortes subsequentes. Caminhos específicos do modelo — veja a ref do modelo escolhido.

Usando a âncora

  • Passe a âncora em todo corte que compartilhe o personagem/objeto/estilo. As flags específicas a usar dependem do modelo — veja a ref do modelo.
  • Descreva a âncora pela aparência no prompt, não pelo nome: "O CARRO DE CORRIDA PRETO com escapamento cromado" restringe muito mais do que "Fleetmaster". Quando houver probabilidade de confusão de papéis, adicione negações explícitas: "A motocicleta NÃO transforma."
  • Refira-se à âncora com @Image1 / @Video1 no prompt — não frases vagas como "o mesmo carro de antes".
  • Quando um corte depender de uma geração anterior, espere o trabalho anterior ser concluído (via track_progress com action=wait) para obter seu assetId, depois passe-o como referência de âncora. Não submeta cortes dependentes em paralelo.

Projetos com múltiplos personagens

Quando um projeto tem vários personagens nomeados com atributos distintos (exemplo: Faz com energia de fogo, Kev com energia de gelo), trate cada personagem como uma âncora separada — um asset de referência por personagem. Em todo prompt:

  • Nomeie o personagem ativo e anexe seus atributos distintivos ("Kev tem energia elétrica de gelo azul").
  • Adicione negações explícitas para os outros para evitar vazamento de atributos ("NÃO energia de fogo vermelha, NÃO aparência de Faz").
  • Fixe a âncora do personagem correto (flag específica do modelo — veja ref do modelo). Não reutilize a âncora de outro personagem por acidente.

A falta de atribuição explícita ou negação causa mistura de atributos entre personagens.

Múltiplos personagens no mesmo quadro. Para cortes onde vários personagens aparecem juntos (especialmente de frente para a câmera), o modelo é propenso a troca de rostos ou recorte de corpos. Adicione âncoras fortes de posição + vestuário para cada personagem e prefira uma câmera fixa

...

[truncado para tradução]

Individual skills in this repo

This repo contains 11 individual skills — each has its own dedicated page.

0xsline/openchatcut

Connect an MCP-capable coding agent to OpenChatCut and edit local video projects. Use when the user asks to install, connect, or set up OpenChatCut; inspect or edit an OpenChatCut project; work with its timeline, transcript, captions, media, generation, motion graphics, audio, color, or export tools; or recover from an OpenChatCut MCP error.

0xsline/openchatcut

Use when acquiring or importing media into a OpenChatCut project asset library for video editing or creation, including local/attached videos, user-provided paths, public media URLs, web video/audio/image assets, upload fallback decisions, and deciding between import_media, download_media, or manual user action.

0xsline/openchatcut

Use when a OpenChatCut video editing or creation workflow needs export, render, download, share, final delivery, subtitle-file export, render choice, local-only asset handling, or export fallback explanation.

0xsline/openchatcut

AI image generation via Fal.ai, gpt-image-2, nano-banana, MiniMax image-01, and xAI Grok Imagine. Use when the user wants to generate or create an image / picture / still.

0xsline/openchatcut

Use when a OpenChatCut tool call fails or returns an unexpected shape.

0xsline/openchatcut

Music generation via Mureka, MiniMax, Atlas Cloud, and Sonilo. Use for instrumentals, songs, soundtracks, track/stem generation, covers, or video-conditioned scoring of the finished cut through `submit_music`.

0xsline/openchatcut

OpenChatCut product knowledge — UI layout, editor features, and how generation providers are configured. Use when the user asks about the product interface, how to use a feature, where to find something, or needs GUI guidance for something the agent cannot do directly. Also use as fallback when a task fails and the user needs to complete it manually in the UI. NOT for live project-state queries ("where are my folders?", "what's on my timeline?", "where is clip X?") — those are answered by `read_project`, not by this skill.

0xsline/openchatcut

AI shader generator for WebGL video effects, transitions, masks, and color grading (LUT / 调色 / 电影感 / film look). Use when the user wants a video effect (滤镜 / 特效), a transition (转场 / crossfade / wipe / cube / 3d), a mask (蒙版 / 遮罩 / reveal), a zoom / push-in (推近 / 推镜头), or a color grade — try the built-in effects (zoom, builtin LUTs) before generating a new shader.

0xsline/openchatcut

Use when checking whether agent edits are reflected in the OpenChatCut project and editor.

0xsline/openchatcut

Text-to-Speech (TTS), voiceover, narration placement/sync, and custom sound effects (SFX) generator. Use when the user wants generated speech from text, wants to add/replace/align narration or voiceover for an existing video/timeline, wants to keep existing voiceover synced after visual retiming edits, needs voice audition/selection, or explicitly wants a newly generated/custom sound effect that is not available in the Sound Effects library.

0xsline/openchatcut

Use when the agent should ask the user for structured input with an in-chat form, including single-select, multi-select, text fields, style pickers, or voice audition choices.

Habilidades Relacionadas