Communitygithub.com

desi-lyric-film

Crie um vídeo musical lírico 16:9 no estilo maximalista indiano, com animação stop-motion de um personagem, moldura ornamentada persistente, letras em Devanagari e romano sincronizadas com as palavras e um momento de destaque nos olhos a cada refrão. As letras são extraídas automaticamente do áudio do usuário; o personagem é construído com o Atlabs MCP.

O que é desi-lyric-film?

Esta skill transforma um arquivo de áudio (mp3/wav/m4a) fornecido pelo usuário em um vídeo musical lírico animado no formato 16:9, com um estilo visual maximalista indiano feito à mão. O resultado é uma animação em stop-motion com um personagem ilustrado consistente, cujas expressões faciais e movimentos corporais acompanham a emoção de cada verso. As letras são exibidas palavra por palavra em Devanagari, com a tradução romanizada abaixo, e são extraídas automaticamente do próprio áudio do usuário por meio de ferramentas de transcrição (Whisper) e sincronização com as batidas e onsets vocais. O personagem pode ser criado a partir de imagens de referência do usuário ou desenhado originalmente utilizando o Atlabs MCP, que gera a base e todas as variações de expressão, roupas e planos de close-up dos olhos. A skill também gerencia todo o pipeline de produção: desde a análise da música, seleção do trecho ideal (geralmente o refrão), criação dos arquivos JSON de letras, personagem e plano de filmagem, até a renderização final do vídeo em 1920x1080 a 24 fps usando o framework Remotion. É ideal para quem deseja criar um 'lyric video' estilizado, no estilo Bollywood/Desi, com tipografia cinética e animação de personagem, e requer obrigatoriamente a conexão com o Atlabs MCP para funcionar.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Chinmaya123-cyber/desi-lyric-film/tree/main/skills/desi-lyric-film

Perguntar na sua IA favorita

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

Documentação

Filme lírico Desi

Transforme uma música (arquivo de áudio do usuário) em um filme lírico 16:9 em um estilo consistente desenhado à mão: um personagem ilustrado carrega a emoção de cada verso, cada refrão é um momento de destaque nos olhos, as letras são escritas palavra por palavra em Devanagari com a linha romanizada abaixo, cada corte coincide com uma sílaba cantada, e tudo se move como stop-motion (desenhos em dois quadros, linhas de tinta fervilhando, recortes de papel).

template/ é um projeto Remotion completo e testado, com um motor orientado a dados. Você nunca codifica um filme manualmente: você produz três arquivos JSON e o motor os renderiza.

arquivoo que contémcriado por
src/lyrics.jsonuma entrada por frase cantada: {t0, t1, dev[], rom[], times[]}tools/transcribe_lyrics.py → tools/build_lyrics.py
src/character.jsonconjuntos de expressões + âncoras dos olhos, placas de close-up dos olhos, cartões de visual, giroAtlabs MCP + tools/register_frames.py, eye_anchor.py, cu_plates.py, make_cards.py
src/film.jsona lista de planos (tipo, início, slot de letra, fundo, transição, opções)tools/plan_shots.py, depois você refina pelo significado

Leia as referências conforme você avança em cada etapa: references/atlabs-mcp.md · references/character.md · references/lyrics-and-timing.md · references/shot-design.md · references/style-guide.md (paleta exata, tipografia, especificação de movimento) · references/render-deliver.md.

0. Regra rígida — o Atlabs MCP deve estar conectado primeiro

Toda a arte do personagem (design base, expressões, close-ups dos olhos, visuais de roupa/cor) é gerada através do Atlabs MCP. Não há alternativa: se não estiver conectado, pare e não faça mais nada até que esteja.

Verifique: pesquise com ToolSearch por atlabs generate_image get_result start_upload get_account (as ferramentas são nomeadas mcp__atlabs__… ou mcp__<id>__… e geralmente são diferidas), então chame get_account — ele retorna o saldo de créditos.

Se as ferramentas estiverem faltando ou get_account falhar, responda exatamente com estes passos e aguarde:

