IMTalker Model Loader
The boring node that makes IMTalker run
- model_bundle
The workhorse of the whole pack, and the one with the least to look at. IMTalkerLoader has exactly one input - a checkbox - and its entire job is to make the other two nodes possible. Think of it as the ignition: nothing renders until this node has fetched gigabytes of weights and spun up three models.
IMTalker itself is an academic talking-face model (ACM MM 2025, from cbsjtu01), and this node is the ComfyUI side of the load: a renderer, a flow-matching generator, an audio encoder, and a face detector, all loaded once and handed downstream as a single model_bundle. If you've seen the pattern where every talking-head pack has one loader that does everything heavy, this is that node.
How it works
On every run it checks ComfyUI/models/imtalker/ and - with auto_download on, which is the default - pulls whatever's missing from the Hugging Face repo cbsjtu01/IMTalker:
renderer.ckptandgenerator.ckpt(the actual talking-head weights)wav2vec2-base-960h/- config, weights, and preprocessor files
That's a few gigabytes on first run, so your first queue hangs on a download bar. After that it loads the IMTRenderer and the flow-matching FMGenerator onto CUDA, initializes the Wav2Vec2 feature extractor, and spins up face-alignment's FAN landmark detector on CPU (its own weights download on first use). Everything gets stuffed into a model_bundle and passed to whichever driven node is downstream.
Two details worth knowing. First, it deliberately falls back to facebook/wav2vec2-base-960h from your Hugging Face cache if the local copy isn't there, so a flubbed download won't necessarily brick the run. Second, it monkey-patches Wav2Vec2Model.from_pretrained to force attn_implementation="eager" - a fix for an attention-flag error that newer transformers versions throw. If you ever see a transformers attention error in this pack's generator, this is the seam the author was fighting, and it means your transformers version and the model disagree.
The one input and the output
- auto_download (default true) - controls whether missing model files get fetched from HF. Turn it off and the node raises
FileNotFoundErrorif the models aren't already inmodels/imtalker. There's basically no reason to disable it.
Output is a single model_bundle (custom type IMTALKER_MODEL), which plugs into both IMTalkerAudioDriven and IMTalkerVideoDriven. Yes, you can fan it out to both at once - the bundled workflow does exactly that.
Install
Same as the rest of the pack: ComfyUI Manager, search "ComfyUI-TP-IMtalker", or by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/tpc2233/ComfyUI-TP-IMtalker.git
cd ComfyUI-TP-IMtalker
pip install -r requirements.txt
The dependency list is real: face-alignment (a heavy one - it drags in a chunk of scientific Python), transformers, librosa, torchdiffeq, timm, einops, huggingface_hub, scipy, tqdm. None of them are trivially small, and face-alignment in particular is the sort of install that makes you go make tea. Note that torchaudio is imported at module load but is not in requirements.txt - the author's tested setup installs the full torch nightly stack explicitly (--pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu128). If you open the node menu after installing and the three IMTalker nodes aren't there, missing torchaudio is the classic cause.
Gotchas
- It's memory-hungry and it's not lazy. The README quotes up to ~17GB VRAM across the two driven modes. This is not the node for a 6GB card.
- It keeps everything loaded. The bundle holds the renderer, generator, wav2vec, and face detector in memory for as long as the workflow lives. Re-runs are cheap - no re-download once the files exist - but the first load after a restart takes a beat.
- It's not an output node. Wire it or it's dead weight in your graph.
For what it is - a few hundred lines of glue over a serious model - it's honest work. Nothing clever, nothing hidden: you can read the source and see exactly what it downloads and where it puts it. If the audio- or video-driven node is misbehaving and you want to blame the load, look here first.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| auto_download | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model_bundle | IMTALKER_MODEL | — |