Communitygithub.com

shaharsha/produção-de-episódios-animados

Use para criar vídeos animados com narração ou voz, com personagens recorrentes – um episódio de anime, cartoon ou comic, um curta para um grupo de chat, uma história sobre amigos, família, uma turma ou equipe – a partir de fotos, exportação de chat, uma ideia de história ou roteiro, em qualquer estilo visual, hebraico/RTL ou inglês. Também use quando um vídeo tiver legendas ou cards muito rápidos para ler, música parando antes do fim, final cortado, falas soterradas pela música, bocas fora de sincronia, um gesto antes da fala, ou um rosto...

O que é produção-de-episódios-animados?

Esta skill implementa um pipeline completo para produção de episódios animados verticalizados, com narração, legendas e sincronia labial. O projeto é centralizado em um único arquivo `episode.json`, e o motor `engine/episode.py` executa todas as fases, desde a geração de roteiro, personagens, painéis, vozes, música e efeitos sonoros até a edição final e entrega do vídeo MP4. O áudio é a referência mestra: durações de takes, tempos de legendas e partes de lip-sync são derivadas diretamente dos arquivos de diálogo finalizados, evitando estimativas imprecisas. A skill oferece 11 fases com portões de revisão humana para garantir qualidade, suporta hebraico/RTL, estilos visuais variados e integração com skills irmãs para geração de imagens, TTS (ElevenLabs) e clipes de vídeo.

Funciona com~Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/shaharsha/claude-skills/tree/HEAD/skills/producing-animated-episodes

Perguntar na sua IA favorita

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

Documentação

Produção de episódios animados

Visão geral

Um episódio animado vertical, narrado, legendado e animado: arte de personagens, painéis, vozes clonadas ou de biblioteca, música, clipes de imagem-para-vídeo e sincronia labial, montados por um motor que cronometra cada plano a partir do áudio real do diálogo. Um único episode.json contém todo o projeto, e engine/episode.py executa cada fase a partir dele. As skills irmãs fazem o trabalho dos provedores.

Use o motor; não escreva seus próprios scripts de edição. Linha do tempo, sobreposições, legendas, texto da direita para a esquerda, mixagem, durações e junções de lip-sync já estão em engine/. Foi comprovado pela reconstrução de um episódio real de 3,5 minutos: quadros idênticos, áudio idêntico e o comprimento exato que o original havia perdido. Uma edição manual redescobre cada bug em references/troubleshooting.md.

O áudio é o mestre. Durações dos planos, tempos das legendas e partes de lip-sync vêm dos arquivos de diálogo finalizados. Nunca estime um tempo a partir do texto.

Você não pode assistir nem ouvir. Você verifica quadros, durações e números. O ser humano julga semelhança, vozes, pronúncia, ritmo e piadas. Planeje seus pontos de verificação e mantenha-os.

Requer:

  • Estas skills ao lado desta: image-generation, elevenlabs-tts, generating-video-clips.
  • Python 3 com pip install -r <diretório-desta-skill>/requirements.txt (Pillow compilado com RAQM, numpy; OpenCV opcional).
  • ffmpeg 7 ou mais recente.
  • Fontes: os estilos e legendas nomeiam chaves de fonte (bold, hblack, black no exemplo) que fonts mapeia para arquivos .ttf instalados. Para hebraico e latim, Rubik e Heebo (grátis, Google Fonts) funcionam bem; check bloqueia se alguma estiver faltando.
  • Chaves em variáveis de ambiente, definidas em todo shell que execute o motor: OPENAI_IMAGE_API_KEY, ELEVENLABS_API_KEY, GEMINI_API_KEY, FAL_KEY.

Para ver todo o pipeline funcionar sem chamadas de API, execute python3 <diretório-desta-skill>/engine/episode.py /tmp demo, depois check e build o projeto demo que ele cria.

O pipeline e seus portões

Cada portão é uma parada: envie o artefato, pergunte, aguarde. Os comandos são python3 <diretório-desta-skill>/engine/episode.py PROJETO <comando>. Custos medidos em outubro de 2026.

