chyinan
uvr-headless-runner
Python

Production-ready UVR5 CLI & Docker image. Run SOTA separation models (Roformer, SCNet, MDX, Demucs, VR Architecture) on headless GPU servers without dependency hell.

Last updated Jun 25, 2026
83
Stars
1
Forks
0
Issues
0
Stars/day
Attention Score
45
Language breakdown
Python 68.5%
Tcl 22.2%
Shell 4.6%
PowerShell 3.8%
Dockerfile 0.8%
Batchfile 0.1%
โ–ธ Files click to expand
README

UVR Headless Runner

๐ŸŽง Separate vocals, instruments, drums, bass & more from any audio

Command-line audio source separation powered by UVR

License: MIT Python 3.9+ PyTorch Platform PyPI

๐Ÿ‡จ๐Ÿ‡ณ ไธญๆ–‡ | ๐Ÿ‡ฌ๐Ÿ‡ง English | ๐Ÿณ Docker


โœจ Features

๐ŸŽธ MDX-Net Runner

  • MDX-Net / MDX-C models
  • Roformer (MelBandRoformer, BSRoformer)
  • SCNet (Sparse Compression Network)
  • ONNX & PyTorch checkpoints

๐Ÿฅ Demucs Runner

  • Demucs v1 / v2 / v3 / v4
  • htdemucs / htdemucs_ft
  • 6-stem separation (Guitar, Piano)
  • Auto model download

๐ŸŽค VR Runner

  • VR Architecture models
  • VR 5.1 model support
  • Window size / Aggression tuning
  • TTA & Post-processing

๐Ÿš€ Highlights

Feature Description
๐ŸŽฏ GUI-IdenticalExactly replicates UVR GUI behavior
โšก GPU AcceleratedNVIDIA CUDA & AMD DirectML support
๐Ÿ”ง Zero ConfigAuto-detect model parameters
๐Ÿ“ฆ Batch ReadyPerfect for automation & pipelines
๐ŸŽš๏ธ Bit Depth Control16/24/32-bit PCM, 32/64-bit float
๐Ÿ“ฅ Auto DownloadOfficial UVR model registry with auto-download
๐Ÿ›ก๏ธ Robust Error HandlingGPU fallback, retry, fuzzy matching
๐Ÿ”— Unified CLIuvr mdx / uvr demucs / uvr vr โ€” one command for all
๐Ÿ“ฆ PyPI Readypip install uvr-headless-runner โ€” instant setup

๐Ÿ“– Design Philosophy

Important
>
This project is a headless automation layer for Ultimate Vocal Remover.
>
It does NOT reimplement any separation logic.
It EXACTLY REPLICATES UVR GUI behavior โ€” model loading, parameter fallback, and auto-detection.
>
โœ… If a model works in UVR GUI, it works here โ€” no extra config needed.

๐Ÿค” Why uvr-headless-runner?

Built for maximum flexibility. Load any custom model without waiting for upstream updates.

๐ŸŽจ Full Custom Model Support

Directly load any .pth or .ckpt file. Perfect for testing new finetunes or experimental models immediately.

๐Ÿ–ฅ๏ธ Headless & Remote Ready

Built for seamless integration into web services or automation scripts.

๐Ÿ‘ฅ By Users, For Users

Designed by audio enthusiasts who prioritize complete control and native UVR compatibility.


๐Ÿ“‹ Requirements

| Component | Requirement | |-----------|-------------| | Python | 3.9.x (3.10+ not fully tested) | | GPU | NVIDIA CUDA or AMD DirectML (optional) | | OS | Windows / Linux / macOS |


๐Ÿ”ง Installation

๐Ÿš€ Option 1: pip install from PyPI (Recommended)

# Install from PyPI
pip install uvr-headless-runner

GPU support (NVIDIA)

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124

ONNX GPU (optional)

pip install onnxruntime-gpu

