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
Upload README.md with huggingface_hub
Browse files
README.md
CHANGED
|
@@ -95,6 +95,8 @@ Training first optimizes the semantic codebook, then jointly trains all eight co
|
|
| 95 |
|
| 96 |
## How to Use
|
| 97 |
|
|
|
|
|
|
|
| 98 |
### Download the Model
|
| 99 |
|
| 100 |
```bash
|
|
@@ -103,41 +105,40 @@ hf download MiniMaxAI/MiniMax-Music3 --local-dir /path/to/minimax_ttm
|
|
| 103 |
|
| 104 |
### Serve with SGLang-Omni
|
| 105 |
|
| 106 |
-
MiniMax Music 3 is currently supported by [SGLang-Omni](https://github.com/sgl-project/sglang-omni). From the SGLang-Omni repository root, run:
|
| 107 |
-
|
| 108 |
```bash
|
| 109 |
-
|
| 110 |
-
--config examples/configs/minimax_ttm.yaml \
|
| 111 |
--model-path /path/to/minimax_ttm \
|
| 112 |
-
--host 127.0.0.1 \
|
| 113 |
--port 8000
|
| 114 |
```
|
| 115 |
|
| 116 |
-
Inference uses two CUDA GPUs:
|
| 117 |
-
|
| 118 |
-
- **GPU 0** runs Qwen3 and eight-codebook RVQ autoregressive generation.
|
| 119 |
-
- **GPU 1** runs Flow Matching and DAV waveform decoding.
|
| 120 |
-
|
| 121 |
### Generate Music
|
| 122 |
|
| 123 |
-
The service uses the shared speech API. Put the lyrics in `input` and the music description in `instructions`.
|
| 124 |
|
| 125 |
```bash
|
| 126 |
curl http://127.0.0.1:8000/v1/audio/speech \
|
| 127 |
-H 'Content-Type: application/json' \
|
| 128 |
-d '{
|
| 129 |
-
"model": "
|
| 130 |
"input": "[Verse]\nMorning light filtering through the pine\n[Chorus]\nSoftly the world begins to breathe",
|
| 131 |
"instructions": "A warm acoustic pop song with intimate female vocals, fingerpicked guitar, soft piano, and a gradual emotional build into a wide final chorus.",
|
| 132 |
"response_format": "wav",
|
| 133 |
"seed": 7,
|
| 134 |
-
"max_new_tokens":
|
| 135 |
"stream": false
|
| 136 |
}' \
|
| 137 |
--output minimax_music3.wav
|
| 138 |
```
|
| 139 |
|
| 140 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 141 |
|
| 142 |
## Prompt Enhancement
|
| 143 |
|
|
@@ -145,7 +146,7 @@ A concise natural-language description can be used directly. For more detailed c
|
|
| 145 |
|
| 146 |
## Limitations
|
| 147 |
|
| 148 |
-
- Inference requires
|
| 149 |
- Only non-streaming generation is currently supported.
|
| 150 |
- The tokenized text prompt is limited to 5,000 tokens.
|
| 151 |
- Audio generation is limited to 9,000 acoustic frames.
|
|
|
|
| 95 |
|
| 96 |
## How to Use
|
| 97 |
|
| 98 |
+
MiniMax Music 3 is supported by [SGLang-Omni](https://github.com/sgl-project/sglang-omni). Follow the official [installation guide](https://sgl-project.github.io/sglang-omni/get_started/installation.html) to prepare the runtime environment.
|
| 99 |
+
|
| 100 |
### Download the Model
|
| 101 |
|
| 102 |
```bash
|
|
|
|
| 105 |
|
| 106 |
### Serve with SGLang-Omni
|
| 107 |
|
|
|
|
|
|
|
| 108 |
```bash
|
| 109 |
+
sgl-omni serve \
|
|
|
|
| 110 |
--model-path /path/to/minimax_ttm \
|
|
|
|
| 111 |
--port 8000
|
| 112 |
```
|
| 113 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 114 |
### Generate Music
|
| 115 |
|
| 116 |
+
The service uses the shared speech API. Put the lyrics in `input` and the music description in `instructions`. Put lyric structure tags such as `[Verse]` and `[Chorus]` on their own lines.
|
| 117 |
|
| 118 |
```bash
|
| 119 |
curl http://127.0.0.1:8000/v1/audio/speech \
|
| 120 |
-H 'Content-Type: application/json' \
|
| 121 |
-d '{
|
| 122 |
+
"model": "MiniMaxAI/MiniMax-Music3",
|
| 123 |
"input": "[Verse]\nMorning light filtering through the pine\n[Chorus]\nSoftly the world begins to breathe",
|
| 124 |
"instructions": "A warm acoustic pop song with intimate female vocals, fingerpicked guitar, soft piano, and a gradual emotional build into a wide final chorus.",
|
| 125 |
"response_format": "wav",
|
| 126 |
"seed": 7,
|
| 127 |
+
"max_new_tokens": 750,
|
| 128 |
"stream": false
|
| 129 |
}' \
|
| 130 |
--output minimax_music3.wav
|
| 131 |
```
|
| 132 |
|
| 133 |
+
`max_new_tokens` sets the maximum number of audio frames at 25 frames per second. Generation may finish before this limit when the model emits an end-of-audio token. The response is a 32 kHz, 16-bit stereo WAV file.
|
| 134 |
+
|
| 135 |
+
### Reproducible Example
|
| 136 |
+
|
| 137 |
+
The following end-to-end example contains the complete lyrics, music description, and generation parameters used to produce the reference audio.
|
| 138 |
+
|
| 139 |
+
| Use case | Request | Result |
|
| 140 |
+
|---|---|---|
|
| 141 |
+
| Text-to-music | [View script](https://huggingface.co/MiniMaxAI/MiniMax-Music3/blob/main/scripts/end_to_end/minimax_ttm_test.py) | [minimax_ttm.wav](https://huggingface.co/MiniMaxAI/MiniMax-Music3/blob/main/assets/minimax_ttm.wav) |
|
| 142 |
|
| 143 |
## Prompt Enhancement
|
| 144 |
|
|
|
|
| 146 |
|
| 147 |
## Limitations
|
| 148 |
|
| 149 |
+
- Inference requires CUDA.
|
| 150 |
- Only non-streaming generation is currently supported.
|
| 151 |
- The tokenized text prompt is limited to 5,000 tokens.
|
| 152 |
- Audio generation is limited to 9,000 acoustic frames.
|