Unblend
Unblend is a music source separation inference library designed to be fast and easy to use. On CUDA it runs HTDemucs up to 10x faster than upstream Demucs at equal quality (on H200s against upstream on the PyTorch 2.1 it supports). It implements one consistent API across four supported model architectures: HTDemucs, BS-RoFormer, Mel-Band RoFormer, and SCNet.
Installation
Prerequisites
- FFmpeg v4–v8 (not v9 yet)
uv- Optional: C/C++ compiler such as GCC, Clang, or MSVC - enables torch.compile support
- Optional: NVCC (NVIDIA CUDA Compiler) and Ninja - enables custom CUDA kernels
Install using uv
Create a virtual environment backed by a uv-managed Python:
$ uv python install 3.12
$ uv venv --managed-python --python 3.12
$ source .venv/bin/activate
Then install Unblend into that environment:
$ uv pip install unblend --torch-backend=auto
Temporary Installation
With uv, you can use the uvx command to run Unblend without installing it permanently on your system.
$ uvx unblend separate audio_file.mp3
Note: uvx can't pick a PyTorch build for your GPU, so it gets PyPI's default wheel: GPUs only work on Apple Silicon, or on Linux with PyTorch's default CUDA version.
CLI Usage
After installing Unblend:
$ unblend --help
$ unblend separate audio_file.mp3
$ unblend separate audio_file_1.mp3 audio_file_2.mp3 music_folder/
Stems are written to separated/{model}/{track}/{stem}.wav by default, at the model's sample rate (44.1 kHz stereo for every registered model) whatever the input's. Change it with -o, using the variables {model}, {track}, {parent} (the name of the track's folder), {stem}, {ext}, {date}, {time} and {timestamp}, and pick the container with -f (e.g. -f flac). Two tracks with the same name in different folders need {parent} in the template, or they would write to the same place (the CLI refuses rather than overwrite). Other common options:
-m MODELpicks a model (seeunblend models list); the defaultautopicks an HTDemucs model.--isolate-stem vocalswrites justvocalsandno_vocals.--seed 0, or--shifts 0, makes output reproducible run to run.unblend tunemeasures the fastest batch size and compile setting for your GPU.
Models
| Model | Architecture | Stems | Weights license |
|---|---|---|---|
htdemucs (default) |
HTDemucs | drums, bass, other, vocals | unlicensed |
htdemucs_ft |
HTDemucs (4 fine-tuned models) | drums, bass, other, vocals | unlicensed |
htdemucs_6s |
HTDemucs | drums, bass, other, vocals, guitar, piano | unlicensed |
bs_roformer_sw |
BS-RoFormer | bass, drums, other, vocals, guitar, piano | unlicensed |
bs_roformer_anvuew |
BS-RoFormer | vocals, other | GPL-3.0 |
melband_roformer_kim |
Mel-Band RoFormer | vocals, other | MIT |
scnet_small |
SCNet | drums, bass, other, vocals | unlicensed |
scnet_xl_wide_v5 |
SCNet | drums, bass, other, vocals | unlicensed |
roformer_vocals_ensemble |
ensemble | vocals, other | mixed |
htdemucs_scnet_ensemble |
ensemble | drums, bass, other, vocals | unlicensed |
API Usage
Unblend has several programmatic interfaces:
- ONNX export
- Python API
- Browser API
- Demucs Cog (hosted on Replicate)
Metadata
Release files for unblend 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| unblend-1.0.0.tar.gz | 222.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| unblend-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 470.8 kB
Release files / unblend-1.0.0.tar.gz
| Download URL | unblend-1.0.0.tar.gz |
|---|---|
| Size | 222.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
77e45c925e7fbf2b136d96480939b9199330381c32d9cc0c43e0b0366741b492
|
|
BLAKE2b-256 checksum How to use checksums |
b9b3f4f9880c7d1cb293b0226ec19abb6aca1cfa9d4d3d9524712884bf11824d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / unblend-1.0.0-py3-none-any.whl
| Download URL | unblend-1.0.0-py3-none-any.whl |
|---|---|
| Size | 248.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3f8fd410ab0d4f5d95dcc3752eecc2e7e31adfddbbb3b476ae5370ebba2732a0
|
|
BLAKE2b-256 checksum How to use checksums |
234fbee58e32558739b000f416792c0293ff2b82128ed769bc6ec1106b6373fd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|