SeedVCNode
Clone a voice from a few seconds of audio, entirely inside ComfyUI
- source
- target
- AUDIO
What it actually is
The name reads like an API wrapper, but it's a lie in the best way: SeedVCNode is fully local, zero-shot voice conversion running right in your graph. You feed it two audio clips - someone speaking, and a few seconds of the voice you want to sound like - and it hands back the first clip re-spoken in the second voice. No training, no voice LoRA, no ten-minute reference. That's the "zero-shot" in Seed-VC's name, and it mostly holds up.
It's the ComfyUI port of Plachta's seed-vc by AIFSH, the same author who pumps out a stream of ComfyUI audio and TTS packs. If you've watched people make AI covers or dub a clip in a character's voice and wondered where the magic happens, this is a big chunk of it - and there's no API key, nothing leaves your machine.
How it works
Under the hood it's a three-piece pipeline:
- Whisper-small's encoder extracts what's being said from your source clip. (The v0.3 update swapped the content encoder to OpenAI Whisper, which is why the pack now drags whisper-small along.)
- A CAMPPlus speaker-embedding model reads the reference clip and captures whose voice you want.
- A diffusion transformer (DiT) merges the two, and an NVIDIA BigVGAN vocoder renders the waveform at 22.05 kHz.
Long clips aren't a problem: the audio is processed in 30-second context windows with a 5-second overlap, then crossfaded back together. A whole podcast episode converts in one pass, not one soundbite at a time.
The inputs that matter
Two AUDIO clips in, one AUDIO out:
source- the audio to convert (the content).target- the reference voice you're converting into.diffusion_steps- 10 by default, but the author's tooltip says 50–100 for best quality. The default is a draft; for anything you're going to keep, raise it.length_adjust- 1.0 keeps the pace. Below 1.0 speeds speech up, above 1.0 slows it down.inference_cfg_rate- 0.7 by default, "subtle influence" per the author. Leave it alone.
The output is a single AUDIO that wires into PreviewAudio, SaveAudio, or a video-combine step. One quirk worth knowing: the reference clip is internally trimmed to about 25 seconds, so a longer target isn't wasted.
Installing it
In ComfyUI Manager: Custom Nodes → search "SeedVC-ComfyUI" → install → restart. Or the manual way:
cd ComfyUI/custom_nodes
git clone https://github.com/AIFSH/SeedVC-ComfyUI
# then restart ComfyUI
Two things will eat time on a fresh setup. First, requirements.txt is heavy: scipy, onnxruntime-gpu, librosa, munch, einops, descript-audio-codec, plus openai/whisper installed straight from git. Second, the first time you drop the node into a graph it downloads every model into ComfyUI/models/AIFSH/SeedVC/ - the Seed-VC DiT checkpoint, CAMPPlus, whisper-small, and the 22 kHz BigVGAN. That happens in the node's constructor, so the console can look frozen for a while. It's downloading, not dead.
Where people get burned
- The git-installed whisper package expects ffmpeg on your PATH, and on Windows that's the usual import-failure culprit for this pack.
onnxruntime-gpuis pinned unconditionally even though the code only actually touches it on a Windows DirectML path - a fat, mostly-unnecessary dependency that can collide with an existing CUDA install.- At the default 10 diffusion steps, output on noisy input is genuinely meh. Clean the source, raise
diffusion_steps, and only then blame the model.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| source | AUDIO | — | |
| target | AUDIO | — | |
| diffusion_steps | INT | 10 | 10 by default, 50~100 for best quality / 默认为 10,50~100 为最佳质量 |
| length_adjust | FLOAT | 1.00 | <1.0 for speed-up speech, >1.0 for slow-down speech / <1.0 加速语速,>1.0 减慢语速 |
| inference_cfg_rate | FLOAT | 0.70 | has subtle influence / 有微小影响 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| AUDIO | AUDIO | — |