HuMo Lipsync Suppress (Attention)
HuMo lipsync suppression
- model
- model
HuMo lip-syncs well - sometimes that's the problem. ByteDance's audio-to-talking model, built on the Wan 2.1 14B base and run through Kijai's WanVideoWrapper, locks onto speech hard enough that every word shows up in the mouth, whether you want it to or not. This node is the one-button answer: attenuate the audio cross-attention pathway and let the character do whatever else the model does without flapping their lips in sync.
The blunt instrument version of the big knob
Where the pack's other node (HuMo Audio Attention Control v4) gives you twelve sliders across Q/K/V/O and block presets, this one does a single thing and does it well. It finds the audio cross-attention in a range of transformer blocks and scales down its Output projection - the final o in attention's Q/K/V/O chain, the last step before the audio influence lands. Multiply that by a small number and the audio's voice gets quieter in the model's ear.
The inputs, which are few
There are only four, and three of them are trivial:
- enabled - on by default. Leave it in the graph and flip this to A/B the effect with a fixed seed.
- suppression_strength - lower means more suppression. The author's tooltips are the spec: 0.05 is strong, 0.2 is mild. This is the slider you'll actually tune.
- block_start / block_end - the range to patch, 0–39. Defaults are 6–24, the same mid-range the sibling node calls its "lipsync" preset, which is where HuMo's speech sensitivity concentrates.
The output is a single model wire (still WANVIDEOMODEL) that slots back into the HuMo graph in series with the loader. That's the whole circuit.
Installing it
Same pack, same story as its sibling:
cd ComfyUI/custom_nodes
git clone https://github.com/ckinpdx/comfyui-humo-audio-motion
Restart, or search "comfyui-humo-audio-motion" in ComfyUI Manager. No Python dependencies ship with it. What you do need is the HuMo stack it hooks into: Kijai's ComfyUI-WanVideoWrapper and the HuMo weights (fp8-scaled Wan2_1-HuMo-14B from Kijai's WanVideo_comfy_fp8_scaled repo) plus the Whisper audio encoder. And torch.compile must be off - runtime hooks don't survive compilation, so the node would silently do nothing.
The gotcha that bites
This pack's two nodes are mutual enemies. Both clear the other's hooks on every run - the suppress node wipes the control node's _attention_control_hooks, and vice versa. Whichever executes last wins. So don't stack HuMoLipsyncSuppressAttn and HuMoAudioAttentionControlV4 in one graph expecting both effects. Pick one. If you need suppression plus finer control, use the v4 node and just drop its audio_v_scale on the 6–24 blocks; if you just want the model to stop lip-syncing, this is the simpler tool.
One honest note: it's experimental, like everything in this pack. The console prints "Patched N blocks" so you can confirm the hooks actually registered - if N is zero, your model isn't the HuMo variant of the wrapper and there's nothing here to suppress. When it works, it's the fastest way to get a calm, non-lip-syncing performance out of a model whose whole job is usually the opposite.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| model | WANVIDEOMODEL | — | |
| enabled | BOOLEAN | true | — |
| suppression_strength | FLOAT | 0.050.01–1 | Lower = more suppression. 0.05 is strong, 0.2 is mild |
| block_start | INT | 60–39 | First block to suppress |
| block_end | INT | 240–39 | Last block to suppress |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model | WANVIDEOMODEL | — |