#FaseComandoPortão (o humano)Custo
1História e roteiroscript.md a partir de templates/script.template.mdo roteiro e todo tópico sensível-
2Bíblia de personagenstemplates/characters.template.md, depois characters em episode.json--
3Rostos, cards, promoverchars face, chars card key=rosto.png, chars final keyssemelhança, em uma folha de todos os cards~$0.30 por personagem
4Painéispanels draft, depois panels final idscada painel, em uma folha~$0.30 por painel
5Vozesuma amostra por voz (elevenlabs-tts)cada voz, de ouvido, antes do lotecentavos
6Falaslineso conjunto de ouvido, com carimbos de tempo; nomes A/Bcentavos a alguns $
7Música e SFXsounda músicacentavos
8Animaticbuild (ainda sem clipes: imagens estáticas com movimentos de câmera)ritmo e ordem, antes de qualquer gasto com vídeográtis
9Animaçãoanimate, folhas, retakes com animate S --takes 2 + animate pick S Kmovimento, a partir das folhas~$0.10 por segundo de clipe, por take
10Lip-synclipsync prep, pontos faciais no config, lipsync runverificação pontual de quadros~$0.13 por segundo
11Editar e entregarbuild, sheet, delivero humano assiste ao mp4grátis

Comandos, entradas, saídas e tratamento de falhas para cada fase: references/pipeline.md.

Escrevendo o roteiro

Regras que se mantiveram (detalhes e um exemplo prático: references/script-writing.md):

  • Um gancho nos primeiros 3-4 segundos (uma abertura fria sobre o problema), depois o título. Em menos de 30 segundos, coloque o título e o card final como sobreposições em planos da história e pule a montagem.
  • Cada personagem recorrente fala pelo menos uma vez. Uma montagem de abertura, uma palavra cada em sua própria voz com cerca de 1,2-1,5 s por card, é barata e amada.
  • Texto na tela deve ser legível: cerca de 0,8 s mais 0,06 s por caractere; 1,2-1,5 s para um card curto; 4-6 s para uma legenda final. Dê aos cards um mindur.
  • Plante pistas cedo e as recompense. Referências a piadas internas reais do grupo causam mais impacto.
  • Tópicos sensíveis são decisão do usuário. Liste cada detalhe privado que gostaria de usar (saúde, dinheiro, relacionamentos, família, brigas), pergunte sobre cada um e use apenas o que eles confirmarem.
  • Falas de 12 palavras ou menos, números por extenso. Texto na tela mantém a ortografia normal; correções de pronúncia vão em pronounce.
  • Música e efeitos sonoros, mesmo para narração. Pelo menos uma base musical e alguns efeitos (whooshes em cortes, um impacto na revelação); uma base silenciosa soa inacabada.

episode.json em uma tela

templates/episode.example.json é um episódio pequeno completo; cada chave está em references/config-schema.md. As partes que você mais edita:

  • characters: nome de exibição, cor, voz e os campos de prompt da bíblia de personagens.
  • speakers: vozes que nunca são desenhadas, como um narrador ({"display": null, "voice": "<id>"} dá legendas sem nome).
  • lines: id, falante, texto com tags de áudio; trim e level em falas de uma palavra.
  • shots: imagem, linhas ("[email protected]" sobrepõe a linha anterior), pads, mindur, câmera, fx, sfx, sobreposições, deslocamento e velocidade do clipe.
  • music_cues: [cue, from shot, to shot, volume, offset]. O build avisa quando um cue é mais curto que sua janela.
  • lipsync: quais planos, quais linhas pular, um ponto facial por parte.
  • prompts: substitua char_style e panel_style para uma aparência diferente (cartoon 3D, aquarela, fotorrealista).

