A python CLI pipeline script for running UVR tasks, So-VITS-SVC model inference and ffmpeg merge with end-to-end automation.
Before running pipeline script, the following software must be installed first:
- UltimateVocalRemoverGUI v5.6.0
- FFMpeg
- Latest version of So-VITS-SVC 4.1 (Chinese document)
Follow the Manual Windows Installation instruction in UltimateVocalRemoverGUI. If anaconda is used, try the following command:
conda create -n uvr python=3.9
conda activate uvr
pip install -r requirements.txt
After installation, run UVR GUI and download required models (optional) via: python UVR.py
Note: The root path of UVR GUI is denoted as uvr_path
.
- Download and extract FFMpeg (both ffmpeg and ffprobe are required)
- Two choices:
- Add the executable files into
PATH
environment, this script will detect them automatically. Check this step by opening a terminal (cmd
) and typeffmpeg -version
- Specify the path of
ffmpeg
andffprobe
in theffmpeg
section of the config json manually, or pass by argument--ffmpeg.ffmpeg_path <ffmpeg_executable> --ffmpeg.ffprobe_path <ffprobe_executable>
- Add the executable files into
Here uses a community-maintain variation of So-VITS-SVC 4.1 for simplifying preprocessing and training. Download and extract all files, the root path of So-VITS-SVC is denoted as vits_path
later.
This repository contains two main modules to run the pipeline: UVR-http-service and pipeline-client. Each of them is deployed to different directory.
Put uvr_api.py
and uvr_api_server.py
into uvr_path
(the root directory where UVR GUI is extracted). Then run python uvr_api_server.py
instead of the previous command python UVR.py
.
This time, UVR GUI is able to accept tasks through HTTP protocol (listening on port 8090 by default) and perform the corresponding automation steps (setting up parameters, inputs and outputs).
To run So-VITS-SVC pipeline, ensure run_svc_new.py
and uvr_api_client.py
are in the same directory first, then run python run_svc_new.py [-c vits_config.json] [-p default] [-k]
to perform end-to-end automation.
Arguments for this pipeline:
-c
or--config
: config file for SO-VITS-SVC pipeline, default:vits_config.json
-p
or--profile
: SO-VITS-SVC inference arguments (defined in thevits
section of the config file), default:default
-k
or--keep
: keep intermediate files during this pipeline (these files will be cleaned up after finish)
Other arguments will be set into config json, for example: --file.input <input_file> --file.output <output_file_or_dir>
will overwrite the input file and output file in the config json
There are 3 preset config files provided in this repository, the corresponding process pipeline are also attached:
vits_config.json
(default)vits_config_with_harmony.json
vits_config_multi_spk.json
(experimental)