ComfyUI Node

Echo_Sampler

Where Your Photo Finally Learns to Talk

By smthemex·Created 2 years ago·Updated 6 months ago· 696
Echo_Sampler
  • model
  • emb
  • image
  • frame_rate
seed0
cfg3.5
steps25
sample_rate16000
context_frames12
context_overlap3
save_videofalse

By the time you reach this node, you've already done the hard parts. Echo_LoadModel dragged three generations of talking-head weights into VRAM, and Echo_Predata turned your photo and audio file into the conditioning. Echo_Sampler is the payoff: it runs the actual denoising loop and hands you the frames of your head talking. It's the last stop in a three-node chain - Echo_LoadModel → Echo_Predata → Echo_Sampler - and on its own it does absolutely nothing. Wire it wrong and the whole pack is just a model downloader.

The mechanism is video diffusion with a twist. EchoMimic conditions a diffusion model on the reference portrait and an audio embedding, then denoises latents forward in time. Like every local video model, it can't hold an arbitrary number of frames in context at once - this is the same wall you hit with Wan - so the sampler works in windows. context_frames (default 12) is how many frames each window holds, and context_overlap (default 3) is how many frames from the end of one window carry into the next to keep motion continuous. If you've done Wan chunking, this will feel familiar; if you haven't, just know that raising overlap smooths motion at the cost of speed.

The inputs that actually matter:

  • model - the MODEL_PIPE_E out of Echo_LoadModel.
  • emb - the MODEL_EMB_E out of Echo_Predata. This is your photo plus audio as the model understands them.
  • steps - default 25. This is where the speed games happen: the "acc" models run fine around 6 steps, the V3 lightX2V LoRA path wants ~10, and with the LCM setup (V1/V2 + lightX2V LoRA) the pack auto-switches at step 4. Don't leave it at 25 with an acc model and wonder why you're waiting.
  • cfg - default 3.5, range 0–10. The README's own tuning: V2 likes 2.5, V3 likes 3.5. And cfg 1.0 is only legal on the turbo/LCM path - use it elsewhere and you'll get an error, not a result.
  • sample_rate - default 16000, which is what the wav2vec2 audio encoder wants. Leave it unless your audio is unusual.
  • save_video - default off. This is the escape hatch the README mentions for people who don't want to install VideoHelperSuite: flip it on and the pack writes the file itself. Most people leave it off and route the image output into a video node instead.
  • seed - the usual.

It outputs two things: image (a batch of frames) and frame_rate (a float). The intended pattern in the pack's example workflows is to wire both into VideoHelperSuite's VideoCombine and save an mp4. Do that.

Two gotchas worth knowing before you blame your settings. First, if you OOM here, it's usually not this node's fault - it's the chunk size you set upstream in Echo_Predata's partial_video_length. Drop that before you touch steps. Second, the classic ffmpeg error hits the video-assembly path: pip uninstall ffmpeg then pip install ffmpeg-python and it clears up. And a reality check: EchoMimic's hands and fingers are weak, always have been - the V2 "Photo Talk" demo threads are half jokes about man-hands. A weird clip is usually the model, not a config mistake.

Install is the pack install, shared by all three nodes: ComfyUI Manager → search "EchoMimic", or clone it by hand:

cd ComfyUI/custom_nodes
git clone https://github.com/smthemex/ComfyUI_EchoMimic.git
pip install -r requirements.txt

Restart ComfyUI. Note the model downloads are substantial and version-specific - the V3 line alone needs a Wan2.1 VAE, the Wan2.1-Fun 1.3B transformer, a text encoder, clip vision, and an audio model, all parked in specific paths under ComfyUI/models/echo_mimic. Get those right and this node just works; get them wrong and it's silently slow or dead. The README's model tree is the ground truth - follow it exactly.

CategoryEchoMimic

Inputs (9)

NameTypeDefaultDescription
modelMODEL_PIPE_E
embMODEL_EMB_E
seedINT00–2147483647
cfgFLOAT3.50–10
stepsINT251–100
sample_rateINT160008000–48000
context_framesINT120–50
context_overlapINT30–10
save_videoBOOLEANfalse

Outputs (2)

NameTypeDescription
imageIMAGE
frame_rateFLOAT