kizuna-intelligence/song-generation

Gere músicas cantadas (até ~5 min, letras em japonês) com o MiniMax Music 3 (modelo aberto de geração de músicas lançado em agosto de 2026) em uma GPU local, a partir de letras e descrição musical.

O que é song-generation?

Esta skill permite gerar músicas completas com vocais utilizando o modelo aberto mais recente, MiniMax Music 3, diretamente em uma GPU local. Ela é particularmente útil para desenvolvedores e criadores que precisam de músicas originais para MV, BGM ou prototipagem, sem depender de serviços online. A skill suporta prompts em inglês para a descrição musical (gênero, andamento, emoção, arranjo) e letras em japonês (kanji/kana), gerando arquivos WAV de até 5 minutos. O processo é dividido em configuração do ambiente (com suporte a AMD e NVIDIA), criação de um arquivo JSON com a descrição e letras, e execução da geração via script Python. Os resultados podem ser passados diretamente para a skill biim-motion para criação de MV.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/kizuna-intelligence/kokuren-mv/tree/main/skills/song-generation

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

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

Documentação

Criar Música (MiniMax Music 3)

Utiliza o modelo de geração de música aberto mais recente encontrado, MiniMax Music 3. A comparação com outras alternativas e licenças está em references/models.md.

O diretório desta skill é chamado de $SKILL (mostrado como Base directory durante o carregamento).

Pré-requisitos

  • Funciona com 1 GPU (versão diffusers). VRAM necessária: cerca de 24 GB diretamente, ~22 GB com --offload cpu, 8 GB com --offload stream (mais lento).
  • Testado em: AMD Radeon AI PRO R9700 (32 GB, ROCm 6.4, PyTorch 2.9.1). Uma música de 60 segundos levou cerca de 5 minutos, aproximadamente 5x o tempo real. Ainda não testado em GPU NVIDIA (a expectativa oficial é CUDA).
  • Os pesos têm cerca de 27 GB. Verifique o espaço em disco antes.
  • O método oficial rápido (SGLang-Omni) requer 2 GPUs CUDA, portanto não é usado nesta skill.

1. Preparar o Ambiente (Apenas na Primeira Vez)

Se já existir um ambiente (como .venv* dentro do MiniMax-Music3 clonado), use-o. Caso contrário, crie um.

git clone https://github.com/MiniMax-AI/MiniMax-Music3.git && cd MiniMax-Music3
uv venv -p 3.12 .venv && source .venv/bin/activate
# NVIDIA: uv pip install torch torchaudio
# AMD:    uv pip install torch torchaudio --index-url https://download.pytorch.org/whl/rocm6.4
uv pip install "diffusers==0.41.0" transformers accelerate soundfile huggingface_hub
# Não baixar arquivos usados apenas pela versão SGLang. Use --exclude por padrão.
hf download MiniMaxAI/MiniMax-Music3 --exclude "qwen_7B/qwen_7B/model-*" \
  --exclude flowmatching_vae.pth --exclude dav.pth --exclude "figures/*"
  • O cartão do modelo contém instruções para usar um commit do diffusers da época anterior ao merge, mas isso impede o carregamento do transformer. Use a versão com merge (0.40.0 ou superior, testado com 0.41.0).
  • Se o cache do Hugging Face (HF_HOME) estiver com pouco disco, aponte HF_HOME para um local com espaço.
  • Definir HF_HUB_OFFLINE=1 faz o carregamento do transformer falhar. Não use.

2. Escrever a Letra e a Descrição da Música

Crie um arquivo song.json.