After installation, you get the uvr unified CLI โ€” no need to clone the repo!

uvr mdx -m "UVR-MDX-NET Inst HQ 3" -i song.wav -o output/
uvr demucs -m htdemucs -i song.wav -o output/
uvr vr -m "UVR-De-Echo-Normal" -i song.wav -o output/

๐Ÿ“ฆ Option 2: Poetry (from source)

# Clone repository
git clone https://github.com/chyinan/uvr-headless-runner.git
cd uvr-headless-runner

Install dependencies

poetry install

GPU support (NVIDIA)

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124

ONNX GPU (optional)

pip install onnxruntime-gpu

๐Ÿ“ฆ Option 3: pip + venv (from source)

# Clone repository
git clone https://github.com/chyinan/uvr-headless-runner.git
cd uvr-headless-runner

Create virtual environment

python -m venv venv source venv/bin/activate # Linux/macOS

venv\Scripts\activate # Windows

Install dependencies

pip install -r requirements.txt

GPU support (NVIDIA)

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124

๐Ÿ”ด AMD GPU (DirectML)

# Install DirectML support
pip install torch-directml

Use with --directml flag

python mdxheadlessrunner.py -m model.ckpt -i song.wav -o output/ --directml
โš ๏ธ DirectML is experimental. NVIDIA CUDA recommended for best performance.

โœ… Verify Installation (Native Python Only)

python -c "import torch; print(f'PyTorch: {torch.version}'); print(f'CUDA: {torch.cuda.is_available()}')"
๐Ÿ’ก Skip this if using Docker - the container includes all dependencies.

๐Ÿณ Option 4: Docker Hub (No Build Required!)

Fastest way to get started - just pull and run!

# Pull pre-built image from Docker Hub
docker pull chyinan/uvr-headless-runner:latest

Run directly (GPU mode)

docker run --rm --gpus all \ -v ~/.uvr_models:/models \ -v $(pwd):/data \ chyinan/uvr-headless-runner:latest \ uvr-mdx -m "UVR-MDX-NET Inst HQ 3" -i /data/song.wav -o /data/output/

Run directly (CPU mode)

docker run --rm \ -v ~/.uvr_models:/models \ -v $(pwd):/data \ chyinan/uvr-headless-runner:latest \ uvr-mdx -m "UVR-MDX-NET Inst HQ 3" -i /data/song.wav -o /data/output/ --cpu

Or install CLI wrappers for native experience:

# One-click install (auto-detects GPU)
./docker/install.sh      # Linux/macOS
.\docker\install.ps1     # Windows

Then use like native commands

uvr-mdx -m "UVR-MDX-NET Inst HQ 3" -i song.wav -o output/ uvr-demucs -m htdemucs -i song.wav -o output/ uvr-vr -m "UVR-De-Echo-Normal" -i song.wav -o output/

๐Ÿ“– Full Docker Guide โ†’


๐ŸŽผ Quick Start

Unified CLI (pip install / Docker)

After installing via pip install uvr-headless-runner or Docker, you can use the short commands:

# MDX-Net / Roformer separation
uvr mdx -m "UVR-MDX-NET Inst HQ 3" -i song.wav -o output/ --gpu

Demucs separation

uvr demucs -m htdemucs -i song.wav -o output/ --gpu

VR Architecture separation

uvr vr -m "UVR-De-Echo-Normal" -i song.wav -o output/ --gpu

List all available models

uvr list all

Download a model

uvr download "UVR-MDX-NET Inst HQ 3" --arch mdx

Show system info

uvr info
๐Ÿ’ก You can also use standalone commands: uvr-mdx, uvr-demucs, uvr-vr

MDX-Net / Roformer / SCNet

# Basic separation
python mdxheadlessrunner.py -m "model.ckpt" -i "song.flac" -o "output/" --gpu

Vocals only (24-bit)

