* Add on-demand lead/backing vocal split, fix stems relocation bugs, and eager model pre-download (#275, #403) Lead/backing vocal split: - New on-demand POST /api/jobs/{id}/vocal-split endpoint, running UVR-MDX-NET Karaoke 2 (audio-separator) as a second pass over Demucs's vocals.wav - Desktop and mobile UI toggle to request the split, auto-chained once the base separation finishes, for both foreground and background jobs - Mixer shows Lead Vocals / Backing Vocals lanes in place of Vocals once split Stems relocation fixes (#403): - user-data.json (library metadata) now lives inside the jobs folder so it follows a Settings relocation instead of staying behind in Documents - The relocation endpoint's settings persist step was silently swallowing write failures and reporting false success; it now reports persisted: false and the Settings UI shows a clear warning instead Desktop setup wizard: - Demucs, beat-this, and the karaoke model now download eagerly during first-boot setup instead of lazily on first use Also: - Credit audio-separator / Ultimate Vocal Remover in the README per its license's attribution requirement, plus a license audit in docs/models.md - Add models/ to .gitignore * ci: install build-essential so diffq (audio-separator's dependency) can compile diffq has no prebuilt wheel for Python 3.11+ on Linux, its last release only ever shipped cp310 wheels, so uv sync must compile it from source, which needs gcc. Docker and the Linux desktop release build already install build-essential for the same reason; the plain lint/test CI container never needed it before audio-separator (#275) pulled diffq in. * chore: pin Unraid template to 0.12.0 This PR ships as v0.12.0, per the user's decision given it introduces the new lead/backing vocal split feature. --------- Co-authored-by: Thales <>
2.6 KiB
Model licensing notes
Records the license basis for ML checkpoints StemDeck downloads at runtime. Not exhaustive -- only entries where the decision wasn't a simple upstream license file are documented here.
Demucs (htdemucs_6s)
MIT, published by the demucs PyPI package (Meta/Facebook Research). No
audit needed -- an unambiguous upstream license.
UVR-MDX-NET Karaoke 2 (on-demand lead/backing vocal split, #275)
- File:
UVR_MDXNET_KARA_2.onnx - Distributed via:
audio-separator(PyPI, MIT,nomadkaraoke/python-audio-separator), which bundles/downloads models trained as part of the Ultimate Vocal Remover (UVR) project by Anjok07. - License: MIT + attribution, per the
audio-separatorREADME:"If you choose to integrate this project into some other project using the default model or any other model trained as part of the UVR project, please honor the MIT license by providing credit to UVR and its developers."
- Credit: Ultimate Vocal Remover (Anjok07) -- https://github.com/Anjok07/ultimatevocalremovergui
This is the shipped default (VOCAL_SPLIT_MODEL in app/core/config.py,
overridable via STEMDECK_KARAOKE_MODEL).
Rejected alternative: mel_band_roformer_karaoke (aufr33/viperx)
audio-separator's community-trained roformer checkpoint
(mel_band_roformer_karaoke_aufr33_viperx_sdr_10.1956.ckpt) has meaningfully
better reported SDR than the MDX-Net Karaoke 2 model above, and was the
originally preferred choice while scoping this feature. It was rejected after
directly verifying:
- No LICENSE file was ever published for this checkpoint, nor a stated license anywhere in its distribution.
- It was originally released through UVR's Boosty supporter-paywall page, not as a public open release.
- The public Hugging Face mirror (
jarredou/aufr33-viperx-karaoke-melroformer-model) now returns 401 (gated/removed) -- confirmed directly, not secondhand.
A cleanly-licensed roformer alternative (Kimberley Jensen's
Mel-Band-Roformer-Vocal-Model) was also checked and found to have no
LICENSE file despite a claim to the contrary surfacing in a web search.
Since StemDeck is free/non-commercial, the practical risk of using an
unlicensed-but-freely-shared community checkpoint is low -- but a
Boosty-paywall origin is a step past "unlicensed," suggesting the author did
not intend it for free redistribution at all, and its already-dead HF mirror
makes it an unreliable thing to depend on regardless of the licensing
question. STEMDECK_KARAOKE_MODEL remains available as an env override for a
deployment that wants to accept that risk itself.