--- library_name: mlx-audio pipeline_tag: text-to-audio base_model: MiniMaxAI/MiniMax-Music3 license: other license_name: minimax-music3-community-license license_link: https://huggingface.co/MiniMaxAI/MiniMax-Music3/blob/main/LICENSE inference: false tags: - mlx - mlx-audio - apple-silicon - music-generation - text-to-music - text-to-audio - bf16 --- # MiniMax Music 3 · MLX BF16 Native MLX BF16 weights for [`MiniMaxAI/MiniMax-Music3`](https://huggingface.co/MiniMaxAI/MiniMax-Music3), converted for lyric-conditioned song generation on Apple Silicon with [`mlx-audio`](https://github.com/Blaizzy/mlx-audio). > Community conversion, not an official MiniMax release. All model credit goes > to MiniMax. Review the original model card and license before use. Other MLX variants: [`8-bit`](https://huggingface.co/mlx-community/MiniMax-Music3-8bit) · [`6-bit`](https://huggingface.co/mlx-community/MiniMax-Music3-6bit) · [`4-bit`](https://huggingface.co/mlx-community/MiniMax-Music3-4bit) · [`MXFP8 (recommended quantized)`](https://huggingface.co/mlx-community/MiniMax-Music3-mxfp8) · [`MXFP4 (experimental)`](https://huggingface.co/mlx-community/MiniMax-Music3-mxfp4) · [`NVFP4 (experimental)`](https://huggingface.co/mlx-community/MiniMax-Music3-nvfp4) ## Install MiniMax Music 3 support was merged upstream in [`Blaizzy/mlx-audio#888`](https://github.com/Blaizzy/mlx-audio/pull/888). Until a PyPI release includes it, install the upstream merge commit directly: ```bash python -m pip install "mlx-audio @ git+https://github.com/Blaizzy/mlx-audio.git@784b29e2691a93ca7483147d86f61859dfaa6296" ``` ## Generate ```bash python -m mlx_audio.music.generate \ --model mlx-community/MiniMax-Music3-bf16 \ --caption "Warm acoustic pop, 96 BPM, intimate female vocal" \ --lyrics $'[verse]\nMorning light across the room\n[chorus]\nSing with me' \ --duration 30 \ --steps 30 \ --seed 7 \ --output song.wav ``` ```python from mlx_audio.music import load model = load("mlx-community/MiniMax-Music3-bf16") result = next( model.generate( text="Warm acoustic pop, 96 BPM, intimate female vocal", lyrics="[verse]\nMorning light across the room\n[chorus]\nSing with me", duration=30, steps=30, seed=7, ) ) print(result.audio.shape, result.sample_rate) # stereo, 44100 Hz ``` Lyrics are required by the checkpoint contract. Use `[instrumental]` explicitly for instrumental generation. Duration is a requested upper bound: the autoregressive stage may emit its end token early. Style, tempo, instrument, and vocal controls are probabilistic rather than strict. ## Conversion and verification - Dense BF16; no weight quantization. - Complete native pipeline: Qwen3 global autoregressive model, RVQ depth decoder, condition encoder, flow-matching DiT/Euler stage, and stereo vocoder. - The actual component configs produce 44.1 kHz stereo output. - Official-checkpoint conversion maps and strict-loads all 982 expected tensors. - Full-checkpoint float32 maximum absolute differences against the official PyTorch implementations: Qwen logits `1.45e-4`, RVQ depth `2.50e-5`, condition encoder `1.91e-6`, flow transformer `7.63e-6`, vocoder `8.57e-7`. - The mlx-audio regression suite passed 1,742 tests with 34 expected skips; the focused music, converter, and registry suite passed 43 tests and 3 subtests. - Real generation produced finite 44.1 kHz stereo audio. A 210-second request exercised 38 denoising windows and ended at 152.8 seconds when the model emitted EOS. Converted with `mlx-audio` 0.4.8 development commit `c2fa486` and MLX 0.31.2. ## License The weights remain subject to the [`MiniMax-Music3 Community License`](https://huggingface.co/MiniMaxAI/MiniMax-Music3/blob/main/LICENSE), including its acceptable-use and commercial terms. The full license text is included in this repository.