python mdxheadlessrunner.py -m "model.ckpt" -i "song.flac" -o "output/" --gpu --vocals-only --wav-type PCM_24

Demucs

# All 4 stems
python demucsheadlessrunner.py --model htdemucs --input "song.flac" --output "output/" --gpu

Vocals only

python demucsheadlessrunner.py --model htdemucs --input "song.flac" --output "output/" --gpu --stem Vocals --primary-only

VR Architecture

# Basic separation (model in database)
python vrheadlessrunner.py -m "model.pth" -i "song.flac" -o "output/" --gpu

Custom model (not in database)

python vrheadlessrunner.py -m "model.pth" -i "song.flac" -o "output/" --gpu \ --param 4band_v3 --primary-stem Vocals

๐Ÿ“ฅ Model Download Center

All runners now include automatic model downloading from official UVR sources - just like the GUI!

List Available Models

# List all MDX-Net models
python mdxheadlessrunner.py --list

List only installed models

python mdxheadlessrunner.py --list-installed

List models not yet downloaded

python mdxheadlessrunner.py --list-uninstalled

Same for Demucs and VR

python demucsheadlessrunner.py --list python vrheadlessrunner.py --list

Download Models

# Download a specific model (without running inference)
python mdxheadlessrunner.py --download "UVR-MDX-NET Inst HQ 3"
python demucsheadlessrunner.py --download "htdemucs_ft"
python vrheadlessrunner.py --download "UVR-De-Echo-Normal by FoxJoy"

Auto-Download on Inference

# Just use the model name - it will download automatically if not installed!
python mdxheadlessrunner.py -m "UVR-MDX-NET Inst HQ 3" -i "song.flac" -o "output/" --gpu

Demucs models auto-download too

python demucsheadlessrunner.py --model htdemucs_ft --input "song.flac" --output "output/" --gpu

Model Info & Fuzzy Matching

# Get detailed info about a model
python mdxheadlessrunner.py --model-info "UVR-MDX-NET Inst HQ 3"

Typo? Get suggestions!

python mdxheadlessrunner.py --model-info "UVR-MDX Inst HQ"

Output: Did you mean: UVR-MDX-NET Inst HQ 1, UVR-MDX-NET Inst HQ 2, ...

Features

| Feature | Description | |---------|-------------| | ๐ŸŒ Official Registry | Syncs with UVR's official model list | | ๐Ÿ”„ Resume Downloads | Interrupted downloads can be resumed | | โฑ๏ธ Retry with Backoff | Automatic retry on network errors | | ๐Ÿ’พ Disk Space Check | Pre-checks available space before download | | ๐Ÿ” Fuzzy Matching | Suggests similar model names on typos | | โœ… Integrity Check | Validates downloaded files |


๐Ÿ›ก๏ธ Error Handling & GPU Fallback

All runners include robust error handling with automatic GPU-to-CPU fallback:

# If GPU runs out of memory, automatically falls back to CPU
python mdxheadlessrunner.py -m "model.ckpt" -i "song.flac" -o "output/" --gpu

Output on GPU error:

============================================================

ERROR: GPU memory exhausted

============================================================

Suggestion: Try: (1) Use --cpu flag, (2) Reduce --batch-size...

#

Attempting to fall back to CPU mode...

Error Messages

Errors now include clear explanations and suggestions:

| Before | After | |--------|-------| | FileNotFoundError | Audio file not found: song.wav | | CUDA out of memory | GPU memory exhausted. Try: --cpu or reduce --batch-size | | Model not found | Model 'xyz' not found. Did you mean: UVR-MDX-NET...? |


๐Ÿ“Š CLI Progress Display

All runners feature a professional CLI progress system with real-time feedback:

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚                          UVR Audio Separation                            โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  Model         โ”‚ UVR-MDX-NET Inst HQ 3                                   โ”‚
โ”‚  Input         โ”‚ song.flac                                               โ”‚
โ”‚  Output        โ”‚ ./output/                                               โ”‚
โ”‚  Device        โ”‚ CUDA:0                                                  โ”‚
โ”‚  Architecture  โ”‚ MDX-Net                                                 โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