Construindo e revisando

  • Agrupe as correções. Uma build completa leva minutos. Colete todas as notas de uma rodada de revisão (um take de fala, um pad, um deslocamento de clipe), aplique todas e reconstrua uma vez.
  • Segmentos são armazenados em cache e rastreados. build renderiza exatamente os planos cujas entradas mudaram: um novo clipe ou versão com lip-sync, um painel promovido, uma fala editada, plano ou estilo. build --only S05,S06 força esses planos; --force renderiza tudo novamente.
  • Um plano com lip-sync é refeito após qualquer alteração em seu clipe, deslocamento, velocidade ou falas: lipsync prep S05 && lipsync run S05. Até lá o build avisa que está desatualizado e usa o clipe bruto.
  • Regenerar um asset existente precisa de --force (sound theme --force, animate S05 --force); sem ele, arquivos existentes são mantidos e apenas lacunas são preenchidas.
  • Revise com folhas. sheet coloca 3 quadros por plano em uma página. Quando o humano nomear um momento pelo tempo, extraia e leia esses quadros antes de responder (ffmpeg -ss T -i build/<saída>.mp4 -frames:v 1 f.jpg).
  • check antes de toda build: assets faltando, chaves, skills irmãs e texto de sobreposição mais largo que o quadro.
  • Durações são verificadas ao final de toda build. Áudio mais curto que vídeo falha a build em vez de cortar o final.
  • Antes de enviar: references/qa-checklist.md.

Trabalhando com o humano

  • Envie cada artefato com sua ferramenta de envio de arquivos e ofereça-se para revelá-lo no Finder; não apenas imprima um caminho. O passo final é deliver e enviar esse arquivo.
  • Para áudio, diga o que ouvir e onde ("aos 0:41, o nome da Dani soa correto?"). Nunca afirme que ouviu.
  • Escolhas de pronúncia e voz são deles: arquivos A/B com carimbos de tempo (elevenlabs-tts).
  • Antes de cada fase paga, dê a estimativa de custo; depois dela, o total acumulado.

Quando algo parece errado

SintomaCorreção
Cards ou legendas muito rápidos para leraumente mindur / post: ~1,2-1,5 s por card curto, 4-6 s para a legenda final
Um título cortado nas bordascheck avisa; diminua o size do estilo ou adicione wrap
Música para antes do fim da seçãoo build avisou: aumente os seconds do cue, sound <cue> --force; ou divida a seção em dois cues
O final é cortadonão pode acontecer com o motor (mixagem de comprimento exato, verificação de duração); em muxagens manuais, veja deck-to-video
Uma fala soterrada pela músicalevel_clips.py --report naquela fala, depois um take mais firme; reduza o volume daquele cue
Um personagem aponta ou age antes da falaclip_off depois disso, ou divida o plano e corte a primeira parte com clip_cam
Bocas não se movem com as palavrasfase de lip-sync; se a boca errada se move, corrija seu ponto facial
Um rosto maior no plano de grupoinstale OpenCV (rostos são equalizados), ou mirror um card cujo adereço cobre um vizinho
Hebraico renderizado invertido ou sem junçãoPillow sem RAQM: check diz como corrigir
Um nome ou estrangeirismo mal pronunciadouma entrada pronounce, A/B de ouvido

Mais, com causas: references/troubleshooting.md.

Skills relacionadas

Individual skills in this repo

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

shaharsha/deck-to-video

Use when turning a slide deck plus per-slide narration audio into an mp4 video — a self-playing/self-presenting deck video, "slides to video", "presentation to mp4", a shareable WhatsApp/Slack/Drive video of a narrated deck, or when a slide video needs a per-slide progress bar / countdown / slide counter. Also use when a slide video should highlight, glow or spotlight the element being talked about in time with the voice, or when narration and on-screen animation need syncing. Also use when...

shaharsha/generating-video-clips

Use when turning a still image, illustration, comic panel or character art into a short animated clip (image-to-video), choosing a video model or provider (Gemini Omni, Veo, Seedance, Kling, ElevenLabs Flows) or hitting their API gates, lip-syncing a character's mouth to existing dialogue audio (Sync, fal.ai, active speaker), or fixing a generated clip with artifacts - duplicated props, a door or a second figure appearing, hands through bodies, glowing eyes, a gesture repeated at the start,...

shaharsha/image-generation

Generate logos, icons, UI mockups, hero images, product shots, and other design assets using OpenAI GPT Image 2.5 (Sunburst, Flare) or Google Gemini (Nano Banana 2, Nano Banana Pro, Nano Banana 2 Lite). Use whenever the user asks to create, design, generate, mock up, render, or illustrate a visual asset, needs a transparent PNG, or asks for image prompt engineering. Picks the right model and quality for the job, writes a model-specific prompt following the official prompting rules of each...

Habilidades Relacionadas