MLX Audio Separator

Separate music into vocals, drums, bass, guitar, piano, and other instruments on your Apple Silicon Mac. This repository contains seven ready-to-use safetensors models for mlx-audio-separator, with MLX inference, matching configurations, and individual validation reports. No PyTorch or ONNX runtime is required to use these weights.

Download one model or the full collection. All weights are hosted here, organized by model ID.

Models

Model Output stems Precision Size
BS-RoFormer-SW Bass, drums, other, vocals, guitar, piano float32 666.5 MiB
Mel-RoFormer InstV7n Instrumental, vocals float32 870.6 MiB
UVR-MDX-NET Inst HQ3 Instrumental, vocals float32 63.8 MiB
HTDemucs Drums, bass, other, vocals float32 160.2 MiB
HTDemucs_FT Drums, bass, other, vocals float32 640.9 MiB
HTDemucs_6s Drums, bass, other, vocals, guitar, piano float32 104.6 MiB
ZFTurbo Mel-RoFormer Vocals v1 Vocals, instrumental float16 64.3 MiB

BS-RoFormer-SW separates six instruments in one model. HTDemucs produces four stems; HTDemucs_FT uses four specialist models, and HTDemucs_6s adds guitar and piano. For vocal and instrumental separation, choose InstV7n, Inst HQ3, or ZFTurbo Vocals v1.

All models produce stereo audio at 44.1 kHz. The complete collection is 2.51 GiB. Download sizes include weights and configurations; runtime memory use is higher and varies by model. Weight precision describes the stored tensors, not the precision of every inference operation.

Quick start

Requires an Apple Silicon Mac running macOS 26+, native Python 3.10+, and mlx-audio-separator 0.1.21 or later.

Release availability: automatic downloads require the upcoming 0.1.21 package release. The model files are available now through direct downloads. The CLI and Python examples below apply once 0.1.21 is released; PyPI 0.1.20 does not include this catalog integration.

Install mlx-audio-separator and choose a model:

python -m pip install "mlx-audio-separator>=0.1.21"
mlx-audio-separator song.m4a -m bs-roformer-sw --output_dir stems

The first use downloads the selected model automatically. The package verifies its weights and configuration against bundled SHA-256 hashes, caches them, and separates your audio. Later runs reuse the cache and work offline. You do not need to download or convert a checkpoint yourself.

The CLI writes FLAC by default; add --output_format WAV for WAV files.

Python

from mlx_audio_separator import Separator

separator = Separator(output_dir="stems", output_format="WAV")
separator.load_model("bs-roformer-sw")
output_files = separator.separate("song.m4a")

Reuse the separator for additional files. Each of the seven model cards lists its short catalog ID and existing package name; both select the same safetensors. For example, BS-Roformer-SW.ckpt remains an alias for bs-roformer-sw, and htdemucs_ft.yaml remains an alias for htdemucs_ft. The .ckpt, .onnx, and .yaml aliases are model names, not the formats downloaded for these entries. Choose a model explicitly: the package's historical default is a different BS-RoFormer checkpoint.

Cache and offline use

Automatic downloads go to ~/.cache/mlx-audio-separator/models/<model-id>/. Use --model_file_dir /path/to/models in the CLI, or model_file_dir="/path/to/models" in Python, to choose another model directory. AUDIO_SEPARATOR_MODEL_DIR can select an existing directory for both interfaces and takes precedence over those options.

Set HF_HUB_OFFLINE=1 or MLX_AUDIO_SEPARATOR_NO_DOWNLOAD=1 to prohibit downloads. A complete, verified cache works without network access. A missing or damaged file produces a clear error in offline mode; with downloads enabled, the package fetches the required replacement. Failed transfers do not overwrite existing files.

To free space, remove an unused model's folder. The next use restores the required files. The package also reuses matching files from older model caches where possible.

Direct downloads

You can also download weights and configurations directly from this repository's Files and versions tab, or use the Hugging Face client. This is useful for manual setup or preparing an offline machine.

python -m pip install huggingface_hub
from huggingface_hub import snapshot_download

snapshot_download(
    repo_id="ssmall256/mlx-audio-separator",
    local_dir="mlx-separator-models",
    allow_patterns=["models/bs-roformer-sw/*"],
)

