Skip to content

Repository files navigation

ComfyUI Seed-VC Voice Conversion

ComfyUI nodes for high-quality zero-shot voice conversion using Seed-VC. This integration uses Seed-VC's 44.1 kHz F0-conditioned model and NVIDIA BigVGAN, selected for difficult high-pitched speech and singing rather than the smaller 22 kHz realtime model.

The previous BeltOut implementation remains available on the repository's beltout branch.

What it does

source_audio supplies the words, timing, pitch contour, and performance. target_voice supplies the speaker identity/timbre. Seed-VC performs zero-shot conversion, so no per-speaker training is required.

Seed-VC itself outputs mono 44.1 kHz. The included stereo-reconstruction node can then replace the original recording's center with that converted voice while retaining its genuine L/R differences. Long source recordings are split internally and crossfaded; references longer than the configured limit are reduced to the most active contiguous section.

Install

Clone the node into ComfyUI/custom_nodes, then install its lightweight Python dependencies with the same interpreter that runs ComfyUI:

cd ComfyUI/custom_nodes
git clone https://github.com/ethanfel/ComfyUI-Timbre-Transfer.git
cd ComfyUI-Timbre-Transfer
python -m pip install -r requirements.txt

Restart ComfyUI afterward.

The requirements deliberately do not install, pin, downgrade, or replace PyTorch, torchvision, or torchaudio. Seed-VC uses ComfyUI's existing CUDA, ROCm, MPS, or CPU Torch build. Unlike the upstream training requirements, this list also omits Gradio, audio-device packages, training tools, and the optional DAC stack that the released 44.1 kHz model does not use.

Automatic model download

No manual checkpoint installation is needed. On first use, Seed-VC 44.1k Model Loader or the conversion node downloads approximately 2.5 GB:

  • pinned official Seed-VC source and 44.1 kHz checkpoint;
  • OpenAI Whisper Small content encoder;
  • NVIDIA BigVGAN 44.1 kHz vocoder;
  • RMVPE pitch extractor;
  • CAMPPlus speaker encoder.

Files and writable caches are kept under:

ComfyUI/models/seed_vc

The node disables Hugging Face's optional Xet chunk cache for this dedicated directory, avoiding a redundant second copy of the approximately 2.5 GB model files.

Set COMFYUI_SEEDVC_MODEL_DIR before starting ComfyUI to use another location. All source and model revisions are pinned. Once downloaded, the loader can run offline by setting download_missing to false.

Default workflow

Import workflows/SeedVC_44k_Voice_Conversion_Default.json into ComfyUI, then select a source performance and target reference:

Seed-VC Model Loader ───────────────────────┐
                                            │
Load Audio (source performance) ────────────┼─ Seed-VC Voice Conversion ─┐
                                           │                            ├─ Restore Stereo ─ Preview/Save
                                           └─ original L/R Side ────────┘
Load Audio (target voice, 10–20 seconds) ───┘

The workflow starts with the high-quality upstream-style settings: 30 diffusion steps, CFG 0.7, full target timbre, preserved source pitch, and 20 seconds of reference material. It now restores the source's original stereo width around the converted centered voice. When the source is mono, the result is dual-mono.

Settings

  • timbre_strength: 1.0 uses the target speaker embedding. Values around 0.25–0.5 linearly blend the source and target CAMPPlus speaker embeddings for a lighter influence. This interpolation is provided by this integration and was not part of Seed-VC's upstream inference interface; judge it by ear.
  • diffusion_steps: 30 is the quality default. Try 40–50 for difficult high-pitched material, or 10–20 for faster previews.
  • cfg_rate: Seed-VC classifier-free guidance. Keep the upstream default 0.7 unless testing subtle variations.
  • reference_seconds: at most 25 seconds. About 10–20 seconds of clean, consistent speech is usually preferable. Longer references reduce the source context available per generation chunk and therefore run more slowly.
  • auto_f0_adjust: shifts the source's median F0 toward the reference. Keep it off to preserve the source pitch; try it for cross-gender speech when the unshifted result sounds strained.
  • pitch_shift: explicit semitone adjustment after optional automatic F0 adjustment. Zero preserves pitch.
  • length_adjust: keep 1.0 to preserve timing.
  • seed: repeatable diffusion seed. A different seed can remove an isolated generation artifact.
  • peak_protection: non-distorting final whole-output scaling to -1 dBFS by default. It prevents new export clipping but cannot repair artifacts generated inside the model.

Stereo reconstruction settings

  • stereo_width_percent: 100% retains the original L/R Side level, 0% produces dual-mono, and values above 100% exaggerate width.
  • center_leak_reduction_percent: removes Side content linearly correlated with the original center. The 100% default helps reject an old voice that was consistently panned; reduce it if the room or ambience loses too much body.
  • side_highpass_hz: keeps bass centered and avoids phasey low-frequency rumble. The conservative default is 100 Hz.
  • side_lowpass_hz: suppresses stereo hiss or codec noise without filtering the converted center. The default is 18 kHz.
  • peak_protection: scales both reconstructed channels together when either exceeds -1 dBFS, preserving their stereo balance.

This is deterministic Mid/Side reconstruction, not AI-generated stereo and not fake stereo made by delaying one channel. If the original channels are L and R, the node extracts Side = (L-R)/2, optionally cleans and filters it, then outputs converted+Side and converted-Side. Folding the unprotected result to mono therefore recovers the converted voice exactly. The original stereo is resampled to the converted audio's rate and trimmed or zero-padded to its length. The stereo_report output includes the measured Side/Center level; values below roughly -40 dB mean the source is effectively dual-mono and contains little real width to recover.

Every setting also has an in-node tooltip.

Reference audio

Use a clean, dry, single-speaker clip without music, overlapping voices, heavy reverb, or clipping. Lossless 48 kHz source files are fine and are resampled internally. The node accepts long recordings but selects only the most active configured window because Seed-VC uses reference audio directly rather than building a permanent speaker profile.

The target recording may encode recognizable speaker identity. A model is not made anonymous merely because it stores an embedding or uses zero-shot conditioning.

Quality and hardware

The 44.1 kHz model is substantially heavier than BeltOut. A CUDA GPU is strongly recommended. auto uses FP16 on CUDA/MPS and FP32 on CPU; choose FP32 only when you have enough memory or need to diagnose FP16 instability.

BigVGAN's 44.1 kHz output retains substantially more high-frequency detail than a 22–24 kHz model, but no conversion model is artifact-free. Very breathy, screamed, whispered, or extremely high-pitched passages remain challenging. Test a short difficult passage before processing a long timeline.

Responsible use

Only convert a voice when you have permission from the speaker and the right to use the recordings. Do not use the node for deceptive impersonation, fraud, or misleading attribution.

License and credits

  • Seed-VC by Plachtaa and contributors: GPL-3.0
  • Seed-VC model files: see their respective Hugging Face model cards
  • BigVGAN by NVIDIA: MIT
  • Whisper by OpenAI: Apache-2.0
  • This integration: GPL-3.0, see LICENSE

The downloaded upstream files retain their own copyright notices and licenses.

About

ComfyUI nodes for 44.1 kHz zero-shot voice conversion with Seed-VC and BigVGAN

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages