Nodes/ComfyUI_RH_RVC/RunningHub RVC Voice Conversion
ComfyUI Node

RunningHub RVC Voice Conversion

The node where the voice actually changes

By RH-RunningHub·Created 4 months ago·Updated 3 months ago· 0
RunningHub RVC Voice Conversion
  • rvc_model
  • audio
  • audio
  • info
speaker_id0
f0_up_key0
f0_methodharvest
index_path
index_rate0.66
filter_radius3
resample_sr0
rms_mix_rate1.00
protect0.33

This is the payoff node. The loaders just hand you a model; the RunningHub RVC Voice Conversion node is where a normal human voice stops being normal. You feed it an RVC_MODEL handle and a ComfyUI AUDIO clip, and it returns converted audio with the target voice's timbre - the thing people build singing covers with, or swap a character's voice into a video.

RVC stands for Retrieval-based Voice Conversion, and the retrieval part is worth understanding because it's the knob that decides whether you get a clean swap or a garbled one. The pipeline is: HuBERT pulls content features out of your input audio, an F0 extractor measures the pitch, and the loaded generator re-synthesizes the audio in the target voice. Then the "retrieval" step kicks in - a FAISS index of the target voice's training features gets blended into the conversion. That blend is index_rate, and it's why an RVC model with a good .index file sounds dramatically more like the person you're cloning than the same model without one.

The inputs that matter

Two you must connect, then a handful that are genuinely worth touching:

  • rvc_model - the handle from either loader. audio - a ComfyUI AUDIO input; the tooltip recommends feeding it from a LoadAudio, trim, or stem-separation node first. Long clips convert fine but slower; trimming to what you actually need is the habit that pays off.
  • f0_up_key - semitone shift, −24 to +24. Positive raises pitch, negative lowers it. This is the classic "make a man sound like a woman" dial, and 0 keeps the original pitch for a same-key cover.
  • index_rate - the retrieval blend, default 0.66. Higher gets you closer to the target timbre but can start eating consonants or adding noise; lower keeps more of the input voice. Start at the default and nudge.
  • f0_method - harvest is the stable default but slow; rmvpe is usually the quality pick if you've installed models/RVC/_assets/rmvpe/rmvpe.pt; crepe is there for tricky pitchy audio.
  • protect - consonant and breath protection, default 0.33. Raise it if the output swallows words; the cost is a weaker timbre swap.

The rest - filter_radius (3), resample_sr (0 = model's native rate), rms_mix_rate (1) - are fine at defaults. Leave index_path empty and the node auto-searches by model name stem; it converts fine with no index at all.

Outputs

  • audio - converted ComfyUI AUDIO. Save it with a standard audio save node, mix it back with other stems, or feed it to a video node. That's the whole point of it being native AUDIO rather than a file path.
  • info - the RVC runtime log: model, device, whether an index was used, and timing. It's a string, so you can even pipe it somewhere.

The honest part: dependencies

Voice conversion is one of the fiddlier things to bolt onto ComfyUI, because RVC drags a real dependency stack with it (fairseq, pyworld, torchcrepe, librosa…). The community's earlier go-to, AIFSH's ComfyUI-RVC, went stale, which is partly why people ended up running RVC in its own WebUI or a TTS-suite wrapper instead of a native node. This pack keeps the RVC source bundled and isolated precisely so you don't have to fight that battle yourself. If a conversion errors at load time with a missing dependency, that's the environment, not the node - a fresh venv and pip install -r requirements.txt from the pack fixes most of it.

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

Restart, and make sure HuBERT is at models/RVC/_assets/hubert/hubert_base.pt - without it, no model loads, no conversion runs.

CategoryRunningHub/RVC

Inputs (11)

NameTypeDefaultDescription
rvc_modelRVC_MODEL由 RunningHub RVC Model Loader 输出的已加载模型。
audioAUDIOComfyUI AUDIO 输入。请先用 LoadAudio、音频裁剪或音频分离节点接入音频。
speaker_idINT00–999目标说话人 ID。单说话人模型通常为 0,多说话人模型按训练时的 ID 选择。
f0_up_keyINT0-24–24升降调半音数。正数升调,负数降调,0 保持原调。
f0_methodCOMBOharvestF0 提取算法。harvest 稳定但较慢;pm 较快;rmvpe 通常质量更好但需要 models/RVC/_assets/rmvpe/rmvpe.pt。
index_pathSTRING可选 .index 文件路径。留空时会按模型名在 logs 和 assets/indices 下自动查找;没有 index 时仍可转换。
index_rateFLOAT0.660–1检索特征混合比例。值越高越贴近目标音色,但可能带来咬字或噪声问题。
filter_radiusINT30–7F0 中值滤波半径。大于 0 可减少毛刺,通常 3 即可。
resample_srINT00–48000输出重采样率。0 表示使用模型原始采样率;设置为 16000 以上会重采样输出。
rms_mix_rateFLOAT1.000–1响度包络混合比例。1 更保留输入响度,0 更接近目标模型响度。
protectFLOAT0.330–0.5辅音和呼吸声保护强度。数值越大越保护原音,音色转换程度会降低。

Outputs (2)

NameTypeDescription
audioAUDIO转换后的 ComfyUI AUDIO,可继续连接到音频保存、视频合成或后处理节点。
infoSTRINGRVC 推理日志,包含模型、设备、index 使用情况和耗时信息。