Model artefacts v2 — MLX
Every model artefact stemd loads, converted to safetensors for MLX, and one it
has retired.
| file | sha256 | bytes |
|---|---|---|
htdemucs.safetensors |
339d267a7a6983a11eedbdc00413c602a65e9b9103f695fb5c2b2a481cd9d297 |
168,005,865 |
htdemucs_ft.safetensors |
53f03b1ad4b4d211025a35da65460ba61a17547adf9c0544cad0ebcc8d7bbabb |
672,024,519 |
bs_polarformer.safetensors |
9e08a5e075204e893a4eb393ae64d47177c76f11a306686db1343d7cc7c468f6 |
102,201,832 |
bs_roformer_viperx.safetensors |
fa296577206144929917601636b65ccdc407b6e6c2f209e4312d9d2b7b975a8a |
639,109,056 |
stemd pins those digests and re-checks them on every load, so a mismatch fails
the install rather than loading whatever the network returned.
Presets. Fast is htdemucs. Balanced is htdemucs_ft. Quality is
bs_polarformer for the vocals and htdemucs_ft's drums specialist for the
rest — so having Balanced installed leaves it 102 MB to fetch rather than 774.
bs_roformer_viperx was Quality's vocals half until BS PolarFormer replaced it.
It is retired rather than withdrawn: nothing in stemd loads it any more, and the
file stays so that a build pinning the digest above still installs, and so the
comparison in docs/evaluation.md stays reproducible. The two score the same on
MUSDB and run at the same speed; PolarFormer leaves 13.5 dB less voice in the
harmonics on electronic material, which no benchmark caught and a listening test
did. It is also a third the parameters, and a sixth the bytes.
Provenance
The two demucs artefacts are mlx-community/demucs-mlx,
byte-identical, mirrored here so the app depends on one release rather than on
an upstream that could move or disappear.
Neither RoFormer has an upstream: nobody publishes an MLX BS-RoFormer. Both are
converted by tools/export/convert_roformer.py with the architecture and config
from ZFTurbo/Music-Source-Separation-Training
— bs_polarformer from ZFTurbo's model_bs_polarformer_float16.ckpt,
bs_roformer_viperx from viperx's model_bs_roformer_ep_317_sdr_12.9755.ckpt.
Tensor names and values are unchanged and nothing is transposed — only the
container differs.
The float16 is the checkpoint's and not the converter's: it is the only form
PolarFormer's weights are published in, which is why its 51.1M parameters land
in 102 MB where viperx's 159.8M float32 take 639. The float32 ONNX doing the
rounds is these same values widened.
None of these weights are covered by this repository's licence. demucs is
MIT; the two RoFormer checkpoints are ZFTurbo's and viperx's respectively, and
their terms are theirs to state.
models-v1 holds the retired TorchScript traces, which nothing loads any more.