ComfyUI Node

HuMo I2V Patch

The one-input node that adds image-to-video to a music model

By drozbay·Created about a year ago·Updated 7 months ago· 95
HuMo I2V Patch
  • model
  • MODEL

If you're here you probably loaded a Wan 2.1 HuMo checkpoint, tried to feed it a starting image, and got a model that only wants to dance to audio it was told about, thank you very much. HuMoI2VPatch is the fix: it's the pack's smallest node - one MODEL input, one MODEL output - and its entire reason to exist is making image-to-video work on a model that wasn't built for it.

The background

HuMo is Alibaba's music-to-video (well, music-to-dance) model in the Wan family. The 17B WAN21_HuMo variant is audio-conditioned, which means its conditioning path is built around audio_embed - the model's extra_conds hook expects audio, not a reference frame. ComfyUI's I2V machinery, on the other hand, hands the model a reference_latent (or a concat_latent_image) of your start frame. Wire them together naively and the reference frame never reaches the model, so you get a dance clip that has no idea what the first frame was supposed to be.

How the patch works

The node clones your model (so the original is never mutated), checks that it's actually a WAN21_HuMo, and monkey-patches its extra_conds so it handles both worlds:

  • if an audio_embed is present, it passes it through as audio_embed;
  • if there's no c_concat yet, it takes the reference_latent and feeds it through process_latent_in so the model sees your start frame;
  • if a concat path does exist, it builds a zeroed concat latent using the exact per-channel VAE "zero" constants Wan expects, then slots the reference latent in at the right offset.

It's idempotent (a flag prevents double-patching), and it's defensive: if you feed it a model that isn't WAN21_HuMo, it logs a warning and returns the model untouched rather than crashing your graph. That last bit is why you can leave the node in a workflow permanently - harmless anywhere, useful on a HuMo branch.

When to reach for it

This is a niche node for a niche model. The play is: load WAN21_HuMo (via Kijai's WanVideoWrapper loaders), run it through HuMoI2VPatch, and then you can drive it with a start frame and audio, which opens up "make this character dance to this track" work. The rest of the WanVaceAdvanced pack is about VACE/Phantom control on the mainstream 14B models; this node is the pack author (ablejones/drozbay, also the RES4LYF maintainer) tidying up an ecosystem gap nobody else had bothered with.

Install and gotchas

Same as every node in this pack:

cd ComfyUI/custom_nodes
git clone https://github.com/drozbay/ComfyUI-WanVaceAdvanced
# restart ComfyUI

or search "ComfyUI-WanVaceAdvanced" in ComfyUI Manager. No extra pip dependencies beyond the pack's numpy + scipy; you just need the HuMo checkpoint itself and a ComfyUI build recent enough to expose WAN21_HuMo in comfy.model_base. Two practical notes: keep the patch near the front of your graph on the model wire, and if you're not getting I2V behavior, double-check you actually loaded the HuMo variant - the node's "not a HuMo model" warning in the console is the tell. It's a quiet tool, but for HuMo users it's the difference between the model doing what you asked and staring at audio-reactive noise.

CategoryWanVaceAdvanced

Inputs (1)

NameTypeDefaultDescription
modelMODEL

Outputs (1)

NameTypeDescription
MODELMODEL