Nodes/TTS Audio Suite/๐Ÿ”ง RVC Pitch Extraction Options
ComfyUI Node

๐Ÿ”ง RVC Pitch Extraction Options

Pick the algorithm that decides your convert quality

By diodiogodยทCreated about a year agoยทUpdated 21 days agoยท 1,098
๐Ÿ”ง RVC Pitch Extraction Options
    • rvc_pitch_options
    โ—„pitch_detectionrmvpeโ–บ
    โ—„crepe_hop_length160โ–บ
    โ—„filter_radius3โ–บ
    โ—„f0_autotunefalseโ–บ
    โ—„use_cachetrueโ–บ
    โ—„batch_size1โ–บ

    In RVC voice conversion, pitch tracking is quietly one of the biggest levers on final quality - get it wrong and the converted voice warbles, cracks, or drifts flat. This node exposes the pitch-extraction algorithm and its tuning as a separate RVC_PITCH_OPTIONS bundle you plug into the โš™๏ธ RVC Engine's rvc_pitch_options input. Most people never touch it, and that's fine - the default is the right default. But when a convert is fighting you and the pitch sounds off, this is the node that fixes it.

    Note the division of labor: this node is only pitch extraction. The other quality parameters - index_rate, consonant protection, rms_mix_rate - live on the RVC Engine, not here.

    How it works

    RVC needs to know the fundamental frequency (F0) of the source audio at every moment so it can re-voice it at the right pitch in the target's range. Different algorithms trade accuracy against speed. The pitch_detection choice picks which one runs, and the rest of the node tunes it. RMVPE is the modern, learned pitch estimator that mostly won this space; the older Harvest/DIO methods and the CREPE family are still here for specific cases.

    The inputs and outputs that matter

    • pitch_detection (default rmvpe) - the algorithm, and the whole reason to use this node. The practical guide from the pack itself: rmvpe is the best balance of quality and speed and the recommended default; crepe / mangio-crepe are highest quality but slower; pm is fastest and good for real-time; harvest is a solid traditional choice for speech; dio / fcpe / rmvpe+ are alternatives for specific cases. If you don't know, stay on rmvpe.
    • crepe_hop_length (16โ€“512, default 160) - only matters for the CREPE methods; smaller means finer temporal resolution (more detail, slower). Ignore it unless you selected crepe/mangio-crepe.
    • filter_radius (0โ€“7, default 3) - median-filters the detected pitch to smooth out jitter. Higher is smoother but can flatten expressive pitch movement. 3 is a reasonable middle.
    • f0_autotune (default false) - snaps pitch toward musical notes. Useful for singing conversions, generally off for speech.
    • use_cache (default true) - caches extracted pitch so re-runs are fast. Leave it on.
    • batch_size (1โ€“32, default 1) - batches pitch extraction for throughput on long audio.

    Single output: rvc_pitch_options, into the RVC Engine.

    Installing it

    Part of TTS Audio Suite. Fastest: ComfyUI Manager โ†’ search TTS Audio Suite โ†’ install โ†’ restart, which runs the pack's install.py and handles the RVC dependencies plus the usual conflicts (NumPy, librosa, s3tokenizer) and Python 3.13. Manual: cd ComfyUI/custom_nodes && git clone https://github.com/diodiogod/TTS-Audio-Suite.git, then python install.py from inside the folder with your ComfyUI venv active (run the script, not just a bare requirements install). Linux: portaudio19-dev libsamplerate0-dev first. The pitch models (RMVPE and friends) auto-download with the RVC stack on first use.

    Common issues

    • You don't actually need this node. If your converts sound fine on the RVC Engine's built-in default, skip it. It exists for tuning, not for every graph.
    • Warbly or unstable pitch. Try bumping filter_radius up a step to smooth jitter, or switch from a fast method (pm) to rmvpe.
    • Choosing CREPE and getting no benefit, just slowness. CREPE is highest quality on clean vocals but noticeably slower, and its one tuning knob (crepe_hop_length) does nothing on the other algorithms. Only reach for it when rmvpe genuinely isn't cutting it.
    • Autotune making speech sound synthetic. f0_autotune is meant for singing. Turn it off for talking.
    • Looking here for the wrong setting. Consonant protection and index rate aren't on this node - they're on the โš™๏ธ RVC Engine. This node is pitch only.
    CategoryTTS Audio Suite/๐ŸŽต Audio Processing

    Inputs (6)

    NameTypeDefaultDescription
    pitch_detectionCOMBOrmvpePitch extraction algorithm: โ€ข RMVPE: Best balance of quality & speed (recommended) โ€ข RMVPE+: Enhanced RMVPE with better accuracy โ€ข Mangio-Crepe: Optimized Crepe, faster than standard โ€ข Crepe: Highest quality but slower processing โ€ข PM: Fast Praat-based extraction, basic quality โ€ข Harvest: Traditional method, good for speech โ€ข DIO: Fast algorithm, lower quality โ€ข FCPE: Very fast extraction for real-time use
    crepe_hop_lengthoptINT16016โ€“512Only used by Crepe and Mangio-Crepe methods. Lower values track pitch changes more closely but cost more time and memory.
    filter_radiusoptINT30โ€“7Only meaningful for Harvest smoothing in this backend. 0 means no extra smoothing; higher values smooth more but can flatten detail.
    f0_autotuneoptBOOLEANfalseSnap the extracted pitch contour toward the nearest musical note after pitch detection. Can help singing or stylized output, but often sounds artificial on normal speech.
    use_cacheoptBOOLEANtrueReuse cached loaded RVC/HuBERT models where possible for repeated processing. Usually worth leaving on.
    batch_sizeoptINT11โ€“32Crepe-family pitch batch size hint. Higher can be faster but uses more memory. Ignored by non-Crepe methods.

    Outputs (1)

    NameTypeDescription
    rvc_pitch_optionsRVC_PITCH_OPTIONSโ€”