曲を作る(MiniMax Music 3)
調査した中で最も新しいオープンな楽曲生成モデル、MiniMax Music 3を使用します。他の候補とライセンスの比較は references/models.md を参照してください。
このスキルのディレクトリを$SKILLと表記します(読み込み時に表示されるベースディレクトリ)。
前提
- GPU 1枚で動作します(diffusers版)。必要なVRAMは、そのままでは約24GB、
--offload cpuで約22GB、--offload streamなら8GB(低速)です。 - 動作確認済み: AMD Radeon AI PRO R9700(32GB、ROCm 6.4のPyTorch 2.9.1)。60秒の曲が約5分、実時間の約5倍かかりました。NVIDIAのGPUではまだ試していません(公式の想定はCUDA)。
- 重みは約27GBです。事前にディスクの空き容量を確認してください。
- 公式の高速な手法(SGLang-Omni)はCUDAのGPUが2枚必要であるため、このスキルでは使用しません。
1. 環境を用意する(初回のみ)
既存の環境があればそれを使用します(クローン済みのMiniMax-Music3ディレクトリ内の.venv*など)。なければ作成します。
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
# SGLang版のみが使用するファイルはダウンロードしません。--excludeはパターンごとに指定します
hf download MiniMaxAI/MiniMax-Music3 --exclude "qwen_7B/qwen_7B/model-*" \
--exclude flowmatching_vae.pth --exclude dav.pth --exclude "figures/*"
- モデルカードには、未マージ時代のdiffusersのコミットを使用する手順が記載されていますが、それでは
transformerが読み込めません。マージ済みのリリース(0.40.0以降、確認済みは0.41.0)を使用してください。 - Hugging Faceのキャッシュ(
HF_HOME)のディスク容量が不足している場合は、空き容量のある場所にHF_HOMEを設定してください。 HF_HUB_OFFLINE=1を設定するとtransformerの読み込みが失敗します。設定しないでください。
2. 歌詞と曲の説明を書く
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
}
- 曲の説明(
prompt)は英語で、Global Metadata(ジャンル・テンポ・感情の流れ・音作り)、Vocal Details(声の性別・声質・歌い方・ハーモニー)、Arrangement(セクションごとの楽器の出入り)の3部に分けて記述します。 - 声の性別と声質は必ず記述してください。 記述しないと、歌声が消えて伴奏のみになることがあります。日本語で歌わせる場合は
singing in Japaneseも記述してください。 - 詳細を記述したい場合は、MiniMax公式のスキル
music-caption-rewriterが利用可能です(npx skills add MiniMax-AI/MiniMax-Music3 --skill music-caption-rewriter、またはクローンしたskills/music-caption-rewriterを~/.claude/skills/にコピー)。 - 歌詞(
lyrics)は日本語の漢字・かなのままで記述して構いません(確認済み)。[intro][verse][pre-chorus][chorus][bridge][instrumental][solo][outro]のタグは必ず単独の行に配置してください。タグと同じ行にある歌詞は無視されます(スクリプトが検出して停止します)。 - 各行は短めにし、同じ位置の行は文字数を揃えてください。セクション間は空行で区切ります(楽曲生成モデル全般のコツです。MiniMax Music 3で効果を比較したわけではありません)。
durationは上限の秒数(10〜300)です。モデルがそれよりも早く終了することもあります。[intro]を付けると前奏が長くなりやすいです(60秒の試作で約25秒)。- 実在の曲名・歌手名を指定して似せようとしないでください(ライセンスの禁止事項。下記参照)。
3. 生成する
python $SKILL/scripts/generate.py song.json --out-dir songs/ --seeds 1 2 3
- 同じ設定でもシード値によって異なる楽曲が生成されます。2〜3案作成し、ユーザーに聴いて選んでもらってください。Claudeは音声を聴けないため、良し悪しを自分で判断して決定しないでください。
- 時間がかかるため(R9700で実時間の約5倍+読み込み時間)、バックグラウンドで実行し、完了を待ちます。
- 出力:
<name>-seed<N>.wav(44.1kHzステレオ)、同名の.json(シード・尺・プロンプト・歌詞・所要時間)、<name>-lyrics.txt(タグを除いた表示用の歌詞)。 - 歌詞が正しく歌われているかは、文字起こしで確認できます(
faster-whisperが必要)。前奏の部分では、Whisperが歌詞を繰り返す誤認識をしやすいです。
python $SKILL/scripts/check_lyrics.py songs/*.wav --language ja
4. MVにする
選択した楽曲を、biim-motionスキルのMVモードにそのまま渡します。
assets.music: 選択したWAVファイルmusicLyrics:<name>-lyrics.txtの内容(タグなし)musicMood:promptの雰囲気を日本語で簡潔にまとめたもの- MVの
reports/delivery.md内の採用素材欄に「MiniMax Music 3で生成(シード、prompt、lyrics)」と記録します。
ライセンス(MiniMax-Music3 Community License)
原文は https://huggingface.co/MiniMaxAI/MiniMax-Music3/blob/main/LICENSE を参照してください。ここでは要点のみ記載します(法的助言ではありません)。
- 商用の製品・サービスで使用する場合は、その画面に「MiniMax-Music3」と目立つように表示する必要があります。年間売上が2000万ドルを超える場合は、MiniMaxの書面による許可が別途必要です。
- 付属のAcceptable Use Policyに従い、第三者の知的財産権を侵害しないようにしてください。
- 商用利用の予定がある場合は、生成前にユーザーにこの条件を伝えてください。