--- license: other license_name: minimax-music3-community-license license_link: LICENSE pipeline_tag: text-to-audio library_name: radiance tags: - radiance - rocm - amd - rdna4 - bf16 - music-generation - text-to-music base_model: - MiniMaxAI/MiniMax-Music3 --- # MiniMax-Music3, bf16 — radiance container [MiniMaxAI/MiniMax-Music3](https://huggingface.co/MiniMaxAI/MiniMax-Music3) — songs with vocals from lyrics and a description — as a single `.rad` container for the [radiance](https://codeberg.org/StillDeadcode/radiance) inference engine (AMD RDNA4, ROCm). | | | |---|---| | File | `minimax-music3-bf16.rad` — 20.48 GiB | | Weights | bf16 throughout: the language model and the depth decoder as they ship; the DiT, the condition encoder and the vocoder cast from f32 (their norms, snake alphas, Fourier projection and layer mix stay f32) | | Audio | 44.1 kHz stereo, 16-bit; up to six minutes | | Needs | radiance 1.8.0 or newer (MiniMax-Music3 support comes with 1.8.0); one card or two | ## Serve ```sh # two cards; one card works too (drop --tp 2) radiance --model minimax-music3-bf16.rad --tp 2 --host 0.0.0.0 --port 8000 curl -s http://localhost:8000/v1/audio/speech -H 'Content-Type: application/json' -d '{ "input": "[verse]\nMorning light filtering through the pine\n[chorus]\nSoftly the world begins to breathe", "instructions": "Genre: acoustic pop. BPM: 96. Warm and intimate. Vocals: soft female lead.", "duration": 30, "seed": 7}' -o song.wav ``` The server answers OpenAI's `POST /v1/audio/speech` as SGLang-Omni reads it for music: - `input` is the lyrics, with the model's section tags such as `[verse]` and `[chorus]`; `instructions` describe the song (genre, tempo, key, mood, vocals, instruments). Both are required. - `duration` (seconds) or `max_new_tokens` (frames, 25 a second) sets the length; without either the song runs until the model ends it, usually at the end of the lyrics. - `seed` makes a song repeatable on the same deployment; `num_inference_steps` (30) and `guidance_scale` (1.7) are the denoiser's; `response_format` is `wav` or `pcm`. - `"stream_format": "audio"` sends the song as it is made, eight seconds at a time; `"stream_format": "sse"` sends it as `speech.audio.delta` events. On two Radeon AI PRO R9700s (gfx1201) a song is made at about the speed it plays: 10 s of audio in 10.8 s with the first audio at 8.5 s, 12 s in 12.7 s. On one card, 4 s in 7.3 s. Up to four songs are made at once. Against diffusers' pipeline from the same seed, the language model's hidden state is 1.55% from the reference's (the reference's own bf16 against its f32: 1.27%), the DiT's velocity 1.3% (1.8%), and 100 frames of audio on one card are 29.0 dB SNR from it (28.7 dB). ## How this file was made ```sh rad-convert MiniMaxAI/MiniMax-Music3 --recipe minimax-music3-bf16.recipe -o minimax-music3-bf16.rad ``` `MiniMaxAI/MiniMax-Music3` is the downloaded diffusers pipeline directory. The recipe (`minimax-music3-bf16.recipe` in this repository) names what changes dtype; the vocoder's weight norm is folded in f32 before its cast: ``` dit.*.ln1.* cast dtype=f32 dit.*.ln2.* cast dtype=f32 dit.t.fourier cast dtype=f32 dit.* cast dtype=bf16 cond.mix.* cast dtype=f32 cond.* cast dtype=bf16 voc.*.alpha cast dtype=f32 voc.* cast dtype=bf16 ``` ## License MiniMax-Music3 is licensed under the MiniMax-Music3 Community License (`LICENSE` in this repository, Copyright (c) 2026 MiniMax), which includes its Acceptable Use Policy. A commercial product or service that uses it must display "MiniMax-Music3" on its user interface, and one whose yearly revenue exceeds 20 million US dollars needs MiniMax's prior written authorization. This container is a modified copy: the DiT, the condition encoder and the vocoder are cast from f32 to bf16 (the vocoder's weight norm folded first), and everything is repacked into one `.rad` file. MiniMax-Music3 was fine-tuned from Qwen3-8B (Apache License 2.0).