tamarher commited on
Commit
9e62532
·
verified ·
1 Parent(s): f47c22e

Upload README.md with huggingface_hub

Browse files
Files changed (1) hide show
  1. README.md +189 -0
README.md ADDED
@@ -0,0 +1,189 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: other
3
+ license_name: minimax-music3-community-license
4
+ license_link: https://huggingface.co/MiniMaxAI/MiniMax-Music3/blob/main/LICENSE
5
+ library_name: mlx
6
+ pipeline_tag: text-to-audio
7
+ tags:
8
+ - mlx
9
+ - apple-silicon
10
+ - macos
11
+ - minimax
12
+ - minimax-music3
13
+ - audio-generation
14
+ - generative-audio
15
+ - music-generation
16
+ - text-to-audio
17
+ - text-to-music
18
+ - local-inference
19
+ - safetensors
20
+ ---
21
+
22
+ # MiniMax Music 3 — MLX
23
+
24
+ [![PyPI](https://img.shields.io/pypi/v/mlx-minimax-music3?include_prereleases=true&style=flat-square&logo=pypi&logoColor=white)](https://pypi.org/project/mlx-minimax-music3/)
25
+ [![GitHub](https://img.shields.io/badge/GitHub-mlx--minimax--music3-181717?style=flat-square&logo=github&logoColor=white)](https://github.com/appautomaton/mlx-minimax-music3)
26
+ [![Project page](https://img.shields.io/badge/project-appautomaton.renocrypt.com-F59E0B?style=flat-square)](https://appautomaton.renocrypt.com/mlx-minimax-music3/)
27
+ [![App Automaton](https://img.shields.io/badge/App%20Automaton-project-1f6feb?style=flat-square)](https://appautomaton.renocrypt.com)
28
+ [![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97-MiniMax--Music3--MLX-yellow?style=flat-square)](https://huggingface.co/appautomaton/MiniMax-Music3-MLX)
29
+
30
+ Precision-preserving MLX-native layout conversion of
31
+ [`MiniMaxAI/MiniMax-Music3`](https://huggingface.co/MiniMaxAI/MiniMax-Music3)
32
+ for local inference on Apple silicon. It is designed for use with
33
+ [`mlx-minimax-music3`](https://github.com/appautomaton/mlx-minimax-music3),
34
+ the independent pure-MLX inference project and Python package that generates
35
+ complete stereo music from lyrics and a structured music caption without
36
+ PyTorch, CUDA, or a cloud API at inference time.
37
+
38
+ This is a format and tensor-layout conversion. It is not trained, fine-tuned,
39
+ merged, or quantized, and it does not claim authorship of the underlying model.
40
+ MiniMax developed and released MiniMax Music 3; App Automaton converted the
41
+ published checkpoint for the independent MLX runtime.
42
+
43
+ ## Checkpoint contents
44
+
45
+ | Component | Stored dtype | Size | Role |
46
+ | --- | --- | ---: | --- |
47
+ | Global language model | BF16 | 15.99 GiB | Long-range structure and semantic music tokens |
48
+ | RVQ depth decoder | BF16 | 1.20 GiB | Seven residual acoustic codebooks |
49
+ | Condition encoder | FP32 | 0.09 GiB | Continuous hidden-state fusion |
50
+ | Flow transformer | FP32 | 9.06 GiB | Flow-matching acoustic synthesis |
51
+ | Vocoder | FP32 | 0.20 GiB | Stereo waveform decode |
52
+ | Tokenizer, scheduler, and metadata | — | 0.01 GiB | Prompting and checkpoint contract |
53
+
54
+ The complete checkpoint is 26.56 GiB (28.52 GB decimal). The repository contains
55
+ only the dense profile. It does not contain selective-q8 or persistent FP16
56
+ derivatives.
57
+
58
+ ## Conversion contract
59
+
60
+ The conversion is pinned to official source revision
61
+ [`fbdf52fbaaca799592917417eb05f1899f1255ec`](https://huggingface.co/MiniMaxAI/MiniMax-Music3/tree/fbdf52fbaaca799592917417eb05f1899f1255ec).
62
+ Its `manifest.json` records the source revision, mapping version, component file
63
+ sizes, tensor counts, dtypes, and SHA-256 digests.
64
+
65
+ - Qwen3 and RVQ tensors retain their published BF16 values.
66
+ - Condition, flow, and vocoder tensors retain their published FP32 values.
67
+ - Convolution kernels are transposed into the channels-last layout expected by
68
+ MLX.
69
+ - Vocoder weight normalization is folded into the stored convolution weights.
70
+ - No tensor is downcast or quantized.
71
+
72
+ The converter reads and writes SafeTensors directly through MLX. PyTorch is not
73
+ part of conversion or runtime inference.
74
+
75
+ ## Use with MLX
76
+
77
+ Install the current package from
78
+ [`mlx-minimax-music3` on PyPI](https://pypi.org/project/mlx-minimax-music3/):
79
+
80
+ ```sh
81
+ uv add --prerelease=allow mlx-minimax-music3
82
+ ```
83
+
84
+ Download this checkpoint into a local weight directory:
85
+
86
+ ```sh
87
+ hf download appautomaton/MiniMax-Music3-MLX \
88
+ --local-dir weights/mlx-dense/MiniMax-Music3
89
+ ```
90
+
91
+ Generate one minute of instrumental melodic techno:
92
+
93
+ ```python
94
+ from mlx_minimax_music3 import (
95
+ GenerationRequest,
96
+ Music3Pipeline,
97
+ instrumental_lyrics,
98
+ )
99
+
100
+ pipeline = Music3Pipeline("weights/mlx-dense/MiniMax-Music3")
101
+ result = pipeline.generate(
102
+ GenerationRequest(
103
+ caption=(
104
+ "Global Metadata: melodic techno, 128 BPM, A minor, nocturnal and "
105
+ "cinematic, gradually rising energy. Vocal Details: instrumental, "
106
+ "no vocals. Arrangement: deep rounded kick, warm sub-bass, crisp "
107
+ "hats, syncopated percussion, analog arpeggiator, evolving pads, "
108
+ "a glassy bell motif, controlled builds, and a spacious final drop."
109
+ ),
110
+ lyrics=instrumental_lyrics(
111
+ "intro", "groove", "build", "drop", "breakdown", "outro"
112
+ ),
113
+ audio_duration=60.0,
114
+ seed=7,
115
+ ),
116
+ output="outputs/melodic-techno.wav",
117
+ )
118
+
119
+ print(result.metadata.stage_timings)
120
+ print(result.metadata.memory_reports)
121
+ ```
122
+
123
+ `audio_duration` is a ceiling because the model may emit its end token earlier.
124
+ Set `min_audio_duration` when a minimum frame count is required. The default
125
+ checkpoint path keeps the official mixed precision: BF16 autoregressive models
126
+ and FP32 acoustic models.
127
+
128
+ ## Runtime behavior
129
+
130
+ The runtime loads one stage at a time. Autoregressive models are released before
131
+ the flow transformer is loaded, and acoustic models are released before final
132
+ waveform decoding. This bounds unified-memory residency and avoids retaining the
133
+ entire checkpoint in memory at once.
134
+
135
+ The current runtime writes native 44.1 kHz stereo PCM16 WAV. The official serving
136
+ profile resamples its output to 32 kHz; reference-output parity for that final
137
+ profile remains in progress.
138
+
139
+ ## Validation status
140
+
141
+ This is an alpha release. The dense checkpoint has passed:
142
+
143
+ - strict tensor-name, shape, dtype, and shard-index validation;
144
+ - tensor-by-tensor conversion checks against the pinned source;
145
+ - complete checkpoint manifest digest verification;
146
+ - weightless golden regression tests for dense loading and inference; and
147
+ - end-to-end local generation, including a three-minute default-FP32 run.
148
+
149
+ On an Apple M5 Max with 128 GB unified memory, the three-minute validation run
150
+ took 18 minutes 16 seconds, peaked at approximately 19.93 GiB of process memory,
151
+ and did not increase swap usage. This is one machine-specific observation, not a
152
+ portable performance guarantee.
153
+
154
+ Listening validation across more prompts and seeds, long-form quality parity,
155
+ and the reference 32 kHz output profile are still in progress.
156
+
157
+ ## Intended use and limitations
158
+
159
+ This checkpoint is intended for local research, development, and music
160
+ generation with the MLX runtime on Apple silicon.
161
+
162
+ - Prompt controls such as tempo, key, instrumentation, lyrics, and structure are
163
+ generative guidance rather than strict symbolic guarantees.
164
+ - Outputs can contain artifacts, incorrect words, unexpected structure, or
165
+ content that does not follow every requested attribute.
166
+ - Users are responsible for evaluating generated content, respecting applicable
167
+ rights, and complying with the model license and acceptable-use policy.
168
+ - The checkpoint is not an official MiniMax MLX release, and this project is not
169
+ affiliated with or endorsed by MiniMax.
170
+
171
+ For the original architecture description, prompt guidance, examples, and model
172
+ limitations, read the
173
+ [`MiniMaxAI/MiniMax-Music3` model card](https://huggingface.co/MiniMaxAI/MiniMax-Music3).
174
+
175
+ ## License
176
+
177
+ The converted checkpoint remains governed by the included
178
+ [`MiniMax-Music3 Community License`](https://huggingface.co/MiniMaxAI/MiniMax-Music3/blob/main/LICENSE),
179
+ including its attribution, acceptable-use, safeguards, and commercial terms.
180
+ Review that license before downloading, redistributing, or deploying the model.
181
+
182
+ The `mlx-minimax-music3` runtime code is separately licensed under MIT.
183
+
184
+ ## Links
185
+
186
+ - Source model: [`MiniMaxAI/MiniMax-Music3`](https://huggingface.co/MiniMaxAI/MiniMax-Music3)
187
+ - Runtime source: [`appautomaton/mlx-minimax-music3`](https://github.com/appautomaton/mlx-minimax-music3)
188
+ - Python package: [`mlx-minimax-music3` on PyPI](https://pypi.org/project/mlx-minimax-music3/)
189
+ - Project page: [appautomaton.renocrypt.com/mlx-minimax-music3](https://appautomaton.renocrypt.com/mlx-minimax-music3/)