Einen Song erstellen (MiniMax Music 3)
Verwende MiniMax Music 3, das neueste offene Musikgenerierungsmodell, das ich gefunden habe. Einen Vergleich mit anderen Optionen und Lizenzen findest du in references/models.md.
Das Verzeichnis dieses Skills wird als $SKILL bezeichnet (wird beim Laden als Base directory angezeigt).
Voraussetzungen
- Läuft auf einer einzelnen GPU (diffusers-Version). Erforderlicher VRAM: ca. 24 GB ohne Offloading, ca. 22 GB mit
--offload cpu, 8 GB mit--offload stream(langsam). - Getestet mit: AMD Radeon AI PRO R9700 (32 GB, ROCm 6.4 mit PyTorch 2.9.1). Ein 60-Sekunden-Song dauerte etwa 5 Minuten (ca. 5-fache Echtzeit). Auf NVIDIA-GPUs noch nicht getestet (offiziell ist CUDA vorgesehen).
- Die Gewichte sind ca. 27 GB groß. Überprüfe vorher den freien Speicherplatz.
- Die offizielle schnelle Methode (SGLang-Omni) benötigt 2 CUDA-GPUs und wird in diesem Skill nicht verwendet.
1. Umgebung einrichten (nur beim ersten Mal)
Wenn bereits eine Umgebung existiert (z. B. .venv* im geklonten MiniMax-Music3-Verzeichnis), verwende diese. Ansonsten erstelle eine neue.
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
# Nur die Dateien für die SGLang-Version werden nicht heruntergeladen. --exclude wird pro Muster verwendet
hf download MiniMaxAI/MiniMax-Music3 --exclude "qwen_7B/qwen_7B/model-*" \
--exclude flowmatching_vae.pth --exclude dav.pth --exclude "figures/*"
- Die Modellkarte enthält Anweisungen zum Einrichten eines Commits des nicht gemergten diffusers, aber damit kann
transformernicht geladen werden. Verwende die gemergte Version (Release 0.40.0 oder höher, getestet mit 0.41.0). - Wenn der Hugging-Face-Cache (
HF_HOME) wenig Speicherplatz hat, setzeHF_HOMEauf ein Verzeichnis mit ausreichend Platz. - Wenn
HF_HUB_OFFLINE=1gesetzt ist, schlägt das Laden vontransformerfehl. Setze es nicht.
2. Liedtext und Songbeschreibung schreiben
Erstelle eine song.json-Datei.
{
"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
}
- Die Songbeschreibung (
prompt) ist auf Englisch zu verfassen und in drei Teile zu gliedern: Global Metadata (Genre, Tempo, Stimmungsverlauf, Klangästhetik), Vocal Details (Geschlecht der Stimme, Klangfarbe, Gesangsstil, Harmonien) und Arrangement (Instrumenteneinsatz pro Abschnitt). - Gib immer das Geschlecht und die Klangfarbe der Stimme an. Andernfalls kann es passieren, dass der Gesang verschwindet und nur die Begleitung übrig bleibt. Wenn du auf Japanisch singen lassen möchtest, füge
singing in Japanesehinzu. - Für detailliertere Beschreibungen kann der offizielle MiniMax-Skill
music-caption-rewriterverwendet werden (npx skills add MiniMax-AI/MiniMax-Music3 --skill music-caption-rewriteroder das geklonteskills/music-caption-rewriternach~/.claude/skills/kopieren). - Der Liedtext (
lyrics) kann in japanischen Kanji und Kana geschrieben werden (getestet). Die Tags[intro],[verse],[pre-chorus],[chorus],[bridge],[instrumental],[solo],[outro]müssen in einer eigenen Zeile stehen. Text in derselben Zeile wie ein Tag wird ignoriert (das Skript erkennt dies und bricht ab). - Halte die Zeilen kurz und versuche, die Zeichenanzahl in Zeilen auf derselben Position gleich zu halten. Trenne Abschnitte mit einer Leerzeile (allgemeiner Tipp für Musikgenerierungsmodelle; bei MiniMax Music 3 nicht auf Wirkung getestet).
durationist die maximale Dauer in Sekunden (10–300). Das Modell kann auch früher enden. Ein[intro]-Tag führt tendenziell zu einer längeren Einleitung (bei einem 60-Sekunden-Test ca. 25 Sekunden).- Verwende keine Namen von echten Songs oder Künstlern, um Ähnlichkeiten zu erzeugen (verboten durch die Lizenz, siehe unten).
3. Generieren
python $SKILL/scripts/generate.py song.json --out-dir songs/ --seeds 1 2 3
- Bei gleichen Einstellungen entstehen durch verschiedene Seeds unterschiedliche Songs. Erstelle 2–3 Varianten und lass den Benutzer anhören und auswählen. Claude kann keine Musik hören, bewerte also nicht selbst, was gut oder schlecht ist.
- Die Generierung dauert lange (ca. 5-fache Echtzeit auf der R9700 plus Ladezeit). Führe sie im Hintergrund aus und warte auf den Abschluss.
- Ausgabe:
<name>-seed<N>.wav(44,1 kHz Stereo), eine gleichnamige.json-Datei (Seed, Länge, Prompt, Liedtext, Dauer) und<name>-lyrics.txt(Liedtext ohne Tags für die Anzeige). - Ob der Liedtext richtig gesungen wurde, kann mit Transkription überprüft werden (benötigt
faster-whisper). Bei der Einleitung neigt Whisper dazu, den Liedtext fälschlicherweise zu wiederholen.
python $SKILL/scripts/check_lyrics.py songs/*.wav --language ja
4. Ein Musikvideo (MV) erstellen
Übergib den ausgewählten Song direkt an den MV-Modus des biim-motion-Skills.
assets.music: Die ausgewählte WAV-DateimusicLyrics: Der Inhalt von<name>-lyrics.txt(ohne Tags)musicMood: Eine kurze Zusammenfassung der Stimmung despromptauf Japanisch- Halte im
reports/delivery.mddes MV fest: "Generiert mit MiniMax Music 3 (Seed,prompt,lyrics)".
Lizenz (MiniMax-Music3 Community License)
Der Originaltext ist unter https://huggingface.co/MiniMaxAI/MiniMax-Music3/blob/main/LICENSE zu finden. Hier sind nur die wichtigsten Punkte (keine Rechtsberatung).
- Bei kommerzieller Nutzung in Produkten oder Diensten muss an einer gut sichtbaren Stelle „MiniMax-Music3“ angezeigt werden. Bei einem Jahresumsatz von über 20 Millionen US-Dollar ist eine separate schriftliche Genehmigung von MiniMax erforderlich.
- Die beigefügte Acceptable Use Policy muss eingehalten werden; die Rechte Dritter dürfen nicht verletzt werden.
- Wenn eine kommerzielle Nutzung geplant ist, muss der Benutzer vor der Generierung über diese Bedingungen informiert werden.