Esta skill cria a arte do personagem com o Atlabs MCP, então ele precisa estar conectado primeiro (cerca de um minuto):

  1. Ainda não tem conta no Atlabs? Cadastre-se em https://app.atlabs.ai (a geração de imagens usa créditos do Atlabs; um filme completo precisa de aproximadamente 25–40).
  2. Conecte-o:
    • Claude Code, instalado como este plugin: Atlabs está incluso — digite /mcp, escolha atlabs, faça login.
    • Claude Code (terminal): execute claude mcp add --transport http atlabs https://mcp.atlabs.ai/mcp, depois /mcp → atlabs → faça login.
    • Claude Desktop / claude.ai: Configurações → Conectores → Adicionar conector personalizado → Nome Atlabs, URL https://mcp.atlabs.ai/mcp → Adicionar → Conectar → faça login, depois ative-o para este chat.
  3. Diga-me quando estiver conectado e eu começarei.

1. Briefing — pergunte, não presuma

Pergunte com AskUserQuestion (uma rodada, depois prossiga com padrões sensatos):

  1. A música: um arquivo de áudio que eles tenham (mp3/wav/m4a). Nunca baixe música você mesmo.
  2. Qual parte: "escolha o refrão para mim" (padrão, 30–60 s) ou os timestamps deles, ou um clipe de referência para corresponder (tools/locate.py encontra um clipe dentro da música).
  3. O personagem — ofereça:
    • "Usar minhas imagens de referência" — fotos deles mesmos ou de alguém que concordou, ou arte de personagem sobre a qual eles têm os direitos. Eles podem compartilhar várias (roupas diferentes, fundos coloridos, expressões); cada uma é útil. Não estilize uma celebridade ou qualquer pessoa real sem o consentimento dela — ofereça um personagem original.
    • "Criar um personagem original" — opcionalmente a partir de uma imagem de referência de estilo e uma breve descrição (aparência, vibe da roupa).
  4. Palavras de vibe (opcional): ex. "desi baddie Gen-Z", "romântico suave", "festivo", "coração partido". Padrão: desi moderno com sotaques indianos.

Se eles compartilharem imagens no chat que não sejam arquivos em disco, peça para salvá-las em refs/cards/ (ou fornecer caminhos) — os uploads para o Atlabs precisam de arquivos.

2. Estrutura inicial

cp -R <diretório da skill>/template <projeto> && cd <projeto>
npm install
uv venv -q --python 3.12 .venv && uv pip install --python .venv/bin/python numpy scipy pillow faster-whisper
mkdir -p refs && cp <música> refs/song.mp3

(python3.12 -m venv .venv também funciona.) Execute cada ferramenta Python como .venv/bin/python -I tools/<ferramenta>.py … a partir da raiz do projeto. O template vem com um personagem de demonstração, adereços e dados de demonstração para que npx remotion studio src/index.ts funcione imediatamente.

3. Leia a música, escolha a parte, corte o áudio — references/lyrics-and-timing.md

.venv/bin/python -I tools/beatgrid.py refs/song.mp3 --bpm-min 60 --bpm-max 180      # tempo, fase da batida, barras de volume
.venv/bin/python -I tools/structure.py refs/song.mp3                                 # seções repetidas = refrões
.venv/bin/python -I tools/vocal_onsets.py refs/song.mp3 --from 0 --to <dur> --json refs/onsets.json
tools/cut_audio.sh refs/song.mp3 <início> <fim>                                        # → public/audio/song_cut.wav

Escolha a seção vocal mais repetida e mais energética (o refrão mora lá). Comece em um tempo forte 2–4 batidas antes da primeira vocal, termine em uma respiração antes da próxima seção. Anote início — tempo do vídeo = tempo da música − início.

4. Letras — automáticas, a partir do próprio áudio do usuário

.venv/bin/python -I tools/transcribe_lyrics.py refs/song.mp3 --from <início> --to <fim> --lang hi --onsets refs/onsets.json
.venv/bin/python -I tools/build_lyrics.py --transcript refs/transcript.json --slice <início> <fim> --onsets refs/onsets.json
  • --lang hi retorna em Devanagari, --lang en hinglish romanizado; build_lyrics.py escreve ambas as escritas.
  • Se o transcritor relatar trechos cantados ilegíveis (canto muito rápido, vocais em camadas), pergunte uma vez se o usuário tem as letras como texto ou uma tabela com timestamps; se sim: build_lyrics.py --table lyrics.txt … (ou --text). Se não, continue: essas frases ficam sem palavras e o planejador dá a elas planos apenas visuais.
  • As letras vêm apenas do áudio do usuário através do transcritor ou de texto fornecido pelo usuário. Nunca digite as letras da música você mesmo, nunca preencha lacunas de memória e não ecoe o texto da letra de volta no chat — relate contagens e timings.