โ น Downloading model: UVR-MDX-NET Inst HQ 3 โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ 100% โ€ข 245.3 MB โ€ข 12.5 MB/s โ€ข 0:00:00

โœ“ Model downloaded

โ น Running inference โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘ 42% โ€ข 0:01:23 โ€ข 0:01:52

โœ“ Inference complete

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ โ”‚ โœ“ Processing completed in 3:15 โ”‚ โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

Output files: โ€ข output/song_(Vocals).wav โ€ข output/song_(Instrumental).wav

Features

| Feature | Description | |---------|-------------| | ๐Ÿ“ฅ Download Progress | Real-time speed, ETA, and transfer stats for model downloads | | ๐ŸŽฏ Inference Progress | Chunk-based progress tracking during audio processing | | โฑ๏ธ Time Estimates | Elapsed time and remaining time (ETA) display | | ๐ŸŽจ Rich Output | Beautiful terminal UI with rich library | | ๐Ÿณ Docker Compatible | Works seamlessly inside containers | | ๐Ÿ“‰ Graceful Fallback | Falls back to basic output if rich unavailable |

Progress Library Support

The system automatically selects the best available library:

  • rich (preferred) - Full-featured progress bars with colors
  • tqdm (fallback) - Standard progress bars
  • Basic (no deps) - Simple text-based progress
Install rich for the best experience:
pip install rich

Quiet Mode

Disable progress output for scripting:

python mdxheadlessrunner.py -m model.ckpt -i song.wav -o output/ --quiet


๐ŸŽ›๏ธ MDX-Net Runner

Command Line Arguments

| Argument | Short | Default | Description | |----------|-------|---------|-------------| | --model | -m | Required | Model file path (.ckpt/.onnx) | | --input | -i | Required | Input audio file | | --output | -o | Required | Output directory | | --gpu | | Auto | Use NVIDIA CUDA | | --directml | | | Use AMD DirectML | | --overlap | | 0.25 | MDX overlap (0.25-0.99) | | --overlap-mdxc | | 2 | MDX-C/Roformer overlap (2-50) | | --wav-type | | PCM24 | Output: PCM16/24/32, FLOAT, DOUBLE | | --vocals-only | | | Output vocals only | | --instrumental-only | | | Output instrumental only |

๐Ÿ“‹ All Arguments

| Argument | Description | |----------|-------------| | --name -n | Output filename base | | --json | Model JSON config | | --cpu | Force CPU | | --device -d | GPU device ID | | --segment-size | Segment size (default: 256) | | --batch-size | Batch size (default: 1) | | --primary-only | Save primary stem only | | --secondary-only | Save secondary stem only | | --stem | MDX-C stem select | | --quiet -q | Quiet mode |

Examples

# Roformer with custom overlap
python mdxheadlessrunner.py \
    -m "MDX23C-8KFFT-InstVoc_HQ.ckpt" \
    -i "song.flac" -o "output/" \
    --gpu --overlap-mdxc 8

32-bit float output

python mdxheadlessrunner.py \ -m "model.ckpt" -i "song.flac" -o "output/" \ --gpu --wav-type FLOAT

๐Ÿฅ Demucs Runner

Supported Models

| Model | Version | Stems | Quality | |-------|---------|-------|---------| | htdemucs | v4 | 4 | โญโญโญ | | htdemucs_ft | v4 | 4 | โญโญโญโญ Fine-tuned | | htdemucs_6s | v4 | 6 | โญโญโญโญ +Guitar/Piano | | hdemucs_mmi | v4 | 4 | โญโญโญ | | mdxextraq | v3 | 4 | โญโญโญ |

Command Line Arguments

