ssmall256 commited on
Commit
f262b68
·
verified ·
1 Parent(s): 4d02ea9

Add initial validated seven-model MLX audio separation catalog

Browse files

Publish safetensors, matching configurations, model cards, validation reports, checksums, and catalog-specific third-party notices. Automatic downloads require the upcoming mlx-audio-separator 0.1.21 release.

Files changed (41) hide show
  1. .gitattributes +0 -34
  2. LICENSE-code +21 -0
  3. README.md +193 -0
  4. SHA256SUMS +40 -0
  5. THIRD_PARTY_NOTICES.md +138 -0
  6. VALIDATION.md +84 -0
  7. cards/bs-roformer-sw.md +59 -0
  8. cards/htdemucs.md +60 -0
  9. cards/htdemucs_6s.md +60 -0
  10. cards/htdemucs_ft.md +60 -0
  11. cards/mel-roformer-instv7n.md +59 -0
  12. cards/mel-roformer-zfturbo-vocals-v1.md +60 -0
  13. cards/uvr-mdx-net-inst-hq3.md +59 -0
  14. catalog.json +552 -0
  15. catalog.py +188 -0
  16. models/bs-roformer-sw/config.json +211 -0
  17. models/bs-roformer-sw/model.safetensors +3 -0
  18. models/htdemucs/LICENSE +22 -0
  19. models/htdemucs/htdemucs.safetensors +3 -0
  20. models/htdemucs/htdemucs_config.json +188 -0
  21. models/htdemucs_6s/LICENSE +22 -0
  22. models/htdemucs_6s/htdemucs_6s.safetensors +3 -0
  23. models/htdemucs_6s/htdemucs_6s_config.json +194 -0
  24. models/htdemucs_ft/LICENSE +22 -0
  25. models/htdemucs_ft/htdemucs_ft.safetensors +3 -0
  26. models/htdemucs_ft/htdemucs_ft_config.json +455 -0
  27. models/mel-roformer-instv7n/config.json +57 -0
  28. models/mel-roformer-instv7n/model.safetensors +3 -0
  29. models/mel-roformer-zfturbo-vocals-v1/LICENSE +31 -0
  30. models/mel-roformer-zfturbo-vocals-v1/config.json +28 -0
  31. models/mel-roformer-zfturbo-vocals-v1/model.safetensors +3 -0
  32. models/uvr-mdx-net-inst-hq3/config.json +12 -0
  33. models/uvr-mdx-net-inst-hq3/model.safetensors +3 -0
  34. validation/automatic-downloads.json +298 -0
  35. validation/bs-roformer-sw.json +92 -0
  36. validation/htdemucs.json +51 -0
  37. validation/htdemucs_6s.json +67 -0
  38. validation/htdemucs_ft.json +51 -0
  39. validation/mel-roformer-instv7n.json +44 -0
  40. validation/mel-roformer-zfturbo-vocals-v1.json +34 -0
  41. validation/uvr-mdx-net-inst-hq3.json +44 -0
.gitattributes CHANGED
@@ -1,35 +1 @@
1
- *.7z filter=lfs diff=lfs merge=lfs -text
2
- *.arrow filter=lfs diff=lfs merge=lfs -text
3
- *.bin filter=lfs diff=lfs merge=lfs -text
4
- *.bz2 filter=lfs diff=lfs merge=lfs -text
5
- *.ckpt filter=lfs diff=lfs merge=lfs -text
6
- *.ftz filter=lfs diff=lfs merge=lfs -text
7
- *.gz filter=lfs diff=lfs merge=lfs -text
8
- *.h5 filter=lfs diff=lfs merge=lfs -text
9
- *.joblib filter=lfs diff=lfs merge=lfs -text
10
- *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
- *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
- *.model filter=lfs diff=lfs merge=lfs -text
13
- *.msgpack filter=lfs diff=lfs merge=lfs -text
14
- *.npy filter=lfs diff=lfs merge=lfs -text
15
- *.npz filter=lfs diff=lfs merge=lfs -text
16
- *.onnx filter=lfs diff=lfs merge=lfs -text
17
- *.ot filter=lfs diff=lfs merge=lfs -text
18
- *.parquet filter=lfs diff=lfs merge=lfs -text
19
- *.pb filter=lfs diff=lfs merge=lfs -text
20
- *.pickle filter=lfs diff=lfs merge=lfs -text
21
- *.pkl filter=lfs diff=lfs merge=lfs -text
22
- *.pt filter=lfs diff=lfs merge=lfs -text
23
- *.pth filter=lfs diff=lfs merge=lfs -text
24
- *.rar filter=lfs diff=lfs merge=lfs -text
25
  *.safetensors filter=lfs diff=lfs merge=lfs -text
