Wan 4-Frame Reference
The fixed middle ground between 3 anchors and N
- 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
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_imageis always your start frame - there's no separate enable toggle or ratio for it, because it's implicitly anchored at position 0.frame_2_imagewithframe_2_ratio(default 0.33),frame_2_strength_high(0.8),frame_2_strength_low(0.2), and anenable_frame_2combo (enable/disable, defaultenable).frame_3_imagewith the mirroredframe_3_ratio(default 0.67),frame_3_strength_high(0.8),frame_3_strength_low(0.2), andenable_frame_3.frame_4_imageis 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_1throughclip_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.
Inputs (25)
| Name | Type | Default | Description |
|---|---|---|---|
| positive | CONDITIONING | — | |
| negative | CONDITIONING | — | |
| vae | VAE | — | |
| width | INT | 83216–8192 | — |
| height | INT | 48016–8192 | — |
| length | INT | 811–8192 | — |
| batch_size | INT | 11–4096 | — |
| modeopt | COMBO | NORMAL | 2 options: NORMAL, SINGLE_PERSON |
| frame_1_imageopt | IMAGE | — | |
| frame_2_imageopt | IMAGE | — | |
| frame_2_ratioopt | FLOAT | 0.330–1 | — |
| frame_2_strength_highopt | FLOAT | 0.800–1 | — |
| frame_2_strength_lowopt | FLOAT | 0.200–1 | — |
| enable_frame_2opt | COMBO | enable | 2 options: disable, enable |
| frame_3_imageopt | IMAGE | — | |
| frame_3_ratioopt | FLOAT | 0.670–1 | — |
| frame_3_strength_highopt | FLOAT | 0.800–1 | — |
| frame_3_strength_lowopt | FLOAT | 0.200–1 | — |
| enable_frame_3opt | COMBO | enable | 2 options: disable, enable |
| frame_4_imageopt | IMAGE | — | |
| structural_repulsion_boostopt | FLOAT | 1.001–2 | Motion enhancement through spatial gradient conditioning. Only affects high-noise stage. |
| clip_vision_frame_1opt | CLIP_VISION_OUTPUT | — | |
| clip_vision_frame_2opt | CLIP_VISION_OUTPUT | — | |
| clip_vision_frame_3opt | CLIP_VISION_OUTPUT | — | |
| clip_vision_frame_4opt | CLIP_VISION_OUTPUT | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| positive_high | CONDITIONING | — |
| positive_low | CONDITIONING | — |
| negative | CONDITIONING | — |
| latent | LATENT | — |