How to run RVC voice conversion on a cloud GPU

Rent a GPU on Deploy, then open a terminal in JupyterLab or over SSH. Install Retrieval-based-Voice-Conversion-WebUI from the official README, download the pretrained files that README prints, and start the WebUI. Copy assets/weights, assets/indices, and the audio path you pass to inference off the instance before you destroy it, because destroying the instance deletes its disk.

Other voice pages: How to run XTTS-v2 on a cloud GPU, How to run F5-TTS on a cloud GPU, and How to run Spark-TTS on a cloud GPU. Applio is a different repository: How to train an RVC voice model with Applio on a cloud GPU. If the process runs out of memory: How to fix CUDA out of memory on a cloud GPU. The tunnel for the WebUI is How to use SSH port forwarding on a cloud GPU.

Convert a voice only when you have the rights and the speaker’s consent. The English README says the pre-training dataset uses nearly 50 hours of high quality audio from the VCTK open source dataset, and that high quality licensed song datasets will be added to the training set often, without having to worry about copyright infringement. The root README.md is Chinese. Its first blockquote is not that English sentence. This page does not translate it. The GitHub license field on 2026-11-13 was MIT. The LICENSE file is the MIT License, with copyright lines for 2023 liujing04, 2023 源文雨, and 2023 Ftps. The model API for lj1995/VoiceConversionWebUI the same day returned license mit and gated false. Its README body is only that license field.

The commands below are copied from the upstream files named in each step. They were not run on a CloudGPU instance for this page. Anything this page adds around them is marked.

What the README says about memory

The English README and the root README print no GB figure. The model card README prints no GB figure. A features-list sentence about training speed names no GB figure. This page does not treat that sentence as a memory figure.

GET /v1/public/compute-capabilities does not list GPUs. It returns feature flags. The memory column is vram_gb from gpu-prices.json, updated_at 2026-11-13T04:12:00.119Z. GET /v1/public/gpu-catalog the same day (generated_at 2026-11-13T04:11:58.989Z) listed the same names and the same vram_gb values, plus Ascend 910B at 64, which is not in gpu-prices.json and is not listed here. The catalog response also includes an availability field. This page does not copy it. Every prices row has gpu_count 1. There is no upstream GB cutoff to match these values against. This page did not run RVC and does not mark a row as enough. Which listing you can start is on Deploy.

The catalog template list had no RVC template. The ComfyUI examples top-level directory list on 2026-11-13 had no directory named for this project. Examples HEAD was f9431bb000ce792094ff345446e22cac1ea6cef3, committed 2025-11-26T20:33:58Z. The README does not link a ComfyUI install. This page does not add one.

Catalog name vram_gb
RTX 2080 8
RTX 3080 10
RTX 2080 Ti 11
RTX 3080 Ti 12
V100 16G 16
A30 24
RTX 3090 24
RTX 4090 24
RTX 4090D 24
RTX 4080 SUPER 32G 32
RTX 5090 32
RTX 5090D 32
V100 32G 32
A100 40G 40
A800 40G 40
A40 48
RTX 4090 48G 48
RTX 4090D 48G 48
RTX A6000 48
NVIDIA RTX PRO 5000 72G 72
RTX PRO 5000 72G 72
A100 80G 80
A800 80G 80
H800 80
RTX 6000D 83
H20 96G 96
RTX PRO 6000 96G 96
RTX PRO 6000 Max-Q 96
H20-3e 141G 141

Linux install

On Deploy, choose Raw GPU. The deploy page says “SSH access and root within a dedicated container”.

The English README and the root README both say this branch targets Python 3.12 x64, that every command is run from the repository root, and that Ubuntu 24.04 x86_64 is recommended. Neither file prints a clone. This page adds one so requirments_cu128_py312.txt, webui.py, and the later paths exist. It was not run:

git clone https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI.git
cd Retrieval-based-Voice-Conversion-WebUI

The download, WebUI, and training commands below stay in that directory. The README does not print another cd. The Ubuntu block they print is:

