Communitygithub.com

NaxFur/duo-sketch-reel

Crie um reel de comédia 9:16 (30-45 s, inglês) com dois personagens 3D — o Nerd (cabelo espetado, óculos, hoodie) e Claude, o pequeno robô laranja low-poly em sua mesa — renderizado no Blender a partir de um único storyboard.json.

O que é duo-sketch-reel?

Duo Sketch Reel (Nerd + Claude) é um pipeline automatizado de animação 3D que permite criar episódios completos de sketch com dois personagens — o Nerd (um desenvolvedor frustrado) e Claude (um pequeno robô laranja low-poly) — sem precisar de nenhuma imagem ou vídeo gerado externamente. O fluxo começa com um tópico (uma dor real de dev/AI com uma dica verificada), pesquisa com fontes primárias, script e storyboard em JSON, uma prévia gratuita com vozes do sistema no macOS, geração de áudio profissional (ex: ElevenLabs), renderização final no Blender EEVEE e verificação de qualidade com relatório QA. A saída é um vídeo 9:16 de 30-45 segundos com abertura do Nerd, resposta deadpan do Claude, um twist e loop de volta ao primeiro frame. Suportado por um conjunto de scripts Python e shell, o pipeline lida com animação procedural de rigs, iluminação, câmeras, sobreposições, legendas, áudio masterizado (LUFS) e até uma variante B para hooks. Tudo é controlado por um único arquivo `storyboard.json` por episódio, tornando a criação de novo conteúdo puramente uma questão de dados, não de código. Ferramentas necessárias: Blender 5.x, Python com numpy/scipy/soundfile/pillow, whisper.cpp, ffmpeg e fontes personalizadas. Ideal para criadores que querem produzir sketches recorrentes com estética low-poly e humor técnico.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/NaxFur/reel-studio/tree/main/skills/duo-sketch-reel

Perguntar na sua IA favorita

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

Documentação

Duo sketch reel (Nerd + Claude)

Um sketch 3D onde o Nerd entra em pânico e Claude (o robô laranja) responde com tom seco. Tudo é procedural no Blender: o cenário, ambos os rigs, atuação, luzes, câmeras, monitores, sobreposição, trilha sonora e efeitos sonoros são construídos a partir de um arquivo por episódio, storyboard.json. Um novo episódio é dados, não código. Nenhuma imagem ou vídeo gerado em nenhum lugar.

Um episódio é uma pasta: <qualquer_coisa>/<YYYY-MM-DD>_<slug>/ com storyboard.json e research.md. O pipeline escreve todo o resto dentro dela (assets/, project/, renders/, final.mp4, cover.png, qa/). Dois episódios finalizados estão em examples/ do repositório: copie um para começar.

Fluxo de trabalho (em ordem, não pule)

  1. Tópico (5 min). Uma dor real de dev/AI e UMA dica que um desenvolvedor pode usar hoje. A piada é sobre o que o espectador faz com sua IA, não sobre uma ferramenta. Regras e banco de ideias: references/retention.md.
  2. Pesquisa → research.md: cada fato na tela / na voz / legenda com URL + data verificada, fontes primárias (documentos oficiais, README, código-fonte). Uma seção separada "Ficção" para as partes inventadas da história do sketch (tempos, contagens, nomes). Descarte o que não puder verificar e diga isso.
  3. Roteiro + storyboard → storyboard.json (copie um exemplo e reescreva). Esquema e vocabulário: references/storyboard.md. Alvo de 30-40 s, 10-14 linhas, primeira palavra ≤ 0,5 s, um corte a cada 1,5-3 s, Nerd abre, Claude fecha, o último quadro corta de volta para o primeiro.
  4. Prévia gratuita (macOS): pipeline.sh <episodio> --say stills (vozes do sistema, sem créditos). Veja renders/stills/sheet.jpg (um quadro por final de batida). Corrija colisões de enquadramento/sobreposição, execute novamente. Não está no macOS? Pule --say: grave ou gere as tomadas primeiro (passo 5), depois execute stills.
  5. Vozes. Um arquivo de áudio por linha em assets/audio/dialogue_raw/<id da batida>.mp3 (L01.mp3, ...). Os episódios de referência usam ElevenLabs eleven_v4 com duas vozes da biblioteca – Nerd = "Quinn - Soft Nerd Boy", Claude = "Sarcastic Nigel" – e tags de áudio em cada batida tts (ex.: [deadpan] It was ugly.). Com o conector ElevenLabs no Claude: estime uma linha primeiro (≈ 1 crédito por caractere incluindo tags), depois uma geração por linha e baixe cada tomada de seu content_url. Um episódio de 11-14 linhas é ≈ 700-900 créditos. Suas próprias gravações funcionam também: mesmos nomes de arquivo.
  6. Build real + stills: pipeline.sh <episodio> stills. project/whisper_check.txt lista roteiro vs ouvido por linha (proporção < 0,8 = ouça). As tomadas são mais longas que a prévia say: verifique a folha novamente.
  7. Final: pipeline.sh <episodio> final (16 amostras, 3 workers ≈ 3 s por quadro em um Mac com chip M: um reel de 38 s ≈ 1 h; execute em segundo plano). Ele renderiza final.mp4, a variante B-hook final_b.mp4, cover.png, e executa qa.py → qa/report.md (deve dizer Bloqueante: nenhum).

Regras rígidas

  • Personagens: não redesenhe o Nerd ou o Claude (engine/scene/nerd.py, mascot.py). Claude não tem boca: ele "fala" com compressão do corpo, saltos, olhos e braços.
  • Um sketch pode inventar sua história (isso é comédia), nunca um recurso de produto, número, benchmark ou citação.
  • Pagamentos (carimbos, chaves, ticks) vão 0,2-0,3 s antes da palavra que ilustram, nunca na última palavra.
  • Prévia gratuita antes de vozes pagas; stills antes da renderização final.

Arquivos

  • pipeline.sh <episodio> [--say] [build|stills|draft|final]
  • engine/scene/ Lado Blender: build_scene.py (entrada), animate.py (atuação/luzes/câmeras a partir do storyboard), env.py cenário, nerd.py, mascot.py, lights.py, tl.py (âncoras, compartilhado com scripts).
  • engine/scripts/: build_timeline.py (tomadas → timeline + palavras whisper + lipsync), make_screens.py (modelos de monitor), make_overlay.py (hook, legendas, itens, cartão de título, captions.srt), make_audio.py + synth.py (trilha/efeitos), master_audio.py (-14 LUFS), stills.py, draft.sh, render_final.sh, encode.sh, make_cover.py, cover_title.py, qa.py, make_textures.py.
  • Ferramentas e caminhos (variáveis de ambiente, padrões macOS): BLENDER (Blender 5.x binário), DUO_PYTHON (um Python com numpy, scipy, soundfile, pillow; padrão ~/.venvs/duo-reel/bin/python), WHISPER_MODEL (modelo whisper.cpp, padrão ~/whisper-models/ggml-medium.en.bin), whisper-cli e ffmpeg no PATH, fontes DUO_FONT_DISPLAY / DUO_FONT_MONO / DUO_FONT_SANS / DUO_FONT_EMOJI.
  • references/storyboard.md (esquema, cada predefinição), references/retention.md (gancho/estrutura/tópicos), references/lessons.md (coisas que deram errado uma vez).

Habilidades Relacionadas