kizuna-intelligence/song-generation

Créez des chansons chantées (jusqu'à ~5 minutes, y compris en japonais) localement sur GPU avec MiniMax Music 3, le dernier modèle ouvert de génération musicale (publié en août 2026). Idéal pour « compose une chanson », « musique originale pour MV », « mets ces paroles en musique », « crée un BGM ».

Qu'est-ce que song-generation ?

Ce skill utilise **MiniMax Music 3**, le modèle ouvert de génération musicale le plus récent, pour produire des chansons complètes avec voix à partir d'une description et de paroles. Contrairement aux solutions cloud, il fonctionne entièrement en local sur un GPU unique (VRAM requise : ~24 Go, ~22 Go avec `--offload cpu`, ~8 Go avec `--offload stream` mais plus lent). Il supporte nativement les paroles en japonais (kanji/kana) et génère des fichiers audio WAV stéréo 44,1 kHz. Le flux de travail est simple : créer un fichier JSON (`song.json`) contenant la description musicale détaillée en anglais (genre, tempo, instrumentation, voix) et les paroles structurées avec des sections comme `[verse]`, `[chorus]`, etc., puis lancer la génération avec une commande Python. Le skill intègre aussi un script de vérification des paroles via Whisper et une compatibilité directe avec le skill `biim-motion` pour réaliser des clips musicaux (MV). Il est conçu pour les développeurs, artistes et créateurs de contenu souhaitant produire des musiques originales localement, avec un accent sur la qualité et le contrôle artistique.

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

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Créer une chanson (MiniMax Music 3)

Utilise MiniMax Music 3, le modèle ouvert de génération musicale le plus récent que j'ai trouvé. Une comparaison des licences avec d'autres candidats se trouve dans references/models.md.

Le répertoire de ce skill est noté $SKILL (affiché comme Base directory lors du chargement).

Prérequis

  • Fonctionne sur une seule carte GPU (version diffusers). VRAM nécessaire : ~24 Go sans optimisation, ~22 Go avec --offload cpu, ~8 Go avec --offload stream (plus lent).
  • Testé avec : AMD Radeon AI PRO R9700 (32 Go, ROCm 6.4, PyTorch 2.9.1). Une chanson de 60 secondes a pris environ 5 minutes (5 fois le temps réel). Non testé sur GPU NVIDIA (l'implémentation officielle cible CUDA).
  • Les poids pèsent environ 27 Go. Vérifiez d'abord l'espace disque disponible.
  • La méthode officielle rapide (SGLang-Omni) nécessite 2 GPU CUDA, elle n'est pas utilisée ici.

1. Préparer l'environnement (première fois uniquement)

Si vous avez déjà un environnement, utilisez-le (par exemple .venv* sous le dossier cloné MiniMax-Music3). Sinon, créez-en un.

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
# Ne pas télécharger les fichiers réservés à la version SGLang. Utiliser --exclude pour chaque motif.
hf download MiniMaxAI/MiniMax-Music3 --exclude "qwen_7B/qwen_7B/model-*" \
  --exclude flowmatching_vae.pth --exclude dav.pth --exclude "figures/*"
  • La fiche modèle mentionne une procédure avec un commit non fusionné de diffusers, mais cela empêche le chargement du transformer. Utilisez une version fusionnée (0.40.0 ou ultérieur, 0.41.0 testé).
  • Si le cache Hugging Face (HF_HOME) manque d'espace, redirigez HF_HOME vers un emplacement avec suffisamment d'espace libre.
  • Ne pas activer HF_HUB_OFFLINE=1 : cela ferait échouer le chargement de transformer.

2. Écrire les paroles et la description de la chanson

Créez 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
}
  • La description musicale (prompt) doit être en anglais, divisée en trois parties : Global Metadata (genre, tempo, émotion, production), Vocal Details (genre de voix, timbre, style de chant, harmonies), Arrangement (entrées et sorties d'instruments par section).
  • Indiquez obligatoirement le genre et le timbre de la voix. Sinon, la voix peut disparaître et il ne resterait qu'un accompagnement instrumental. Pour chanter en japonais, ajoutez singing in Japanese.
  • Pour une description plus détaillée, vous pouvez utiliser le skill officiel music-caption-rewriter de MiniMax (npx skills add MiniMax-AI/MiniMax-Music3 --skill music-caption-rewriter, ou copier le dossier skills/music-caption-rewriter cloné dans ~/.claude/skills/).
  • Les paroles (lyrics) peuvent être écrites en japonais (kanji/kana) telles quelles (testé). Les balises [intro], [verse], [pre-chorus], [chorus], [bridge], [instrumental], [solo], [outro] doivent être placées sur des lignes séparées. Tout texte figurant sur la même ligne qu'une balise sera ignoré (le script le détecte et bloque).
  • Gardez les lignes courtes et uniformes en longueur à des positions similaires. Séparez les sections par une ligne vide (astuce générale pour les modèles de génération musicale, non spécifiquement vérifié pour MiniMax Music 3).
  • duration est la durée maximale en secondes (10 à 300). Le modèle peut s'arrêter plus tôt. L'ajout d'un [intro] tend à allonger l'introduction (environ 25 secondes sur un essai de 60 secondes).
  • N'utilisez pas de noms de chansons ou d'artistes existants pour imiter leur style (interdit par la licence, voir ci-dessous).

3. Générer

python $SKILL/scripts/generate.py song.json --out-dir songs/ --seeds 1 2 3
  • Les mêmes paramètres avec des seeds différentes produiront des chansons différentes. Générez 2 à 3 propositions et laissez l'utilisateur écouter et choisir. Claude ne pouvant pas entendre l'audio, ne décidez pas par vous-même de la qualité.
  • L'opération peut être longue (environ 5 fois le temps réel sur R9700, plus le chargement), donc exécutez-la en arrière-plan et attendez la fin.
  • Sorties : <name>-seed<N>.wav (stéréo 44,1 kHz), un fichier .json correspondant (seed, durée, prompt, paroles, temps d'exécution), et <name>-lyrics.txt (paroles sans balises pour affichage).
  • Vérifiez si les paroles sont bien chantées en utilisant la transcription (nécessite faster-whisper). Attention : sur les parties instrumentales, Whisper peut répéter les paroles par erreur.
python $SKILL/scripts/check_lyrics.py songs/*.wav --language ja

4. Créer un clip musical (MV)

Passez la chanson sélectionnée directement au mode MV du skill biim-motion.

  • assets.music : le fichier WAV choisi
  • musicLyrics : contenu du fichier <name>-lyrics.txt (sans balises)
  • musicMood : résumé court de l'ambiance du prompt en japonais
  • Dans reports/delivery.md du MV, enregistrez dans les matériaux utilisés : « Généré avec MiniMax Music 3 (seed, prompt, lyrics) ».

Licence (MiniMax-Music3 Community License)

Le texte original se trouve ici : https://huggingface.co/MiniMaxAI/MiniMax-Music3/blob/main/LICENSE . Voici les points essentiels (ce n'est pas un conseil juridique).

  • Si vous utilisez le modèle dans un produit ou service commercial, vous devez afficher « MiniMax-Music3 » de manière visible sur l'interface. Si le chiffre d'affaires annuel dépasse 20 millions de dollars, une autorisation écrite supplémentaire de MiniMax est requise.
  • Respectez la Politique d'Utilisation Acceptable ci-jointe et ne violez pas les droits de propriété intellectuelle de tiers.
  • Si vous prévoyez une utilisation commerciale, informez l'utilisateur de ces conditions avant la génération.

Individual skills in this repo

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

Skills associés