sudo apt update
sudo apt install -y python3.12 python3.12-venv python3.12-dev ffmpeg unzip libsndfile1 libportaudio2

python3.12 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip setuptools wheel

The hardware table says NVIDIA RTX 50 series installs the CUDA 12.8 Torch pair first, then requirments_cu128_py312.txt. NVIDIA GPUs before the RTX 50 series install the CUDA 11.8 pair first, then requirments_cu118_py312.txt. The filename spelling requirments is the one both READMEs print.

RTX 50 series:

python -m pip install torch==2.7.1+cu128 torchaudio==2.7.1+cu128 \
  --index-url https://download.pytorch.org/whl/cu128 \
  --extra-index-url https://pypi.org/simple
python -m pip install -r requirments_cu128_py312.txt

Before the RTX 50 series:

python -m pip install torch==2.7.1+cu118 torchaudio==2.7.1+cu118 \
  --index-url https://download.pytorch.org/whl/cu118 \
  --extra-index-url https://pypi.org/simple
python -m pip install -r requirments_cu118_py312.txt

The check they print is:

python -c "import torch; print('torch:', torch.__version__); print('cuda:', torch.version.cuda); print('cuda available:', torch.cuda.is_available())"

A “Package indexes” section says the three requirments_*.txt files define their indexes at the top, and it names a user region plus mirror hosts. This page does not copy that section. The comment at the top of requirments_cu128_py312.txt also prints index URLs that are not the URLs in the README block above, and it says Torch must stay below 2.8. This page copies the README block. The pin in that block is torch==2.7.1+cu128.

Repository HEAD on 2026-11-13 was 81eed5e8f68b6bed1789f682fe78cdd324495afc, committed 2026-08-04T07:47:05Z. pushed_at was 2026-08-04T07:47:32Z. This page did not run the clone above.

Pretrained files

Both READMEs say to download models from lj1995/VoiceConversionWebUI and to keep the layout they print. The download block is:

python -m pip install --upgrade huggingface_hub

# Required for inference and feature extraction
hf download lj1995/VoiceConversionWebUI --revision main \
  --include "hubert_base/*" --local-dir assets
hf download lj1995/VoiceConversionWebUI rmvpe.pt --revision main \
  --local-dir assets/rmvpe

# Required for v1/v2 training
hf download lj1995/VoiceConversionWebUI --revision main \
  --include "pretrained/*" "pretrained_v2/*" --local-dir assets
hf download lj1995/VoiceConversionWebUI mute.zip --revision main \
  --local-dir .model-downloads
python -m zipfile -e .model-downloads/mute.zip logs

# Required only for pymss/MSST vocal separation
hf download lj1995/VoiceConversionWebUI --revision main \
  --include "pymss_weights/*" --local-dir assets

