ComfyUI Node

SeedVCNode

Clone a voice from a few seconds of audio, entirely inside ComfyUI

By AIFSH·Created 2 years ago·Updated 2 years ago· 45
SeedVCNode
  • source
  • target
  • AUDIO
diffusion_steps10
length_adjust1.00
inference_cfg_rate0.70

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:

  1. 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.)
  2. A CAMPPlus speaker-embedding model reads the reference clip and captures whose voice you want.
  3. 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-gpu is 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.
CategoryAIFSH_SeedVC

Inputs (5)

NameTypeDefaultDescription
sourceAUDIO
targetAUDIO
diffusion_stepsINT1010 by default, 50~100 for best quality / 默认为 10,50~100 为最佳质量
length_adjustFLOAT1.00<1.0 for speed-up speech, >1.0 for slow-down speech / <1.0 加速语速,>1.0 减慢语速
inference_cfg_rateFLOAT0.70has subtle influence / 有微小影响

Outputs (1)

NameTypeDescription
AUDIOAUDIO