Echo_LoadModel
The LoadModel node that spends your VRAM budget before you even sample
- model
- info
This is the node that loads EchoMimic V3's weights into VRAM so the rest of the pipeline can run. It's the first of three nodes - Echo_LoadModel → Echo_Predata → Echo_Sampler - in a pack that turns a still portrait plus an audio clip into a talking-head video. EchoMimic is the audio-driven portrait animation line from Ant Group (the "Lifelike Audio-Driven Portrait Animations" paper), and this fork is a trimmed-down V3-flash port of the better-known smthemex/ComfyUI_EchoMimic pack. If you've seen the "photo that talks" clips floating around r/StableDiffusion, this is the family they come from.
A warning up front, because it will save you a wasted evening: despite the dropdowns, this pack is V3-flash only. The version selector lists V3_flash, V3, V2, and V1, but open the source and V1/V2 are empty pass stubs. Set version to V3_flash and don't look back. Same story for infer_mode and denoising - they're carried over from the parent pack and don't change anything in this fork. The one knob that actually matters alongside version is block_offload, which the README says must be on for the flash model.
How it works
The node builds the whole generation stack in one call: the echomimicv3-flash-pro transformer (a Wan 2.1-based 1.3B model from the BadToBest/EchoMimicV3 repo), the Wan 2.1 VAE, a CLIP image encoder for appearance conditioning, and the Chinese wav2vec2 audio encoder that turns your clip into per-frame embeddings. The model output is a pipe object holding all of that; the info output is a dict that carries your settings (version, lowvram, block_offload, config) down to the next node. So this node is both the expensive part and the messenger.
It's also the part you pay for on every queue. There's no caching here - each run re-loads the transformer and VAE, so expect a multi-second stall before sampling starts and a VRAM spike the moment you hit Queue.
Inputs that matter
vae- a dropdown of yourComfyUI/models/vaefolder. The loader resolves the Wan 2.1 VAE; in this build the code pins the internal path towan_2.1_vae.safetensors, so if nothing loads, make sure that exact filename is sitting in your vae folder.version- setV3_flash. V3/V2/V1 are decorative here.lowvram- gates transformer quantization. On the parent pack this is where you'd toggle mmgp's fp8 for more quality; here it just decides how hard the loader squeezes.block_offload- keep it on; flash needs it. It moves the pipeline to CPU and streams transformer blocks, which is why flash can run 768×768 on 12 GB.teacache_offloadanduse_mmgp- VRAM-reduction flags.use_mmgpoffers presets likeLowRAM_LowVRAM; it's inherited from upstream and isn't actually loaded in this fork (mmgp isn't in this pack's requirements), so treatpartial_video_lengthandblock_offloadas your real memory levers.lora- optional, from yourlorasfolder. The README's V3 tips point at Kijai's lightx2v LoRA (10 steps, or 4 with LCM).
Outputs
model(MODEL_PIPE_E) - wire into theEcho_Samplernode'smodelinput.info(MODEL_INFO_E) - wire intoEcho_Predata'sinfoinput.
Installing it
ComfyUI Manager: search for ComfyUI_EchomimicV3_DL. Or the manual way:
cd ComfyUI/custom_nodes
git clone https://github.com/lieding/ComfyUI_EchomimicV3_DL
cd ComfyUI_EchomimicV3_DL
pip install -r requirements.txt
Then restart ComfyUI. The requirements are the usual suspects - torch, diffusers, transformers, librosa, moviepy, ffmpeg-python, numpy pinned to 2.1 - and the README's heavy extras (mmgp, retina-face, tensorflow) belong to the parent pack's non-flash V3, not this fork. Ignore them.
Models
V3 flash needs four things, all under ComfyUI/models/:
models/echo_mimic/echomimicv3-flash-pro/ # diffusion_pytorch_model.safetensors + config.json
models/echo_mimic/chinese-wav2vec2-base/ # config + preprocessor + model.safetensors
models/clip_vision/models_clip_open-clip-xlm-roberta-large-vit-huge-14.pth
models/vae/wan_2.1_vae.safetensors
The repo ships a download_model.py that fetches all of them for you - that's the "DL" in the pack name. Fair warning: that script has a Hugging Face token committed in plaintext. Don't reuse that token anywhere; if you'd rather not run it, grab the files manually from the links above.
Common issues
OOM on load or queue. Your real levers are block_offload (on), resolution (768×512 instead of 768×768), and partial_video_length on the next node - 65 for 12 GB, 97 for 16 GB, 113 for bigger cards. If the load itself dies, double-check the model filenames and the wan_2.1_vae.safetensors placement.
"Module missing" errors. pip install the named module; the requirements list covers what this fork actually imports.
README confusion. The README is copied verbatim from upstream, so it tells you to clone a different repo and walks through V1/V2 model sets you don't need. Trust the repo's own clone URL and requirements.txt instead.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| vae | COMBO | 0 options: | |
| lora | COMBO | 1 options: None | |
| denoising | BOOLEAN | true | — |
| infer_mode | COMBO | 5 options: audio_drived, audio_drived_acc, pose_normal_dwpose, pose_normal_sapiens, pose_acc | |
| lowvram | BOOLEAN | true | — |
| teacache_offload | BOOLEAN | true | — |
| block_offload | BOOLEAN | true | — |
| use_mmgp | COMBO | 6 options: None, LowRAM_LowVRAM, VerylowRAM_LowVRAM, LowRAM_HighVRAM, HighRAM_LowVRAM, HighRAM_HighVRAM | |
| version | COMBO | 4 options: V3_flash, V3, V2, V1 |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| model | MODEL_PIPE_E | — |
| info | MODEL_INFO_E | — |