Communitygithub.com

NoizAI/skills

Crie um videoclipe a partir de uma música e letra existentes, usando animação p5.js/p5.brush ou montando imagens e clipes locais.

O que é skills?

Este skill transforma uma música finalizada em um videoclipe de 24fps. Ele suporta dois modos: 'code', que anima a música em JavaScript com p5.js e p5.brush, e 'hybrid', que inspeciona imagens de personagens, cenas estáticas e clipes de vídeo locais e os monta sem chamar APIs de geração. O skill realiza análise local de batida, onset, baixa frequência e volume para determinar pontos de corte e dicas de animação. O resultado é um vídeo frame-exato com a música original como única trilha sonora, acompanhado de documentos de briefing criativo, storyboard, tarefas e progresso. É ideal para usuários que mencionam videoclipe, MV, lyric video, visualizer ou storyboard, e não deve ser usado para compor a música ou gerar efeitos sonoros.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/NoizAI/skills/tree/HEAD/skills/music-video

Perguntar na sua IA favorita

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

Documentação

music-video

Transforme uma música finalizada em um videoclipe de 24fps. A música é o áudio mestre. Os intervalos de cena cobrem a faixa exatamente uma vez.

Gatilhos

  • videoclipe / MV / lyric video / visualizer / storyboard
  • 音乐视频 / MV合成 / 歌词动画 / 歌曲动画

Capacidades

  • code: inicialize um projeto p5.js e p5.brush fixo e anime a música em JavaScript.
  • hybrid: inspecione imagens de personagens, cenas estáticas e clipes de vídeo locais e monte-os. Nenhuma API de geração de imagem ou vídeo é chamada.
  • Análise local de batida, onset, baixa frequência e volume para pontos de corte e dicas de animação.
  • Montagem frame-exata com a música original como única trilha sonora.

Entradas

Obrigatórias:

  • song: áudio local (.mp3, .wav, .m4a, .flac, .ogg, .aac)
  • brief: a ideia visual, o público e quaisquer referências necessárias
  • mode: code ou hybrid

Opcionais:

  • lyrics: texto ou .srt. Necessário antes do storyboard quando o timing vocal importa.
  • assets: diretório de imagens e clipes para hybrid
  • aspect: 16:9 (padrão), 9:16, 1:1 ou 4:3

Se o usuário quiser que uma música seja criada primeiro, use text-to-music e depois retorne aqui com o arquivo escolhido.

Saídas

  • <project>/output/final.mp4
  • docs/CREATIVE_BRIEF.md, docs/STORYBOARD.md, docs/TASKS.md e docs/PROGRESS.md
  • audio/analysis.json e docs/inspect.json quando existirem ativos

Fluxo de trabalho

Execute python3 skills/music-video/scripts/mv.py a partir da raiz do repositório. Se este skill estiver instalado em outro lugar, use o scripts/mv.py ao lado deste arquivo. Crie o projeto fora do diretório do skill.

  1. Escolha code quando o vídeo for desenhado em JavaScript. Escolha hybrid quando o usuário fornecer imagens ou clipes. Pergunte uma vez quando nenhum dos dois estiver claro.
  2. Inicialize um projeto isolado:
python3 skills/music-video/scripts/mv.py init \
  --project ./mv-project --song ./song.mp3 --lyrics ./lyrics.txt --mode code

python3 skills/music-video/scripts/mv.py init \
  --project ./mv-project --song ./song.mp3 --lyrics ./lyrics.srt \
  --assets ./clips --mode hybrid --aspect 16:9
  1. Analise a música. Trate mudanças de andamento como aproximadas e confirme os limites das seções a partir do áudio:
python3 skills/music-video/scripts/mv.py analyze --project ./mv-project
  1. Obtenha o timing da letra. Se o usuário não o forneceu, use speech-to-text somente quando NOIZ_API_KEY ou ~/.config/noiz/api_key já existir. Nunca imprima a chave. Se nenhum dos dois existir, peça a letra ou os timestamps e não faça upload da música.
  2. Leia references/opus-5.5-prompt.md e siga-o. Escreva o briefing criativo e o storyboard antes do código da cena ou da montagem. Revise a abertura e o pico principal antes de construir os outros capítulos.
  3. No modo code, leia <project>/animation/ANIMATION_GUIDE.md antes de desenhar. Defina PROJECT.bpm e PROJECT.offset a partir de audio/analysis.json. O canvas do template fixo é 1920×1080; altere studio.html e a janela do renderizador antes de usar outra proporção. Verifique o movimento com o renderizador do template:
node render.mjs --sheet=1,2,3 --out=../output/sheets/pilot.jpg
node render.mjs --strip=START:END --out=../output/sheets/pilot-motion.jpg
node render.mjs --clip --range=START:END --out=../output/pilots/opening.mp4

Execute-os dentro de <project>/animation. Passe --chrome ou defina CHROME_PATH quando o Chrome não estiver em um local padrão. Uma folha de contato apenas exibe o layout. Um --strip ou a reprodução da abertura, pico e final é a revisão de movimento. 7. No modo hybrid, inspecione a mídia local e pare se um clipe necessário estiver faltando. Não gere um substituto.

python3 skills/music-video/scripts/mv.py inspect --project ./mv-project
  1. Escreva timeline.json usando references/timeline.schema.json. Os intervalos são inclusivos em start_frame e exclusivos em end_frame.
  2. Monte e analise o resultado:
python3 skills/music-video/scripts/mv.py assemble --project ./mv-project

Timeline

{
  "fps": 24,
  "width": 1920,
  "height": 1080,
  "audio": "audio/source.mp3",
  "scenes": [
    {
      "id": "opening",
      "start_frame": 0,
      "end_frame": 240,
      "source": "output/pilots/opening.mp4",
      "source_start": 0,
      "fit": "cover",
      "transition": "fade",
      "fade_frames": 6
    }
  ],
  "overlays": []
}

fade permanece dentro de sua própria cena. Não sobreponha cenas para criar um crossfade.

Conclusão

Finalize somente quando cada item for verdadeiro:

  • [0, ceil(duration × 24)) é coberto exatamente uma vez, sem lacuna ou sobreposição.
  • final.mp4 tem um fluxo de vídeo e a música original completa.
  • A abertura, o pico principal e o final foram revisados em movimento.
  • A última história lida teve tempo para se estabelecer.
  • docs/PROGRESS.md não tem bloqueios em aberto.

Segurança

init --mode code clona JohnHeibel/ClaudeAnimationBase no commit 0ac8bf2b31942376cb6b8c4074715595d512acd2 dentro do projeto. Esse template é licenciado MIT. Análise, inspeção, renderização e montagem permanecem locais. O modo híbrido não faz upload de mídia e não chama um serviço de geração de imagem, vídeo ou música.

Requisitos

  • ffmpeg e ffprobe
  • Python 3.9+
  • analyze: uv pip install 'numpy>=2,<3'
  • modo code: git, Node.js e Google Chrome
  • modo hybrid: ativos locais apenas

Limitações

  • Este skill não compõe música, gera efeitos sonoros ou cria imagens e vídeo por meio de uma API.
  • A grade de batidas assume um andamento aproximadamente constante.
  • Preenchimentos aquarela no modo code podem levar segundos por quadro sem uma GPU discreta. Peça ao renderizador para evitar esses preenchimentos em gráficos integrados.
  • A montagem rejeita um clipe mais curto do que sua cena, em vez de congelá-lo ou reajustá-lo.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Habilidades Relacionadas