{
  "name": "yoru-no-machi",
  "prompt": "Global Metadata: Japanese city pop, mid-tempo around 100 BPM, nostalgic night-drive mood that lifts into a bright chorus; polished 80s-inspired production. Vocal Details: warm female lead vocal singing in Japanese, airy in the verse, fuller with light harmonies in the chorus. Arrangement: intro with electric piano and slap bass; verse adds tight drums and muted guitar; chorus opens up with synth brass and lush pads; short outro on electric piano.",
  "lyrics": "[intro]\n\n[verse]\n夜の街を ひとり歩く\nネオンの色が 揺れている\n\n[chorus]\nこのまま 朝まで\n君の声 探してる\n\n[outro]",
  "duration": 180
}
  • A descrição da música (prompt) deve ser em inglês, dividida em três partes: Global Metadata (gênero, andamento, fluxo emocional, produção sonora), Vocal Details (gênero da voz, timbre, estilo de canto, harmonias) e Arrangement (entrada e saída de instrumentos por seção).
  • Sempre especifique o gênero e o timbre da voz. Caso contrário, a música pode ficar apenas instrumental. Se a letra for em japonês, inclua singing in Japanese.
  • Para descrições mais detalhadas, a skill oficial do MiniMax music-caption-rewriter pode ser usada (npx skills add MiniMax-AI/MiniMax-Music3 --skill music-caption-rewriter, ou copiando o skills/music-caption-rewriter clonado para ~/.claude/skills/).
  • A letra (lyrics) pode ser escrita em japonês (kanji/kana) normalmente (testado). As tags [intro], [verse], [pre-chorus], [chorus], [bridge], [instrumental], [solo], [outro] devem estar em linhas separadas. Letras na mesma linha de uma tag são ignoradas (o script detecta e para).
  • Mantenha as linhas curtas e com número de caracteres semelhante na mesma posição. Separe as seções com linhas em branco (dica geral para modelos de geração de música; não testado especificamente no MiniMax Music 3).
  • duration é o limite superior em segundos (10 a 300). O modelo pode terminar antes. Incluir [intro] tende a alongar a introdução (em um teste de 60 segundos, a introdução durou cerca de 25 segundos).
  • Não mencione nomes de músicas ou artistas reais para imitá-los (proibido pela licença, veja abaixo).

3. Gerar

python $SKILL/scripts/generate.py song.json --out-dir songs/ --seeds 1 2 3
  • Mesmo com as mesmas configurações, seeds diferentes geram músicas diferentes. Gere 2 a 3 variações e peça ao usuário para ouvir e escolher. O Claude não consegue ouvir áudio, portanto não julgue a qualidade.
  • A operação leva tempo (cerca de 5x o tempo real no R9700, mais carregamento). Execute em segundo plano e aguarde a conclusão.
  • Saída: <name>-seed<N>.wav (44.1 kHz estéreo), <name>-seed<N>.json (com seed, duração, prompt, letra, tempo de processamento) e <name>-lyrics.txt (letra sem tags, para exibição).
  • Para verificar se a letra foi cantada corretamente, use a transcrição (requer faster-whisper). Na introdução, o Whisper pode errar e repetir a letra.
python $SKILL/scripts/check_lyrics.py songs/*.wav --language ja

4. Criar um MV

Passe a música escolhida diretamente para o modo MV da skill biim-motion.

  • assets.music: o arquivo WAV selecionado
  • musicLyrics: o conteúdo de <name>-lyrics.txt (sem tags)
  • musicMood: um resumo curto em japonês do clima do prompt
  • No reports/delivery.md do MV, registre na seção de materiais utilizados: "Gerado com MiniMax Music 3 (seed, prompt, lyrics)".

Licença (MiniMax-Music3 Community License)

O texto original está em https://huggingface.co/MiniMaxAI/MiniMax-Music3/blob/main/LICENSE . Aqui estão apenas os pontos principais (não é aconselhamento jurídico).

  • Se for usar em produtos ou serviços comerciais, exiba "MiniMax-Music3" de forma proeminente na tela. Se a receita anual exceder 20 milhões de dólares, é necessária autorização por escrito da MiniMax.
  • Siga a Acceptable Use Policy anexa e não infrinja direitos de propriedade intelectual de terceiros.
  • Se houver planos de uso comercial, informe estas condições ao usuário antes da geração.

Individual skills in this repo

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

Habilidades Relacionadas