RunningHub RVC One-Click Train
Train a full RVC voice model from a folder of audio — one node, zero RVC WebUI
- audio
- info
In the RVC WebUI, training a voice model is a sequence of staged scripts: preprocess, extract F0, extract features, train, build an index, export. Each one run by hand, each with its own knobs. The RunningHub RVC One-Click Train node collapses all of that into a single node you drop into a ComfyUI graph. You point it at a folder of audio, pick a save_name, and when it's done you have a .pth, a .index, and a ready-to-share .zip waiting in ComfyUI/output/RVC/<save_name>/.
How it works
The node materializes your dataset - either from trainset_dir (a folder of wav/mp3/flac, as an absolute path or relative to ComfyUI's input directory) or from the optional audio input, which accepts AUDIO, lists of AUDIO, file paths, or path lists. Then the pipeline runs: audio cleanup, F0/feature extraction with the bundled RVC source, generator/discriminator training, an optional FAISS index, and packaging.
Two cleanup behaviors are worth knowing before they surprise you:
- audio_auto_clean (on by default) - converts to mono, trims silence, skips clips that are too short or too quiet, and peak-normalizes. Keep it on.
- auto_extract_vocals (also on by default) - runs torchaudio's HDEMUCS to pull the vocal out of backing music. For a dry, already-isolated vocal dataset the README says turn it off: you get separation artifacts and slower training for nothing. This is the one default I'd flip before a clean-vocal training run.
The inputs that actually matter
- trainset_dir - your data. More clean, single-speaker audio beats more audio. Multi-speaker, reverb-heavy, or noisy sources should be cleaned upstream; this node can't fix a messy dataset.
- version -
v2(768-dim features, default) vsv1(256-dim). Unless a model you're matching was trained v1, stay on v2. - sample_rate -
40kis the compatibility sweet spot;48kkeeps more highs at a compute cost;32kis v2-only. - use_f0 - on for singing and anything where you want to keep the melody; you can turn it off for pure speech.
- f0_method -
rmvpeis the default and the quality pick, but it needsmodels/RVC/_assets/rmvpe/rmvpe.pt;harvestis the reliable fallback. - total_epoch / batch_size - 50 and 4 by default. Small datasets like 20–100 epochs; drop batch size if you OOM, and if batch 1 still OOMs you need a bigger card.
- train_index - on by default. This builds the FAISS index that the conversion node's
index_rateretrieval relies on. Turn it off only if you're sure you don't want retrieval.
Also in the optional slot: pretrained_G/pretrained_D paths - leave them empty and the node auto-detects the pretrained weights under _assets/pretrained(_v2), falling back to training from scratch if they're missing. cache_dataset_in_gpu can speed up sub-10-minute datasets but eats VRAM on anything bigger.
Output
One info string: the log summary and the generated file paths. It's an output node, so it's the end of the line - the .zip it writes is also registered as a ComfyUI output file so RunningHub's post-processing can grab it, and it feeds straight back into the ZIP Model Loader. That loop - train here, load the zip, convert - is the whole workflow in two nodes.
Honest costs
Training is real work: runtime and VRAM scale with dataset length, batch_size, total_epoch, and your GPU. A full run on CPU-only will try your patience. HuBERT at models/RVC/_assets/hubert/hubert_base.pt is mandatory even to start, and if you picked rmvpe the RMVPE file has to be in place too.
Install
ComfyUI Manager: search ComfyUI_RH_RVC. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/RH-RunningHub/ComfyUI_RH_RVC
cd ComfyUI_RH_RVC
pip install -r requirements.txt
Then restart ComfyUI. Note the requirements include tensorboard and faiss-cpu specifically for training - the conversion-only path doesn't need them, so if your environment is tight, this node is why they're there.
Inputs (22)
| Name | Type | Default | Description |
|---|---|---|---|
| trainset_dir | STRING | 训练音频目录。可填写绝对路径,或填写 ComfyUI input 目录下的相对目录;目录内放 wav/mp3/flac 等音频。 | |
| experiment_name | STRING | rvc_exp | 实验名。会用于 rvc_source/logs/<实验名> 存放训练日志和中间产物。 |
| save_name | STRING | rvc_model | 保存文件名。最终会在 ComfyUI output/RVC/<save_name>/ 下生成 <save_name>.pth、<save_name>.index 和 <save_name>.zip。 |
| version | COMBO | v2 | RVC 模型版本。v2 使用 768 维特征;v1 使用 256 维特征。 |
| sample_rate | COMBO | 40k | 训练采样率。40k 兼容性最好;48k 高频更完整但更吃资源;32k 仅 v2 常用。 |
| use_f0 | BOOLEAN | true | 是否训练带音高引导的模型。唱歌和保留旋律通常开启;纯说话可按需求关闭。 |
| f0_method | COMBO | rmvpe | 训练集音高提取算法。rmvpe 质量通常更好但需要 models/RVC/_assets/rmvpe/rmvpe.pt;harvest 稳定但较慢。 |
| speaker_id | INT | 00–999 | 写入训练 filelist 的说话人 ID。单人模型通常使用 0。 |
| total_epoch | INT | 501–1000 | 总训练轮数。小数据集常用 20-100;数据越多可适当增加。 |
| save_every_epoch | INT | 101–1000 | 每多少 epoch 保存一次 G/D checkpoint。 |
| batch_size | INT | 41–64 | 训练 batch size。显存不足时调小;调到 1 仍 OOM 时需要更大显存。 |
| cpu_processes | INT | 41–32 | 训练集预处理和部分 F0 提取使用的 CPU 进程数。 |
| is_half | BOOLEAN | true | 特征提取和训练是否启用半精度。CPU/MPS 环境或数值异常时关闭。 |
| train_index | BOOLEAN | true | 训练结束后是否基于特征构建 FAISS 检索索引。推理时 index_rate 大于 0 通常需要它。 |
| audioopt | * | 可选音频输入。trainset_dir 为空时使用;支持 ComfyUI AUDIO、AUDIO 列表、音频文件路径或路径列表。 | |
| pretrained_Gopt | STRING | 可选预训练 Generator 路径。留空会自动尝试 assets/pretrained(_v2) 下的默认文件;不存在则从头训练。 | |
| pretrained_Dopt | STRING | 可选预训练 Discriminator 路径。留空会自动尝试 assets/pretrained(_v2) 下的默认文件;不存在则从头训练。 | |
| save_latest_onlyopt | BOOLEAN | true | 是否只保留 latest G/D checkpoint。开启可减少磁盘占用。 |
| cache_dataset_in_gpuopt | BOOLEAN | false | 是否把训练集缓存进显存。10 分钟以下小数据可加速,大数据容易显存不足。 |
| save_every_weightsopt | BOOLEAN | false | 是否每次保存 checkpoint 时额外导出可推理的小模型。关闭时仍会在训练结束导出最终模型。 |
| audio_auto_cleanopt | BOOLEAN | true | 训练前自动清洗音频:转单声道、去静音、过滤过短/过低音量片段,并做峰值归一化。建议保持开启。 |
| auto_extract_vocalsopt | BOOLEAN | true | 训练前先用 Demucs/HDEMUCS 提取人声。仅在素材带伴奏时开启;干声训练集建议关闭以避免额外失真。 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| info | STRING | 训练流程日志摘要和生成文件位置。输出文件写入 ComfyUI output/RVC/<save_name>/。 |