Nodes/ComfyUI-Wan22FMLF/Wan 4-Frame Reference
ComfyUI Node

Wan 4-Frame Reference

The fixed middle ground between 3 anchors and N

By wallen0322·Created 9 months ago·Updated 6 months ago· 566
Wan 4-Frame Reference
  • positive
  • negative
  • vae
  • frame_1_image
  • frame_2_image
  • frame_3_image
  • frame_4_image
  • clip_vision_frame_1
  • clip_vision_frame_2
  • clip_vision_frame_3
  • clip_vision_frame_4
  • positive_high
  • positive_low
  • negative
  • latent
width832
height480
length81
batch_size1
modeNORMAL
frame_2_ratio0.33
frame_2_strength_high0.80
frame_2_strength_low0.20
enable_frame_2enable
frame_3_ratio0.67
frame_3_strength_high0.80
frame_3_strength_low0.20
enable_frame_3enable
structural_repulsion_boost1.00

This pack gives you three ways to anchor a Wan clip to reference images: a fixed 3-frame node, a fully flexible N-frame node, and this one - a fixed 4-frame node. It sits deliberately in between. If you know you always want exactly four checkpoints - start, two in-betweens, end - this node gives you named, individually-toggleable slots for each instead of making you fight a position string.

Where this fits in the pack

WanFirstMiddleLastFrameToVideo covers three anchors. WanMultiFrameRefToVideo covers any number, but you pay for that flexibility with a ref_positions string you have to get the syntax right on. This node is the pack author's answer for the specific, common case of "I want four, and I want each one to have its own strength dial and its own enable switch without writing a position string." It's genuinely a UI/ergonomics node more than a new capability - the underlying conditioning math is the same high-noise/low-noise split as the rest of the pack.

Inputs and outputs that matter

Required: positive, negative, vae, width, height, length, batch_size - the standard Wan I2V set.

The four reference slots, and this is the part worth understanding before you wire it up:

  • frame_1_image is always your start frame - there's no separate enable toggle or ratio for it, because it's implicitly anchored at position 0.
  • frame_2_image with frame_2_ratio (default 0.33), frame_2_strength_high (0.8), frame_2_strength_low (0.2), and an enable_frame_2 combo (enable/disable, default enable).
  • frame_3_image with the mirrored frame_3_ratio (default 0.67), frame_3_strength_high (0.8), frame_3_strength_low (0.2), and enable_frame_3.
  • frame_4_image is your end frame - like frame 1, it has no separate ratio or enable toggle, because it's implicitly anchored at the final position.

Notice the defaults on 2 and 3: 0.33 and 0.67 split the timeline into rough thirds, which is the sane default for four evenly-spaced checkpoints. Nudge them if you want your in-between anchors closer to one end.

Beyond the four slots:

  • structural_repulsion_boost (1.0-2.0, default 1.0 = off) - the same high-noise-only motion enhancement as the rest of the pack. 1.2-1.5 is the documented useful range before color stability starts to suffer.
  • clip_vision_frame_1 through clip_vision_frame_4 - optional per-frame CLIP Vision conditioning, one slot per reference image.

Outputs: positive_high, positive_low, negative, latent - same shape as every other node in this pack, wire straight into your high/low-noise KSampler pair.

Installing it

ComfyUI Manager: search "ComfyUI-Wan22FMLF". Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/wallen0322/ComfyUI-Wan22FMLF

Restart. Same model needs as every other node in the pack - Wan 2.2 I2V-A14B high/low-noise checkpoints and a matching VAE, official weights rather than quantized ones if you want the frame-anchoring to hold up. If you're loading four reference images by hand, pairing this with WanMultiImageLoader saves you from renaming a folder full of files in order.

Common issues

Turning off enable_frame_2 or enable_frame_3 doesn't fully remove its influence. These toggles disable the conditioning constraint from that frame, but if you've left an image plugged into the slot, double-check whether your specific version behaves as "ignore the image entirely" versus "stop enforcing it strictly" - when in doubt, disconnect the image input as well as flipping the toggle if you want it truly out of the picture.

Middle-frame flicker. Same root cause as everywhere else in this pack: it comes from the low-noise pass enforcing an in-between reference too strictly. If frame 2 or frame 3 is flickering, drop its _strength_low value toward 0 before touching anything else - the pack's own recommendation for complex scenes is to zero it out entirely.

Resolution triggers instability. The pack's documented landmine is 720×1280 specifically - it's called out by name as producing middle-frame flicker regardless of node. Stick to 480×832 / 832×480 / 576×1024 at low resolution, or 704×1280 / 1280×704 if you're pushing higher.

Four references feels like overkill and the result looks fought-over. If your shot doesn't actually need four distinct checkpoints, dropping to WanFirstMiddleLastFrameToVideo (three) is usually the better call - fewer constraints for the sampler to reconcile generally reads as smoother motion, not just simpler to configure.

CategoryComfyUI-Wan22FMLF

Inputs (25)

NameTypeDefaultDescription
positiveCONDITIONING
negativeCONDITIONING
vaeVAE
widthINT83216–8192
heightINT48016–8192
lengthINT811–8192
batch_sizeINT11–4096
modeoptCOMBONORMAL2 options: NORMAL, SINGLE_PERSON
frame_1_imageoptIMAGE
frame_2_imageoptIMAGE
frame_2_ratiooptFLOAT0.330–1
frame_2_strength_highoptFLOAT0.800–1
frame_2_strength_lowoptFLOAT0.200–1
enable_frame_2optCOMBOenable2 options: disable, enable
frame_3_imageoptIMAGE
frame_3_ratiooptFLOAT0.670–1
frame_3_strength_highoptFLOAT0.800–1
frame_3_strength_lowoptFLOAT0.200–1
enable_frame_3optCOMBOenable2 options: disable, enable
frame_4_imageoptIMAGE
structural_repulsion_boostoptFLOAT1.001–2Motion enhancement through spatial gradient conditioning. Only affects high-noise stage.
clip_vision_frame_1optCLIP_VISION_OUTPUT
clip_vision_frame_2optCLIP_VISION_OUTPUT
clip_vision_frame_3optCLIP_VISION_OUTPUT
clip_vision_frame_4optCLIP_VISION_OUTPUT

Outputs (4)

NameTypeDescription
positive_highCONDITIONING
positive_lowCONDITIONING
negativeCONDITIONING
latentLATENT