The paths the README lists under “Exact paths used by the code” include assets/hubert_base/pytorch_model.bin, assets/rmvpe/rmvpe.pt, assets/pretrained/*.pth, assets/pretrained_v2/*.pth, assets/weights/*.pth, assets/indices/*.index, and logs/mute/*. The model API the same day returned gated false. This page did not download the files. How to download a Hugging Face model on a cloud GPU is the cache page.

WebUI, training, and inference

The start section prints:

python webui.py

and, for a headless Ubuntu server:

python webui.py --noautoopen

Both READMEs say the default port is 7865, that personal .pth models go in assets/weights/, and that .index files go in assets/indices/. configs/config.py defaults --port to 7865 and defaults --noautoopen to off. webui.py calls launch with server_name 0.0.0.0 and server_port set to config.listen_port. If that port does not bind, launch_webui_with_port_fallback tries the next port and logs a warning. This page did not start the UI, so it did not observe which port was free. From your own computer, the default the README prints is 7865. How to use SSH port forwarding on a cloud GPU is the tunnel.

Training and offline inference are in docs/en/cli.md at the same commit. The root README does not link that file. The document says the stages are dataset preprocessing, F0 extraction, HuBERT feature extraction, model training, and index training. It prints the commands as PowerShell, with backslashes and $PYTHON. A pure CLI run also has to prepare logs/EXPERIMENT/config.json and logs/EXPERIMENT/filelist.txt before train.py. The document says the WebUI Model Training and One-click Training actions generate both files.

The single-speaker CUDA commands below are this page’s Linux spelling of the PowerShell in that file. Arguments and values are the ones it prints. Backslashes became slashes, $PYTHON became python, and the PowerShell line continuation was removed. They were not run. Multi-speaker, CPU, and DirectML blocks stay in docs/en/cli.md.

python train/preprocess.py "DATASET_DIRECTORY" 40000 8 "logs/EXPERIMENT" False 3.7
python train/dataset/extract_f0.py cuda 1 0 0 "logs/EXPERIMENT" true
python train/dataset/extract_hubert_feature.py cuda:0 1 0 0 "logs/EXPERIMENT" v2 true
python train/train.py -e "EXPERIMENT" -sr 40k -f0 1 -bs 8 -g 0 -te 200 -se 5 -pg assets/pretrained_v2/f0G40k.pth -pd assets/pretrained_v2/f0D40k.pth -l 0 -c 0 -sw 1 -v v2
python train/train_index.py "EXPERIMENT" v2 "assets/indices" 8 single

train/utils.py joins -e with ./logs, so the experiment directory for -e EXPERIMENT is ./logs/EXPERIMENT. -l is --if_latest. -sw is --save_every_weights, and its help text says it saves the extracted model in the weights directory when saving checkpoints. train/train.py writes G_{step}.pth and D_{step}.pth under that experiment directory, or G_2333333.pth and D_2333333.pth when if_latest is not 0. When save_every_weights is "1", train/process_ckpt.py savee writes assets/weights/%s.pth. The final call uses the experiment name as that %s. The interval call uses the experiment name plus _e plus the epoch plus _s plus the step. This page did not run training.

The single-speaker inference example in docs/en/cli.md passes --model, --input, --output, --pitch 0, --f0-method rmvpe, and --index-rate 0.75. The same Linux spelling, not run, is:

python infer/cli.py --model "assets/weights/SINGLE.pth" --input "input.wav" --output "output.wav" --pitch 0 --f0-method rmvpe --index-rate 0.75

infer/cli.py defaults --pitch to 0, --f0-method to rmvpe, and --index-rate to 0.75. --output is the path you pass. Output formats in that file are wav, flac, mp3, and m4a. The document says a normal finish returns exit code 0.

Where files are saved

Pretrained weights downloaded by the README block land under assets/, including assets/hubert_base/, assets/rmvpe/rmvpe.pt, assets/pretrained/, and assets/pretrained_v2/. Training checkpoints land under ./logs/EXPERIMENT. The small model from savee lands in assets/weights/. The index command’s third argument is assets/indices. Inference writes the --output path you pass. webui.py also creates a TEMP directory in the current working directory. Copy the directory that the command you ran actually wrote.

When it fails

CUDA out of memory. The README prints no GB figure and no low-memory flag. The training command above passes -bs 8 and -c 0. The CLI table says -bs is the batch size per GPU and -c 1 caches the dataset in GPU memory. This page does not treat those flags as a measured memory figure. If the process raises that error, use how to fix CUDA out of memory on a cloud GPU.

“CUDA error: no kernel image is available for execution on the device” on an RTX 5090. The README’s RTX 50 series block pins torch==2.7.1+cu128. The requirements-file comment says Torch must stay below 2.8. The RTX 5090 guide says that card is compute capability 12.0 (sm_120) and that PyTorch 2.7 and later, on a build for CUDA 12.8 or newer, is the line that announced support. This page did not install a torch wheel and did not re-test this package on an RTX 5090. Catalog RTX 5090 and RTX 5090D are 32. That is the catalog number only.

Save the weights and the audio, then destroy

Copy assets/weights, assets/indices, logs, and the inference --output path before you destroy the instance. Save your work before you destroy a cloud GPU is the checklist. The terms say data on local instance storage is permanently deleted when the instance is destroyed.

The pricing page FAQ states the billing rule in these words:

Per-minute options have a 1-minute minimum; unused prepaid minutes are refunded when you destroy the instance. Some configurations use whole-hour billing with a 1-hour minimum; unused time within a charged hour is not refunded on voluntary stop. The billing period, minimum charge and initial prepayment are shown before confirmation. No subscription.

Prices are not copied here.

Frequently asked questions

How much VRAM does the RVC README print?

The English README, the root README, and the lj1995/VoiceConversionWebUI model card print no GB figure. This page does not mark a catalog row as enough. Which listing you can start is on https://cloudgpu.app/deploy.

Which port does the WebUI use, and where do models go?

The README says the default port is 7865 and prints python webui.py --noautoopen for a headless Ubuntu server. configs/config.py defaults --port to 7865. webui.py launches with server_name 0.0.0.0 and can move to the next port if the requested port does not bind. Personal .pth files go in assets/weights and .index files go in assets/indices. savee writes assets/weights/%s.pth. This page did not start the UI.

What training and inference commands does the CLI doc print?

docs/en/cli.md says the stages are preprocessing, F0 extraction, HuBERT feature extraction, model training, and index training. It prints those commands as PowerShell. The single-speaker CUDA train.py line uses -e EXPERIMENT, -sr 40k, -f0 1, -bs 8, -g 0, -te 200, -se 5, -sw 1, and -v v2. The single-speaker inference line passes --model, --input, --output, --pitch 0, --f0-method rmvpe, and --index-rate 0.75. This page did not run them.

What license and voice notice are on the repository?

The LICENSE file is the MIT License. The GitHub license field was MIT. The model card license field is mit. The English README says the pre-training set uses nearly 50 hours of VCTK audio, and that licensed song datasets will be added without having to worry about copyright infringement. Convert a voice only when you have the rights and the consent of the speaker. The MIT grant includes the words free of charge, and that phrase is license text, not a CloudGPU price and not a storage allowance.

Sources (read 2026-11-13, Asia/Shanghai)

  • English README (docs/en/README.en.md: Ubuntu 24.04 block, torch 2.7.1+cu128 and 2.7.1+cu118, hf download lines, python webui.py --noautoopen, port 7865, VCTK sentence): https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/blob/main/docs/en/README.en.md commit 81eed5e8f68b6bed1789f682fe78cdd324495afc
  • Root README.md (Chinese; the install blocks match the English file; the first blockquote does not): that commit
  • docs/en/cli.md (stage order, PowerShell training and inference examples, exit code 0): that commit
  • configs/config.py (--port default 7865, --noautoopen) and webui.py (server_name 0.0.0.0, port fallback): that commit
  • train/utils.py (./logs plus -e, -sw help text) and train/process_ckpt.py (assets/weights/%s.pth): that commit
  • infer/cli.py (defaults --pitch 0, --index-rate 0.75, formats wav, flac, mp3, m4a): that commit
  • requirments_cu128_py312.txt comment (index URLs differ from the README block; Torch must stay below 2.8). This page copies the README block
  • LICENSE (MIT, copyright 2023 liujing04, 2023 源文雨, 2023 Ftps). GitHub license field MIT
  • Model card lj1995/VoiceConversionWebUI (license mit, gated false, lastModified 2026-08-01T16:59:13.000Z). The card README body is the license field only
  • ComfyUI examples top-level directories (no RVC directory): https://github.com/comfyanonymous/ComfyUI_examples commit f9431bb000ce792094ff345446e22cac1ea6cef3
  • Public GPU memory: https://cloudgpu.app/gpu-prices.json (updated_at 2026-11-13T04:12:00.119Z) and https://cloudgpu.app/v1/public/gpu-catalog (generated_at 2026-11-13T04:11:58.989Z). GET /v1/public/compute-capabilities returned feature flags and no GPU list. The catalog had no RVC template

Cards you can start are on the Deploy page. Prices are on https://cloudgpu.app/pricing and are not repeated here.

Last updated: 2026-11-13 (Asia/Shanghai).