5. O personagem — Atlabs MCP — references/character.md

Um desenho base, todo o resto é uma edição dessa base, então o personagem nunca se desvia. Modelos padrão: Nano Banana 2.1 (nano_banana_2_1) para a base a partir de referência e cada edição (melhor consistência); GPT Image 2.5 Sunburst (gpt_image_2_5_sunburst) quando uma foto precisa de uma passagem de estilização mais forte; Seedream 5 Pro (seedream_5_pro) para novos adereços ou placas de cena completa.

  1. Base: limpa, meio corpo, fundo creme liso, no estilo (referências ou original).
  2. Expressões (edições da base): front, half, closed, pain, relief, shy, dream, moved (+ a base como neutral/side-eye). register_frames.py as coloca em uma tela; eye_anchor.py --set main … encontra os olhos dela.
  3. Segundo visual opcional (ex. uma roupa mais escura) com front, half, closed, pain, relief, dream → usado para humores pesados.
  4. Banda de close-up dos olhos + edições half, closed, tears, glance, smoulder → cu_plates.py, depois eye_anchor.py --closeup.
  5. 4–6 cartões de visual: a mesma pessoa, roupa moderna diferente + fundo de cor sólida da paleta + rabiscos, cada um com uma edição de olhos fechados → make_cards.py.
  6. Um giro de corpo inteiro → keyout.py. Envie gerações independentes em paralelo; folha de contato com sheet.py e veja antes de prosseguir. Informe ao usuário os modelos usados e os créditos gastos.

6. Planeje o filme — references/shot-design.md

.venv/bin/python -I tools/plan_shots.py --bpm <bpm> --beat0 <primeira batida, s de vídeo> --duration <s> --audio audio/song_cut.wav

Depois leia o significado de cada linha (dos arquivos, sem colar letras no chat) e refine src/film.json:

  • cada refrão é um momento de destaque nos olhos (close-up dela com um olhar diferente a cada vez, ou um adereço de olho); nunca o mesmo duas vezes seguidas
  • a dor está no rosto dela (rachaduras, chão escurecido) e o alívio chega na palavra de cura — nunca uma ferida literal
  • toque/sentimento é "comovido" (florescimentos, ondulações), não um coração na mão literal; linhas rápidas são viradas de cartão de visual
  • os fundos mudam a cada plano (cores do visual), a moldura nunca muda; as transições variam Mantenha uma história coerente: ela é a protagonista, seus olhos são o motivo.

7. Revisão, depois renderização — references/render-deliver.md

node tools/stills.mjs out/st 0.5 <quadros…> && .venv/bin/python -I tools/sheet.py out/st.jpg out/st/*.jpg
./tools/make_film.sh <nome>                     # → out/<nome>.mp4 (1920×1080, 24 fps)

Verifique os stills na primeira palavra de cada frase: legibilidade da letra e dentro do quadro, olhos abertos nos refrões, expressões correspondendo à linha, sem planos vazios. Corrija, re-renderize os quadros alterados, depois renderize o filme (~4–6 min). Copie o resultado para a pasta Downloads do usuário e envie. Mencione uma vez: uma música comercial pode ser silenciada em algumas plataformas; é responsabilidade do usuário ter os direitos para publicá-la.

Pegadinhas (de execuções reais)

  • feTurbulence trata as sementes 0 e 1 como o mesmo padrão — as sementes de fervilhamento/grão começam em 1 (já corrigido em kit.tsx); caso contrário, a abertura fica parada por 4 quadros e depois pula.
  • Whisper perde canto muito rápido; os onsets ainda cronometram essas frases — nunca adivinhe as palavras.
  • O shell headless empacotado do Remotion pode travar no macOS; remotion.config.ts usa o Chrome instalado. Mantenha a concorrência em 6.
  • As edições registradas devem vir da mesma imagem base; se uma edição se desviar (pose/corte diferente), regenere-a em vez de forçá-la.
  • O texto em fundos escuros muda automaticamente para a letra creme/pêssego — escolha os fundos dos planos pelo clima, não pelo texto.

Habilidades Relacionadas