Point the normal CLI at the downloaded models/ directory:

HF_HUB_OFFLINE=1 mlx-audio-separator song.m4a \
  -m bs-roformer-sw \
  --model_file_dir mlx-separator-models/models \
  --output_dir stems

Keep each model's files together under its model ID. Replace bs-roformer-sw in both examples to choose another model, or use models/* as the download pattern for all seven. The package verifies manually downloaded files using the same checks as automatic downloads.

For reproducible downloads, pass a specific commit with snapshot_download(revision=...). Use a package release whose bundled file hashes match that revision. See the Hugging Face download guide for more options.

Inference settings

RoFormer models use two overlapping windows by default: each chunk starts halfway through the preceding chunk. Demucs uses two shifts and 25% overlap. Shift offsets are random by default; set --demucs_seed 0 or demucs_params={"seed": 0} for repeatable selection. Inst HQ3 uses 25% overlap and a segment size of 256. The normal package options remain available to adjust these settings.

The catalog manifest records filenames, sizes, SHA-256 hashes, source checkpoints, and conversion details. Each model card includes file hashes, and SHA256SUMS covers the repository's distributed files.

Validation

Every model passed offline inference on a 14-second real-music excerpt in a fresh process, producing the expected full-length, finite stereo stems at 44.1 kHz. These checks ran with network access disabled and imports of PyTorch, ONNX, and ONNX Runtime blocked.

The BS-RoFormer-SW, InstV7n, and Inst HQ3 conversions produced bit-identical unquantized stems to their original checkpoints loaded through the same MLX implementations. The three Demucs models and ZFTurbo Vocals v1 preserve the bytes of their existing published safetensors, verified against pinned source revisions.

The normal package loader also passed first-use download and offline-cache checks for all seven models using a local HTTP mirror of these files. Both runs produced bit-identical unquantized stems, with conversion dependencies blocked. See the automatic-download report.

After publication, all seven models were downloaded anonymously from this Hugging Face repository into an empty cache through the package's normal download resolver. Every file matched its expected size and SHA-256, and a second pass reused the cache with downloads disabled. See the public-download verification. This checks public availability and artifact integrity; it does not repeat model inference.

These checks establish artifact integrity and conversion consistency. The 14-second check is not a full quality evaluation or a speed benchmark. See Validation details for per-model reports and earlier comparisons against python-audio-separator, the upstream project used for PyTorch references.

Licensing and credit

Model weights have individual licensing terms; there is no single license covering the entire collection. The MIT license in LICENSE-code applies to the catalog helper. See Third-Party Notices for checkpoint and conversion credits, upstream software attribution, and links to the included model-specific license texts.

Models Weight license information
BS-RoFormer-SW The source model card lists the license as unknown.
Mel-RoFormer InstV7n No weight-specific redistribution license is recorded in the source metadata.
UVR-MDX-NET Inst HQ3 No weight-specific redistribution license is recorded in the source metadata.
HTDemucs, HTDemucs_FT, HTDemucs_6s MIT, as declared by the pinned Demucs MLX source repository; license notices accompany the weights.
ZFTurbo Vocals v1 The source card declares MIT, with a caveat that the source license was added after the checkpoint release. Its notice is included unchanged.

An unknown weight license is not a grant of permission. Consult the individual model cards and original sources for the terms relevant to your use.

The fixed BS-RoFormer-SW checkpoint traces to jarredou's distribution, mirrored by enerjazzer; InstV7n to Gabox; Inst HQ3 to the UVR/TRvlvr model release; Demucs to Meta and the Demucs contributors; and ZFTurbo Vocals v1 to Roman Solovyev (ZFTurbo), with its existing MLX conversion from mlx-community. Architecture credit belongs to the BS-RoFormer, Mel-Band-RoFormer, Demucs, and MDX/UVR authors and contributors.

MLX separator development and catalog preparation are maintained by ssmall256. Report runtime issues or request additional models in the mlx-audio-separator issue tracker.

Downloads last month

-

Downloads are not tracked for this model. How to track
MLX
Hardware compatibility
Log In to add your hardware

Quantized

Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support