| Argument | Short | Default | Description | |----------|-------|---------|-------------| | --model | -m | Required | Model name or path | | --input | -i | Required | Input audio file | | --output | -o | Required | Output directory | | --gpu | | Auto | Use NVIDIA CUDA | | --segment | | Default | Segment size (1-100+) | | --shifts | | 2 | Time shifts | | --stem | | | Vocals/Drums/Bass/Other/Guitar/Piano | | --wav-type | | PCM_24 | Output bit depth | | --primary-only | | | Output primary stem only |

Stem Selection

| GUI Action | CLI Command | |------------|-------------| | All Stems | (no --stem) | | Vocals only | --stem Vocals --primary-only | | Instrumental only | --stem Vocals --secondary-only |

Examples

# 6-stem separation
python demucsheadlessrunner.py \
    --model htdemucs_6s \
    --input "song.flac" --output "output/" \
    --gpu

High quality with custom segment

python demucsheadlessrunner.py \ --model htdemucs_ft \ --input "song.flac" --output "output/" \ --gpu --segment 85

๐ŸŽค VR Architecture Runner

Command Line Arguments

| Argument | Short | Default | Description | |----------|-------|---------|-------------| | --model | -m | Required | Model file path (.pth) | | --input | -i | Required | Input audio file | | --output | -o | Required | Output directory | | --gpu | | Auto | Use NVIDIA CUDA | | --directml | | | Use AMD DirectML | | --window-size | | 512 | Window size (320/512/1024) | | --aggression | | 5 | Aggression setting (0-50+) | | --wav-type | | PCM16 | Output: PCM16/24/32, FLOAT, DOUBLE | | --primary-only | | | Output primary stem only | | --secondary-only | | | Output secondary stem only |

๐Ÿ“‹ All Arguments

| Argument | Description | |----------|-------------| | --name -n | Output filename base | | --param | Model param name (e.g., 4band_v3) | | --primary-stem | Primary stem name (Vocals/Instrumental) | | --nout | VR 5.1 nout parameter | | --nout-lstm | VR 5.1 nout_lstm parameter | | --cpu | Force CPU | | --device -d | GPU device ID | | --batch-size | Batch size (default: 1) | | --tta | Enable Test-Time Augmentation | | --post-process | Enable post-processing | | --post-process-threshold | Post-process threshold (default: 0.2) | | --high-end-process | Enable high-end mirroring | | --list-params | List available model params |

Model Parameters

When the model hash is not found in the database, you need to provide parameters manually:

# List available params
python vrheadlessrunner.py --list-params

Use custom params

python vrheadlessrunner.py -m "model.pth" -i "song.flac" -o "output/" \ --param 4band_v3 --primary-stem Vocals

VR 5.1 model with nout/nout_lstm

python vrheadlessrunner.py -m "model.pth" -i "song.flac" -o "output/" \ --param 4band_v3 --primary-stem Vocals --nout 48 --nout-lstm 128

Examples

# High quality with TTA
python vrheadlessrunner.py \
    -m "UVR-MDX-NET-Voc_FT.pth" \
    -i "song.flac" -o "output/" \
    --gpu --tta --window-size 1024

Aggressive separation

python vrheadlessrunner.py \ -m "model.pth" -i "song.flac" -o "output/" \ --gpu --aggression 15 --post-process

24-bit output

python vrheadlessrunner.py \ -m "model.pth" -i "song.flac" -o "output/" \ --gpu --wav-type PCM_24

๐Ÿ“ Output Structure

output/
โ”œโ”€โ”€ song_(Vocals).wav        # Vocals
โ”œโ”€โ”€ song_(Instrumental).wav  # Instrumental (MDX)
โ”œโ”€โ”€ song_(Drums).wav         # Drums (Demucs)
โ”œโ”€โ”€ song_(Bass).wav          # Bass (Demucs)
โ”œโ”€โ”€ song_(Other).wav         # Other (Demucs)
โ”œโ”€โ”€ song_(Guitar).wav        # Guitar (6-stem)
โ””โ”€โ”€ song_(Piano).wav         # Piano (6-stem)