26
- saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
- *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
- *.tflite filter=lfs diff=lfs merge=lfs -text
30
- *.tgz filter=lfs diff=lfs merge=lfs -text
31
- *.wasm filter=lfs diff=lfs merge=lfs -text
32
- *.xz filter=lfs diff=lfs merge=lfs -text
33
- *.zip filter=lfs diff=lfs merge=lfs -text
34
- *.zst filter=lfs diff=lfs merge=lfs -text
35
- *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  *.safetensors filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
LICENSE-code ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) 2024-2026 ssmall256
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
README.md ADDED
@@ -0,0 +1,193 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ library_name: mlx
3
+ pipeline_tag: audio-to-audio
4
+ license: unknown
5
+ tags:
6
+ - mlx
7
+ - audio
8
+ - music-source-separation
9
+ - apple-silicon
10
+ - safetensors
11
+ ---
12
+
13
+ # MLX Audio Separator
14
+
15
+ Separate music into vocals, drums, bass, guitar, piano, and other instruments on your
16
+ Apple Silicon Mac. This repository contains seven ready-to-use **safetensors models** for
17
+ [mlx-audio-separator](https://github.com/ssmall256/mlx-audio-separator), with MLX inference,
18
+ matching configurations, and individual validation reports. No PyTorch or ONNX runtime is
19
+ required to use these weights.
20
+
21
+ Download one model or the full collection. All weights are hosted here, organized by model ID.
22
+
23
+ ## Models
24
+
25
+ | Model | Output stems | Precision | Size |
26
+ |---|---|---|---:|
27
+ | [BS-RoFormer-SW](cards/bs-roformer-sw.md) | Bass, drums, other, vocals, guitar, piano | float32 | 666.5 MiB |
28
+ | [Mel-RoFormer InstV7n](cards/mel-roformer-instv7n.md) | Instrumental, vocals | float32 | 870.6 MiB |
29
+ | [UVR-MDX-NET Inst HQ3](cards/uvr-mdx-net-inst-hq3.md) | Instrumental, vocals | float32 | 63.8 MiB |
30
+ | [HTDemucs](cards/htdemucs.md) | Drums, bass, other, vocals | float32 | 160.2 MiB |
31
+ | [HTDemucs_FT](cards/htdemucs_ft.md) | Drums, bass, other, vocals | float32 | 640.9 MiB |
32
+ | [HTDemucs_6s](cards/htdemucs_6s.md) | Drums, bass, other, vocals, guitar, piano | float32 | 104.6 MiB |
33
+ | [ZFTurbo Mel-RoFormer Vocals v1](cards/mel-roformer-zfturbo-vocals-v1.md) | Vocals, instrumental | float16 | 64.3 MiB |
34
+
35
+ **BS-RoFormer-SW** separates six instruments in one model. **HTDemucs** produces four stems;
36
+ **HTDemucs_FT** uses four specialist models, and **HTDemucs_6s** adds guitar and piano.
37
+ For vocal and instrumental separation, choose InstV7n, Inst HQ3, or ZFTurbo Vocals v1.
38
+
39
+ All models produce stereo audio at **44.1 kHz**. The complete collection is **2.51 GiB**.
40
+ Download sizes include weights and configurations; runtime memory use is higher and varies by model.
41
+ Weight precision describes the stored tensors, not the precision of every inference operation.
42
+
43
+ ## Quick start
44
+
45
+ Requires an **Apple Silicon Mac running macOS 26+**, native **Python 3.10+**, and
46
+ **mlx-audio-separator 0.1.21 or later**.
47
+
48
+ **Release availability:** automatic downloads require the upcoming 0.1.21 package release.
49
+ The model files are available now through [direct downloads](#direct-downloads).
50
+ The CLI and Python examples below apply once 0.1.21 is released; PyPI 0.1.20 does not
51
+ include this catalog integration.
52
+
53
+ Install [mlx-audio-separator](https://github.com/ssmall256/mlx-audio-separator) and choose a model:
54
+
55
+ ```bash
56
+ python -m pip install "mlx-audio-separator>=0.1.21"
57
+ mlx-audio-separator song.m4a -m bs-roformer-sw --output_dir stems
58
+ ```
59
+
60
+ **The first use downloads the selected model automatically.** The package verifies its weights
61
+ and configuration against bundled SHA-256 hashes, caches them, and separates your audio.
62
+ Later runs reuse the cache and work offline. You do not need to download or convert a checkpoint yourself.
63
+
64
+ The CLI writes FLAC by default; add `--output_format WAV` for WAV files.
65
+
66
+ ### Python
67
+
68
+ ```python
69
+ from mlx_audio_separator import Separator
70
+
71
+ separator = Separator(output_dir="stems", output_format="WAV")
72
+ separator.load_model("bs-roformer-sw")
73
+ output_files = separator.separate("song.m4a")
74
+ ```
75
+
76
+ Reuse the separator for additional files. Each of the seven model cards lists its short catalog ID
77
+ and existing package name; both select the same safetensors. For example, `BS-Roformer-SW.ckpt`
78
+ remains an alias for `bs-roformer-sw`, and `htdemucs_ft.yaml` remains an alias for `htdemucs_ft`.
79
+ The `.ckpt`, `.onnx`, and `.yaml` aliases are model names, not the formats downloaded for these entries.
80
+ Choose a model explicitly: the package's historical default is a different BS-RoFormer checkpoint.
81
+
82
+ ## Cache and offline use
83
+
84
+ Automatic downloads go to `~/.cache/mlx-audio-separator/models/<model-id>/`.
85
+ Use `--model_file_dir /path/to/models` in the CLI, or `model_file_dir="/path/to/models"` in Python,
86
+ to choose another model directory. `AUDIO_SEPARATOR_MODEL_DIR` can select an existing directory
87
+ for both interfaces and takes precedence over those options.
88
+
89
+ Set `HF_HUB_OFFLINE=1` or `MLX_AUDIO_SEPARATOR_NO_DOWNLOAD=1` to prohibit downloads.
90
+ A complete, verified cache works without network access. A missing or damaged file produces a
91
+ clear error in offline mode; with downloads enabled, the package fetches the required replacement.
92
+ Failed transfers do not overwrite existing files.
93
+
94
+ To free space, remove an unused model's folder. The next use restores the required files.
95
+ The package also reuses matching files from older model caches where possible.
96
+
97
+ ## Direct downloads
98
+
99
+ You can also download weights and configurations directly from this repository's **Files and
100
+ versions** tab, or use the Hugging Face client. This is useful for manual setup or preparing
101
+ an offline machine.
102
+
103
+ ```bash
104
+ python -m pip install huggingface_hub
105
+ ```
106
+
107
+ ```python
108
+ from huggingface_hub import snapshot_download
109
+
110
+ snapshot_download(
111
+ repo_id="ssmall256/mlx-audio-separator",
112
+ local_dir="mlx-separator-models",
113
+ allow_patterns=["models/bs-roformer-sw/*"],
114
+ )
115
+ ```
116
+
117
+ Point the normal CLI at the downloaded `models/` directory:
118
+
119
+ ```bash
120
+ HF_HUB_OFFLINE=1 mlx-audio-separator song.m4a \
121
+ -m bs-roformer-sw \
122
+ --model_file_dir mlx-separator-models/models \
123
+ --output_dir stems
124
+ ```
125
+
126
+ Keep each model's files together under its model ID. Replace `bs-roformer-sw` in both examples
127
+ to choose another model, or use `models/*` as the download pattern for all seven.
128
+ The package verifies manually downloaded files using the same checks as automatic downloads.
129
+
130
+ For reproducible downloads, pass a specific commit with `snapshot_download(revision=...)`.
131
+ Use a package release whose bundled file hashes match that revision. See the
132
+ [Hugging Face download guide](https://huggingface.co/docs/huggingface_hub/guides/download) for more options.
133
+
134
+ ## Inference settings
135
+
136
+ RoFormer models use **two overlapping windows** by default: each chunk starts halfway through
137
+ the preceding chunk. Demucs uses **two shifts** and **25% overlap**. Shift offsets are random
138
+ by default; set `--demucs_seed 0` or `demucs_params={"seed": 0}` for repeatable selection.
139
+ Inst HQ3 uses 25% overlap and a segment size of 256. The normal package options remain available
140
+ to adjust these settings.
141
+
142
+ The [catalog manifest](catalog.json) records filenames, sizes, SHA-256 hashes, source checkpoints,
143
+ and conversion details. Each model card includes file hashes, and `SHA256SUMS` covers the
144
+ repository's distributed files.
145
+
146
+ ## Validation
147
+
148
+ Every model passed offline inference on a 14-second real-music excerpt in a fresh process,
149
+ producing the expected full-length, finite stereo stems at 44.1 kHz. These checks ran with
150
+ network access disabled and imports of PyTorch, ONNX, and ONNX Runtime blocked.
151
+
152
+ The BS-RoFormer-SW, InstV7n, and Inst HQ3 conversions produced **bit-identical unquantized stems**
153
+ to their original checkpoints loaded through the same MLX implementations. The three Demucs
154
+ models and ZFTurbo Vocals v1 preserve the bytes of their existing published safetensors,
155
+ verified against pinned source revisions.
156
+
157
+ The normal package loader also passed first-use download and offline-cache checks for all seven
158
+ models using a local HTTP mirror of these files. Both runs produced bit-identical unquantized
159
+ stems, with conversion dependencies blocked. See the [automatic-download report](validation/automatic-downloads.json).
160
+
161
+ These checks establish artifact integrity and conversion consistency. The 14-second check is
162
+ not a full quality evaluation or a speed benchmark. See [Validation details](VALIDATION.md)
163
+ for per-model reports and earlier comparisons against
164
+ [python-audio-separator](https://github.com/nomadkaraoke/python-audio-separator), the upstream
165
+ project used for PyTorch references.
166
+
167
+ ## Licensing and credit
168
+
169
+ Model weights have individual licensing terms; there is no single license covering the entire
170
+ collection. The **MIT** license in [LICENSE-code](LICENSE-code) applies to the catalog helper.
171
+ See [Third-Party Notices](THIRD_PARTY_NOTICES.md) for checkpoint and conversion credits,
172
+ upstream software attribution, and links to the included model-specific license texts.
173
+
174
+ | Models | Weight license information |
175
+ |---|---|
176
+ | BS-RoFormer-SW | The [source model card](https://huggingface.co/enerjazzer/BS-ROFO-SW-Fixed/tree/a443a2985534b3bc815ef54a5d446c6a0390f974) lists the license as **unknown**. |
177
+ | Mel-RoFormer InstV7n | No weight-specific redistribution license is recorded in the source metadata. |
178
+ | UVR-MDX-NET Inst HQ3 | No weight-specific redistribution license is recorded in the source metadata. |
179
+ | HTDemucs, HTDemucs_FT, HTDemucs_6s | **MIT**, as declared by the pinned [Demucs MLX source repository](https://huggingface.co/ssmall256/demucs-mlx/tree/35ecb1a906ec420b1a28069db575ad070d35860e); license notices accompany the weights. |
180
+ | ZFTurbo Vocals v1 | The [source card](https://huggingface.co/mlx-community/mel-roformer-zfturbo-vocals-v1-mlx/tree/01bef2daebedf39937f552d6da68340fc979c9a0) declares **MIT**, with a caveat that the source license was added after the checkpoint release. Its notice is included unchanged. |
181
+
182
+ An unknown weight license is not a grant of permission. Consult the individual model cards and
183
+ original sources for the terms relevant to your use.
184
+
185
+ The fixed BS-RoFormer-SW checkpoint traces to **jarredou**'s distribution, mirrored by **enerjazzer**;
186
+ InstV7n to **Gabox**; Inst HQ3 to the **UVR/TRvlvr** model release; Demucs to **Meta and the Demucs
187
+ contributors**; and ZFTurbo Vocals v1 to **Roman Solovyev (ZFTurbo)**, with its existing MLX conversion
188
+ from **mlx-community**. Architecture credit belongs to the BS-RoFormer, Mel-Band-RoFormer,
189
+ Demucs, and MDX/UVR authors and contributors.
190
+
191
+ MLX separator development and catalog preparation are maintained by
192
+ [ssmall256](https://huggingface.co/ssmall256). Report runtime issues or request additional models
193
+ in the [mlx-audio-separator issue tracker](https://github.com/ssmall256/mlx-audio-separator/issues).
SHA256SUMS ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ee05350c7fda0af4da116020dd7b976d731de3beed4f5e717d5bcc95ead24550 .gitattributes
2
+ 980ed5199ba2b41c564a024ef183f29cec371c1d77b65982a8e21c037bee74f6 LICENSE-code
3
+ ac88c30e525c3f634bb5e16fb00da514692c2aff84975c7e8fd37826db7b42ed README.md
4
+ 3685afee0763ef6c3be1718e425dda024dbc69dd01cb82122579eb689b3e80d2 THIRD_PARTY_NOTICES.md
5
+ 0946bc24fa11497c3b2a302a96d2bc21cb8dcfa09cb501a1f70f2e34d33c3139 VALIDATION.md
6
+ bb2e30830573d781821f62ae5c7415e021863a99cf1eca67df1e81e42b41b4b3 cards/bs-roformer-sw.md
7
+ da22bc2b2fbc749e666c57b471cc7273ec799b02f7525cb3f2a2c5d674ebc3b5 cards/htdemucs.md
8
+ d926563e4b56b6cf25dcd0e720b5297d81cf14f4fcc63034a8ff3aed54ebba7f cards/htdemucs_6s.md
9
+ 740196e8faba91f573bceae68e62c1c7d959c91c3ed66f9731790cf265395e03 cards/htdemucs_ft.md
10
+ e5edfd2544b3ae2a2202303062298f0c67e7b4df38eb47050afcb0dd28d165fa cards/mel-roformer-instv7n.md
11
+ b469ee5f16282aef423f28d6299fd961a04bf729c04f9cb6877760d6c286a284 cards/mel-roformer-zfturbo-vocals-v1.md
12
+ 842bf30a9b310b2c8c445d20002ec0b907b454c00811fc202793ce5dc52c6b4a cards/uvr-mdx-net-inst-hq3.md
13
+ 8d26f8b48adfe3c96e60f1a360e30eecfa24b620539cd55714d22012ec8dbe95 catalog.json
14
+ 41469a84c9cd1ea89be7cc98eae2e72837e5b8d897b9d3fc368d1538015a5c14 catalog.py
15
+ 386a86c2061536d2dca349943f1027f3ac5472ccb22b0e18bd528519b90f8931 models/bs-roformer-sw/config.json
16
+ f95907cd5bfdbc783c1cb32f6aafc49b8b6a598477a9d4a48b4f9191c5167707 models/bs-roformer-sw/model.safetensors
17
+ 15086279d32c0f00c577c0f52ff428daf98b8a1fec0264da1c717c88ad464f51 models/htdemucs/LICENSE
18
+ 339d267a7a6983a11eedbdc00413c602a65e9b9103f695fb5c2b2a481cd9d297 models/htdemucs/htdemucs.safetensors
19
+ 23657b19db14771aecf366ceedbf846c1386836c10043c97f4569acf05526b78 models/htdemucs/htdemucs_config.json
20
+ 15086279d32c0f00c577c0f52ff428daf98b8a1fec0264da1c717c88ad464f51 models/htdemucs_6s/LICENSE
21
+ d298f7f746bf53c21baad44fb08e88807ef47feb551dd22f1601a546c85b8e02 models/htdemucs_6s/htdemucs_6s.safetensors
22
+ d5e18c0209be583027d6eb5ec3013a02cd7ef55bc3096e644d8d3577d92e9bd0 models/htdemucs_6s/htdemucs_6s_config.json
23
+ 15086279d32c0f00c577c0f52ff428daf98b8a1fec0264da1c717c88ad464f51 models/htdemucs_ft/LICENSE
24
+ 53f03b1ad4b4d211025a35da65460ba61a17547adf9c0544cad0ebcc8d7bbabb models/htdemucs_ft/htdemucs_ft.safetensors
25
+ 6708535a698d4d4dd285a6f0a80d9d3c228fdd6514e53bdf1ddbc2ee9b0fa872 models/htdemucs_ft/htdemucs_ft_config.json
26
+ cd8548fd6a1345cfd0c51970919e15e7262cee954b6ff45bb016ed1364be38c5 models/mel-roformer-instv7n/config.json
27
+ 74397de5395ed372059b971d6398106f60d92373ada69b62e986e52c9697a5ba models/mel-roformer-instv7n/model.safetensors
28
+ 2b55ae02dcfe9ac8454c41c5e235175512db7429ee7275bab4c4e566b3f80597 models/mel-roformer-zfturbo-vocals-v1/LICENSE
29
+ d110ed4713b403d27e2ae6c7796b1a864576232de4a2070e9762108ca197caa6 models/mel-roformer-zfturbo-vocals-v1/config.json
30
+ ef4aa052845a868cfaff93611477bd8f54d8081bc32f2742a9b3c738f0821191 models/mel-roformer-zfturbo-vocals-v1/model.safetensors
31
+ d8df573c2b0248e3ce77eb8f0fc3c528c9db5368f38335e249e25e05e84415ba models/uvr-mdx-net-inst-hq3/config.json
32
+ 72c307239fbc415c9f3c1ef83fee38d19ac98b4b893f1a5afc4345296f48eea8 models/uvr-mdx-net-inst-hq3/model.safetensors
33
+ 8e4ff22dba85aa83e92ac8efa1f4d741c9e0cc91c9d4c51ca631c91177f80109 validation/automatic-downloads.json
34
+ ee237e5eb45f11ee6684cdaec3e0deb20bee06ca5025e1af8be73d84756536c2 validation/bs-roformer-sw.json
35
+ b10e9d5117578b4e69220ffeb1ccd339fed595411014f30f8697af2dc0ff86d1 validation/htdemucs.json
36
+ b1be8b6a2d2c03218fbb9b58c9608f471f04b3fefd7d11097eb12a33f3eb38cc validation/htdemucs_6s.json
37
+ 1b766b8401bb198ec8aec3e963a87b0dbe7536326cf3f3855e2c6d38d24497ea validation/htdemucs_ft.json
38
+ e4cd78ec803f05b27f02333d953d44f8f55e8411b9e40b2ec37249bec12be071 validation/mel-roformer-instv7n.json
39
+ aeab6734ec12ba55abed0be71fe9d812970585a03cc37b1f35dd8ae1970cf0bd validation/mel-roformer-zfturbo-vocals-v1.json
40
+ 8a552063129fa354dd4c1622de93962ec104e97e7b1fc768b56f1984aacd24d2 validation/uvr-mdx-net-inst-hq3.json
THIRD_PARTY_NOTICES.md ADDED
@@ -0,0 +1,138 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Third-Party Notices
2
+
3
+ This repository distributes pretrained music-separation weights, their configurations,
4
+ model cards, validation reports, and a catalog helper. It brings together work by the
5
+ model authors, upstream projects, and MLX conversion contributors identified below.
6
+
7
+ Licensing information is recorded per model. [LICENSE-code](LICENSE-code) covers the
8
+ catalog helper; it does not apply a single license to all checkpoint weights. Existing
9
+ model-specific notices are included with the corresponding files. Source revisions,
10
+ filenames, and SHA-256 hashes are recorded in [catalog.json](catalog.json).
11
+
12
+ ## BS-RoFormer-SW
13
+
14
+ - **Catalog entry:** [BS-RoFormer-SW](cards/bs-roformer-sw.md).
15
+ - **Fixed checkpoint lineage:** jarredou's distribution, mirrored by
16
+ [enerjazzer/BS-ROFO-SW-Fixed](https://huggingface.co/enerjazzer/BS-ROFO-SW-Fixed/tree/a443a2985534b3bc815ef54a5d446c6a0390f974).
17
+ These names identify the checkpoint's distribution history, not a verified training-author credit.
18
+ - **Conversion input:** `BS-Roformer-SW.ckpt` from the
19
+ [python-audio-separator model-configs release](https://github.com/nomadkaraoke/python-audio-separator/releases/download/model-configs/BS-Roformer-SW.ckpt).
20
+ Its SHA-256 matches the pinned fixed checkpoint above.
21
+ - **MLX conversion:** ssmall256; float32 safetensors and the matching configuration
22
+ prepared with [mlx-audio-separator](https://github.com/ssmall256/mlx-audio-separator).
23
+ - **Weight license information:** the pinned source model card explicitly declares
24
+ `license: unknown`. This catalog does not assign an MIT license to these weights.
25
+
26
+ ## Mel-RoFormer InstV7n
27
+
28
+ - **Catalog entry:** [Mel-RoFormer InstV7n](cards/mel-roformer-instv7n.md).
29
+ - **Checkpoint author:** Gabox. The matching checkpoint is available as
30
+ [`INSTV7N.ckpt`](https://huggingface.co/GaboxR67/MelBandRoformers/blob/7860d31d8cc1c73b46c1cbdc2b497210c97478ae/melbandroformers/instrumental/INSTV7N.ckpt)
31
+ in Gabox's model repository.
32
+ - **Conversion input:** `mel_band_roformer_instrumental_instv7n_gabox.ckpt` and its
33
+ configuration from the
34
+ [python-audio-separator model-configs release](https://github.com/nomadkaraoke/python-audio-separator/releases/tag/model-configs).
35
+ - **MLX conversion:** ssmall256; float32 safetensors and the matching configuration
36
+ prepared with mlx-audio-separator.
37
+ - **Weight license information:** no weight-specific redistribution license is recorded
38
+ in the source metadata used for this catalog.
39
+
40
+ ## UVR-MDX-NET Inst HQ3
41
+
42
+ - **Catalog entry:** [UVR-MDX-NET Inst HQ3](cards/uvr-mdx-net-inst-hq3.md).
43
+ - **Checkpoint source:** the Ultimate Vocal Remover community and
44
+ [TRvlvr's public UVR model release](https://github.com/TRvlvr/model_repo/releases/tag/all_public_uvr_models).
45
+ - **Conversion input:** `UVR-MDX-NET-Inst_HQ_3.onnx`, with model parameters from the
46
+ upstream UVR catalog used by python-audio-separator.
47
+ - **MLX conversion:** ssmall256; float32 safetensors and the matching configuration
48
+ prepared with mlx-audio-separator.
49
+ - **Weight license information:** no weight-specific redistribution license is recorded
50
+ in the source metadata used for this catalog.
51
+
52
+ ## HTDemucs, HTDemucs_FT, and HTDemucs_6s
53
+
54
+ - **Catalog entries:** [HTDemucs](cards/htdemucs.md), [HTDemucs_FT](cards/htdemucs_ft.md),
55
+ and [HTDemucs_6s](cards/htdemucs_6s.md).
56
+ - **Original project and models:** Meta Platforms, Inc. and affiliates, Alexandre
57
+ Défossez, and the [Demucs contributors](https://github.com/facebookresearch/demucs).
58
+ - **MLX conversion and packaging:** ssmall256,
59
+ [demucs-mlx](https://github.com/ssmall256/demucs-mlx).
60
+ - **Distributed artifacts:** unchanged float32 weights and configurations from
61
+ [ssmall256/demucs-mlx at revision `35ecb1a`](https://huggingface.co/ssmall256/demucs-mlx/tree/35ecb1a906ec420b1a28069db575ad070d35860e).
62
+ HTDemucs_FT includes all four specialist models.
63
+ - **License information:** the pinned source repository declares MIT. Its copyright
64
+ and license text is preserved unchanged in each model directory:
65
+ [HTDemucs LICENSE](models/htdemucs/LICENSE),
66
+ [HTDemucs_FT LICENSE](models/htdemucs_ft/LICENSE), and
67
+ [HTDemucs_6s LICENSE](models/htdemucs_6s/LICENSE).
68
+
69
+ The accompanying notices credit:
70
+
71
+ > Copyright (c) Meta Platforms, Inc. and affiliates.
72
+ > Copyright (c) 2026 ssmall256
73
+
74
+ ## ZFTurbo Mel-RoFormer Vocals v1
75
+
76
+ - **Catalog entry:** [ZFTurbo Mel-RoFormer Vocals v1](cards/mel-roformer-zfturbo-vocals-v1.md).
77
+ - **Original checkpoint:** Roman Solovyev (ZFTurbo),
78
+ [`model_vocals_mel_band_roformer_sdr_8.42.ckpt`](https://github.com/ZFTurbo/Music-Source-Separation-Training/releases/tag/v1.0.0)
79
+ from Music-Source-Separation-Training v1.0.0.
80
+ - **MLX conversion and packaging:** Xocialize, published through
81
+ [mlx-community/mel-roformer-zfturbo-vocals-v1-mlx](https://huggingface.co/mlx-community/mel-roformer-zfturbo-vocals-v1-mlx/tree/01bef2daebedf39937f552d6da68340fc979c9a0).
82
+ - **Distributed artifacts:** the pinned float16 weights and configuration are copied
83
+ unchanged. This catalog does not reconvert or quantize them.
84
+ - **License information:** the pinned model card declares MIT. The included
85
+ [LICENSE](models/mel-roformer-zfturbo-vocals-v1/LICENSE) preserves its copyright
86
+ notices and disclosure: the source repository's MIT license was added on
87
+ November 4, 2024, after the November 6, 2023 checkpoint release. The source
88
+ redistribution treats the weights as inheriting the repository's current MIT terms;
89
+ explicit retroactive author confirmation was not collected for this catalog.
90
+
91
+ ## Architecture and implementation credits
92
+
93
+ The BS-RoFormer, Mel-Band-RoFormer, Demucs, and MDX/UVR architecture authors and
94
+ contributors retain credit for their work. Architecture names describe the model
95
+ families; they do not establish authorship or licensing of every trained checkpoint.
96
+
97
+ [python-audio-separator](https://github.com/nomadkaraoke/python-audio-separator),
98
+ maintained by Nomad Karaoke / karaokenerds and contributors, is the upstream project
99
+ for mlx-audio-separator. The MLX application adapts its model/configuration handling
100
+ conventions and uses it for PyTorch reference inference. Its model-configs release
101
+ also supplies the SW and InstV7n conversion inputs identified above. The application
102
+ source is maintained separately on GitHub.
103
+
104
+ The upstream notice is reproduced below as attribution for that software. It is not
105
+ presented as a license grant for third-party checkpoints distributed through its catalog.
106
+
107
+ ### MIT License — python-audio-separator
108
+
109
+ Copyright (c) 2023 karaokenerds
110
+
111
+ Permission is hereby granted, free of charge, to any person obtaining a copy
112
+ of this software and associated documentation files (the "Software"), to deal
113
+ in the Software without restriction, including without limitation the rights
114
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
115
+ copies of the Software, and to permit persons to whom the Software is
116
+ furnished to do so, subject to the following conditions:
117
+
118
+ The above copyright notice and this permission notice shall be included in all
119
+ copies or substantial portions of the Software.
120
+
121
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
122
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
123
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
124
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
125
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
126
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
127
+ SOFTWARE.
128
+
129
+ ## Using and redistributing these files
130
+
131
+ Keep the matching model configuration and applicable notices with each set of weights.
132
+ Refer to the model-specific sources above for terms relevant to your use. An unknown
133
+ or undocumented weight license is not a grant of permission, and the helper's code
134
+ license does not fill that gap.
135
+
136
+ For attribution corrections, please open an issue in
137
+ [mlx-audio-separator](https://github.com/ssmall256/mlx-audio-separator/issues), identifying
138
+ the catalog model and the relevant original source.
VALIDATION.md ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Validation
2
+
3
+ The catalog includes an individual JSON report for each of its seven models, linked below. The reports
4
+ record input and output shapes, inference settings, output peaks, file-writing results, and
5
+ conversion comparisons where available.
6
+
7
+ ## Catalog checks
8
+
9
+ All seven models passed a fresh-process inference check on the same 14-second stereo music
10
+ excerpt at 44.1 kHz, with overlapping chunks. Each produced the expected number of finite,
11
+ full-length stereo stems and wrote its output audio successfully. Network access was disabled,
12
+ and PyTorch, ONNX, and ONNX Runtime imports were blocked during inference.
13
+
14
+ | Model | Stems checked | Additional verification | Report |
15
+ |---|---:|---|---|
16
+ | BS-RoFormer-SW | 6 | Bit-identical unquantized output versus the original checkpoint in MLX | [JSON](validation/bs-roformer-sw.json) |
17
+ | Mel-RoFormer InstV7n | 2 | Bit-identical unquantized output versus the original checkpoint in MLX | [JSON](validation/mel-roformer-instv7n.json) |
18
+ | UVR-MDX-NET Inst HQ3 | 2 | Bit-identical unquantized output versus the original checkpoint in MLX | [JSON](validation/uvr-mdx-net-inst-hq3.json) |
19
+ | HTDemucs | 4 | Weights and config match the pinned published files | [JSON](validation/htdemucs.json) |
20
+ | HTDemucs_FT | 4 | Weights and config match the pinned published files | [JSON](validation/htdemucs_ft.json) |
21
+ | HTDemucs_6s | 6 | Weights and config match the pinned published files | [JSON](validation/htdemucs_6s.json) |
22
+ | ZFTurbo Vocals v1 | 2 | Weights and config match the pinned published files | [JSON](validation/mel-roformer-zfturbo-vocals-v1.json) |
23
+
24
+ The three new conversions were compared before output quantization, across all ten emitted
25
+ stems. The four reused models were downloaded into an empty cache and verified by size and
26
+ SHA-256 before inference. Their weights retain the original precision: float32 for Demucs,
27
+ float16 for ZFTurbo.
28
+
29
+ RoFormer checks used two overlapping windows. Demucs checks used two shifts, a fixed seed of
30
+ zero, and 25% overlap. The fixed seed makes the validation runs repeatable; normal package use leaves shift selection random unless a seed is supplied. The source audio and separated
31
+ music are not distributed with the models.
32
+
33
+ ## Automatic downloads and offline loading
34
+
35
+ The [public API integration report](validation/automatic-downloads.json) covers all seven models
36
+ through normal `Separator.load_model()` and `Separator.separate()` calls. Each test:
37
+
38
+ 1. Starts with an empty model directory and downloads the exact repository files from a local HTTP mirror.
39
+ 2. Loads the model using its existing package name and separates the 14-second fixture.
40
+ 3. Blocks all network connections, creates a new separator, and loads the same cache using the short catalog ID.
41
+ 4. Verifies full-length, finite output and bit-identical unquantized stems between both runs.
42
+
43
+ PyTorch, ONNX, and ONNX Runtime imports are blocked throughout. The test checks actual audio writes
44
+ and confirms that each model file is requested exactly once. This exercises download and cache
45
+ behavior independently of Hugging Face availability. The report records the tested implementation's
46
+ source hashes and identifies the local mirror as the download source.
47
+
48
+ CPU tests additionally cover corrupt downloads and caches, interrupted transfers, concurrent
49
+ first use, offline cache misses, older cache reuse, and unchanged routing for other models.
50
+
51
+ ## Earlier reference comparisons
52
+
53
+ The following evidence comes from the separator projects' reference tests, independently of
54
+ the catalog packaging checks. PyTorch references use the original
55
+ [python-audio-separator](https://github.com/nomadkaraoke/python-audio-separator).
56
+
57
+ - **BS-RoFormer-SW:** the standard core passes real-checkpoint tests against native
58
+ python-audio-separator references and cross-repository consistency checks. Earlier full-track
59
+ PCM comparisons include near-silent relative-error exceptions bounded by one PCM16 step.
60
+ - **InstV7n and Inst HQ3:** a twelve-track comparison on two hosts passed relative L2 ≤ 0.05
61
+ for every compared stem. The worst values were 0.0120522 and 0.0047207, respectively.
62
+ - **HTDemucs and HTDemucs_FT:** full-track controls with identical shift offsets, following the
63
+ normalization correction, had worst relative L2 errors of 0.000775014 and 0.00106586.
64
+ These are single-track controls. Other corpus comparisons include stochastic shift differences.
65
+ - **HTDemucs_6s:** the existing Demucs model publication reports source-checkpoint parity.
66
+ The catalog check adds offline six-stem inference and exact file verification; it does not
67
+ rerun the PyTorch reference comparison.
68
+ - **ZFTurbo Vocals v1:** earlier release tests cover both stems, overlap, input sample rates,
69
+ and mixture reconstruction. This catalog uses the same published float16 conversion.
70
+
71
+ Detailed methods and results are in the mlx-audio-separator
72
+ [performance report](https://github.com/ssmall256/mlx-audio-separator/blob/main/docs/performance-snapshot.md),
73
+ [release validation](https://github.com/ssmall256/mlx-audio-separator/blob/main/docs/release-validation.md),
74
+ and [RoFormer core documentation](https://github.com/ssmall256/mlx-audio-separator/blob/main/docs/roformer-core.md).
75
+
76
+ ## Interpreting the results
77
+
78
+ The catalog checks verify that the packaged files load and preserve the tested MLX behavior.
79
+ They do not provide a new ground-truth SDR score, guarantee separation quality on every song,
80
+ or establish a speedup from the recorded validation wall times. Bit-identical conversion
81
+ results describe original-MLX versus safetensors-MLX outputs, not MLX versus PyTorch.
82
+
83
+ The [manifest](catalog.json) records source identities, runtime versions, and conversion source
84
+ fingerprints. The model cards list file hashes, and `SHA256SUMS` covers the distributed files.
cards/bs-roformer-sw.md ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # BS-RoFormer-SW
2
+
3
+ A six-stem BS-RoFormer model for separating bass, drums, other instruments, vocals, guitar, and piano. These float32 safetensors run directly in MLX on Apple Silicon.
4
+
5
+ | Property | Value |
6
+ |---|---|
7
+ | Catalog ID | `bs-roformer-sw` |
8
+ | Existing package name | `BS-Roformer-SW.ckpt` |
9
+ | Output stems | bass, drums, other, vocals, guitar, piano |
10
+ | Output audio | Stereo, 44,100 Hz |
11
+ | Stored weight precision | `float32` |
12
+ | Download size | 666.5 MiB |
13
+
14
+ ## Use this model
15
+
16
+ Install [mlx-audio-separator](../README.md#quick-start), then run:
17
+
18
+ ```bash
19
+ mlx-audio-separator song.m4a -m bs-roformer-sw --output_dir stems
20
+ ```
21
+
22
+ The first use automatically downloads and verifies this model's safetensors and configuration.
23
+ Later runs reuse the local cache. The existing name `BS-Roformer-SW.ckpt` selects the same model.
24
+ For Python, use `separator.load_model("bs-roformer-sw")`.
25
+ See [direct downloads](../README.md#direct-downloads) to prepare the files manually or use them offline.
26
+
27
+ Chunks contain 588,800 samples (about 13.35 seconds). Two overlapping windows give a half-chunk stride. Inference runs locally on Apple Silicon through `mlx-audio-separator`.
28
+
29
+ ## Files and provenance
30
+
31
+ Keep the weights and configuration together in `models/bs-roformer-sw/`.
32
+
33
+ | File | Bytes | SHA-256 |
34
+ |---|---:|---|
35
+ | [`model.safetensors`](../models/bs-roformer-sw/model.safetensors) | 698,841,589 | `f95907cd5bfdbc783c1cb32f6aafc49b8b6a598477a9d4a48b4f9191c5167707` |
36
+ | [`config.json`](../models/bs-roformer-sw/config.json) | 4,282 | `386a86c2061536d2dca349943f1027f3ac5472ccb22b0e18bd528519b90f8931` |
37
+
38
+ The [catalog manifest](../catalog.json) records source hashes, conversion details, and immutable
39
+ upstream revisions where applicable. [Original source artifacts](https://github.com/nomadkaraoke/python-audio-separator/releases/download/model-configs/BS-Roformer-SW.ckpt).
40
+
41
+ ## Validation
42
+
43
+ The [inference report](../validation/bs-roformer-sw.json) records 6 finite,
44
+ full-length stereo stems from a 14-second real-music excerpt with overlapping chunks.
45
+ Network access and PyTorch, ONNX, and ONNX Runtime imports were disabled during the check.
46
+
47
+ All unquantized output samples were **bit-identical** to the original checkpoint loaded through the same MLX implementation.
48
+
49
+ The normal package API also passed first-use download and offline inference checks with
50
+ bit-identical output; see the [automatic-download report](../validation/automatic-downloads.json).
51
+
52
+ See [Validation details](../VALIDATION.md) for the scope of these checks and earlier reference
53
+ comparisons. This packaging check does not provide a new separation-quality score or speed benchmark.
54
+
55
+ ## License and attribution
56
+
57
+ The source catalog credits **jarredou**. **enerjazzer** hosts the fixed source checkpoint. The [source model card](https://huggingface.co/enerjazzer/BS-ROFO-SW-Fixed/tree/a443a2985534b3bc815ef54a5d446c6a0390f974) explicitly lists the weight license as **unknown**. The catalog helper's MIT license does not establish a license for these weights.
58
+
59
+ See the [collection's licensing and credits](../README.md#licensing-and-credit) for additional sources.
cards/htdemucs.md ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # HTDemucs
2
+
3
+ The four-stem Hybrid Transformer Demucs model: drums, bass, other instruments, and vocals. This entry contains the float32 MLX conversion from ssmall256/demucs-mlx.
4
+
5
+ | Property | Value |
6
+ |---|---|
7
+ | Catalog ID | `htdemucs` |
8
+ | Existing package name | `htdemucs.yaml` |
9
+ | Output stems | drums, bass, other, vocals |
10
+ | Output audio | Stereo, 44,100 Hz |
11
+ | Stored weight precision | `float32` |
12
+ | Download size | 160.2 MiB |
13
+
14
+ ## Use this model
15
+
16
+ Install [mlx-audio-separator](../README.md#quick-start), then run:
17
+
18
+ ```bash
19
+ mlx-audio-separator song.m4a -m htdemucs --output_dir stems
20
+ ```
21
+
22
+ The first use automatically downloads and verifies this model's safetensors and configuration.
23
+ Later runs reuse the local cache. The existing name `htdemucs.yaml` selects the same model.
24
+ For Python, use `separator.load_model("htdemucs")`.
25
+ See [direct downloads](../README.md#direct-downloads) to prepare the files manually or use them offline.
26
+
27
+ The package uses two shifts and 25% overlap. Set `--demucs_seed 0` for repeatable shift selection. Inference runs locally on Apple Silicon through `mlx-audio-separator`.
28
+
29
+ ## Files and provenance
30
+
31
+ Keep the weights and configuration together in `models/htdemucs/`.
32
+
33
+ | File | Bytes | SHA-256 |
34
+ |---|---:|---|
35
+ | [`htdemucs.safetensors`](../models/htdemucs/htdemucs.safetensors) | 168,005,865 | `339d267a7a6983a11eedbdc00413c602a65e9b9103f695fb5c2b2a481cd9d297` |
36
+ | [`htdemucs_config.json`](../models/htdemucs/htdemucs_config.json) | 4,215 | `23657b19db14771aecf366ceedbf846c1386836c10043c97f4569acf05526b78` |
37
+ | [`LICENSE`](../models/htdemucs/LICENSE) | 1,117 | `15086279d32c0f00c577c0f52ff428daf98b8a1fec0264da1c717c88ad464f51` |
38
+
39
+ The [catalog manifest](../catalog.json) records source hashes, conversion details, and immutable
40
+ upstream revisions where applicable. [Original source artifacts](https://huggingface.co/ssmall256/demucs-mlx/tree/35ecb1a906ec420b1a28069db575ad070d35860e).
41
+
42
+ ## Validation
43
+
44
+ The [inference report](../validation/htdemucs.json) records 4 finite,
45
+ full-length stereo stems from a 14-second real-music excerpt with overlapping chunks.
46
+ Network access and PyTorch, ONNX, and ONNX Runtime imports were disabled during the check.
47
+
48
+ Weights and configuration match the pinned published files by SHA-256. The original precision and file contents are unchanged.
49
+
50
+ The normal package API also passed first-use download and offline inference checks with
51
+ bit-identical output; see the [automatic-download report](../validation/automatic-downloads.json).
52
+
53
+ See [Validation details](../VALIDATION.md) for the scope of these checks and earlier reference
54
+ comparisons. This packaging check does not provide a new separation-quality score or speed benchmark.
55
+
56
+ ## License and attribution
57
+
58
+ **Meta and the Demucs contributors** developed the original model. The pinned [Demucs MLX model repository](https://huggingface.co/ssmall256/demucs-mlx/tree/35ecb1a906ec420b1a28069db575ad070d35860e) declares **MIT**. The accompanying [license notice](../models/htdemucs/LICENSE) is included unchanged.
59
+
60
+ See the [collection's licensing and credits](../README.md#licensing-and-credit) for additional sources.
cards/htdemucs_6s.md ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # HTDemucs_6s
2
+
3
+ The six-stem Hybrid Transformer Demucs model adds guitar and piano to drums, bass, other instruments, and vocals. This entry contains the float32 MLX conversion from ssmall256/demucs-mlx.
4
+
5
+ | Property | Value |
6
+ |---|---|
7
+ | Catalog ID | `htdemucs_6s` |
8
+ | Existing package name | `htdemucs_6s.yaml` |
9
+ | Output stems | drums, bass, other, vocals, guitar, piano |
10
+ | Output audio | Stereo, 44,100 Hz |
11
+ | Stored weight precision | `float32` |
12
+ | Download size | 104.6 MiB |
13
+
14
+ ## Use this model
15
+
16
+ Install [mlx-audio-separator](../README.md#quick-start), then run:
17
+
18
+ ```bash
19
+ mlx-audio-separator song.m4a -m htdemucs_6s --output_dir stems
20
+ ```
21
+
22
+ The first use automatically downloads and verifies this model's safetensors and configuration.
23
+ Later runs reuse the local cache. The existing name `htdemucs_6s.yaml` selects the same model.
24
+ For Python, use `separator.load_model("htdemucs_6s")`.
25
+ See [direct downloads](../README.md#direct-downloads) to prepare the files manually or use them offline.
26
+
27
+ The package uses two shifts and 25% overlap. Set `--demucs_seed 0` for repeatable shift selection. Inference runs locally on Apple Silicon through `mlx-audio-separator`.
28
+
29
+ ## Files and provenance
30
+
31
+ Keep the weights and configuration together in `models/htdemucs_6s/`.
32
+
33
+ | File | Bytes | SHA-256 |
34
+ |---|---:|---|
35
+ | [`htdemucs_6s.safetensors`](../models/htdemucs_6s/htdemucs_6s.safetensors) | 109,726,583 | `d298f7f746bf53c21baad44fb08e88807ef47feb551dd22f1601a546c85b8e02` |
36
+ | [`htdemucs_6s_config.json`](../models/htdemucs_6s/htdemucs_6s_config.json) | 4,302 | `d5e18c0209be583027d6eb5ec3013a02cd7ef55bc3096e644d8d3577d92e9bd0` |
37
+ | [`LICENSE`](../models/htdemucs_6s/LICENSE) | 1,117 | `15086279d32c0f00c577c0f52ff428daf98b8a1fec0264da1c717c88ad464f51` |
38
+
39
+ The [catalog manifest](../catalog.json) records source hashes, conversion details, and immutable
40
+ upstream revisions where applicable. [Original source artifacts](https://huggingface.co/ssmall256/demucs-mlx/tree/35ecb1a906ec420b1a28069db575ad070d35860e).
41
+
42
+ ## Validation
43
+
44
+ The [inference report](../validation/htdemucs_6s.json) records 6 finite,
45
+ full-length stereo stems from a 14-second real-music excerpt with overlapping chunks.
46
+ Network access and PyTorch, ONNX, and ONNX Runtime imports were disabled during the check.
47
+
48
+ Weights and configuration match the pinned published files by SHA-256. The original precision and file contents are unchanged.
49
+
50
+ The normal package API also passed first-use download and offline inference checks with
51
+ bit-identical output; see the [automatic-download report](../validation/automatic-downloads.json).
52
+
53
+ See [Validation details](../VALIDATION.md) for the scope of these checks and earlier reference
54
+ comparisons. This packaging check does not provide a new separation-quality score or speed benchmark.
55
+
56
+ ## License and attribution
57
+
58
+ **Meta and the Demucs contributors** developed the original model. The pinned [Demucs MLX model repository](https://huggingface.co/ssmall256/demucs-mlx/tree/35ecb1a906ec420b1a28069db575ad070d35860e) declares **MIT**. The accompanying [license notice](../models/htdemucs_6s/LICENSE) is included unchanged.
59
+
60
+ See the [collection's licensing and credits](../README.md#licensing-and-credit) for additional sources.
cards/htdemucs_ft.md ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # HTDemucs_FT
2
+
3
+ The fine-tuned four-stem Hybrid Transformer Demucs ensemble. It uses a specialist model for each of drums, bass, other instruments, and vocals. This entry contains the float32 MLX conversion from ssmall256/demucs-mlx.
4
+
5
+ | Property | Value |
6
+ |---|---|
7
+ | Catalog ID | `htdemucs_ft` |
8
+ | Existing package name | `htdemucs_ft.yaml` |
9
+ | Output stems | drums, bass, other, vocals |
10
+ | Output audio | Stereo, 44,100 Hz |
11
+ | Stored weight precision | `float32` |
12
+ | Download size | 640.9 MiB |
13
+
14
+ ## Use this model
15
+
16
+ Install [mlx-audio-separator](../README.md#quick-start), then run:
17
+
18
+ ```bash
19
+ mlx-audio-separator song.m4a -m htdemucs_ft --output_dir stems
20
+ ```
21
+
22
+ The first use automatically downloads and verifies this model's safetensors and configuration.
23
+ Later runs reuse the local cache. The existing name `htdemucs_ft.yaml` selects the same model.
24
+ For Python, use `separator.load_model("htdemucs_ft")`.
25
+ See [direct downloads](../README.md#direct-downloads) to prepare the files manually or use them offline.
26
+
27
+ The package runs all four specialists with two shifts and 25% overlap. Set `--demucs_seed 0` for repeatable shift selection. Inference runs locally on Apple Silicon through `mlx-audio-separator`.
28
+
29
+ ## Files and provenance
30
+
31
+ Keep the weights and configuration together in `models/htdemucs_ft/`.
32
+
33
+ | File | Bytes | SHA-256 |
34
+ |---|---:|---|
35
+ | [`htdemucs_ft.safetensors`](../models/htdemucs_ft/htdemucs_ft.safetensors) | 672,024,519 | `53f03b1ad4b4d211025a35da65460ba61a17547adf9c0544cad0ebcc8d7bbabb` |
36
+ | [`htdemucs_ft_config.json`](../models/htdemucs_ft/htdemucs_ft_config.json) | 10,253 | `6708535a698d4d4dd285a6f0a80d9d3c228fdd6514e53bdf1ddbc2ee9b0fa872` |
37
+ | [`LICENSE`](../models/htdemucs_ft/LICENSE) | 1,117 | `15086279d32c0f00c577c0f52ff428daf98b8a1fec0264da1c717c88ad464f51` |
38
+
39
+ The [catalog manifest](../catalog.json) records source hashes, conversion details, and immutable
40
+ upstream revisions where applicable. [Original source artifacts](https://huggingface.co/ssmall256/demucs-mlx/tree/35ecb1a906ec420b1a28069db575ad070d35860e).
41
+
42
+ ## Validation
43
+
44
+ The [inference report](../validation/htdemucs_ft.json) records 4 finite,
45
+ full-length stereo stems from a 14-second real-music excerpt with overlapping chunks.
46
+ Network access and PyTorch, ONNX, and ONNX Runtime imports were disabled during the check.
47
+
48
+ Weights and configuration match the pinned published files by SHA-256. The original precision and file contents are unchanged.
49
+
50
+ The normal package API also passed first-use download and offline inference checks with
51
+ bit-identical output; see the [automatic-download report](../validation/automatic-downloads.json).
52
+
53
+ See [Validation details](../VALIDATION.md) for the scope of these checks and earlier reference
54
+ comparisons. This packaging check does not provide a new separation-quality score or speed benchmark.
55
+
56
+ ## License and attribution
57
+
58
+ **Meta and the Demucs contributors** developed the original models. The pinned [Demucs MLX model repository](https://huggingface.co/ssmall256/demucs-mlx/tree/35ecb1a906ec420b1a28069db575ad070d35860e) declares **MIT**. The accompanying [license notice](../models/htdemucs_ft/LICENSE) is included unchanged.
59
+
60
+ See the [collection's licensing and credits](../README.md#licensing-and-credit) for additional sources.
cards/mel-roformer-instv7n.md ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Mel-RoFormer InstV7n (Gabox)
2
+
3
+ An instrumental and vocal separation model by Gabox, converted to float32 safetensors for MLX inference on Apple Silicon.
4
+
5
+ | Property | Value |
6
+ |---|---|
7
+ | Catalog ID | `mel-roformer-instv7n` |
8
+ | Existing package name | `mel_band_roformer_instrumental_instv7n_gabox.ckpt` |
9
+ | Output stems | Instrumental, Vocals |
10
+ | Output audio | Stereo, 44,100 Hz |
11
+ | Stored weight precision | `float32` |
12
+ | Download size | 870.6 MiB |
13
+
14
+ ## Use this model
15
+
16
+ Install [mlx-audio-separator](../README.md#quick-start), then run:
17
+
18
+ ```bash
19
+ mlx-audio-separator song.m4a -m mel-roformer-instv7n --output_dir stems
20
+ ```
21
+
22
+ The first use automatically downloads and verifies this model's safetensors and configuration.
23
+ Later runs reuse the local cache. The existing name `mel_band_roformer_instrumental_instv7n_gabox.ckpt` selects the same model.
24
+ For Python, use `separator.load_model("mel-roformer-instv7n")`.
25
+ See [direct downloads](../README.md#direct-downloads) to prepare the files manually or use them offline.
26
+
27
+ Chunks contain 485,100 samples (11 seconds). Two overlapping windows give a half-chunk stride. Inference runs locally on Apple Silicon through `mlx-audio-separator`.
28
+
29
+ ## Files and provenance
30
+
31
+ Keep the weights and configuration together in `models/mel-roformer-instv7n/`.
32
+
33
+ | File | Bytes | SHA-256 |
34
+ |---|---:|---|
35
+ | [`model.safetensors`](../models/mel-roformer-instv7n/model.safetensors) | 912,889,223 | `74397de5395ed372059b971d6398106f60d92373ada69b62e986e52c9697a5ba` |
36
+ | [`config.json`](../models/mel-roformer-instv7n/config.json) | 1,150 | `cd8548fd6a1345cfd0c51970919e15e7262cee954b6ff45bb016ed1364be38c5` |
37
+
38
+ The [catalog manifest](../catalog.json) records source hashes, conversion details, and immutable
39
+ upstream revisions where applicable. [Original source artifacts](https://github.com/nomadkaraoke/python-audio-separator/releases/download/model-configs/mel_band_roformer_instrumental_instv7n_gabox.ckpt).
40
+
41
+ ## Validation
42
+
43
+ The [inference report](../validation/mel-roformer-instv7n.json) records 2 finite,
44
+ full-length stereo stems from a 14-second real-music excerpt with overlapping chunks.
45
+ Network access and PyTorch, ONNX, and ONNX Runtime imports were disabled during the check.
46
+
47
+ All unquantized output samples were **bit-identical** to the original checkpoint loaded through the same MLX implementation.
48
+
49
+ The normal package API also passed first-use download and offline inference checks with
50
+ bit-identical output; see the [automatic-download report](../validation/automatic-downloads.json).
51
+
52
+ See [Validation details](../VALIDATION.md) for the scope of these checks and earlier reference
53
+ comparisons. This packaging check does not provide a new separation-quality score or speed benchmark.
54
+
55
+ ## License and attribution
56
+
57
+ The checkpoint is credited to **Gabox** and distributed through the upstream **python-audio-separator** model-configs release. No weight-specific redistribution license is recorded in the source metadata. The catalog helper's MIT license applies to its code only.
58
+
59
+ See the [collection's licensing and credits](../README.md#licensing-and-credit) for additional sources.
cards/mel-roformer-zfturbo-vocals-v1.md ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # ZFTurbo Mel-RoFormer Vocals v1
2
+
3
+ A vocal separation model by Roman Solovyev (ZFTurbo). The separator predicts vocals and derives the instrumental from the mixture. This entry preserves the published mlx-community float16 conversion.
4
+
5
+ | Property | Value |
6
+ |---|---|
7
+ | Catalog ID | `mel-roformer-zfturbo-vocals-v1` |
8
+ | Existing package name | `mel-roformer-zfturbo-vocals-v1-mlx` |
9
+ | Output stems | Vocals, Instrumental |
10
+ | Output audio | Stereo, 44,100 Hz |
11
+ | Stored weight precision | `float16` |
12
+ | Download size | 64.3 MiB |
13
+
14
+ ## Use this model
15
+
16
+ Install [mlx-audio-separator](../README.md#quick-start), then run:
17
+
18
+ ```bash
19
+ mlx-audio-separator song.m4a -m mel-roformer-zfturbo-vocals-v1 --output_dir stems
20
+ ```
21
+
22
+ The first use automatically downloads and verifies this model's safetensors and configuration.
23
+ Later runs reuse the local cache. The existing name `mel-roformer-zfturbo-vocals-v1-mlx` selects the same model.
24
+ For Python, use `separator.load_model("mel-roformer-zfturbo-vocals-v1")`.
25
+ See [direct downloads](../README.md#direct-downloads) to prepare the files manually or use them offline.
26
+
27
+ Chunks contain 352,800 samples (8 seconds). Two overlapping windows give a half-chunk stride. Output is always 44.1 kHz. Inference runs locally on Apple Silicon through `mlx-audio-separator`.
28
+
29
+ ## Files and provenance
30
+
31
+ Keep the weights and configuration together in `models/mel-roformer-zfturbo-vocals-v1/`.
32
+
33
+ | File | Bytes | SHA-256 |
34
+ |---|---:|---|
35
+ | [`model.safetensors`](../models/mel-roformer-zfturbo-vocals-v1/model.safetensors) | 67,402,202 | `ef4aa052845a868cfaff93611477bd8f54d8081bc32f2742a9b3c738f0821191` |
36
+ | [`config.json`](../models/mel-roformer-zfturbo-vocals-v1/config.json) | 1,016 | `d110ed4713b403d27e2ae6c7796b1a864576232de4a2070e9762108ca197caa6` |
37
+ | [`LICENSE`](../models/mel-roformer-zfturbo-vocals-v1/LICENSE) | 1,779 | `2b55ae02dcfe9ac8454c41c5e235175512db7429ee7275bab4c4e566b3f80597` |
38
+
39
+ The [catalog manifest](../catalog.json) records source hashes, conversion details, and immutable
40
+ upstream revisions where applicable. [Original source artifacts](https://huggingface.co/mlx-community/mel-roformer-zfturbo-vocals-v1-mlx/tree/01bef2daebedf39937f552d6da68340fc979c9a0).
41
+
42
+ ## Validation
43
+
44
+ The [inference report](../validation/mel-roformer-zfturbo-vocals-v1.json) records 2 finite,
45
+ full-length stereo stems from a 14-second real-music excerpt with overlapping chunks.
46
+ Network access and PyTorch, ONNX, and ONNX Runtime imports were disabled during the check.
47
+
48
+ Weights and configuration match the pinned published files by SHA-256. The original precision and file contents are unchanged.
49
+
50
+ The normal package API also passed first-use download and offline inference checks with
51
+ bit-identical output; see the [automatic-download report](../validation/automatic-downloads.json).
52
+
53
+ See [Validation details](../VALIDATION.md) for the scope of these checks and earlier reference
54
+ comparisons. This packaging check does not provide a new separation-quality score or speed benchmark.
55
+
56
+ ## License and attribution
57
+
58
+ The original checkpoint is by **Roman Solovyev (ZFTurbo)**; the existing MLX conversion is from **mlx-community**. Its [model card](https://huggingface.co/mlx-community/mel-roformer-zfturbo-vocals-v1-mlx/tree/01bef2daebedf39937f552d6da68340fc979c9a0) declares **MIT**, noting that the source license was added after the checkpoint release and that explicit retroactive author confirmation was not collected. The [license notice](../models/mel-roformer-zfturbo-vocals-v1/LICENSE) preserves that caveat.
59
+
60
+ See the [collection's licensing and credits](../README.md#licensing-and-credit) for additional sources.
cards/uvr-mdx-net-inst-hq3.md ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # UVR-MDX-NET Inst HQ3
2
+
3
+ An instrumental and vocal separation model from the UVR catalog. This float32 safetensors conversion runs in MLX and does not require ONNX Runtime.
4
+
5
+ | Property | Value |
6
+ |---|---|
7
+ | Catalog ID | `uvr-mdx-net-inst-hq3` |
8
+ | Existing package name | `UVR-MDX-NET-Inst_HQ_3.onnx` |
9
+ | Output stems | Instrumental, Vocals |
10
+ | Output audio | Stereo, 44,100 Hz |
11
+ | Stored weight precision | `float32` |
12
+ | Download size | 63.8 MiB |
13
+
14
+ ## Use this model
15
+
16
+ Install [mlx-audio-separator](../README.md#quick-start), then run:
17
+
18
+ ```bash
19
+ mlx-audio-separator song.m4a -m uvr-mdx-net-inst-hq3 --output_dir stems
20
+ ```
21
+
22
+ The first use automatically downloads and verifies this model's safetensors and configuration.
23
+ Later runs reuse the local cache. The existing name `UVR-MDX-NET-Inst_HQ_3.onnx` selects the same model.
24
+ For Python, use `separator.load_model("uvr-mdx-net-inst-hq3")`.
25
+ See [direct downloads](../README.md#direct-downloads) to prepare the files manually or use them offline.
26
+
27
+ The package uses 25% overlap and a segment size of 256. Inference runs locally on Apple Silicon through `mlx-audio-separator`.
28
+
29
+ ## Files and provenance
30
+
31
+ Keep the weights and configuration together in `models/uvr-mdx-net-inst-hq3/`.
32
+
33
+ | File | Bytes | SHA-256 |
34
+ |---|---:|---|
35
+ | [`model.safetensors`](../models/uvr-mdx-net-inst-hq3/model.safetensors) | 66,871,394 | `72c307239fbc415c9f3c1ef83fee38d19ac98b4b893f1a5afc4345296f48eea8` |
36
+ | [`config.json`](../models/uvr-mdx-net-inst-hq3/config.json) | 204 | `d8df573c2b0248e3ce77eb8f0fc3c528c9db5368f38335e249e25e05e84415ba` |
37
+
38
+ The [catalog manifest](../catalog.json) records source hashes, conversion details, and immutable
39
+ upstream revisions where applicable. [Original source artifacts](https://github.com/TRvlvr/model_repo/releases/download/all_public_uvr_models/UVR-MDX-NET-Inst_HQ_3.onnx).
40
+
41
+ ## Validation
42
+
43
+ The [inference report](../validation/uvr-mdx-net-inst-hq3.json) records 2 finite,
44
+ full-length stereo stems from a 14-second real-music excerpt with overlapping chunks.
45
+ Network access and PyTorch, ONNX, and ONNX Runtime imports were disabled during the check.
46
+
47
+ All unquantized output samples were **bit-identical** to the original checkpoint loaded through the same MLX implementation.
48
+
49
+ The normal package API also passed first-use download and offline inference checks with
50
+ bit-identical output; see the [automatic-download report](../validation/automatic-downloads.json).
51
+
52
+ See [Validation details](../VALIDATION.md) for the scope of these checks and earlier reference
53
+ comparisons. This packaging check does not provide a new separation-quality score or speed benchmark.
54
+
55
+ ## License and attribution
56
+
57
+ The checkpoint comes from the **TRvlvr/UVR** public model release. No weight-specific redistribution license is recorded in the source metadata. The catalog helper's MIT license applies to its code only.
58
+
59
+ See the [collection's licensing and credits](../README.md#licensing-and-credit) for additional sources.
catalog.json ADDED
@@ -0,0 +1,552 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "catalog_version": "1-draft",
3
+ "conversion": {
4
+ "base_commit": "95a1effb864700a4156f1e199771b58c89da8848",
5
+ "repository": "https://github.com/ssmall256/mlx-audio-separator",
6
+ "source_sha256": {
7
+ "mlx_audio_separator/__init__.py": "7a60ef69c42996da1512c584a0fced4282d96b493aff9b7522d043f36556f9c0",
8
+ "mlx_audio_separator/__main__.py": "86f9909b5db882b7c1f51007adac5ebe62c24d22f224cc9d2fa521e4529cfbe5",
9
+ "mlx_audio_separator/core.py": "6b00478e07f69a5b3a35dfce683ebc42bdd2ac66fe6855557c48a7ddb56615ca",
10
+ "mlx_audio_separator/demucs_mlx/__init__.py": "1cb0541a734668ef204bd3a8bb9e4efeea0f32488b2e0ee0db114ee15941a232",
11
+ "mlx_audio_separator/demucs_mlx/api.py": "e1328d71c1d81fe5159504ede9f317dc8753230a7abffac391803588ae74fab9",
12
+ "mlx_audio_separator/demucs_mlx/apply_mlx.py": "43b9d6b674e53054a6190ff5958c63f9bbdd0e15d44d09646988bb4fa6dfed78",
13
+ "mlx_audio_separator/demucs_mlx/audio.py": "0a419eccc33ab537a9626179d7fc480954a38591c25330d26a6a9b0d2c9806a1",
14
+ "mlx_audio_separator/demucs_mlx/defaults.py": "207c6b62b8fe2927fb7e126f19899fca2cecb07bb7d68869eb0333cf03b7e030",
15
+ "mlx_audio_separator/demucs_mlx/hardware.py": "c8b91faa395528e9a98e7b35a394370fb47b609a1cd0433e2bc63974108ce69a",
16
+ "mlx_audio_separator/demucs_mlx/hub.py": "0ea01ab32275e5607fd47a8ce528b2ee7c9f7fec8d1e27ec294e3bab6dc37599",
17
+ "mlx_audio_separator/demucs_mlx/interop.py": "8c3b7c55e4b0117b9d830ea77f48979793d57d5c7c016b7fcf0036c4f9e232ab",
18
+ "mlx_audio_separator/demucs_mlx/io_pipeline.py": "c7c45d79cbde7d66f9f68d94a83855cf1e5fe36b256907ac36f325a4c27d463c",
19
+ "mlx_audio_separator/demucs_mlx/metal_kernels.py": "8dfb6f1db487b83752d4c2ec1d89f59241d7f0d28a247da4e8709208b02c8576",
20
+ "mlx_audio_separator/demucs_mlx/mlx_backend.py": "e4819443d771187f4b75f297b3b378568b93cc6b1c1b4cc1a568391e7d7bced0",
21
+ "mlx_audio_separator/demucs_mlx/mlx_convert.py": "c8a9d899cccc57306d27c9ae1de3c0f6fbdb624acbe855fcdfdc621a96ed1035",
22
+ "mlx_audio_separator/demucs_mlx/mlx_demucs.py": "0f6db07f2d8a1dff9bf4852b00135c8f06fe559a6e29a8ca3d40306d6c6bf4f0",
23
+ "mlx_audio_separator/demucs_mlx/mlx_hdemucs.py": "9371d5859977443b47a271e5b6e3550f21d022517a05cdae64d66922ce4d8f6e",
24
+ "mlx_audio_separator/demucs_mlx/mlx_htdemucs.py": "628d2aec74e8e6293d7b8983dcc84f8cafd2af37210b5ba86db738f59af7d683",
25
+ "mlx_audio_separator/demucs_mlx/mlx_layers.py": "f4ce3c9e28c41027e9885a48c71c3e573475861edc7d8f8f31a4ee3683284715",
26
+ "mlx_audio_separator/demucs_mlx/mlx_registry.py": "d50be9d6b64a238816302439ccbc95beb1c36d7c6afc277c3bbe83d607b72adc",
27
+ "mlx_audio_separator/demucs_mlx/mlx_transformer.py": "213918c3c82a40fd6bf0f45f5f3f4e4a99dcaf80009d1f4916ba713398f15495",
28
+ "mlx_audio_separator/demucs_mlx/mlx_utils.py": "100050b061783401ec83a90e98bf78e328365e9317ededbf41aeaaeb47f0e87e",
29
+ "mlx_audio_separator/demucs_mlx/model_converter.py": "ee1a65d777d96a74c50bfb7068dd21653467000d411de48d85e7310b0aba0753",
30
+ "mlx_audio_separator/demucs_mlx/secure_demucs.py": "289736dec3dc542b5f51d15ed12b287e8a555a96b06b2947d0a25816044d2f39",
31
+ "mlx_audio_separator/demucs_mlx/spec_mlx.py": "6de75340baec75263049c070d3eb4e2522207f588f885bc560462681ba4ff219",
32
+ "mlx_audio_separator/demucs_mlx/wiener_mlx.py": "11815ee06c9dfad0b55cb62bf4dc30c8b1e668c3dbe2e4a1b12a4318c5b85950",
33
+ "mlx_audio_separator/hf_mel_roformer.py": "0952448f4ef881ab51b1fa6ffa163b0cd3c298ab0d710e7b942e8671a8699a80",
34
+ "mlx_audio_separator/separator/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
35
+ "mlx_audio_separator/separator/architectures/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
36
+ "mlx_audio_separator/separator/architectures/demucs_separator.py": "4db7cb8b4367b132bcee6eaca224bbf066107e65191180413540f06cb6f0cccc",
37
+ "mlx_audio_separator/separator/architectures/mdx_separator.py": "80bcae233809e62526c5af7b7fdeb334bdf0df508fe60ef7a7ed025686929269",
38
+ "mlx_audio_separator/separator/architectures/mdxc_separator.py": "56a3cb6cb7e68a9038020d916e87d0106ae0bbc127cda690a2b99a76857f4758",
39
+ "mlx_audio_separator/separator/architectures/vr_separator.py": "bdd871e9751a753691cd760c283dcecb18d6ffd7ffad506c24709cb1499e7178",
40
+ "mlx_audio_separator/separator/audio_chunking.py": "cbe10541fbe43744753d0d387ee933d00daf370d89142df6c6d855f67aae56bc",
41
+ "mlx_audio_separator/separator/common_separator.py": "ddd1370848dd919b54dec495d98aa4f50f584b8978b51249334d4a0930824d8a",
42
+ "mlx_audio_separator/separator/models/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
43
+ "mlx_audio_separator/separator/models/demucs/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
44
+ "mlx_audio_separator/separator/models/mdx/__init__.py": "86849f8e4283b7182f02665a04d76955519a18f6b27fd8a58e5bd3a3c80f35eb",
45
+ "mlx_audio_separator/separator/models/mdx/convtdfnet.py": "672c64b1df1fc4fe66ac88cfb808e8972a03125009579641cfd200d7c3e5a937",
46
+ "mlx_audio_separator/separator/models/mdx/loader.py": "b83cb54906c9d79563555ca1cda97ef219ed498b4e2a7985d47daca052ffe3dd",
47
+ "mlx_audio_separator/separator/models/mdx/stft.py": "f9bae135a03e69741b7bede6e0ef330260c0d157d5f2d56bd5cad7c8a9a6171c",
48
+ "mlx_audio_separator/separator/models/mdxc/__init__.py": "d11e15564dd603d03d80426e63263c2b773c63bcacfcd7207818c4316830aba2",
49
+ "mlx_audio_separator/separator/models/mdxc/loader.py": "6d8dbc61bff3a28b107d3b2d715ddaf0a3cf85fad901bd318c54a6d1dd1aefec",
50
+ "mlx_audio_separator/separator/models/mdxc/tfc_tdf_v3_mlx.py": "a7d6534f4e718e982c037b50208a155cc9fcd31aecc738d1493df6d90091e79d",
51
+ "mlx_audio_separator/separator/models/roformer/__init__.py": "e7c8c7e8e35933e6563109cc519882bf95de7dc5a8e2e1cc9df1e783f7be81a2",
52
+ "mlx_audio_separator/separator/models/roformer/_core/__init__.py": "52fcea39466efad1116323236a51e61291aae5635887acdadba5fb2b11d39dce",
53
+ "mlx_audio_separator/separator/models/roformer/_core/config.py": "431e5f6c333c39c32d95a03521cc8f596d435f0e037ec0e0145565e3e5ef6b1b",
54
+ "mlx_audio_separator/separator/models/roformer/_core/convert.py": "66407e7e581633905642612d4c8f37db221b0f5a716ea016846c85af8baff485",
55
+ "mlx_audio_separator/separator/models/roformer/_core/kernels.py": "462bee4bb4f1bf93648549ba5345470a090c7c2e6e7be7fcaecfdd19c94ce11c",
56
+ "mlx_audio_separator/separator/models/roformer/_core/model.py": "fa8673f023fff1ba7f8a3ff0c64029cfc34a197d3df2eeb71cfaaad163129adc",
57
+ "mlx_audio_separator/separator/models/roformer/_core/ops.py": "5bbdc9c7918d269cb3710eceaa597356ecf6162dd5351dfe959a783520f519ce",
58
+ "mlx_audio_separator/separator/models/roformer/_core/separate.py": "0b1e73a66ce5e3b44e6b6eade1547c0d965a39425285c933e6d81d1ff6592542",
59
+ "mlx_audio_separator/separator/models/roformer/_core/stft.py": "528a2e9f6590d209aa3acaba9ccde028adc048b15aaf3e0ac673fe1a8de0351e",
60
+ "mlx_audio_separator/separator/models/roformer/_core/torch_checkpoint.py": "daa597f98ac64243516ba1b6297a31afbf6891db46ad809d54cb2862f04f5f32",
61
+ "mlx_audio_separator/separator/models/roformer/attention_kernel.py": "d9fff54cf1512eb8e2d55e9764643a311d04270e160b54778d607bc9c77f4bb2",
62
+ "mlx_audio_separator/separator/models/roformer/bs_loader.py": "22dcd6d31b21a28e5d035f6072ec8020617f8b032eaf49f75f8808199647d46d",
63
+ "mlx_audio_separator/separator/models/roformer/bs_roformer.py": "5cbfa4f57c0e76d96c4a2e27557bc8aadd67d8984d0dfff8350b5274ddf2409d",
64
+ "mlx_audio_separator/separator/models/roformer/components.py": "95e6618ee61fdcf2f09ec4ba4a2e3ac7deccbc3934f064f5fdb45018ea3b08df",
65
+ "mlx_audio_separator/separator/models/roformer/gelu.py": "35289288313436e239751cb6586d68c65dc032d115d2095147725508796d599a",
66
+ "mlx_audio_separator/separator/models/roformer/linear_kernel.py": "0164e0a0bc411816afbd07b593281b03d5aee75a286a3cd8878e456d59feb9a7",
67
+ "mlx_audio_separator/separator/models/roformer/loader.py": "e2323c97a6a232f17f8f4d8cca9a19712ef9fa31d14bffdd881e36099715c2d3",
68
+ "mlx_audio_separator/separator/models/roformer/mel_band_roformer.py": "4d052e729bd05304f8d19658ebb836fdf6ed9cd0952ce8700d0bfa1dd253da95",
69
+ "mlx_audio_separator/separator/models/roformer/metal_kernels.py": "7963bed370b16fb3b4084e4a8e6c073be5a6e75484f4ed69ce6b6bd15f717f4c",
70
+ "mlx_audio_separator/separator/models/roformer/overlap_add_kernels.py": "2c82fdab2530de985ff808330c6fb14dcfdeec71937691ea668e9d1ef091359a",
71
+ "mlx_audio_separator/separator/models/roformer/stft.py": "3101c957396af8280a3b916860556a945fd51afba4e6ad7ed18cff0a5587b457",
72
+ "mlx_audio_separator/separator/models/vr/__init__.py": "f07c510ea41b3bf8d192f3533294b3163c77a6744e9e19ffd89c3a045273c5cc",
73
+ "mlx_audio_separator/separator/models/vr/layers.py": "423f28f19805aaac834772e57377dd1f73a8d1786aa071d13124d442d6384145",
74
+ "mlx_audio_separator/separator/models/vr/loader.py": "1492693e6fed7ded4dd83df4d20d7ae4edc2789a96fb45c9f7bdaac97cbe0f49",
75
+ "mlx_audio_separator/separator/models/vr/nets.py": "164694d22fb08acbfafd3c6d5f6e87ccca6858d4226ebff8e091c0eef865e3a5",
76
+ "mlx_audio_separator/separator/models/vr/nets_new.py": "829d34393989afcf3583c9a44bc0a134d3da7e368183efdef15e8dd974703ec2",
77
+ "mlx_audio_separator/separator/models/vr/spec_utils.py": "4568a617d3ffe559e6931ae33666c1bc4c838c711749765f2d249d7167b79f7c",
78
+ "mlx_audio_separator/utils/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
79
+ "mlx_audio_separator/utils/benchmark.py": "b644d4405dbf001f6b8d14ddf7365d685ca353f0c05aac50c6281ccfd2fd5b7f",
80
+ "mlx_audio_separator/utils/cli.py": "e78b2aa10b42b9c14961f6c19530ad82ae38ffda17a18071efbe0f740e62b021",
81
+ "mlx_audio_separator/utils/equivalence.py": "083047b70c0d046886fc08fe9a42aa9001a1d3b031d09c2aa87de3c2c24bf2d7",
82
+ "mlx_audio_separator/utils/performance.py": "337d037ba418abe21d6bd6206d1f6c109a603c1155c9c4e01d8b2b52b4671a6a",
83
+ "scripts/catalog/catalog.py": "1af4c7ae15480b4c029291af7e34c89946dfcf82c54ee3f38a0ee3769f5ca06f",
84
+ "scripts/catalog/prepare.py": "8c7a740c0626848eaf2662cc48619a18458b6dc362ae0656567079c963f88486"
85
+ },
86
+ "versions": {
87
+ "mlx": "0.32.3",
88
+ "mlx-audio-io": "1.3.25",
89
+ "mlx-audio-separator": "0.1.21",
90
+ "mlx-spectro": "0.10.0",
91
+ "numpy": "2.5.3",
92
+ "onnx": "1.23.0",
93
+ "torch": "2.14.0"
94
+ },
95
+ "working_tree_modified": true
96
+ },
97
+ "distribution_layout": "single_hub_repository",
98
+ "format_version": 1,
99
+ "models": [
100
+ {
101
+ "architecture": "MDXC",
102
+ "artifact_origin": "converted",
103
+ "config_filename": "config.json",
104
+ "conversion_audit": {
105
+ "dtypes": [
106
+ "mlx.core.float32"
107
+ ],
108
+ "missing_parameters": [],
109
+ "shape_mismatches": [],
110
+ "tensor_count": 1939
111
+ },
112
+ "distribution": "bundled",
113
+ "dtype": "float32",
114
+ "family": "bs",
115
+ "files": [
116
+ {
117
+ "filename": "model.safetensors",
118
+ "sha256": "f95907cd5bfdbc783c1cb32f6aafc49b8b6a598477a9d4a48b4f9191c5167707",
119
+ "size_bytes": 698841589
120
+ },
121
+ {
122
+ "filename": "config.json",
123
+ "sha256": "386a86c2061536d2dca349943f1027f3ac5472ccb22b0e18bd528519b90f8931",
124
+ "size_bytes": 4282
125
+ }
126
+ ],
127
+ "id": "bs-roformer-sw",
128
+ "inference_defaults": {
129
+ "chunk_samples": 588800,
130
+ "overlap_windows": 2
131
+ },
132
+ "license": {
133
+ "note": "Source model card explicitly lists license: unknown.",
134
+ "status": "unresolved"
135
+ },
136
+ "name": "BS-RoFormer-SW",
137
+ "sample_rate": 44100,
138
+ "source": {
139
+ "config": {
140
+ "filename": "BS-Roformer-SW.yaml",
141
+ "sha256": "b558996f1e25eb48798bd6502505a5de94c4f966d6edfb1a0420f06cc40b501a",
142
+ "size_bytes": 4653
143
+ },
144
+ "download_url": "https://github.com/nomadkaraoke/python-audio-separator/releases/download/model-configs/BS-Roformer-SW.ckpt",
145
+ "upstream": "https://huggingface.co/enerjazzer/BS-ROFO-SW-Fixed/tree/a443a2985534b3bc815ef54a5d446c6a0390f974",
146
+ "weights": {
147
+ "filename": "BS-Roformer-SW.ckpt",
148
+ "sha256": "24e7d35ee9c64415673d3fd33e06a67cac2c103c5df6267ba1576459c775916e",
149
+ "size_bytes": 699412152
150
+ }
151
+ },
152
+ "stems": [
153
+ "bass",
154
+ "drums",
155
+ "other",
156
+ "vocals",
157
+ "guitar",
158
+ "piano"
159
+ ],
160
+ "validation": "validation/bs-roformer-sw.json",
161
+ "weights_filename": "model.safetensors"
162
+ },
163
+ {
164
+ "architecture": "MDXC",
165
+ "artifact_origin": "converted",
166
+ "config_filename": "config.json",
167
+ "conversion_audit": {
168
+ "dtypes": [
169
+ "mlx.core.float32"
170
+ ],
171
+ "missing_parameters": [],
172
+ "shape_mismatches": [],
173
+ "tensor_count": 672
174
+ },
175
+ "distribution": "bundled",
176
+ "dtype": "float32",
177
+ "family": "mel",
178
+ "files": [
179
+ {
180
+ "filename": "model.safetensors",
181
+ "sha256": "74397de5395ed372059b971d6398106f60d92373ada69b62e986e52c9697a5ba",
182
+ "size_bytes": 912889223
183
+ },
184
+ {
185
+ "filename": "config.json",
186
+ "sha256": "cd8548fd6a1345cfd0c51970919e15e7262cee954b6ff45bb016ed1364be38c5",
187
+ "size_bytes": 1150
188
+ }
189
+ ],
190
+ "id": "mel-roformer-instv7n",
191
+ "inference_defaults": {
192
+ "chunk_samples": 485100,
193
+ "overlap_windows": 2
194
+ },
195
+ "license": {
196
+ "note": "Weight redistribution terms must be confirmed; implementation license does not establish weight licensing.",
197
+ "status": "unresolved"
198
+ },
199
+ "name": "Mel-RoFormer InstV7n (Gabox)",
200
+ "sample_rate": 44100,
201
+ "source": {
202
+ "config": {
203
+ "filename": "config_mel_band_roformer_instrumental_gabox.yaml",
204
+ "sha256": "723af6755b5624be0a58351a13c930c472b51ef677cf2c7943394fefed7c3d4d",
205
+ "size_bytes": 920
206
+ },
207
+ "download_url": "https://github.com/nomadkaraoke/python-audio-separator/releases/download/model-configs/mel_band_roformer_instrumental_instv7n_gabox.ckpt",
208
+ "weights": {
209
+ "filename": "mel_band_roformer_instrumental_instv7n_gabox.ckpt",
210
+ "sha256": "b0ca36af5d1314be46b56c8a53b6be02f98511fa5d7e3e196fd895755e65be3c",
211
+ "size_bytes": 913026650
212
+ }
213
+ },
214
+ "stems": [
215
+ "Instrumental",
216
+ "Vocals"
217
+ ],
218
+ "validation": "validation/mel-roformer-instv7n.json",
219
+ "weights_filename": "model.safetensors"
220
+ },
221
+ {
222
+ "architecture": "MDX",
223
+ "artifact_origin": "converted",
224
+ "config_filename": "config.json",
225
+ "conversion_audit": {
226
+ "dtypes": [
227
+ "mlx.core.float32"
228
+ ],
229
+ "missing_parameters": [],
230
+ "shape_mismatches": [],
231
+ "tensor_count": 376
232
+ },
233
+ "distribution": "bundled",
234
+ "dtype": "float32",
235
+ "family": "mdx",
236
+ "files": [
237
+ {
238
+ "filename": "model.safetensors",
239
+ "sha256": "72c307239fbc415c9f3c1ef83fee38d19ac98b4b893f1a5afc4345296f48eea8",
240
+ "size_bytes": 66871394
241
+ },
242
+ {
243
+ "filename": "config.json",
244
+ "sha256": "d8df573c2b0248e3ce77eb8f0fc3c528c9db5368f38335e249e25e05e84415ba",
245
+ "size_bytes": 204
246
+ }
247
+ ],
248
+ "id": "uvr-mdx-net-inst-hq3",
249
+ "inference_defaults": {
250
+ "overlap_fraction": 0.25,
251
+ "segment_size": 256
252
+ },
253
+ "license": {
254
+ "note": "Weight redistribution terms must be confirmed; implementation license does not establish weight licensing.",
255
+ "status": "unresolved"
256
+ },
257
+ "name": "UVR-MDX-NET Inst HQ3",
258
+ "sample_rate": 44100,
259
+ "source": {
260
+ "config": {
261
+ "filename": "mdx_model_data.json",
262
+ "sha256": "1aca8f9bcc57233bc714029663a9ec2345d9c7721f91e5e08f46392a879c6a9a",
263
+ "size_bytes": 15358
264
+ },
265
+ "download_url": "https://github.com/TRvlvr/model_repo/releases/download/all_public_uvr_models/UVR-MDX-NET-Inst_HQ_3.onnx",
266
+ "weights": {
267
+ "filename": "UVR-MDX-NET-Inst_HQ_3.onnx",
268
+ "sha256": "317554b07fe1ea5279a77f2b1520a41ea4b93432560c4ffd08792c30fddf9adc",
269
+ "size_bytes": 66759214
270
+ }
271
+ },
272
+ "stems": [
273
+ "Instrumental",
274
+ "Vocals"
275
+ ],
276
+ "validation": "validation/uvr-mdx-net-inst-hq3.json",
277
+ "weights_filename": "model.safetensors"
278
+ },
279
+ {
280
+ "architecture": "Demucs",
281
+ "artifact_origin": "reused",
282
+ "config_filename": "htdemucs_config.json",
283
+ "distribution": "bundled",
284
+ "dtype": "float32",
285
+ "family": "demucs",
286
+ "files": [
287
+ {
288
+ "filename": "htdemucs.safetensors",
289
+ "sha256": "339d267a7a6983a11eedbdc00413c602a65e9b9103f695fb5c2b2a481cd9d297",
290
+ "size_bytes": 168005865
291
+ },
292
+ {
293
+ "filename": "htdemucs_config.json",
294
+ "sha256": "23657b19db14771aecf366ceedbf846c1386836c10043c97f4569acf05526b78",
295
+ "size_bytes": 4215
296
+ },
297
+ {
298
+ "filename": "LICENSE",
299
+ "sha256": "15086279d32c0f00c577c0f52ff428daf98b8a1fec0264da1c717c88ad464f51",
300
+ "size_bytes": 1117
301
+ }
302
+ ],
303
+ "id": "htdemucs",
304
+ "inference_defaults": {
305
+ "overlap_fraction": 0.25,
306
+ "shifts": 2
307
+ },
308
+ "license": {
309
+ "notice_source": "mlx_audio_separator/demucs_mlx/LICENSE",
310
+ "source": "https://huggingface.co/ssmall256/demucs-mlx/blob/35ecb1a906ec420b1a28069db575ad070d35860e/README.md",
311
+ "spdx": "MIT",
312
+ "status": "upstream_declared"
313
+ },
314
+ "name": "htdemucs",
315
+ "sample_rate": 44100,
316
+ "source": {
317
+ "note": "Reuses byte-identical published demucs-mlx artifacts; config records official checkpoint signatures and conversion metadata."
318
+ },
319
+ "stems": [
320
+ "drums",
321
+ "bass",
322
+ "other",
323
+ "vocals"
324
+ ],
325
+ "upstream_hub": {
326
+ "repo_id": "ssmall256/demucs-mlx",
327
+ "revision": "35ecb1a906ec420b1a28069db575ad070d35860e"
328
+ },
329
+ "validation": "validation/htdemucs.json",
330
+ "weights_filename": "htdemucs.safetensors"
331
+ },
332
+ {
333
+ "architecture": "Demucs",
334
+ "artifact_origin": "reused",
335
+ "config_filename": "htdemucs_ft_config.json",
336
+ "distribution": "bundled",
337
+ "dtype": "float32",
338
+ "family": "demucs",
339
+ "files": [
340
+ {
341
+ "filename": "htdemucs_ft.safetensors",
342
+ "sha256": "53f03b1ad4b4d211025a35da65460ba61a17547adf9c0544cad0ebcc8d7bbabb",
343
+ "size_bytes": 672024519
344
+ },
345
+ {
346
+ "filename": "htdemucs_ft_config.json",
347
+ "sha256": "6708535a698d4d4dd285a6f0a80d9d3c228fdd6514e53bdf1ddbc2ee9b0fa872",
348
+ "size_bytes": 10253
349
+ },
350
+ {
351
+ "filename": "LICENSE",
352
+ "sha256": "15086279d32c0f00c577c0f52ff428daf98b8a1fec0264da1c717c88ad464f51",
353
+ "size_bytes": 1117
354
+ }
355
+ ],
356
+ "id": "htdemucs_ft",
357
+ "inference_defaults": {
358
+ "overlap_fraction": 0.25,
359
+ "shifts": 2
360
+ },
361
+ "license": {
362
+ "notice_source": "mlx_audio_separator/demucs_mlx/LICENSE",
363
+ "source": "https://huggingface.co/ssmall256/demucs-mlx/blob/35ecb1a906ec420b1a28069db575ad070d35860e/README.md",
364
+ "spdx": "MIT",
365
+ "status": "upstream_declared"
366
+ },
367
+ "name": "htdemucs_ft",
368
+ "sample_rate": 44100,
369
+ "source": {
370
+ "note": "Reuses byte-identical published demucs-mlx artifacts; config records official checkpoint signatures and conversion metadata."
371
+ },
372
+ "stems": [
373
+ "drums",
374
+ "bass",
375
+ "other",
376
+ "vocals"
377
+ ],
378
+ "upstream_hub": {
379
+ "repo_id": "ssmall256/demucs-mlx",
380
+ "revision": "35ecb1a906ec420b1a28069db575ad070d35860e"
381
+ },
382
+ "validation": "validation/htdemucs_ft.json",
383
+ "weights_filename": "htdemucs_ft.safetensors"
384
+ },
385
+ {
386
+ "architecture": "Demucs",
387
+ "artifact_origin": "reused",
388
+ "config_filename": "htdemucs_6s_config.json",
389
+ "distribution": "bundled",
390
+ "dtype": "float32",
391
+ "family": "demucs",
392
+ "files": [
393
+ {
394
+ "filename": "htdemucs_6s.safetensors",
395
+ "sha256": "d298f7f746bf53c21baad44fb08e88807ef47feb551dd22f1601a546c85b8e02",
396
+ "size_bytes": 109726583
397
+ },
398
+ {
399
+ "filename": "htdemucs_6s_config.json",
400
+ "sha256": "d5e18c0209be583027d6eb5ec3013a02cd7ef55bc3096e644d8d3577d92e9bd0",
401
+ "size_bytes": 4302
402
+ },
403
+ {
404
+ "filename": "LICENSE",
405
+ "sha256": "15086279d32c0f00c577c0f52ff428daf98b8a1fec0264da1c717c88ad464f51",
406
+ "size_bytes": 1117
407
+ }
408
+ ],
409
+ "id": "htdemucs_6s",
410
+ "inference_defaults": {
411
+ "overlap_fraction": 0.25,
412
+ "shifts": 2
413
+ },
414
+ "license": {
415
+ "notice_source": "mlx_audio_separator/demucs_mlx/LICENSE",
416
+ "source": "https://huggingface.co/ssmall256/demucs-mlx/blob/35ecb1a906ec420b1a28069db575ad070d35860e/README.md",
417
+ "spdx": "MIT",
418
+ "status": "upstream_declared"
419
+ },
420
+ "name": "htdemucs_6s",
421
+ "sample_rate": 44100,
422
+ "source": {
423
+ "note": "Reuses byte-identical published demucs-mlx artifacts; config records official checkpoint signatures and conversion metadata."
424
+ },
425
+ "stems": [
426
+ "drums",
427
+ "bass",
428
+ "other",
429
+ "vocals",
430
+ "guitar",
431
+ "piano"
432
+ ],
433
+ "upstream_hub": {
434
+ "repo_id": "ssmall256/demucs-mlx",
435
+ "revision": "35ecb1a906ec420b1a28069db575ad070d35860e"
436
+ },
437
+ "validation": "validation/htdemucs_6s.json",
438
+ "weights_filename": "htdemucs_6s.safetensors"
439
+ },
440
+ {
441
+ "architecture": "MDXC",
442
+ "artifact_origin": "reused",
443
+ "config_filename": "config.json",
444
+ "distribution": "bundled",
445
+ "dtype": "float16",
446
+ "family": "zfturbo",
447
+ "files": [
448
+ {
449
+ "filename": "model.safetensors",
450
+ "sha256": "ef4aa052845a868cfaff93611477bd8f54d8081bc32f2742a9b3c738f0821191",
451
+ "size_bytes": 67402202
452
+ },
453
+ {
454
+ "filename": "config.json",
455
+ "sha256": "d110ed4713b403d27e2ae6c7796b1a864576232de4a2070e9762108ca197caa6",
456
+ "size_bytes": 1016
457
+ },
458
+ {
459
+ "filename": "LICENSE",
460
+ "sha256": "2b55ae02dcfe9ac8454c41c5e235175512db7429ee7275bab4c4e566b3f80597",
461
+ "size_bytes": 1779
462
+ }
463
+ ],
464
+ "id": "mel-roformer-zfturbo-vocals-v1",
465
+ "inference_defaults": {
466
+ "chunk_samples": 352800,
467
+ "overlap_windows": 2
468
+ },
469
+ "license": {
470
+ "note": "Published card notes the source MIT license was added after the original checkpoint release; explicit retroactive author confirmation was not collected.",
471
+ "notice_source": "https://huggingface.co/mlx-community/mel-roformer-zfturbo-vocals-v1-mlx/resolve/01bef2daebedf39937f552d6da68340fc979c9a0/LICENSE",
472
+ "source": "https://huggingface.co/mlx-community/mel-roformer-zfturbo-vocals-v1-mlx/blob/01bef2daebedf39937f552d6da68340fc979c9a0/README.md",
473
+ "spdx": "MIT",
474
+ "status": "upstream_declared_with_caveat"
475
+ },
476
+ "name": "ZFTurbo Mel-RoFormer Vocals v1",
477
+ "sample_rate": 44100,
478
+ "source": {
479
+ "_class": "MelRoFormerConfig",
480
+ "_dtype": "float16",
481
+ "_mlx_version": "0.31.0",
482
+ "_source_input": "model_vocals_mel_band_roformer_sdr_8.42.ckpt",
483
+ "_source_license_at_conversion": "MIT (current MSS-Training repo LICENSE; LICENSE file added 2024-11-04 in commit 6149a22, post-dating the v1.0.0 release on 2023-11-06)",
484
+ "_source_release": "https://github.com/ZFTurbo/Music-Source-Separation-Training/releases/tag/v1.0.0",
485
+ "_source_repository": "https://github.com/ZFTurbo/Music-Source-Separation-Training",
486
+ "_source_sha256": "d9ce706b49cebf0af018590d8deb47ad5434987bf8f7bd3a87a4e5e8c30acb26",
487
+ "_tool_version": "8380ab8",
488
+ "checkpoint_family": "zfturbo_vocals_v1",
489
+ "chunk_size": 352800,
490
+ "depth": 8,
491
+ "dim": 192,
492
+ "dim_head": 64,
493
+ "ff_mult": 4,
494
+ "heads": 8,
495
+ "hop_length": 512,
496
+ "mask_estimator_depth": 1,
497
+ "mlp_expansion_factor": 4,
498
+ "model_type": "mel_band_roformer",
499
+ "n_fft": 2048,
500
+ "num_bands": 60,
501
+ "num_overlap": 2,
502
+ "num_stems": 1,
503
+ "sample_rate": 44100,
504
+ "win_length": 2048
505
+ },
506
+ "stems": [
507
+ "Vocals",
508
+ "Instrumental"
509
+ ],
510
+ "upstream_hub": {
511
+ "repo_id": "mlx-community/mel-roformer-zfturbo-vocals-v1-mlx",
512
+ "revision": "01bef2daebedf39937f552d6da68340fc979c9a0"
513
+ },
514
+ "validation": "validation/mel-roformer-zfturbo-vocals-v1.json",
515
+ "weights_filename": "model.safetensors"
516
+ }
517
+ ],
518
+ "publication": {
519
+ "date": "2026-10-11",
520
+ "minimum_runtime_version": "0.1.21",
521
+ "repository": "ssmall256/mlx-audio-separator",
522
+ "runtime_release_status": "upcoming_at_publication",
523
+ "third_party_notices": "THIRD_PARTY_NOTICES.md"
524
+ },
525
+ "review_tools_sha256": {
526
+ "catalog.py": "41469a84c9cd1ea89be7cc98eae2e72837e5b8d897b9d3fc368d1538015a5c14",
527
+ "export_registry.py": "b688c030d8c8d14113bc9f0b9fbba97723a42ad2d847b6e2ce9725bda0e37653",
528
+ "finalize.py": "65208c68de24e2520bbdbaef6c8930f8f590b4ac3e44206d85c8e79c59f1b782",
529
+ "prepare.py": "81ca71f53e24aa53eefc4b03beb563c84a7df14e4b239adb71eec5d802a88df5",
530
+ "preview.py": "1fdd89ad568d206c103e176e363d3abcd2a508106f94425cc2b59341df07c42c",
531
+ "validate.py": "aca2ea18ca56dd71602d5313c825591c87f133e8cccf97266ef672327024e35f",
532
+ "validate_downloads.py": "7e38c0d1678235ad340d62f302c25588ae29fe98b526806089da68235da59f4d"
533
+ },
534
+ "target_repo_id": "ssmall256/mlx-audio-separator",
535
+ "validation_scope": {
536
+ "artifact_inference_job": "mq-07b0fe",
537
+ "artifact_relocation_changed_weights": false,
538
+ "baseline_job": "mq-a8c83e",
539
+ "conversion_job": "mq-565cea",
540
+ "current_bundle_all_models_hash_verified": 7,
541
+ "fixture": "14-second excerpt of Q-BHR.m4a, starting at 45 seconds, decoded once to stereo 44.1 kHz PCM16",
542
+ "fixture_not_distributed": true,
543
+ "fixture_sha256": "f5d0902f372a61ae2784239d0e097c9246c9d9b90be26a4a4805db8c96efad6d",
544
+ "frames": 617400,
545
+ "manifest_job": "mq-15ec6e",
546
+ "new_conversions_materialized_into_empty_cache": 3,
547
+ "new_ground_truth_quality_evaluation": false,
548
+ "new_torch_reference_comparison": false,
549
+ "reused_artifacts_downloaded_from_upstream_into_empty_cache": 4
550
+ },
551
+ "validation_status": "passed_artifact_integrity_offline_inference_and_conversion_roundtrip"
552
+ }
catalog.py ADDED
@@ -0,0 +1,188 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Verify, materialize, and run a curated catalog. This tool never uploads files."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import argparse
6
+ import hashlib
7
+ import json
8
+ import os
9
+ import shutil
10
+ import tempfile
11
+ import urllib.request
12
+ from pathlib import Path
13
+
14
+
15
+ def digest(path):
16
+ h = hashlib.sha256()
17
+ with Path(path).open("rb") as stream:
18
+ for chunk in iter(lambda: stream.read(4 << 20), b""):
19
+ h.update(chunk)
20
+ return h.hexdigest()
21
+
22
+
23
+ def file_record(path, filename=None):
24
+ path = Path(path)
25
+ return {"filename": filename or path.name, "size_bytes": path.stat().st_size, "sha256": digest(path)}
26
+
27
+
28
+ def safe_path(root, relative):
29
+ root = Path(root).resolve()
30
+ path = (root / relative).resolve()
31
+ if not path.is_relative_to(root) or path == root:
32
+ raise ValueError(f"Path escapes catalog directory: {relative}")
33
+ return path
34
+
35
+
36
+ def verify_file(path, record):
37
+ path = Path(path)
38
+ if not path.is_file() or path.stat().st_size != record["size_bytes"] or digest(path) != record["sha256"]:
39
+ raise ValueError(f"Size or SHA-256 mismatch: {path}")
40
+
41
+
42
+ def read_manifest(bundle):
43
+ manifest = json.loads((Path(bundle) / "catalog.json").read_text())
44
+ if manifest["format_version"] != 1:
45
+ raise ValueError("Unsupported catalog version")
46
+ ids = [entry["id"] for entry in manifest["models"]]
47
+ if len(ids) != len(set(ids)):
48
+ raise ValueError("Duplicate catalog model IDs")
49
+ return manifest
50
+
51
+
52
+ def materialize(bundle, cache, selected=None):
53
+ """Install verified files atomically; never fetch source .ckpt/.onnx files."""
54
+ bundle, cache = Path(bundle), Path(cache)
55
+ manifest = read_manifest(bundle)
56
+ unknown = set(selected or []) - {entry["id"] for entry in manifest["models"]}
57
+ if unknown:
58
+ raise ValueError(f"Unknown catalog models: {sorted(unknown)}")
59
+ for entry in manifest["models"]:
60
+ if selected and entry["id"] not in selected:
61
+ continue
62
+ directory = safe_path(cache, entry["id"])
63
+ directory.mkdir(parents=True, exist_ok=True)
64
+ for record in entry["files"]:
65
+ target = safe_path(directory, record["filename"])
66
+ try:
67
+ verify_file(target, record)
68
+ continue
69
+ except ValueError:
70
+ pass
71
+ temporary = None
72
+ try:
73
+ target.parent.mkdir(parents=True, exist_ok=True)
74
+ with tempfile.NamedTemporaryFile(dir=target.parent, prefix=".download-", delete=False) as out:
75
+ temporary = Path(out.name)
76
+ if entry["distribution"] == "bundled":
77
+ source = safe_path(bundle, f"models/{entry['id']}/{record['filename']}")
78
+ with source.open("rb") as stream:
79
+ shutil.copyfileobj(stream, out, 4 << 20)
80
+ else:
81
+ revision = entry["revision"]
82
+ if len(revision) != 40 or any(c not in "0123456789abcdef" for c in revision):
83
+ raise ValueError("Remote entries require an immutable commit SHA")
84
+ url = f"https://huggingface.co/{entry['repo_id']}/resolve/{revision}/{record['filename']}"
85
+ with urllib.request.urlopen(url, timeout=120) as stream:
86
+ shutil.copyfileobj(stream, out, 4 << 20)
87
+ verify_file(temporary, record)
88
+ temporary.replace(target)
89
+ finally:
90
+ if temporary:
91
+ temporary.unlink(missing_ok=True)
92
+ print(f"Verified {entry['id']}", flush=True)
93
+ return manifest
94
+
95
+
96
+ def bundle_published_artifacts(bundle):
97
+ """Copy all pinned artifacts into one self-contained publication directory."""
98
+ bundle = Path(bundle)
99
+ manifest = materialize(bundle, bundle / "models")
100
+ for entry in manifest["models"]:
101
+ if entry["distribution"] == "external":
102
+ entry["artifact_origin"] = "reused"
103
+ entry["upstream_hub"] = {"repo_id": entry.pop("repo_id"), "revision": entry.pop("revision")}
104
+ else:
105
+ entry.setdefault("artifact_origin", "converted")
106
+ entry["distribution"] = "bundled"
107
+ manifest["target_repo_id"] = "ssmall256/mlx-audio-separator"
108
+ manifest["distribution_layout"] = "single_hub_repository"
109
+ temporary = bundle / "catalog.json.tmp"
110
+ temporary.write_text(json.dumps(manifest, indent=2, sort_keys=True) + "\n")
111
+ temporary.replace(bundle / "catalog.json")
112
+ return manifest
113
+
114
+
115
+ def local_separator(entry, directory, output):
116
+ """Use the release's normal separation path with catalog metadata and local weights."""
117
+ from mlx_audio_separator import Separator
118
+
119
+ directory = Path(directory)
120
+ if entry["family"] == "demucs":
121
+ os.environ["DEMUCS_MLX_CACHE_DIR"] = str(directory)
122
+ os.environ["DEMUCS_MLX_NO_DOWNLOAD"] = "1"
123
+ os.environ["HF_HUB_OFFLINE"] = "1"
124
+
125
+ class CatalogSeparator(Separator):
126
+ def download_model_files(self, model_filename):
127
+ path = directory if entry["family"] == "zfturbo" else directory / entry["weights_filename"]
128
+ return entry["id"], entry["architecture"], entry["name"], str(path), None
129
+
130
+ def _load_downloaded_model_data(self, model_path, yaml_config_filename):
131
+ if entry["family"] == "zfturbo":
132
+ from mlx_audio_separator.hf_mel_roformer import load_model_data
133
+
134
+ return load_model_data(directory)
135
+ if entry["family"] == "demucs":
136
+ return {"name": entry["id"]}
137
+ return json.loads((directory / entry["config_filename"]).read_text())
138
+
139
+ separator = CatalogSeparator(
140
+ model_file_dir=str(directory),
141
+ output_dir=str(output),
142
+ log_level=30,
143
+ demucs_params={"shifts": 2, "seed": 0},
144
+ )
145
+ separator.load_model(entry["id"])
146
+ return separator
147
+
148
+
149
+ def run(bundle, cache, model, audio, output):
150
+ manifest = read_manifest(bundle)
151
+ entry = next(entry for entry in manifest["models"] if entry["id"] == model)
152
+ directory = safe_path(cache, model)
153
+ for record in entry["files"]:
154
+ verify_file(safe_path(directory, record["filename"]), record)
155
+ separator = local_separator(entry, directory, output)
156
+ results = separator.separate(str(audio))
157
+ if separator.failed_files or len(results) != len(entry["stems"]):
158
+ raise RuntimeError(f"Incomplete separation: {separator.failed_files}, {results}")
159
+ return results
160
+
161
+
162
+ def main():
163
+ parser = argparse.ArgumentParser(description=__doc__)
164
+ parser.add_argument("command", choices=["verify", "fetch", "separate"])
165
+ parser.add_argument("--bundle", type=Path, default=Path(__file__).resolve().parent)
166
+ parser.add_argument("--cache", type=Path, default=Path.home() / ".cache/mlx-audio-separator/curated-v1")
167
+ parser.add_argument("--model")
168
+ parser.add_argument("--audio", type=Path)
169
+ parser.add_argument("--output", type=Path, default=Path("stems"))
170
+ args = parser.parse_args()
171
+ if args.command == "fetch":
172
+ materialize(args.bundle, args.cache, [args.model] if args.model else None)
173
+ elif args.command == "verify":
174
+ manifest = read_manifest(args.bundle)
175
+ for entry in manifest["models"]:
176
+ directory = args.bundle / "models" / entry["id"] if entry["distribution"] == "bundled" else args.cache / entry["id"]
177
+ for record in entry["files"]:
178
+ verify_file(safe_path(directory, record["filename"]), record)
179
+ print(f"Verified {entry['id']}")
180
+ else:
181
+ if not args.model or not args.audio:
182
+ parser.error("separate requires --model and --audio")
183
+ for path in run(args.bundle, args.cache, args.model, args.audio, args.output):
184
+ print(path)
185
+
186
+
187
+ if __name__ == "__main__":
188
+ main()
models/bs-roformer-sw/config.json ADDED
@@ -0,0 +1,211 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "audio": {
3
+ "chunk_size": 588800,
4
+ "dim_f": 1024,
5
+ "dim_t": 801,
6
+ "hop_length": 441,
7
+ "min_mean_abs": 0.0,
8
+ "n_fft": 2048,
9
+ "num_channels": 2,
10
+ "sample_rate": 44100
11
+ },
12
+ "augmentations": {
13
+ "all": {
14
+ "channel_shuffle": 0.5,
15
+ "random_inverse": 0.1,
16
+ "random_polarity": 0.5
17
+ },
18
+ "bass": {
19
+ "pitch_shift": 0.1,
20
+ "pitch_shift_max_semitones": 2,
21
+ "pitch_shift_min_semitones": -2,
22
+ "seven_band_parametric_eq": 0.1,
23
+ "seven_band_parametric_eq_max_gain_db": 6,
24
+ "seven_band_parametric_eq_min_gain_db": -3,
25
+ "tanh_distortion": 0.1,
26
+ "tanh_distortion_max": 0.5,
27
+ "tanh_distortion_min": 0.1
28
+ },
29
+ "drums": {
30
+ "pitch_shift": 0.1,
31
+ "pitch_shift_max_semitones": 5,
32
+ "pitch_shift_min_semitones": -5,
33
+ "seven_band_parametric_eq": 0.1,
34
+ "seven_band_parametric_eq_max_gain_db": 9,
35
+ "seven_band_parametric_eq_min_gain_db": -9,
36
+ "tanh_distortion": 0.1,
37
+ "tanh_distortion_max": 0.6,
38
+ "tanh_distortion_min": 0.1
39
+ },
40
+ "enable": true,
41
+ "loudness": true,
42
+ "loudness_max": 1.5,
43
+ "loudness_min": 0.5,
44
+ "mixup": true,
45
+ "mixup_loudness_max": 1.5,
46
+ "mixup_loudness_min": 0.5,
47
+ "mixup_probs": [
48
+ 0.2,
49
+ 0.02
50
+ ],
51
+ "other": {
52
+ "gaussian_noise": 0.1,
53
+ "gaussian_noise_max_amplitude": 0.015,
54
+ "gaussian_noise_min_amplitude": 0.001,
55
+ "pitch_shift": 0.1,
56
+ "pitch_shift_max_semitones": 4,
57
+ "pitch_shift_min_semitones": -4,
58
+ "time_stretch": 0.1,
59
+ "time_stretch_max_rate": 1.25,
60
+ "time_stretch_min_rate": 0.8
61
+ },
62
+ "vocals": {
63
+ "pitch_shift": 0.1,
64
+ "pitch_shift_max_semitones": 5,
65
+ "pitch_shift_min_semitones": -5,
66
+ "seven_band_parametric_eq": 0.1,
67
+ "seven_band_parametric_eq_max_gain_db": 9,
68
+ "seven_band_parametric_eq_min_gain_db": -9,
69
+ "tanh_distortion": 0.1,
70
+ "tanh_distortion_max": 0.7,
71
+ "tanh_distortion_min": 0.1
72
+ }
73
+ },
74
+ "inference": {
75
+ "batch_size": 1,
76
+ "dim_t": 801,
77
+ "normalize": false,
78
+ "num_overlap": 2
79
+ },
80
+ "is_roformer": true,
81
+ "model": {
82
+ "attn_dropout": 0.1,
83
+ "depth": 12,
84
+ "dim": 256,
85
+ "dim_freqs_in": 1025,
86
+ "dim_head": 64,
87
+ "ff_dropout": 0.1,
88
+ "flash_attn": true,
89
+ "freq_transformer_depth": 1,
90
+ "freqs_per_bands": [
91
+ 2,
92
+ 2,
93
+ 2,
94
+ 2,
95
+ 2,
96
+ 2,
97
+ 2,
98
+ 2,
99
+ 2,
100
+ 2,
101
+ 2,
102
+ 2,
103
+ 2,
104
+ 2,
105
+ 2,
106
+ 2,
107
+ 2,
108
+ 2,
109
+ 2,
110
+ 2,
111
+ 2,
112
+ 2,
113
+ 2,
114
+ 2,
115
+ 4,
116
+ 4,
117
+ 4,
118
+ 4,
119
+ 4,
120
+ 4,
121
+ 4,
122
+ 4,
123
+ 4,
124
+ 4,
125
+ 4,
126
+ 4,
127
+ 12,
128
+ 12,
129
+ 12,
130
+ 12,
131
+ 12,
132
+ 12,
133
+ 12,
134
+ 12,
135
+ 24,
136
+ 24,
137
+ 24,
138
+ 24,
139
+ 24,
140
+ 24,
141
+ 24,
142
+ 24,
143
+ 48,
144
+ 48,
145
+ 48,
146
+ 48,
147
+ 48,
148
+ 48,
149
+ 48,
150
+ 48,
151
+ 128,
152
+ 129
153
+ ],
154
+ "heads": 8,
155
+ "linear_transformer_depth": 0,
156
+ "mask_estimator_depth": 2,
157
+ "mlp_expansion_factor": 4,
158
+ "multi_stft_hop_size": 147,
159
+ "multi_stft_normalized": false,
160
+ "multi_stft_resolution_loss_weight": 1.0,
161
+ "multi_stft_resolutions_window_sizes": [
162
+ 4096,
163
+ 2048,
164
+ 1024,
165
+ 512,
166
+ 256
167
+ ],
168
+ "num_stems": 6,
169
+ "skip_connection": false,
170
+ "stereo": true,
171
+ "stft_hop_length": 512,
172
+ "stft_n_fft": 2048,
173
+ "stft_normalized": false,
174
+ "stft_win_length": 2048,
175
+ "time_transformer_depth": 1,
176
+ "use_torch_checkpoint": false
177
+ },
178
+ "training": {
179
+ "augmentation": false,
180
+ "augmentation_loudness": true,
181
+ "augmentation_loudness_max": 1.5,
182
+ "augmentation_loudness_min": 0.5,
183
+ "augmentation_loudness_type": 1,
184
+ "augmentation_mix": true,
185
+ "augmentation_type": "simple1",
186
+ "batch_size": 2,
187
+ "coarse_loss_clip": true,
188
+ "ema_momentum": 0.999,
189
+ "grad_clip": 0,
190
+ "gradient_accumulation_steps": 1,
191
+ "instruments": [
192
+ "bass",
193
+ "drums",
194
+ "other",
195
+ "vocals",
196
+ "guitar",
197
+ "piano"
198
+ ],
199
+ "lr": 1e-05,
200
+ "num_epochs": 1000,
201
+ "num_steps": 1000,
202
+ "optimizer": "adam",
203
+ "other_fix": false,
204
+ "patience": 3,
205
+ "q": 0.95,
206
+ "reduce_factor": 0.95,
207
+ "target_instrument": null,
208
+ "use_amp": true,
209
+ "use_mp3_compress": false
210
+ }
211
+ }
models/bs-roformer-sw/model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f95907cd5bfdbc783c1cb32f6aafc49b8b6a598477a9d4a48b4f9191c5167707
3
+ size 698841589
models/htdemucs/LICENSE ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) Meta Platforms, Inc. and affiliates.
4
+ Copyright (c) 2026 ssmall256
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all
14
+ copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ SOFTWARE.
models/htdemucs/htdemucs.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:339d267a7a6983a11eedbdc00413c602a65e9b9103f695fb5c2b2a481cd9d297
3
+ size 168005865
models/htdemucs/htdemucs_config.json ADDED
@@ -0,0 +1,188 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "args": [],
3
+ "conversion_date": "2026-10-05T14:40:20.987896+00:00",
4
+ "format_version": 1,
5
+ "kwargs": {
6
+ "audio_channels": 2,
7
+ "bottom_channels": 512,
8
+ "cac": true,
9
+ "channels": 48,
10
+ "channels_time": null,
11
+ "context": 1,
12
+ "context_enc": 0,
13
+ "dconv_comp": 8,
14
+ "dconv_depth": 2,
15
+ "dconv_init": 0.001,
16
+ "dconv_mode": 3,
17
+ "depth": 4,
18
+ "emb_scale": 10,
19
+ "emb_smooth": true,
20
+ "end_iters": 0,
21
+ "freq_emb": 0.2,
22
+ "growth": 2,
23
+ "kernel_size": 8,
24
+ "multi_freqs": [],
25
+ "multi_freqs_depth": 3,
26
+ "nfft": 4096,
27
+ "norm_groups": 4,
28
+ "norm_starts": 4,
29
+ "rescale": 0.1,
30
+ "rewrite": true,
31
+ "samplerate": 44100,
32
+ "segment": {
33
+ "__type__": "fraction",
34
+ "denominator": 5,
35
+ "numerator": 39
36
+ },
37
+ "sources": [
38
+ "drums",
39
+ "bass",
40
+ "other",
41
+ "vocals"
42
+ ],
43
+ "stride": 4,
44
+ "t_auto_sparsity": false,
45
+ "t_cape_augment": true,
46
+ "t_cape_glob_loc_scale": [
47
+ 5000.0,
48
+ 1.0,
49
+ 1.4
50
+ ],
51
+ "t_cape_mean_normalize": true,
52
+ "t_cross_first": false,
53
+ "t_dropout": 0.02,
54
+ "t_emb": "sin",
55
+ "t_gelu": true,
56
+ "t_global_window": 100,
57
+ "t_group_norm": false,
58
+ "t_heads": 8,
59
+ "t_hidden_scale": 4.0,
60
+ "t_layer_scale": true,
61
+ "t_layers": 5,
62
+ "t_lr": null,
63
+ "t_mask_random_seed": 42,
64
+ "t_mask_type": "diag",
65
+ "t_max_period": 10000.0,
66
+ "t_max_positions": 10000,
67
+ "t_norm_first": true,
68
+ "t_norm_in": true,
69
+ "t_norm_in_group": false,
70
+ "t_norm_out": true,
71
+ "t_sin_random_shift": 0,
72
+ "t_sparse_attn_window": 400,
73
+ "t_sparse_cross_attn": false,
74
+ "t_sparse_self_attn": false,
75
+ "t_sparsity": 0.95,
76
+ "t_weight_decay": 0.0,
77
+ "t_weight_pos_embed": 1.0,
78
+ "time_stride": 2,
79
+ "wiener_iters": 0,
80
+ "wiener_residual": false
81
+ },
82
+ "mlx_version": "0.32.3",
83
+ "model_class": "BagOfModelsMLX",
84
+ "model_name": "htdemucs",
85
+ "num_models": 1,
86
+ "per_model_args": [
87
+ []
88
+ ],
89
+ "per_model_classes": [
90
+ "HTDemucsMLX"
91
+ ],
92
+ "per_model_kwargs": [
93
+ {
94
+ "audio_channels": 2,
95
+ "bottom_channels": 512,
96
+ "cac": true,
97
+ "channels": 48,
98
+ "channels_time": null,
99
+ "context": 1,
100
+ "context_enc": 0,
101
+ "dconv_comp": 8,
102
+ "dconv_depth": 2,
103
+ "dconv_init": 0.001,
104
+ "dconv_mode": 3,
105
+ "depth": 4,
106
+ "emb_scale": 10,
107
+ "emb_smooth": true,
108
+ "end_iters": 0,
109
+ "freq_emb": 0.2,
110
+ "growth": 2,
111
+ "kernel_size": 8,
112
+ "multi_freqs": [],
113
+ "multi_freqs_depth": 3,
114
+ "nfft": 4096,
115
+ "norm_groups": 4,
116
+ "norm_starts": 4,
117
+ "rescale": 0.1,
118
+ "rewrite": true,
119
+ "samplerate": 44100,
120
+ "segment": {
121
+ "__type__": "fraction",
122
+ "denominator": 5,
123
+ "numerator": 39
124
+ },
125
+ "sources": [
126
+ "drums",
127
+ "bass",
128
+ "other",
129
+ "vocals"
130
+ ],
131
+ "stride": 4,
132
+ "t_auto_sparsity": false,
133
+ "t_cape_augment": true,
134
+ "t_cape_glob_loc_scale": [
135
+ 5000.0,
136
+ 1.0,
137
+ 1.4
138
+ ],
139
+ "t_cape_mean_normalize": true,
140
+ "t_cross_first": false,
141
+ "t_dropout": 0.02,
142
+ "t_emb": "sin",
143
+ "t_gelu": true,
144
+ "t_global_window": 100,
145
+ "t_group_norm": false,
146
+ "t_heads": 8,
147
+ "t_hidden_scale": 4.0,
148
+ "t_layer_scale": true,
149
+ "t_layers": 5,
150
+ "t_lr": null,
151
+ "t_mask_random_seed": 42,
152
+ "t_mask_type": "diag",
153
+ "t_max_period": 10000.0,
154
+ "t_max_positions": 10000,
155
+ "t_norm_first": true,
156
+ "t_norm_in": true,
157
+ "t_norm_in_group": false,
158
+ "t_norm_out": true,
159
+ "t_sin_random_shift": 0,
160
+ "t_sparse_attn_window": 400,
161
+ "t_sparse_cross_attn": false,
162
+ "t_sparse_self_attn": false,
163
+ "t_sparsity": 0.95,
164
+ "t_weight_decay": 0.0,
165
+ "t_weight_pos_embed": 1.0,
166
+ "time_stride": 2,
167
+ "wiener_iters": 0,
168
+ "wiener_residual": false
169
+ }
170
+ ],
171
+ "safetensors_sha256": "339d267a7a6983a11eedbdc00413c602a65e9b9103f695fb5c2b2a481cd9d297",
172
+ "source_artifacts": [
173
+ {
174
+ "checksum": "8726e21a",
175
+ "signature": "955717e8"
176
+ }
177
+ ],
178
+ "sub_model_class": "HTDemucsMLX",
179
+ "verification_passed": true,
180
+ "weights": [
181
+ [
182
+ 1.0,
183
+ 1.0,
184
+ 1.0,
185
+ 1.0
186
+ ]
187
+ ]
188
+ }
models/htdemucs_6s/LICENSE ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) Meta Platforms, Inc. and affiliates.
4
+ Copyright (c) 2026 ssmall256
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all
14
+ copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ SOFTWARE.
models/htdemucs_6s/htdemucs_6s.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d298f7f746bf53c21baad44fb08e88807ef47feb551dd22f1601a546c85b8e02
3
+ size 109726583
models/htdemucs_6s/htdemucs_6s_config.json ADDED
@@ -0,0 +1,194 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "args": [],
3
+ "conversion_date": "2026-10-05T14:40:32.682284+00:00",
4
+ "format_version": 1,
5
+ "kwargs": {
6
+ "audio_channels": 2,
7
+ "bottom_channels": 0,
8
+ "cac": true,
9
+ "channels": 48,
10
+ "channels_time": null,
11
+ "context": 1,
12
+ "context_enc": 0,
13
+ "dconv_comp": 8,
14
+ "dconv_depth": 2,
15
+ "dconv_init": 0.001,
16
+ "dconv_mode": 3,
17
+ "depth": 4,
18
+ "emb_scale": 10,
19
+ "emb_smooth": true,
20
+ "end_iters": 0,
21
+ "freq_emb": 0.2,
22
+ "growth": 2,
23
+ "kernel_size": 8,
24
+ "multi_freqs": [],
25
+ "multi_freqs_depth": 3,
26
+ "nfft": 4096,
27
+ "norm_groups": 4,
28
+ "norm_starts": 4,
29
+ "rescale": 0.1,
30
+ "rewrite": true,
31
+ "samplerate": 44100,
32
+ "segment": {
33
+ "__type__": "fraction",
34
+ "denominator": 5,
35
+ "numerator": 39
36
+ },
37
+ "sources": [
38
+ "drums",
39
+ "bass",
40
+ "other",
41
+ "vocals",
42
+ "guitar",
43
+ "piano"
44
+ ],
45
+ "stride": 4,
46
+ "t_auto_sparsity": false,
47
+ "t_cape_augment": true,
48
+ "t_cape_glob_loc_scale": [
49
+ 5000.0,
50
+ 1.0,
51
+ 1.4
52
+ ],
53
+ "t_cape_mean_normalize": true,
54
+ "t_cross_first": false,
55
+ "t_dropout": 0.02,
56
+ "t_emb": "sin",
57
+ "t_gelu": true,
58
+ "t_global_window": 100,
59
+ "t_group_norm": false,
60
+ "t_heads": 8,
61
+ "t_hidden_scale": 4.0,
62
+ "t_layer_scale": true,
63
+ "t_layers": 5,
64
+ "t_lr": null,
65
+ "t_mask_random_seed": 42,
66
+ "t_mask_type": "diag",
67
+ "t_max_period": 10000.0,
68
+ "t_max_positions": 10000,
69
+ "t_norm_first": true,
70
+ "t_norm_in": true,
71
+ "t_norm_in_group": false,
72
+ "t_norm_out": true,
73
+ "t_sin_random_shift": 0,
74
+ "t_sparse_attn_window": 400,
75
+ "t_sparse_cross_attn": false,
76
+ "t_sparse_self_attn": false,
77
+ "t_sparsity": 0.95,
78
+ "t_weight_decay": 0.0,
79
+ "t_weight_pos_embed": 1.0,
80
+ "time_stride": 2,
81
+ "wiener_iters": 0,
82
+ "wiener_residual": false
83
+ },
84
+ "mlx_version": "0.32.3",
85
+ "model_class": "BagOfModelsMLX",
86
+ "model_name": "htdemucs_6s",
87
+ "num_models": 1,
88
+ "per_model_args": [
89
+ []
90
+ ],
91
+ "per_model_classes": [
92
+ "HTDemucsMLX"
93
+ ],
94
+ "per_model_kwargs": [
95
+ {
96
+ "audio_channels": 2,
97
+ "bottom_channels": 0,
98
+ "cac": true,
99
+ "channels": 48,
100
+ "channels_time": null,
101
+ "context": 1,
102
+ "context_enc": 0,
103
+ "dconv_comp": 8,
104
+ "dconv_depth": 2,
105
+ "dconv_init": 0.001,
106
+ "dconv_mode": 3,
107
+ "depth": 4,
108
+ "emb_scale": 10,
109
+ "emb_smooth": true,
110
+ "end_iters": 0,
111
+ "freq_emb": 0.2,
112
+ "growth": 2,
113
+ "kernel_size": 8,
114
+ "multi_freqs": [],
115
+ "multi_freqs_depth": 3,
116
+ "nfft": 4096,
117
+ "norm_groups": 4,
118
+ "norm_starts": 4,
119
+ "rescale": 0.1,
120
+ "rewrite": true,
121
+ "samplerate": 44100,
122
+ "segment": {
123
+ "__type__": "fraction",
124
+ "denominator": 5,
125
+ "numerator": 39
126
+ },
127
+ "sources": [
128
+ "drums",
129
+ "bass",
130
+ "other",
131
+ "vocals",
132
+ "guitar",
133
+ "piano"
134
+ ],
135
+ "stride": 4,
136
+ "t_auto_sparsity": false,
137
+ "t_cape_augment": true,
138
+ "t_cape_glob_loc_scale": [
139
+ 5000.0,
140
+ 1.0,
141
+ 1.4
142
+ ],
143
+ "t_cape_mean_normalize": true,
144
+ "t_cross_first": false,
145
+ "t_dropout": 0.02,
146
+ "t_emb": "sin",
147
+ "t_gelu": true,
148
+ "t_global_window": 100,
149
+ "t_group_norm": false,
150
+ "t_heads": 8,
151
+ "t_hidden_scale": 4.0,
152
+ "t_layer_scale": true,
153
+ "t_layers": 5,
154
+ "t_lr": null,
155
+ "t_mask_random_seed": 42,
156
+ "t_mask_type": "diag",
157
+ "t_max_period": 10000.0,
158
+ "t_max_positions": 10000,
159
+ "t_norm_first": true,
160
+ "t_norm_in": true,
161
+ "t_norm_in_group": false,
162
+ "t_norm_out": true,
163
+ "t_sin_random_shift": 0,
164
+ "t_sparse_attn_window": 400,
165
+ "t_sparse_cross_attn": false,
166
+ "t_sparse_self_attn": false,
167
+ "t_sparsity": 0.95,
168
+ "t_weight_decay": 0.0,
169
+ "t_weight_pos_embed": 1.0,
170
+ "time_stride": 2,
171
+ "wiener_iters": 0,
172
+ "wiener_residual": false
173
+ }
174
+ ],
175
+ "safetensors_sha256": "d298f7f746bf53c21baad44fb08e88807ef47feb551dd22f1601a546c85b8e02",
176
+ "source_artifacts": [
177
+ {
178
+ "checksum": "34c22ccb",
179
+ "signature": "5c90dfd2"
180
+ }
181
+ ],
182
+ "sub_model_class": "HTDemucsMLX",
183
+ "verification_passed": true,
184
+ "weights": [
185
+ [
186
+ 1.0,
187
+ 1.0,
188
+ 1.0,
189
+ 1.0,
190
+ 1.0,
191
+ 1.0
192
+ ]
193
+ ]
194
+ }
models/htdemucs_ft/LICENSE ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) Meta Platforms, Inc. and affiliates.
4
+ Copyright (c) 2026 ssmall256
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all
14
+ copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ SOFTWARE.
models/htdemucs_ft/htdemucs_ft.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:53f03b1ad4b4d211025a35da65460ba61a17547adf9c0544cad0ebcc8d7bbabb
3
+ size 672024519
models/htdemucs_ft/htdemucs_ft_config.json ADDED
@@ -0,0 +1,455 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "args": [],
3
+ "conversion_date": "2026-10-05T14:40:24.444402+00:00",
4
+ "format_version": 1,
5
+ "kwargs": {
6
+ "audio_channels": 2,
7
+ "bottom_channels": 512,
8
+ "cac": true,
9
+ "channels": 48,
10
+ "channels_time": null,
11
+ "context": 1,
12
+ "context_enc": 0,
13
+ "dconv_comp": 8,
14
+ "dconv_depth": 2,
15
+ "dconv_init": 0.001,
16
+ "dconv_mode": 3,
17
+ "depth": 4,
18
+ "emb_scale": 10,
19
+ "emb_smooth": true,
20
+ "end_iters": 0,
21
+ "freq_emb": 0.2,
22
+ "growth": 2,
23
+ "kernel_size": 8,
24
+ "multi_freqs": [],
25
+ "multi_freqs_depth": 3,
26
+ "nfft": 4096,
27
+ "norm_groups": 4,
28
+ "norm_starts": 4,
29
+ "rescale": 0.1,
30
+ "rewrite": true,
31
+ "samplerate": 44100,
32
+ "segment": {
33
+ "__type__": "fraction",
34
+ "denominator": 5,
35
+ "numerator": 39
36
+ },
37
+ "sources": [
38
+ "drums",
39
+ "bass",
40
+ "other",
41
+ "vocals"
42
+ ],
43
+ "stride": 4,
44
+ "t_auto_sparsity": false,
45
+ "t_cape_augment": true,
46
+ "t_cape_glob_loc_scale": [
47
+ 5000.0,
48
+ 1.0,
49
+ 1.4
50
+ ],
51
+ "t_cape_mean_normalize": true,
52
+ "t_cross_first": false,
53
+ "t_dropout": 0.02,
54
+ "t_emb": "sin",
55
+ "t_gelu": true,
56
+ "t_global_window": 100,
57
+ "t_group_norm": false,
58
+ "t_heads": 8,
59
+ "t_hidden_scale": 4.0,
60
+ "t_layer_scale": true,
61
+ "t_layers": 5,
62
+ "t_lr": null,
63
+ "t_mask_random_seed": 42,
64
+ "t_mask_type": "diag",
65
+ "t_max_period": 10000.0,
66
+ "t_max_positions": 10000,
67
+ "t_norm_first": true,
68
+ "t_norm_in": true,
69
+ "t_norm_in_group": false,
70
+ "t_norm_out": true,
71
+ "t_sin_random_shift": 0,
72
+ "t_sparse_attn_window": 400,
73
+ "t_sparse_cross_attn": false,
74
+ "t_sparse_self_attn": false,
75
+ "t_sparsity": 0.95,
76
+ "t_weight_decay": 0.05,
77
+ "t_weight_pos_embed": 1.0,
78
+ "time_stride": 2,
79
+ "wiener_iters": 0,
80
+ "wiener_residual": false
81
+ },
82
+ "mlx_version": "0.32.3",
83
+ "model_class": "BagOfModelsMLX",
84
+ "model_name": "htdemucs_ft",
85
+ "num_models": 4,
86
+ "per_model_args": [
87
+ [],
88
+ [],
89
+ [],
90
+ []
91
+ ],
92
+ "per_model_classes": [
93
+ "HTDemucsMLX",
94
+ "HTDemucsMLX",
95
+ "HTDemucsMLX",
96
+ "HTDemucsMLX"
97
+ ],
98
+ "per_model_kwargs": [
99
+ {
100
+ "audio_channels": 2,
101
+ "bottom_channels": 512,
102
+ "cac": true,
103
+ "channels": 48,
104
+ "channels_time": null,
105
+ "context": 1,
106
+ "context_enc": 0,
107
+ "dconv_comp": 8,
108
+ "dconv_depth": 2,
109
+ "dconv_init": 0.001,
110
+ "dconv_mode": 3,
111
+ "depth": 4,
112
+ "emb_scale": 10,
113
+ "emb_smooth": true,
114
+ "end_iters": 0,
115
+ "freq_emb": 0.2,
116
+ "growth": 2,
117
+ "kernel_size": 8,
118
+ "multi_freqs": [],
119
+ "multi_freqs_depth": 3,
120
+ "nfft": 4096,
121
+ "norm_groups": 4,
122
+ "norm_starts": 4,
123
+ "rescale": 0.1,
124
+ "rewrite": true,
125
+ "samplerate": 44100,
126
+ "segment": {
127
+ "__type__": "fraction",
128
+ "denominator": 5,
129
+ "numerator": 39
130
+ },
131
+ "sources": [
132
+ "drums",
133
+ "bass",
134
+ "other",
135
+ "vocals"
136
+ ],
137
+ "stride": 4,
138
+ "t_auto_sparsity": false,
139
+ "t_cape_augment": true,
140
+ "t_cape_glob_loc_scale": [
141
+ 5000.0,
142
+ 1.0,
143
+ 1.4
144
+ ],
145
+ "t_cape_mean_normalize": true,
146
+ "t_cross_first": false,
147
+ "t_dropout": 0.02,
148
+ "t_emb": "sin",
149
+ "t_gelu": true,
150
+ "t_global_window": 100,
151
+ "t_group_norm": false,
152
+ "t_heads": 8,
153
+ "t_hidden_scale": 4.0,
154
+ "t_layer_scale": true,
155
+ "t_layers": 5,
156
+ "t_lr": null,
157
+ "t_mask_random_seed": 42,
158
+ "t_mask_type": "diag",
159
+ "t_max_period": 10000.0,
160
+ "t_max_positions": 10000,
161
+ "t_norm_first": true,
162
+ "t_norm_in": true,
163
+ "t_norm_in_group": false,
164
+ "t_norm_out": true,
165
+ "t_sin_random_shift": 0,
166
+ "t_sparse_attn_window": 400,
167
+ "t_sparse_cross_attn": false,
168
+ "t_sparse_self_attn": false,
169
+ "t_sparsity": 0.95,
170
+ "t_weight_decay": 0.05,
171
+ "t_weight_pos_embed": 1.0,
172
+ "time_stride": 2,
173
+ "wiener_iters": 0,
174
+ "wiener_residual": false
175
+ },
176
+ {
177
+ "audio_channels": 2,
178
+ "bottom_channels": 512,
179
+ "cac": true,
180
+ "channels": 48,
181
+ "channels_time": null,
182
+ "context": 1,
183
+ "context_enc": 0,
184
+ "dconv_comp": 8,
185
+ "dconv_depth": 2,
186
+ "dconv_init": 0.001,
187
+ "dconv_mode": 3,
188
+ "depth": 4,
189
+ "emb_scale": 10,
190
+ "emb_smooth": true,
191
+ "end_iters": 0,
192
+ "freq_emb": 0.2,
193
+ "growth": 2,
194
+ "kernel_size": 8,
195
+ "multi_freqs": [],
196
+ "multi_freqs_depth": 3,
197
+ "nfft": 4096,
198
+ "norm_groups": 4,
199
+ "norm_starts": 4,
200
+ "rescale": 0.1,
201
+ "rewrite": true,
202
+ "samplerate": 44100,
203
+ "segment": {
204
+ "__type__": "fraction",
205
+ "denominator": 5,
206
+ "numerator": 39
207
+ },
208
+ "sources": [
209
+ "drums",
210
+ "bass",
211
+ "other",
212
+ "vocals"
213
+ ],
214
+ "stride": 4,
215
+ "t_auto_sparsity": false,
216
+ "t_cape_augment": true,
217
+ "t_cape_glob_loc_scale": [
218
+ 5000.0,
219
+ 1.0,
220
+ 1.4
221
+ ],
222
+ "t_cape_mean_normalize": true,
223
+ "t_cross_first": false,
224
+ "t_dropout": 0.02,
225
+ "t_emb": "sin",
226
+ "t_gelu": true,
227
+ "t_global_window": 100,
228
+ "t_group_norm": false,
229
+ "t_heads": 8,
230
+ "t_hidden_scale": 4.0,
231
+ "t_layer_scale": true,
232
+ "t_layers": 5,
233
+ "t_lr": null,
234
+ "t_mask_random_seed": 42,
235
+ "t_mask_type": "diag",
236
+ "t_max_period": 10000.0,
237
+ "t_max_positions": 10000,
238
+ "t_norm_first": true,
239
+ "t_norm_in": true,
240
+ "t_norm_in_group": false,
241
+ "t_norm_out": true,
242
+ "t_sin_random_shift": 0,
243
+ "t_sparse_attn_window": 400,
244
+ "t_sparse_cross_attn": false,
245
+ "t_sparse_self_attn": false,
246
+ "t_sparsity": 0.95,
247
+ "t_weight_decay": 0.05,
248
+ "t_weight_pos_embed": 1.0,
249
+ "time_stride": 2,
250
+ "wiener_iters": 0,
251
+ "wiener_residual": false
252
+ },
253
+ {
254
+ "audio_channels": 2,
255
+ "bottom_channels": 512,
256
+ "cac": true,
257
+ "channels": 48,
258
+ "channels_time": null,
259
+ "context": 1,
260
+ "context_enc": 0,
261
+ "dconv_comp": 8,
262
+ "dconv_depth": 2,
263
+ "dconv_init": 0.001,
264
+ "dconv_mode": 3,
265
+ "depth": 4,
266
+ "emb_scale": 10,
267
+ "emb_smooth": true,
268
+ "end_iters": 0,
269
+ "freq_emb": 0.2,
270
+ "growth": 2,
271
+ "kernel_size": 8,
272
+ "multi_freqs": [],
273
+ "multi_freqs_depth": 3,
274
+ "nfft": 4096,
275
+ "norm_groups": 4,
276
+ "norm_starts": 4,
277
+ "rescale": 0.1,
278
+ "rewrite": true,
279
+ "samplerate": 44100,
280
+ "segment": {
281
+ "__type__": "fraction",
282
+ "denominator": 5,
283
+ "numerator": 39
284
+ },
285
+ "sources": [
286
+ "drums",
287
+ "bass",
288
+ "other",
289
+ "vocals"
290
+ ],
291
+ "stride": 4,
292
+ "t_auto_sparsity": false,
293
+ "t_cape_augment": true,
294
+ "t_cape_glob_loc_scale": [
295
+ 5000.0,
296
+ 1.0,
297
+ 1.4
298
+ ],
299
+ "t_cape_mean_normalize": true,
300
+ "t_cross_first": false,
301
+ "t_dropout": 0.02,
302
+ "t_emb": "sin",
303
+ "t_gelu": true,
304
+ "t_global_window": 100,
305
+ "t_group_norm": false,
306
+ "t_heads": 8,
307
+ "t_hidden_scale": 4.0,
308
+ "t_layer_scale": true,
309
+ "t_layers": 5,
310
+ "t_lr": null,
311
+ "t_mask_random_seed": 42,
312
+ "t_mask_type": "diag",
313
+ "t_max_period": 10000.0,
314
+ "t_max_positions": 10000,
315
+ "t_norm_first": true,
316
+ "t_norm_in": true,
317
+ "t_norm_in_group": false,
318
+ "t_norm_out": true,
319
+ "t_sin_random_shift": 0,
320
+ "t_sparse_attn_window": 400,
321
+ "t_sparse_cross_attn": false,
322
+ "t_sparse_self_attn": false,
323
+ "t_sparsity": 0.95,
324
+ "t_weight_decay": 0.05,
325
+ "t_weight_pos_embed": 1.0,
326
+ "time_stride": 2,
327
+ "wiener_iters": 0,
328
+ "wiener_residual": false
329
+ },
330
+ {
331
+ "audio_channels": 2,
332
+ "bottom_channels": 512,
333
+ "cac": true,
334
+ "channels": 48,
335
+ "channels_time": null,
336
+ "context": 1,
337
+ "context_enc": 0,
338
+ "dconv_comp": 8,
339
+ "dconv_depth": 2,
340
+ "dconv_init": 0.001,
341
+ "dconv_mode": 3,
342
+ "depth": 4,
343
+ "emb_scale": 10,
344
+ "emb_smooth": true,
345
+ "end_iters": 0,
346
+ "freq_emb": 0.2,
347
+ "growth": 2,
348
+ "kernel_size": 8,
349
+ "multi_freqs": [],
350
+ "multi_freqs_depth": 3,
351
+ "nfft": 4096,
352
+ "norm_groups": 4,
353
+ "norm_starts": 4,
354
+ "rescale": 0.1,
355
+ "rewrite": true,
356
+ "samplerate": 44100,
357
+ "segment": {
358
+ "__type__": "fraction",
359
+ "denominator": 5,
360
+ "numerator": 39
361
+ },
362
+ "sources": [
363
+ "drums",
364
+ "bass",
365
+ "other",
366
+ "vocals"
367
+ ],
368
+ "stride": 4,
369
+ "t_auto_sparsity": false,
370
+ "t_cape_augment": true,
371
+ "t_cape_glob_loc_scale": [
372
+ 5000.0,
373
+ 1.0,
374
+ 1.4
375
+ ],
376
+ "t_cape_mean_normalize": true,
377
+ "t_cross_first": false,
378
+ "t_dropout": 0.02,
379
+ "t_emb": "sin",
380
+ "t_gelu": true,
381
+ "t_global_window": 100,
382
+ "t_group_norm": false,
383
+ "t_heads": 8,
384
+ "t_hidden_scale": 4.0,
385
+ "t_layer_scale": true,
386
+ "t_layers": 5,
387
+ "t_lr": null,
388
+ "t_mask_random_seed": 42,
389
+ "t_mask_type": "diag",
390
+ "t_max_period": 10000.0,
391
+ "t_max_positions": 10000,
392
+ "t_norm_first": true,
393
+ "t_norm_in": true,
394
+ "t_norm_in_group": false,
395
+ "t_norm_out": true,
396
+ "t_sin_random_shift": 0,
397
+ "t_sparse_attn_window": 400,
398
+ "t_sparse_cross_attn": false,
399
+ "t_sparse_self_attn": false,
400
+ "t_sparsity": 0.95,
401
+ "t_weight_decay": 0.05,
402
+ "t_weight_pos_embed": 1.0,
403
+ "time_stride": 2,
404
+ "wiener_iters": 0,
405
+ "wiener_residual": false
406
+ }
407
+ ],
408
+ "safetensors_sha256": "53f03b1ad4b4d211025a35da65460ba61a17547adf9c0544cad0ebcc8d7bbabb",
409
+ "source_artifacts": [
410
+ {
411
+ "checksum": "ba3fe64a",
412
+ "signature": "f7e0c4bc"
413
+ },
414
+ {
415
+ "checksum": "e57c48e6",
416
+ "signature": "d12395a8"
417
+ },
418
+ {
419
+ "checksum": "ef3bcb9c",
420
+ "signature": "92cfc3b6"
421
+ },
422
+ {
423
+ "checksum": "f3cf25b2",
424
+ "signature": "04573f0d"
425
+ }
426
+ ],
427
+ "sub_model_class": "HTDemucsMLX",
428
+ "verification_passed": true,
429
+ "weights": [
430
+ [
431
+ 1.0,
432
+ 0.0,
433
+ 0.0,
434
+ 0.0
435
+ ],
436
+ [
437
+ 0.0,
438
+ 1.0,
439
+ 0.0,
440
+ 0.0
441
+ ],
442
+ [
443
+ 0.0,
444
+ 0.0,
445
+ 1.0,
446
+ 0.0
447
+ ],
448
+ [
449
+ 0.0,
450
+ 0.0,
451
+ 0.0,
452
+ 1.0
453
+ ]
454
+ ]
455
+ }
models/mel-roformer-instv7n/config.json ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "audio": {
3
+ "chunk_size": 485100,
4
+ "dim_f": 1024,
5
+ "dim_t": 1101,
6
+ "hop_length": 441,
7
+ "min_mean_abs": 0.0,
8
+ "n_fft": 2048,
9
+ "num_channels": 2,
10
+ "sample_rate": 44100
11
+ },
12
+ "inference": {
13
+ "batch_size": 1,
14
+ "dim_t": 1101,
15
+ "num_overlap": 2
16
+ },
17
+ "is_roformer": true,
18
+ "model": {
19
+ "attn_dropout": 0,
20
+ "depth": 6,
21
+ "dim": 384,
22
+ "dim_freqs_in": 1025,
23
+ "dim_head": 64,
24
+ "ff_dropout": 0,
25
+ "flash_attn": true,
26
+ "freq_transformer_depth": 1,
27
+ "heads": 8,
28
+ "mask_estimator_depth": 3,
29
+ "multi_stft_hop_size": 147,
30
+ "multi_stft_normalized": false,
31
+ "multi_stft_resolution_loss_weight": 1.0,
32
+ "multi_stft_resolutions_window_sizes": [
33
+ 4096,
34
+ 2048,
35
+ 1024,
36
+ 512,
37
+ 256
38
+ ],
39
+ "num_bands": 60,
40
+ "num_stems": 1,
41
+ "sample_rate": 44100,
42
+ "stereo": true,
43
+ "stft_hop_length": 441,
44
+ "stft_n_fft": 2048,
45
+ "stft_normalized": false,
46
+ "stft_win_length": 2048,
47
+ "time_transformer_depth": 1
48
+ },
49
+ "training": {
50
+ "instruments": [
51
+ "Instrumental",
52
+ "Vocals"
53
+ ],
54
+ "target_instrument": "Instrumental",
55
+ "use_amp": true
56
+ }
57
+ }
models/mel-roformer-instv7n/model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:74397de5395ed372059b971d6398106f60d92373ada69b62e986e52c9697a5ba
3
+ size 912889223
models/mel-roformer-zfturbo-vocals-v1/LICENSE ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Xocialize (MLX conversion and packaging)
4
+ Copyright (c) 2023-2026 Roman Solovyev (ZFTurbo) — original Music-Source-Separation-Training
5
+ repository and Mel-Band-RoFormer vocals_v1 release weights
6
+
7
+ The original ZFTurbo Mel-Band-RoFormer vocals_v1 weights are distributed as a
8
+ release asset of https://github.com/ZFTurbo/Music-Source-Separation-Training
9
+ (release tag v1.0.0, asset model_vocals_mel_band_roformer_sdr_8.42.ckpt). The
10
+ repository's LICENSE file (MIT) was added on 2024-11-04 in commit
11
+ 6149a22, approximately one year after the v1.0.0 release on 2023-11-06.
12
+ This redistribution treats the weights as inheriting the repository's current
13
+ MIT terms; see the model card for the full disclosure.
14
+
15
+ Permission is hereby granted, free of charge, to any person obtaining a copy
16
+ of this software and associated documentation files (the "Software"), to deal
17
+ in the Software without restriction, including without limitation the rights
18
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
19
+ copies of the Software, and to permit persons to whom the Software is
20
+ furnished to do so, subject to the following conditions:
21
+
22
+ The above copyright notice and this permission notice shall be included in all
23
+ copies or substantial portions of the Software.
24
+
25
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
26
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
27
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
28
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
29
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
30
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
31
+ SOFTWARE.
models/mel-roformer-zfturbo-vocals-v1/config.json ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_class": "MelRoFormerConfig",
3
+ "model_type": "mel_band_roformer",
4
+ "checkpoint_family": "zfturbo_vocals_v1",
5
+ "dim": 192,
6
+ "depth": 8,
7
+ "heads": 8,
8
+ "dim_head": 64,
9
+ "num_bands": 60,
10
+ "num_stems": 1,
11
+ "ff_mult": 4,
12
+ "mlp_expansion_factor": 4,
13
+ "mask_estimator_depth": 1,
14
+ "n_fft": 2048,
15
+ "hop_length": 512,
16
+ "win_length": 2048,
17
+ "sample_rate": 44100,
18
+ "chunk_size": 352800,
19
+ "num_overlap": 2,
20
+ "_dtype": "float16",
21
+ "_mlx_version": "0.31.0",
22
+ "_tool_version": "8380ab8",
23
+ "_source_input": "model_vocals_mel_band_roformer_sdr_8.42.ckpt",
24
+ "_source_sha256": "d9ce706b49cebf0af018590d8deb47ad5434987bf8f7bd3a87a4e5e8c30acb26",
25
+ "_source_repository": "https://github.com/ZFTurbo/Music-Source-Separation-Training",
26
+ "_source_release": "https://github.com/ZFTurbo/Music-Source-Separation-Training/releases/tag/v1.0.0",
27
+ "_source_license_at_conversion": "MIT (current MSS-Training repo LICENSE; LICENSE file added 2024-11-04 in commit 6149a22, post-dating the v1.0.0 release on 2023-11-06)"
28
+ }
models/mel-roformer-zfturbo-vocals-v1/model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ef4aa052845a868cfaff93611477bd8f54d8081bc32f2742a9b3c738f0821191
3
+ size 67402202
models/uvr-mdx-net-inst-hq3/config.json ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "bn": 8,
3
+ "compensate": 1.022,
4
+ "dim_c": 4,
5
+ "g": 48,
6
+ "l": 3,
7
+ "mdx_dim_f_set": 3072,
8
+ "mdx_dim_t_set": 8,
9
+ "mdx_n_fft_scale_set": 6144,
10
+ "num_blocks": 11,
11
+ "primary_stem": "Instrumental"
12
+ }
models/uvr-mdx-net-inst-hq3/model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:72c307239fbc415c9f3c1ef83fee38d19ac98b4b893f1a5afc4345296f48eea8
3
+ size 66871394
validation/automatic-downloads.json ADDED
@@ -0,0 +1,298 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "status": "passed",
3
+ "download_source": "local HTTP mirror of the publication bundle",
4
+ "public_hub_tested": false,
5
+ "fixture_sha256": "f5d0902f372a61ae2784239d0e097c9246c9d9b90be26a4a4805db8c96efad6d",
6
+ "demucs_shifts": 2,
7
+ "demucs_validation_seed": 0,
8
+ "roformer_overlap_windows": 2,
9
+ "source_sha256": {
10
+ "mlx_audio_separator/core.py": "fbac906edf6c125fbf8227050538b51e181a73820e92e7afb31969229cd7db04",
11
+ "mlx_audio_separator/model_hub.py": "96001b3d07b22b52dc727acbdfd37911d86e3d984ca7715fe3d88e1dd4118522",
12
+ "mlx_audio_separator/pretrained_models.json": "c1825eeda86b0739f206c5429e39b2a15e97bf78be12170512816391fe812c75",
13
+ "mlx_audio_separator/demucs_mlx/api.py": "64bcd2846826cb984753de005339712481e47c8d31367a6973f0071ba73a28cc",
14
+ "mlx_audio_separator/demucs_mlx/model_converter.py": "32c83cc1a13fe37b47e732a081be9d07dbb54a18081f6110dae70c318821f5da",
15
+ "mlx_audio_separator/separator/architectures/demucs_separator.py": "0dcf14eb910718d0ca3de41f8eafa31192e0a5a44ce7de929ac92845f866982f",
16
+ "scripts/catalog/validate_downloads.py": "7e38c0d1678235ad340d62f302c25588ae29fe98b526806089da68235da59f4d"
17
+ },
18
+ "models": [
19
+ {
20
+ "model": "bs-roformer-sw",
21
+ "legacy_name": "BS-Roformer-SW.ckpt",
22
+ "status": "passed",
23
+ "offline_output_bit_identical": true,
24
+ "stems": {
25
+ "bass": {
26
+ "shape": [
27
+ 617400,
28
+ 2
29
+ ],
30
+ "peak": 0.3247218430042267,
31
+ "raw_sha256": "e0308e6f3b8c4e82cb2b65e39e029b6f7d53c8527f58cf7de1aa1ca25ce2d10a"
32
+ },
33
+ "drums": {
34
+ "shape": [
35
+ 617400,
36
+ 2
37
+ ],
38
+ "peak": 0.00474020279943943,
39
+ "raw_sha256": "f526e6f84b02efc35d665085da92e37f2915617489e808b5d203940e12576271"
40
+ },
41
+ "other": {
42
+ "shape": [
43
+ 617400,
44
+ 2
45
+ ],
46
+ "peak": 2.648953886819072e-05,
47
+ "raw_sha256": "320f6cdbf3c128e5fdcd78a9e861ee900b9457000be542ea60084b13b037e1bb"
48
+ },
49
+ "vocals": {
50
+ "shape": [
51
+ 617400,
52
+ 2
53
+ ],
54
+ "peak": 0.27387580275535583,
55
+ "raw_sha256": "3e195538e564ce2ee672061f2019479fd2e4b3c1591f5dc687eaca30eab4f3b2"
56
+ },
57
+ "guitar": {
58
+ "shape": [
59
+ 617400,
60
+ 2
61
+ ],
62
+ "peak": 2.9653065212187357e-05,
63
+ "raw_sha256": "cae2ccee73471dcbc9c6bc86c6412faf28e7162b7688b72f4df71a4c4ffe2bdf"
64
+ },
65
+ "piano": {
66
+ "shape": [
67
+ 617400,
68
+ 2
69
+ ],
70
+ "peak": 0.3620210587978363,
71
+ "raw_sha256": "aec64b500b2a552fc18207066573679d0a474e55d61c0b66e4bcb0dbdd9548b0"
72
+ }
73
+ },
74
+ "conversion_dependencies_blocked": true,
75
+ "offline_network_blocked": true
76
+ },
77
+ {
78
+ "model": "mel-roformer-instv7n",
79
+ "legacy_name": "mel_band_roformer_instrumental_instv7n_gabox.ckpt",
80
+ "status": "passed",
81
+ "offline_output_bit_identical": true,
82
+ "stems": {
83
+ "instrumental": {
84
+ "shape": [
85
+ 617400,
86
+ 2
87
+ ],
88
+ "peak": 0.512724757194519,
89
+ "raw_sha256": "16eded8b94f233b67adb17bbdb2d4a794e85c4565829af8f66b39c2db6bc545a"
90
+ },
91
+ "vocals": {
92
+ "shape": [
93
+ 617400,
94
+ 2
95
+ ],
96
+ "peak": 0.29248708486557007,
97
+ "raw_sha256": "e809c0b8ac6cb5314e9e49e7cff4a0a0838da46669d1550d6e2bb2ad8cb2a856"
98
+ }
99
+ },
100
+ "conversion_dependencies_blocked": true,
101
+ "offline_network_blocked": true
102
+ },
103
+ {
104
+ "model": "uvr-mdx-net-inst-hq3",
105
+ "legacy_name": "UVR-MDX-NET-Inst_HQ_3.onnx",
106
+ "status": "passed",
107
+ "offline_output_bit_identical": true,
108
+ "stems": {
109
+ "vocals": {
110
+ "shape": [
111
+ 617400,
112
+ 2
113
+ ],
114
+ "peak": 0.32498443126678467,
115
+ "raw_sha256": "dea2889222b419d685a5d8c1fbe7717d8af4dd9234b9b8d3718df32323a34a19"
116
+ },
117
+ "instrumental": {
118
+ "shape": [
119
+ 617400,
120
+ 2
121
+ ],
122
+ "peak": 0.2586144208908081,
123
+ "raw_sha256": "0d15b30d669fe96a4214aa79839eb31029940d1e7b88cbd1182acf70726b6377"
124
+ }
125
+ },
126
+ "conversion_dependencies_blocked": true,
127
+ "offline_network_blocked": true
128
+ },
129
+ {
130
+ "model": "htdemucs",
131
+ "legacy_name": "htdemucs.yaml",
132
+ "status": "passed",
133
+ "offline_output_bit_identical": true,
134
+ "stems": {
135
+ "drums": {
136
+ "shape": [
137
+ 617400,
138
+ 2
139
+ ],
140
+ "peak": 0.0019488489488139749,
141
+ "raw_sha256": "2d1413830bf9faf27b534c5604e7df4d6b43a8864d701186ce00a32f8367d217"
142
+ },
143
+ "bass": {
144
+ "shape": [
145
+ 617400,
146
+ 2
147
+ ],
148
+ "peak": 0.36053600907325745,
149
+ "raw_sha256": "e1fb147bf64048a2a86909042a32693545c48c94fc42e00fbfd93f789947f772"
150
+ },
151
+ "other": {
152
+ "shape": [
153
+ 617400,
154
+ 2
155
+ ],
156
+ "peak": 0.36171454191207886,
157
+ "raw_sha256": "5da76923636e599e3919a75508cbff4e69de491f6964fd8f65b0a802988f2a3b"
158
+ },
159
+ "vocals": {
160
+ "shape": [
161
+ 617400,
162
+ 2
163
+ ],
164
+ "peak": 0.30794283747673035,
165
+ "raw_sha256": "402db8962619441481c78a98ae4266a3dbac05aea02573ff38a42d4e2414a02d"
166
+ }
167
+ },
168
+ "conversion_dependencies_blocked": true,
169
+ "offline_network_blocked": true
170
+ },
171
+ {
172
+ "model": "htdemucs_ft",
173
+ "legacy_name": "htdemucs_ft.yaml",
174
+ "status": "passed",
175
+ "offline_output_bit_identical": true,
176
+ "stems": {
177
+ "drums": {
178
+ "shape": [
179
+ 617400,
180
+ 2
181
+ ],
182
+ "peak": 0.0010993701871484518,
183
+ "raw_sha256": "021f3d9461374751c44e7af8e8c4252cbacf96e1a131586b352ea5026bb9d9c5"
184
+ },
185
+ "bass": {
186
+ "shape": [
187
+ 617400,
188
+ 2
189
+ ],
190
+ "peak": 0.358381986618042,
191
+ "raw_sha256": "c77c2fe756fe1d20ec8d223c87bedae54cf5a6ff562c5ab349b277852db13c0f"
192
+ },
193
+ "other": {
194
+ "shape": [
195
+ 617400,
196
+ 2
197
+ ],
198
+ "peak": 0.3595317602157593,
199
+ "raw_sha256": "6885bb26dc75bfe013154ebbe6035e2df501fcd650d6f60e8cb5b1ddbd5dada4"
200
+ },
201
+ "vocals": {
202
+ "shape": [
203
+ 617400,
204
+ 2
205
+ ],
206
+ "peak": 0.2946012616157532,
207
+ "raw_sha256": "d594e3bfdc97f1d6d96aab0ad9ee030f67520f713c759da53d9812ce2b67d791"
208
+ }
209
+ },
210
+ "conversion_dependencies_blocked": true,
211
+ "offline_network_blocked": true
212
+ },
213
+ {
214
+ "model": "htdemucs_6s",
215
+ "legacy_name": "htdemucs_6s.yaml",
216
+ "status": "passed",
217
+ "offline_output_bit_identical": true,
218
+ "stems": {
219
+ "drums": {
220
+ "shape": [
221
+ 617400,
222
+ 2
223
+ ],
224
+ "peak": 0.0005281093181110919,
225
+ "raw_sha256": "23386388e11b7d2e846eebf77a46d08ca55f075131679668fb8f6b80914bcf22"
226
+ },
227
+ "bass": {
228
+ "shape": [
229
+ 617400,
230
+ 2
231
+ ],
232
+ "peak": 0.3143438696861267,
233
+ "raw_sha256": "cf2e1c208da316f7ee660de9541220825d8fd8f59808f581f755abd21aa28ff8"
234
+ },
235
+ "other": {
236
+ "shape": [
237
+ 617400,
238
+ 2
239
+ ],
240
+ "peak": 0.0002693339192774147,
241
+ "raw_sha256": "65decc5bd490b7b393da0236101dc5f0ebc7b7ea1c3d3fd893e4cf00a2645a40"
242
+ },
243
+ "vocals": {
244
+ "shape": [
245
+ 617400,
246
+ 2
247
+ ],
248
+ "peak": 0.2923990786075592,
249
+ "raw_sha256": "bbaee6fdf2359590d64aec7e95313c1f75bdf9deae7441bc800f24c2db4cbcaf"
250
+ },
251
+ "guitar": {
252
+ "shape": [
253
+ 617400,
254
+ 2
255
+ ],
256
+ "peak": 0.00031150958966463804,
257
+ "raw_sha256": "b153959c43c377d755894527901b8457279228ae3699f64c0723dbb208b9c68e"
258
+ },
259
+ "piano": {
260
+ "shape": [
261
+ 617400,
262
+ 2
263
+ ],
264
+ "peak": 0.35046419501304626,
265
+ "raw_sha256": "4768791a4f50b9cd1d9a3c418a4141027f09f4c5ee0b209baed0b8575c9b2b9e"
266
+ }
267
+ },
268
+ "conversion_dependencies_blocked": true,
269
+ "offline_network_blocked": true
270
+ },
271
+ {
272
+ "model": "mel-roformer-zfturbo-vocals-v1",
273
+ "legacy_name": "mel-roformer-zfturbo-vocals-v1-mlx",
274
+ "status": "passed",
275
+ "offline_output_bit_identical": true,
276
+ "stems": {
277
+ "vocals": {
278
+ "shape": [
279
+ 617400,
280
+ 2
281
+ ],
282
+ "peak": 0.21046893298625946,
283
+ "raw_sha256": "0726c4b5da0b4745206f414de8b53a59aab7e72abe62dc7bfee11cf7a651383b"
284
+ },
285
+ "instrumental": {
286
+ "shape": [
287
+ 617400,
288
+ 2
289
+ ],
290
+ "peak": 0.5118863582611084,
291
+ "raw_sha256": "a835f80756717db407ffa42d6a7591c397edc7132ff8ef684aaf3e10f9f414cc"
292
+ }
293
+ },
294
+ "conversion_dependencies_blocked": true,
295
+ "offline_network_blocked": true
296
+ }
297
+ ]
298
+ }
validation/bs-roformer-sw.json ADDED
@@ -0,0 +1,92 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model": "bs-roformer-sw",
3
+ "status": "passed",
4
+ "mode": "published",
5
+ "fixture_sha256": "f5d0902f372a61ae2784239d0e097c9246c9d9b90be26a4a4805db8c96efad6d",
6
+ "fixture_frames": 617400,
7
+ "sample_rate": 44100,
8
+ "stems": {
9
+ "bass": {
10
+ "shape": [
11
+ 617400,
12
+ 2
13
+ ],
14
+ "peak": 0.3247218430042267,
15
+ "finite": true
16
+ },
17
+ "drums": {
18
+ "shape": [
19
+ 617400,
20
+ 2
21
+ ],
22
+ "peak": 0.00474020279943943,
23
+ "finite": true
24
+ },
25
+ "other": {
26
+ "shape": [
27
+ 617400,
28
+ 2
29
+ ],
30
+ "peak": 2.648953886819072e-05,
31
+ "finite": true
32
+ },
33
+ "vocals": {
34
+ "shape": [
35
+ 617400,
36
+ 2
37
+ ],
38
+ "peak": 0.27387580275535583,
39
+ "finite": true
40
+ },
41
+ "guitar": {
42
+ "shape": [
43
+ 617400,
44
+ 2
45
+ ],
46
+ "peak": 2.9653065212187357e-05,
47
+ "finite": true
48
+ },
49
+ "piano": {
50
+ "shape": [
51
+ 617400,
52
+ 2
53
+ ],
54
+ "peak": 0.3620210587978363,
55
+ "finite": true
56
+ }
57
+ },
58
+ "seconds_load_separate_write": 1.4203401249833405,
59
+ "performance_measurement": false,
60
+ "network_disabled": true,
61
+ "conversion_dependencies_blocked": true,
62
+ "settings": {
63
+ "chunk_samples": 588800,
64
+ "overlap_windows": 2
65
+ },
66
+ "source_conversion_roundtrip": {
67
+ "bass": {
68
+ "max_abs_error": 0.0,
69
+ "bit_identical": true
70
+ },
71
+ "drums": {
72
+ "max_abs_error": 0.0,
73
+ "bit_identical": true
74
+ },
75
+ "other": {
76
+ "max_abs_error": 0.0,
77
+ "bit_identical": true
78
+ },
79
+ "vocals": {
80
+ "max_abs_error": 0.0,
81
+ "bit_identical": true
82
+ },
83
+ "guitar": {
84
+ "max_abs_error": 0.0,
85
+ "bit_identical": true
86
+ },
87
+ "piano": {
88
+ "max_abs_error": 0.0,
89
+ "bit_identical": true
90
+ }
91
+ }
92
+ }
validation/htdemucs.json ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model": "htdemucs",
3
+ "status": "passed",
4
+ "mode": "published",
5
+ "fixture_sha256": "f5d0902f372a61ae2784239d0e097c9246c9d9b90be26a4a4805db8c96efad6d",
6
+ "fixture_frames": 617400,
7
+ "sample_rate": 44100,
8
+ "stems": {
9
+ "drums": {
10
+ "shape": [
11
+ 617400,
12
+ 2
13
+ ],
14
+ "peak": 0.0019488489488139749,
15
+ "finite": true
16
+ },
17
+ "bass": {
18
+ "shape": [
19
+ 617400,
20
+ 2
21
+ ],
22
+ "peak": 0.36053600907325745,
23
+ "finite": true
24
+ },
25
+ "other": {
26
+ "shape": [
27
+ 617400,
28
+ 2
29
+ ],
30
+ "peak": 0.36171454191207886,
31
+ "finite": true
32
+ },
33
+ "vocals": {
34
+ "shape": [
35
+ 617400,
36
+ 2
37
+ ],
38
+ "peak": 0.30794283747673035,
39
+ "finite": true
40
+ }
41
+ },
42
+ "seconds_load_separate_write": 0.5797994589665905,
43
+ "performance_measurement": false,
44
+ "network_disabled": true,
45
+ "conversion_dependencies_blocked": true,
46
+ "settings": {
47
+ "overlap_fraction": 0.25,
48
+ "shifts": 2
49
+ },
50
+ "validation_seed": 0
51
+ }
validation/htdemucs_6s.json ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model": "htdemucs_6s",
3
+ "status": "passed",
4
+ "mode": "published",
5
+ "fixture_sha256": "f5d0902f372a61ae2784239d0e097c9246c9d9b90be26a4a4805db8c96efad6d",
6
+ "fixture_frames": 617400,
7
+ "sample_rate": 44100,
8
+ "stems": {
9
+ "drums": {
10
+ "shape": [
11
+ 617400,
12
+ 2
13
+ ],
14
+ "peak": 0.0005281093181110919,
15
+ "finite": true
16
+ },
17
+ "bass": {
18
+ "shape": [
19
+ 617400,
20
+ 2
21
+ ],
22
+ "peak": 0.3143438696861267,
23
+ "finite": true
24
+ },
25
+ "other": {
26
+ "shape": [
27
+ 617400,
28
+ 2
29
+ ],
30
+ "peak": 0.0002693339192774147,
31
+ "finite": true
32
+ },
33
+ "vocals": {
34
+ "shape": [
35
+ 617400,
36
+ 2
37
+ ],
38
+ "peak": 0.2923990786075592,
39
+ "finite": true
40
+ },
41
+ "guitar": {
42
+ "shape": [
43
+ 617400,
44
+ 2
45
+ ],
46
+ "peak": 0.00031150958966463804,
47
+ "finite": true
48
+ },
49
+ "piano": {
50
+ "shape": [
51
+ 617400,
52
+ 2
53
+ ],
54
+ "peak": 0.35046419501304626,
55
+ "finite": true
56
+ }
57
+ },
58
+ "seconds_load_separate_write": 0.864158249925822,
59
+ "performance_measurement": false,
60
+ "network_disabled": true,
61
+ "conversion_dependencies_blocked": true,
62
+ "settings": {
63
+ "overlap_fraction": 0.25,
64
+ "shifts": 2
65
+ },
66
+ "validation_seed": 0
67
+ }
validation/htdemucs_ft.json ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model": "htdemucs_ft",
3
+ "status": "passed",
4
+ "mode": "published",
5
+ "fixture_sha256": "f5d0902f372a61ae2784239d0e097c9246c9d9b90be26a4a4805db8c96efad6d",
6
+ "fixture_frames": 617400,
7
+ "sample_rate": 44100,
8
+ "stems": {
9
+ "drums": {
10
+ "shape": [
11
+ 617400,
12
+ 2
13
+ ],
14
+ "peak": 0.0010993701871484518,
15
+ "finite": true
16
+ },
17
+ "bass": {
18
+ "shape": [
19
+ 617400,
20
+ 2
21
+ ],
22
+ "peak": 0.358381986618042,
23
+ "finite": true
24
+ },
25
+ "other": {
26
+ "shape": [
27
+ 617400,
28
+ 2
29
+ ],
30
+ "peak": 0.3595317602157593,
31
+ "finite": true
32
+ },
33
+ "vocals": {
34
+ "shape": [
35
+ 617400,
36
+ 2
37
+ ],
38
+ "peak": 0.2946012616157532,
39
+ "finite": true
40
+ }
41
+ },
42
+ "seconds_load_separate_write": 1.800742125022225,
43
+ "performance_measurement": false,
44
+ "network_disabled": true,
45
+ "conversion_dependencies_blocked": true,
46
+ "settings": {
47
+ "overlap_fraction": 0.25,
48
+ "shifts": 2
49
+ },
50
+ "validation_seed": 0
51
+ }
validation/mel-roformer-instv7n.json ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model": "mel-roformer-instv7n",
3
+ "status": "passed",
4
+ "mode": "published",
5
+ "fixture_sha256": "f5d0902f372a61ae2784239d0e097c9246c9d9b90be26a4a4805db8c96efad6d",
6
+ "fixture_frames": 617400,
7
+ "sample_rate": 44100,
8
+ "stems": {
9
+ "instrumental": {
10
+ "shape": [
11
+ 617400,
12
+ 2
13
+ ],
14
+ "peak": 0.512724757194519,
15
+ "finite": true
16
+ },
17
+ "vocals": {
18
+ "shape": [
19
+ 617400,
20
+ 2
21
+ ],
22
+ "peak": 0.29248708486557007,
23
+ "finite": true
24
+ }
25
+ },
26
+ "seconds_load_separate_write": 1.1987386250402778,
27
+ "performance_measurement": false,
28
+ "network_disabled": true,
29
+ "conversion_dependencies_blocked": true,
30
+ "settings": {
31
+ "chunk_samples": 485100,
32
+ "overlap_windows": 2
33
+ },
34
+ "source_conversion_roundtrip": {
35
+ "instrumental": {
36
+ "max_abs_error": 0.0,
37
+ "bit_identical": true
38
+ },
39
+ "vocals": {
40
+ "max_abs_error": 0.0,
41
+ "bit_identical": true
42
+ }
43
+ }
44
+ }
validation/mel-roformer-zfturbo-vocals-v1.json ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model": "mel-roformer-zfturbo-vocals-v1",
3
+ "status": "passed",
4
+ "mode": "published",
5
+ "fixture_sha256": "f5d0902f372a61ae2784239d0e097c9246c9d9b90be26a4a4805db8c96efad6d",
6
+ "fixture_frames": 617400,
7
+ "sample_rate": 44100,
8
+ "stems": {
9
+ "vocals": {
10
+ "shape": [
11
+ 617400,
12
+ 2
13
+ ],
14
+ "peak": 0.21046893298625946,
15
+ "finite": true
16
+ },
17
+ "instrumental": {
18
+ "shape": [
19
+ 617400,
20
+ 2
21
+ ],
22
+ "peak": 0.5118863582611084,
23
+ "finite": true
24
+ }
25
+ },
26
+ "seconds_load_separate_write": 0.689663999946788,
27
+ "performance_measurement": false,
28
+ "network_disabled": true,
29
+ "conversion_dependencies_blocked": true,
30
+ "settings": {
31
+ "chunk_samples": 352800,
32
+ "overlap_windows": 2
33
+ }
34
+ }
validation/uvr-mdx-net-inst-hq3.json ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model": "uvr-mdx-net-inst-hq3",
3
+ "status": "passed",
4
+ "mode": "published",
5
+ "fixture_sha256": "f5d0902f372a61ae2784239d0e097c9246c9d9b90be26a4a4805db8c96efad6d",
6
+ "fixture_frames": 617400,
7
+ "sample_rate": 44100,
8
+ "stems": {
9
+ "vocals": {
10
+ "shape": [
11
+ 617400,
12
+ 2
13
+ ],
14
+ "peak": 0.32498443126678467,
15
+ "finite": true
16
+ },
17
+ "instrumental": {
18
+ "shape": [
19
+ 617400,
20
+ 2
21
+ ],
22
+ "peak": 0.2586144208908081,
23
+ "finite": true
24
+ }
25
+ },
26
+ "seconds_load_separate_write": 0.7514086659066379,
27
+ "performance_measurement": false,
28
+ "network_disabled": true,
29
+ "conversion_dependencies_blocked": true,
30
+ "settings": {
31
+ "overlap_fraction": 0.25,
32
+ "segment_size": 256
33
+ },
34
+ "source_conversion_roundtrip": {
35
+ "vocals": {
36
+ "max_abs_error": 0.0,
37
+ "bit_identical": true
38
+ },
39
+ "instrumental": {
40
+ "max_abs_error": 0.0,
41
+ "bit_identical": true
42
+ }
43
+ }
44
+ }