Text-to-Audio
Diffusers
Safetensors
PyTorch
minimax_music3
music-generation
text-to-music
sglang-omni
Instructions to use MiniMaxAI/MiniMax-Music3 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Diffusers
How to use MiniMaxAI/MiniMax-Music3 with Diffusers:
pip install -U diffusers transformers accelerate
import torch from diffusers import DiffusionPipeline # switch to "mps" for apple devices pipe = DiffusionPipeline.from_pretrained("MiniMaxAI/MiniMax-Music3", dtype=torch.bfloat16, device_map="cuda") prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k" image = pipe(prompt).images[0] - Notebooks
- Google Colab
- Kaggle
yuanhe commited on
Commit ·
535a109
1
Parent(s): dfc8edf
docs: expand MiniMax Music 3 model card
Browse files- .gitattributes +1 -0
- README.md +111 -35
- figures/logo.svg +16 -0
- figures/music3.0-Architecture-Diagram.png +3 -0
.gitattributes
CHANGED
|
@@ -2,3 +2,4 @@
|
|
| 2 |
*.pth filter=lfs diff=lfs merge=lfs -text
|
| 3 |
*.wav filter=lfs diff=lfs merge=lfs -text
|
| 4 |
qwen_7B/qwen3-8B-tokenizer-music/tokenizer.json filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
| 2 |
*.pth filter=lfs diff=lfs merge=lfs -text
|
| 3 |
*.wav filter=lfs diff=lfs merge=lfs -text
|
| 4 |
qwen_7B/qwen3-8B-tokenizer-music/tokenizer.json filter=lfs diff=lfs merge=lfs -text
|
| 5 |
+
figures/*.png filter=lfs diff=lfs merge=lfs -text
|
README.md
CHANGED
|
@@ -8,46 +8,108 @@ tags:
|
|
| 8 |
- sglang-omni
|
| 9 |
---
|
| 10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 11 |
# MiniMax Music 3
|
| 12 |
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 16 |
|
| 17 |
-
-
|
| 18 |
-
-
|
| 19 |
|
| 20 |
-
The
|
| 21 |
|
| 22 |
-
##
|
|
|
|
|
|
|
|
|
|
|
|
|
| 23 |
|
| 24 |
```text
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
tokenizer_config.json
|
| 37 |
-
...
|
| 38 |
-
assets/
|
| 39 |
-
minimax_ttm.wav
|
| 40 |
```
|
| 41 |
|
| 42 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 43 |
|
| 44 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 45 |
|
| 46 |
```bash
|
| 47 |
hf download MiniMaxAI/MiniMax-Music3 --local-dir /path/to/minimax_ttm
|
| 48 |
```
|
| 49 |
|
| 50 |
-
|
|
|
|
|
|
|
| 51 |
|
| 52 |
```bash
|
| 53 |
python -m sglang_omni.cli serve \
|
|
@@ -57,30 +119,44 @@ python -m sglang_omni.cli serve \
|
|
| 57 |
--port 8000
|
| 58 |
```
|
| 59 |
|
| 60 |
-
|
| 61 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 62 |
|
| 63 |
```bash
|
| 64 |
curl http://127.0.0.1:8000/v1/audio/speech \
|
| 65 |
-H 'Content-Type: application/json' \
|
| 66 |
-d '{
|
| 67 |
"model": "minimax_ttm",
|
| 68 |
-
"input": "[Verse]\
|
| 69 |
-
"instructions": "A
|
| 70 |
"response_format": "wav",
|
| 71 |
"seed": 7,
|
| 72 |
"max_new_tokens": 9000,
|
| 73 |
"stream": false
|
| 74 |
}' \
|
| 75 |
-
--output
|
| 76 |
```
|
| 77 |
|
| 78 |
-
An example generated with this checkpoint is available at
|
| 79 |
-
|
|
|
|
|
|
|
|
|
|
| 80 |
|
| 81 |
## Limitations
|
| 82 |
|
| 83 |
- Inference requires two CUDA GPUs.
|
| 84 |
-
- Only non-streaming generation is supported.
|
| 85 |
-
- The tokenized text prompt is limited to
|
| 86 |
-
- Audio generation is limited to
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8 |
- sglang-omni
|
| 9 |
---
|
| 10 |
|
| 11 |
+
<div align="center">
|
| 12 |
+
<img width="60%" src="figures/logo.svg" alt="MiniMax">
|
| 13 |
+
</div>
|
| 14 |
+
<hr>
|
| 15 |
+
|
| 16 |
+
<div align="center">
|
| 17 |
+
|
| 18 |
# MiniMax Music 3
|
| 19 |
|
| 20 |
+
</div>
|
| 21 |
+
|
| 22 |
+
<p align="center">
|
| 23 |
+
<a href="https://agent.minimax.io/" target="_blank"><img src="https://img.shields.io/badge/MiniMax%20Agent-FF6C37?logo=minimax&logoColor=white" alt="MiniMax Agent"></a>
|
| 24 |
+
<a href="https://platform.minimax.io/docs/guides/text-generation" target="_blank"><img src="https://img.shields.io/badge/API-FF6C37?logo=minimax&logoColor=white" alt="API"></a>
|
| 25 |
+
<a href="https://www.minimax.io" target="_blank"><img src="https://img.shields.io/badge/MiniMax%20Website-FF6C37?logo=minimax&logoColor=white" alt="MiniMax Website"></a>
|
| 26 |
+
<br>
|
| 27 |
+
<a href="https://modelscope.cn/organization/minimax" target="_blank" rel="noopener noreferrer"><img alt="ModelScope MiniMax AI" src="https://img.shields.io/badge/ModelScope-MiniMax%20AI-white?labelColor=%23EF3D5D"></a>
|
| 28 |
+
<a href="https://platform.minimaxi.com/docs/faq/contact-us" target="_blank"><img src="https://img.shields.io/badge/WeChat-07C160?logo=wechat&logoColor=white" alt="WeChat"></a>
|
| 29 |
+
<a href="https://discord.com/invite/DPC4AHFCBw" target="_blank"><img src="https://img.shields.io/badge/Discord-5865F2?logo=discord&logoColor=white" alt="Discord"></a>
|
| 30 |
+
<a href="https://huggingface.co/MiniMaxAI" target="_blank"><img src="https://img.shields.io/badge/Hugging%20Face-FFD21E?logo=huggingface&logoColor=black" alt="Hugging Face"></a>
|
| 31 |
+
<a href="https://github.com/MiniMax-AI/MiniMax-Music3" target="_blank"><img src="https://img.shields.io/badge/GitHub-181717?logo=github&logoColor=white" alt="GitHub"></a>
|
| 32 |
+
<a href="https://huggingface.co/MiniMaxAI/MiniMax-Music3/blob/main/LICENSE" target="_blank"><img src="https://img.shields.io/badge/LICENSE-4CAF50?logo=creativecommons&logoColor=white" alt="LICENSE"></a>
|
| 33 |
+
</p>
|
| 34 |
+
|
| 35 |
+
**MiniMax Music 3** is a high-performance music generation model for creating complete songs up to **five minutes** long. Conditioned on lyrics and a detailed music description, it generates structurally coherent songs with expressive vocals, evolving arrangements, and stable long-form audio quality.
|
| 36 |
+
|
| 37 |
+
MiniMax Music 3 combines an **8B Global LLM** for long-range musical structure, a **0.6B Local LLM** for frame-level acoustic detail, and a continuous hidden-state synthesis system based on **Flow Matching** and **Flow-VAE**. The model produces 32 kHz, 16-bit stereo WAV audio.
|
| 38 |
+
|
| 39 |
+
<p align="center">
|
| 40 |
+
<img width="100%" src="figures/music3.0-Architecture-Diagram.png">
|
| 41 |
+
</p>
|
| 42 |
+
|
| 43 |
+
## Complete Songs with Long-Range Coherence
|
| 44 |
+
|
| 45 |
+
MiniMax Music 3 natively supports full-song generation up to five minutes. The model maintains musical themes, rhythm, vocal identity, and arrangement progression across long sequences, enabling complete structures such as intro, verse, pre-chorus, chorus, bridge, instrumental break, and outro.
|
| 46 |
+
|
| 47 |
+
## Fine-Grained Music Control
|
| 48 |
+
|
| 49 |
+
The model accepts two complementary inputs:
|
| 50 |
+
|
| 51 |
+
- **Lyrics** define the words to be sung and may include explicit section tags such as `[Intro]`, `[Verse]`, `[Pre-Chorus]`, `[Chorus]`, `[Post-Chorus]`, `[Bridge]`, `[Instrumental]`, `[Solo]`, and `[Outro]`.
|
| 52 |
+
- **Music description** defines the musical style, emotional progression, vocal performance, instrumentation, arrangement, and production profile.
|
| 53 |
+
|
| 54 |
+
For precise control, we recommend using a Structured Caption with three sections:
|
| 55 |
+
|
| 56 |
+
- **Global Metadata**: genre, subgenre, BPM, key, scale, emotional progression, listening scenario, and production profile.
|
| 57 |
+
- **Vocal Details**: vocal gender, timbre, performance style, harmony, backing vocals, and vocal effects.
|
| 58 |
+
- **Arrangement**: primary and secondary instruments, section-level instrument evolution, groove, bass, percussion, textures, and spatial effects.
|
| 59 |
+
|
| 60 |
+
This representation allows the model to follow not only a global style, but also the musical development of the song over time.
|
| 61 |
+
|
| 62 |
+
## Hybrid-LM
|
| 63 |
+
|
| 64 |
+
MiniMax Music 3 uses a hierarchical autoregressive architecture that separates global musical modeling from local acoustic modeling.
|
| 65 |
|
| 66 |
+
- The **Global LLM (8B)** predicts the first RVQ codebook frame by frame and models the song's long-range semantic and structural progression.
|
| 67 |
+
- The **Local LLM (0.6B)** predicts the remaining acoustic codebooks within each frame and restores fine-grained acoustic information.
|
| 68 |
|
| 69 |
+
The Global LLM is initialized from Qwen3-8B. During training, its embedding and output layers are first adapted to semantic music tokens. The Global and Local LLMs are then jointly trained to model all RVQ codebooks.
|
| 70 |
|
| 71 |
+
## Continuous Hidden-State Synthesis
|
| 72 |
+
|
| 73 |
+
Instead of decoding only from discrete RVQ tokens, the synthesis module fuses the final hidden states of the Global and Local LLMs. These continuous representations preserve richer acoustic information for vocal articulation, instrumental texture, and temporal continuity.
|
| 74 |
+
|
| 75 |
+
The synthesis path is:
|
| 76 |
|
| 77 |
```text
|
| 78 |
+
Global and Local LLM hidden states
|
| 79 |
+
↓
|
| 80 |
+
Hidden-state fusion
|
| 81 |
+
↓
|
| 82 |
+
Flow Matching (2.4B)
|
| 83 |
+
↓
|
| 84 |
+
Flow-VAE latent
|
| 85 |
+
↓
|
| 86 |
+
Flow-VAE Decoder (123M)
|
| 87 |
+
↓
|
| 88 |
+
32 kHz stereo audio
|
|
|
|
|
|
|
|
|
|
|
|
|
| 89 |
```
|
| 90 |
|
| 91 |
+
The Flow-VAE architecture is adapted from MiniMax Speech and retrained for the dynamic range and spectral characteristics of music.
|
| 92 |
+
|
| 93 |
+
## Music Tokenizer
|
| 94 |
+
|
| 95 |
+
The training tokenizer uses eight layers of Residual Vector Quantization (RVQ):
|
| 96 |
|
| 97 |
+
- The first semantic codebook contains **16,384** entries and captures the core musical semantics and structure.
|
| 98 |
+
- The remaining seven acoustic codebooks contain **1,024** entries each and represent residual acoustic details.
|
| 99 |
+
|
| 100 |
+
Training first optimizes the semantic codebook, then jointly trains all eight codebooks. At inference time, waveform synthesis uses the fused LLM hidden states and does not require the discrete tokenizer decoder.
|
| 101 |
+
|
| 102 |
+
## How to Use
|
| 103 |
+
|
| 104 |
+
### Download the Model
|
| 105 |
|
| 106 |
```bash
|
| 107 |
hf download MiniMaxAI/MiniMax-Music3 --local-dir /path/to/minimax_ttm
|
| 108 |
```
|
| 109 |
|
| 110 |
+
### Serve with SGLang-Omni
|
| 111 |
+
|
| 112 |
+
MiniMax Music 3 is currently supported by [SGLang-Omni](https://github.com/sgl-project/sglang-omni). From the SGLang-Omni repository root, run:
|
| 113 |
|
| 114 |
```bash
|
| 115 |
python -m sglang_omni.cli serve \
|
|
|
|
| 119 |
--port 8000
|
| 120 |
```
|
| 121 |
|
| 122 |
+
Inference uses two CUDA GPUs:
|
| 123 |
+
|
| 124 |
+
- **GPU 0** runs Qwen3 and eight-codebook RVQ autoregressive generation.
|
| 125 |
+
- **GPU 1** runs Flow Matching and DAV waveform decoding.
|
| 126 |
+
|
| 127 |
+
### Generate Music
|
| 128 |
+
|
| 129 |
+
The service uses the shared speech API. Put the lyrics in `input` and the music description in `instructions`.
|
| 130 |
|
| 131 |
```bash
|
| 132 |
curl http://127.0.0.1:8000/v1/audio/speech \
|
| 133 |
-H 'Content-Type: application/json' \
|
| 134 |
-d '{
|
| 135 |
"model": "minimax_ttm",
|
| 136 |
+
"input": "[Verse]\nMorning light filtering through the pine\n[Chorus]\nSoftly the world begins to breathe",
|
| 137 |
+
"instructions": "A warm acoustic pop song with intimate female vocals, fingerpicked guitar, soft piano, and a gradual emotional build into a wide final chorus.",
|
| 138 |
"response_format": "wav",
|
| 139 |
"seed": 7,
|
| 140 |
"max_new_tokens": 9000,
|
| 141 |
"stream": false
|
| 142 |
}' \
|
| 143 |
+
--output minimax_music3.wav
|
| 144 |
```
|
| 145 |
|
| 146 |
+
An example generated with this checkpoint is available at [`assets/minimax_ttm.wav`](assets/minimax_ttm.wav).
|
| 147 |
+
|
| 148 |
+
## Prompt Enhancement
|
| 149 |
+
|
| 150 |
+
A concise natural-language description can be used directly. For more detailed control, it can be expanded into a Structured Caption containing `Global Metadata`, `Vocal Details`, and `Arrangement`. Musical instructions attached to lyric section tags should be preserved in the arrangement description, while the lyric text itself remains in the lyrics input.
|
| 151 |
|
| 152 |
## Limitations
|
| 153 |
|
| 154 |
- Inference requires two CUDA GPUs.
|
| 155 |
+
- Only non-streaming generation is currently supported.
|
| 156 |
+
- The tokenized text prompt is limited to 5,000 tokens.
|
| 157 |
+
- Audio generation is limited to 9,000 acoustic frames.
|
| 158 |
+
- Section tags and music descriptions provide generative control rather than strict symbolic guarantees. The generated tempo, key, instrumentation, lyrics, and song structure may not always match every requested detail exactly.
|
| 159 |
+
|
| 160 |
+
## Contact Us
|
| 161 |
+
|
| 162 |
+
Contact us at [model@minimax.io](mailto:model@minimax.io).
|
figures/logo.svg
ADDED
|
|
figures/music3.0-Architecture-Diagram.png
ADDED
|
Git LFS Details
|