The original facebookresearch/demucs repository has been read-only since January 1, 2025. Demucs stem separation is still one of the strongest free options you can run on your own machine, provided you install it from the fork that shipped v4.1.0 and accept that guitar and piano are where it gives up first.
Start From the Maintained Demucs Repo, Not the Archived One
Two GitHub repositories carry the same README, and only one of them still receives fixes. facebookresearch/demucs is archived and read-only, and its own README points elsewhere. The maintained home is adefossez/demucs, where author Alexandre Défossez writes that this is "the officially maintained Demucs now that I have left Meta to join Kyutai," with the caveat to "expect slow replies and no new feature for now."
That distinction changes the install commands, not the URL alone.
What v4.1.0 changed
The release notes entry dated 11/07/2026 lists Demucs v4.1.0 with "modernized packaging, lighter inference dependencies, numerous fixes, and pretrained models hosted on Hugging Face." Practical consequences:
| Item | Archived repo | Maintained repo (v4.1.0) |
|---|---|---|
| Minimum Python | 3.8 | 3.10 |
| Quickest run | pip install -U demucs | uvx demucs MY_TRACK.mp3 (no install step) |
| Permanent install | pip install -U demucs | uv tool install demucs (pip still works) |
| ffmpeg | Required | Optional, needed for FLAC output and formats sphn cannot decode |
| Quantized models | Included | Need the extra: uvx "demucs[quantized]" -n mdx_q MY_TRACK.mp3 |
| Weights hosting | dl.fbaipublicfiles.com | Hugging Face |
One trap worth knowing before you file a bug: PyTorch dropped Intel Mac support after version 2.2, which caps you at Python 3.12, so Intel Mac users are told to run uvx --python 3.12 demucs.
Picking a Model: htdemucs, htdemucs_ft, htdemucs_6s, mdx
The -n flag selects the model, and the default is not always the right pick. Demucs ships four-source models (drums, bass, other, vocals), one six-source experiment, and the older MDX challenge models.
| Model | Sources | Speed | Official caveat | Pick it when |
|---|---|---|---|---|
htdemucs | 4 | Baseline (default) | none stated | First pass, batch work, anything where throughput matters |
htdemucs_ft | 4 | ~4× slower | "might be a bit better" | Final renders of a track you care about |
htdemucs_6s | 6 | Between the two | Guitar "okay"; piano "not working great", with "a lot of bleeding and artifacts" | You specifically need a guitar stem and can tolerate mess |
hdemucs_mmi | 4 | Baseline | v3 architecture, retrained | A/B when v4 sounds wrong on a specific mix |
mdx / mdx_extra | 4 | Baseline | mdx_extra was trained on data including the MUSDB test set | Older material, or when v4 artifacts annoy you |
mdx_q / mdx_extra_q | 4 | Fastest, smallest | "quality can be slightly worse" | Low-storage machines, quick previews |
Note the hedge on htdemucs_ft: four times the compute for a quality gain the author himself only describes as possible. On CPU that penalty is brutal, and users say so out loud.
What the 9.00 and 9.20 dB SDR figures actually measure
Both numbers appear in the same README paragraph and they are not interchangeable. Hybrid Transformer Demucs reaches 9.00 dB SDR on the MUSDB HQ test set. The higher 9.20 dB result requires sparse attention kernels plus per-source fine-tuning, and that sparse model "is not provided as it requires custom CUDA code that is not ready for release yet."
So no model you can download reproduces 9.20 dB. In the README's own comparison table, the shipped fine-tuned v4 entry sits at 9.0 overall SDR, tied with Band-Split RNN trained on 1.7k mixes.
In the same table, Spleeter sits at 5.9 dB despite training on 25k songs, a gap of roughly 3 dB against the fine-tuned v4 entry.
The Flags That Change the Output
Most Demucs runs need three decisions: how many stems, how much compute to spend, and what format to write.
--two-stems=vocalsgives karaoke mode, producingvocals.wavandno_vocals.wav. It separates the full mix first and mixes down afterwards, so it is neither faster nor lighter on memory than a normal run.--shifts=Naverages N predictions on randomly shifted input. It makes prediction N times slower; the README's advice is "don't use it unless you have a GPU." The paper used 10 shifts; Replicate's hosted default is 1.--overlapsits at 0.25 by default, reducible to 0.1 for a small speed win.--segment Nis the OOM lever, and here is the detail that quietly breaks copied commands: Hybrid Transformer models support a maximum segment length of 7.8 seconds, so a long--segmentvalue only does something for the non-HT models.- Output flags are
--mp3(320 kbps default),--flac(needs ffmpeg),--int24and--float32. Default output is int16 WAV at 44.1 kHz inseparated/MODEL_NAME/TRACK_NAME. --clip-modematters more than it looks: Demucs rescales stems to avoid clipping by default, which can break the relative volume between stems, whileclamphard-limits instead.
Hardware expectations from the same doc: at least 3 GB of GPU RAM, about 7 GB with default arguments, and --segment 8 plus PYTORCH_NO_CUDA_MEMORY_CACHING=1 if you are down at 3 GB or less. On CPU, "processing time should be roughly equal to 1.5 times the duration of the track." That is an optimistic figure next to what people report with htdemucs_ft.
Where Demucs Bleeds, and the Two-Pass Fix Users Run
Bleed is the complaint that shows up over and over, and it is loudest on vocals sharing a register with a lead instrument. Ryan Herr (@rrherr) put it bluntly after an extraction attempt:
demucs let a lot of sax bleed into the 'vocals' track.
The workaround experienced users converge on is not a flag. It is a second model. Japanese producer 夜凪P (@yonagip, 145 likes) describes running a MelBand Roformer pass in UVR5 first to split vocals from the instrumental, then feeding only the instrumental to htdemucs_ft for drums, bass and other:
Demucs単体だとVoが他に漏れるんだけど (with Demucs alone, the vocals leak into the other stems)
Two more user reports point the same way: one producer measures better bass definition from htdemucs_ft but calls CPU processing four times slower (@hachi_vm), and another posts a guitar-extraction comparison where htdemucs-6s loses visibly to a BS-RoFormer model (@junon_12). These are anecdotal reports, not benchmarks, but they match the official line: when Défossez announced the six-source model in December 2022, he wrote that he observed "some bleeding + artifacts."
Practical rule: if the source has a saxophone, a lead guitar, or a piano doing melodic work, expect one pass of Demucs to be a starting point rather than a deliverable. Roformer-class alternatives are reachable through the UVR5 interface if you need that second pass.
Calling Demucs as an API Instead of Installing It
If you want stems without a Python environment, a widely used hosted build is cjwbw/demucs on Replicate: roughly 1.5 million runs on Nvidia T4 hardware, with the page's own estimate at about $0.020 per run (~50 runs per dollar) and predictions typically completing inside 90 seconds.
The input schema mirrors the CLI: model_name (default htdemucs), stem, shifts (default 1), overlap (0.25), clip_mode (rescale), mp3_bitrate (320), float32, output_format (mp3).
One caveat the page will not flag for you: its latest version dates back roughly three years, and a hosted endpoint pins a snapshot. You are calling that build, not the v4.1.0 packaging and dependency work from July 2026. Runtime also swings more than the headline number suggests, with one public example prediction on that same model taking 6 minutes 18 seconds.
What a 4-Minute Track Actually Costs
The number that decides your workflow is cost per track, and it depends on a billing detail most people meet after subscribing.
LALAL.AI computes usage as file length × number of selected stem-separation types. A 4-minute song split into four stems therefore consumes 16 minutes, not 4.
The same pricing page lists one-time top-ups (checked September 25, 2026): $50 for 750 Fast Queue minutes, $190 for 3,000, and $300 for 5,000. At those rates a 4-stem split of a 4-minute song lands between $0.96 and $1.07.
Read that chart with one correction in mind: those LALAL.AI figures are the price of priority processing. Paid plans include unlimited Relaxed Queue minutes, and the company states both queues "deliver identical separation quality." The Fast Queue only buys a shorter wait.
| Plan | Price | Included | Notable limits |
|---|---|---|---|
| LALAL.AI Starter | Free | 10 Relaxed Queue minutes | 200 MB upload cap |
| LALAL.AI Lite | €6.75/mo, €81 billed annually | Unlimited Relaxed, 90 Fast minutes | No batch, VST or API; minutes do not roll over |
| LALAL.AI Pro | €13.50/mo, €162 billed annually | Unlimited Relaxed, 250 Fast minutes | Only tier with API access, VST plugin and batch processing |
| Moises | Not published publicly | Free tier with limited monthly uploads | Pricing table sits behind login; claims 27 stem types |
Replicate cjwbw/demucs | ~$0.020/run | T4, usually under 90 s | Version pinned ~3 years back |
| Local Demucs | Free (MIT licence) | Unlimited, offline | Your GPU time and setup effort |
Ninety Fast Queue minutes on the Lite plan covers about five 4-stem tracks per month before you drop to the relaxed queue. If you process more than a handful of songs a week, the arithmetic stops favouring per-minute billing quickly, which is exactly the volume threshold where installing Demucs pays for its setup afternoon.
Which Path Fits Which Job
| Your situation | Best path | Why |
|---|---|---|
| Occasional splits, no GPU, no terminal | LALAL.AI Starter, then Lite | 10 free minutes tests quality before any spend |
| Learning songs, mobile-first practice | Moises | 27 stem types plus tempo and chord tooling; check price after login |
| High volume, own GPU | uvx demucs with htdemucs | Zero marginal cost, unlimited runs, nothing leaves your machine |
| One important final render | htdemucs_ft, --shifts 2 on GPU | Buys the last fraction of quality at 4× compute |
| Need a guitar stem | htdemucs_6s first, then compare a Roformer-class model in UVR5 | Official docs concede bleeding on the 6-source model |
| Unreleased or NDA material | Local Demucs only | No upload, MIT licence, offline processing |
| App backend, no ops budget | Replicate cjwbw/demucs | ~$0.020/run, and no GPU infrastructure to manage |
Demucs Stem Separation FAQ
Which Demucs model gives the best vocals?
htdemucs_ft is the strongest shipped four-source model for vocals, at roughly four times the processing time of htdemucs. For difficult mixes, users report better results from a two-pass chain: a Roformer-class vocal split first, then Demucs for the instrumental breakdown.
Can Demucs separate guitar and piano?
Only through htdemucs_6s. The official README calls guitar quality "okay" in quick testing, and says the piano source is "not working great," with "a lot of bleeding and artifacts."
Do I need an NVIDIA GPU to run Demucs?
No. CPU works with -d cpu, and the docs estimate processing at about 1.5× track duration. Apple Silicon users can pass -d mps. GPU acceleration needs at least 3 GB of VRAM, around 7 GB with default arguments.
Why don't the separated stems recombine into the original mix?
Demucs rescales each stem to prevent clipping caused by separation artifacts, which can break relative volumes between stems. Use --clip-mode clamp for hard clipping instead, or lower the input mixture's volume before processing.
Where does Demucs save the stems?
In separated/MODEL_NAME/TRACK_NAME/, as stereo WAV files at 44.1 kHz encoded as int16: drums.wav, bass.wav, other.wav and vocals.wav, unless you request MP3, FLAC, int24 or float32 output.
How do I fix a CUDA out-of-memory error?
Lower --segment (8 is the documented floor for 3 GB cards), set PYTORCH_NO_CUDA_MEMORY_CACHING=1, or fall back to -d cpu. Remember that Hybrid Transformer models cap segment length at 7.8 seconds, so raising the value above that has no effect on them.