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, aponteHF_HOMEpara um local com espaço. - Definir
HF_HUB_OFFLINE=1faz o carregamento dotransformerfalhar. 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-rewriterpode ser usada (npx skills add MiniMax-AI/MiniMax-Music3 --skill music-caption-rewriter, ou copiando oskills/music-caption-rewriterclonado 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 selecionadomusicLyrics: o conteúdo de<name>-lyrics.txt(sem tags)musicMood: um resumo curto em japonês do clima doprompt- No
reports/delivery.mddo 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.