๐Ÿ Python API

from mdxheadlessrunner import runmdxheadless
from demucsheadlessrunner import rundemucsheadless
from vrheadlessrunner import runvrheadless

MDX separation

runmdxheadless( model_path='model.ckpt', audio_file='song.wav', export_path='output', use_gpu=True, verbose=True # Print progress )

Output: output/song(Vocals).wav, output/song(Instrumental).wav

Demucs separation (vocals only)

rundemucsheadless( model_path='htdemucs', audio_file='song.wav', export_path='output', use_gpu=True, demucs_stems='Vocals', # or 'All Stems' for all primary_only=True, verbose=True )

Output: output/song_(Vocals).wav

VR Architecture separation

runvrheadless( model_path='model.pth', audio_file='song.wav', export_path='output', use_gpu=True, window_size=512, aggression_setting=5, is_tta=False, # For unknown models, provide params manually: # uservrmodelparam='4bandv3', # userprimarystem='Vocals' )

Output: output/song(Vocals).wav, output/song(Instrumental).wav

๐Ÿ’ก Note: Functions process audio and save to export_path. Check output directory for results.

๐Ÿ” Troubleshooting

โŒ GPU not detected

# Check CUDA
python -c "import torch; print(torch.cuda.is_available())"

Reinstall PyTorch with CUDA

pip uninstall torch torchvision torchaudio pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124

โŒ Model not found

Option 1: Use automatic download (recommended)

# List available models python mdxheadlessrunner.py --list

Download the model

python mdxheadlessrunner.py --download "UVR-MDX-NET Inst HQ 3"

Or just use it - auto-downloads!

python mdxheadlessrunner.py -m "UVR-MDX-NET Inst HQ 3" -i song.wav -o output/

Option 2: Manual download

Default locations:

  • MDX: ./models/MDXNetModels/
  • Demucs: ./models/DemucsModels/v3v4_repo/
  • VR: ./models/VR_Models/

โŒ Network/Download errors

# Force refresh model registry
python model_downloader.py --sync

Check network connectivity

python -c "import urllib.request; urllib.request.urlopen('https://github.com')"

The downloader includes:

  • Automatic retry (3 attempts with exponential backoff)
  • Resume interrupted downloads
  • Fallback to cached registry

โŒ VR model hash not found

If your VR model isn't in the database, provide parameters manually:

# List available params
python vrheadlessrunner.py --list-params

Specify param and primary stem

python vrheadlessrunner.py -m "model.pth" -i "song.wav" -o "output/" \ --param 4band_v3 --primary-stem Vocals

Common params: 4bandv3, 4bandv2, 1bandsr44100hl512, 3band_44100

โŒ Poor output quality

  • Try increasing --overlap or --overlap-mdxc
  • For Demucs, increase --segment (e.g., 85)
  • Ensure correct model config with --json

๐Ÿ™ Acknowledgments

UVR
Anjok07 & aufr33
Demucs
Facebook Research
MDX-Net
Woosung Choi
VR Architecture
tsurumeso

Special thanks to ZFTurbo for MDX23C & SCNet.


๐Ÿ“„ License

MIT License

Copyright (c) 2022 Anjok07 (Ultimate Vocal Remover) Copyright (c) 2026 UVR Headless Runner Contributors

View Full License


Contributing & Support

Pull Requests and Issues are welcome! Whether it's bug reports, feature suggestions, or code contributions, we greatly appreciate them all.

If you find this project helpful, please give us a Star โญ - it's the best support for us!


Made with โค๏ธ for the audio separation community

๐Ÿ”— More in this category

ยฉ 2026 GitRepoTrend ยท chyinan/uvr-headless-runner ยท Updated daily from GitHub