Nodes/ComfyUI-WanVaceAdvanced/VaceAdvancedModelPatch
ComfyUI Node

VaceAdvancedModelPatch

The boring one-input node that makes per-frame VACE strengths work

By drozbay·Created about a year ago·Updated 7 months ago· 95
VaceAdvancedModelPatch
  • model
  • MODEL

VaceAdvancedModelPatch is the least glamorous node in this pack and one of the most important. One model in, one model out. That's the whole interface. What it does underneath is the difference between VACE strengths that apply to the whole video and VACE strengths you can script per frame.

Here's the mechanism. Wan's VACE module was trained expecting a single control strength for the entire clip. This patch wraps the model so it can read a list of strengths - one per latent frame - and apply them as it denoises. That's what unlocks the pack's headline trick: continuation videos where the overlap frames get full-strength control and the rest get relaxed control, or a reference that fades in and out over the clip. Without the patch, a strength list fed to vace_strength just gets collapsed or ignored.

When you need it (and when you don't)

The README gives you two routes:

  1. Use a V2 node's model input. WanVacePhantomSimpleV2, WanVacePhantomDualV2, and WanVacePhantomExperimentalV2 all patch the model automatically when you connect one to their model input. In that case you never touch this node.
  2. Patch once, use everywhere. That's this node. If your workflow has several VACE nodes chained - or you're using V1 nodes like WanVacePhantomDual that have no model input - run the model through this once and every downstream node gets per-frame strength support.

The patching is safe. If a workflow doesn't use the WanVaceAdvanced machinery, a patched model behaves exactly like the original. The author even notes you can stack as many patch nodes as you like "if you want to be sure!" - each one is idempotent in practice.

Inputs and outputs are just modelMODEL. Feed it the Wan 14B/2.2 model you loaded (not the checkpoint node's CLIP or VAE - those aren't touched) and take the output into your sampler or into the next node in the chain.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/drozbay/ComfyUI-WanVaceAdvanced
# restart ComfyUI, find it under "WanVaceAdvanced"

No extra dependencies - requirements.txt is just numpy and scipy, which ComfyUI already pulls. The heavier stuff is the models: you need a VACE module (Wan2_1-VACE_module_14B_bf16 or fp8) and, if you're using Phantom, the Phantom-Wan-14B weights or the pre-merged Wan2.1_VACE_Phantom.

One habit worth building: since the patch is what makes strength lists work, and lists come from nodes like StringToFloatListRanged, people often add this node because a workflow won't accept a list at a strength input. If that happens and the node is already in the graph, check that you patched the right model - the one actually flowing into the sampler, not a duplicate branch. It's a one-input node, so there's nowhere else for it to go wrong.

CategoryWanVaceAdvanced

Inputs (1)

NameTypeDefaultDescription
modelMODEL

Outputs (1)

NameTypeDescription
MODELMODEL