Skip to main content

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 MODEL picks a model (see unblend models list); the default auto picks an HTDemucs model.
  • --isolate-stem vocals writes just vocals and no_vocals.
  • --seed 0, or --shifts 0, makes output reproducible run to run.
  • unblend tune measures 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:

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)

Source distribution for unblend 1.0.0
File Size Uploaded
unblend-1.0.0.tar.gz 222.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for unblend 1.0.0
File Interpreter ABI Platform
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}

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page