Nodes/Wan Camera Advanced/Wan Camera Multi-Frame Reference
ComfyUI Node

Wan Camera Multi-Frame Reference

The Wan camera trick that actually handles big rotations

By thepororo·Created 2 months ago·Updated 2 months ago· 0
Wan Camera Multi-Frame Reference
  • positive
  • negative
  • vae
  • camera_embedding
  • start_image
  • middle_image
  • end_image
  • positive_high
  • positive_low
  • negative
  • latent
width832
height480
length81
middle_frame40
ref_strength_high0.75
ref_strength_low0.30
end_strength_high0.85
end_strength_low0.70

Every Wan camera node hits the same wall: rotate past roughly 45 degrees and the model starts inventing whatever it thinks is behind the subject - usually wrong. Your source image only shows the front of the scene, and a big yaw is a demand for content that isn't there. The standard fix in film is storyboards; the Wan 2.2 fix is reference frames at the start, middle, and end of the shot. This node is the thing that stitches all three together and stamps your camera path on top, so the model has ground truth for the whole journey, not just the first frame.

It's the most ambitious node in thepororo's Wan Camera Advanced pack - and the one with a real dependency, so read the install section before you hit the wall.

How it works

The pack doesn't reimplement multi-frame conditioning from scratch. It calls into wallen0322's ComfyUI-Wan22FMLF node - the community's First/Middle/Last-Frame conditioning for Wan 2.2 - importing its WanMultiFrameRefToVideo class at runtime and driving it directly. Your three images get VAEs-encoded and passed with reference positions 0, middle_frame, length-1, and the node's high/low strength settings map onto Wan 2.2's two-pass architecture: the high-noise pass handles motion and composition, the low-noise pass refines detail, and they accept different reference strengths for exactly that reason.

Then the clever part: after getting the multi-frame conditioning back, the node injects your camera_embedding into all three conditioning streams. So you get one clean output bundle that carries both the reference-image constraints and the camera path, ready for the high/low-noise sampler pair.

The inputs that matter

  • start_image, middle_image, end_image - your storyboard. The middle and end frames should be perspective-consistent with the start at your chosen rotation, i.e. what the camera would actually see there. This is the part people skip, and it's the whole point.
  • camera_embedding - from WanCameraEmbeddingAdvanced, same pack.
  • middle_frame - which frame the middle reference lands on. Default 40 for an 81-frame clip, roughly the halfway point. Must be a multiple of 4 and between 4 and length - 5, or the node throws.
  • ref_strength_high / ref_strength_low - how hard the middle reference binds to the high- and low-noise passes. Defaults 0.75/0.30.
  • end_strength_high / end_strength_low - same idea for the end frame, defaults 0.85/0.70. The end reference is usually allowed to bind harder since it's the destination.
  • positive, negative, vae, width, height, length - standard fare. length is again 1 plus a multiple of 4.

Outputs are positive_high, positive_low, negative, and latent. In a native Wan 2.2 workflow, positive_high feeds the high-noise model's sampler and positive_low the low-noise one - that split is the two-pass architecture working as intended.

Install - read this, it's a trap

Two packs, in a specific order:

cd ComfyUI/custom_nodes
# the dependency must land in a folder literally named "wan22fmlf"
git clone https://github.com/wallen0322/ComfyUI-Wan22FMLF.git wan22fmlf
git clone https://github.com/thepororo/ComfyUI-WanCameraAdvanced.git

Restart ComfyUI. The folder name is not optional: the pack loads wan22fmlf/wan_multi_frame.py by exact path, and if you cloned the dependency with its default folder name you'll get a "Install the wan22fmlf custom node first" error even though it's right there in custom_nodes. If you already installed it via ComfyUI Manager under the wrong name, just rename the folder - nothing inside cares.

Troubleshooting

Beyond the folder trap, the failures here are the usual Wan suspects: length not being 1 + a multiple of 4, middle_frame not a multiple of 4, and mismatched aspect ratios between your three reference images and width/height. The subtle one is strength balance - if the middle frame overpowers the shot you get a stutter where the camera hits a "pinned" frame mid-move; drop ref_strength_high a notch and it becomes a suggestion instead of a command. Start with the author's defaults and only touch them when you see a specific artifact.

One honest caveat: this whole approach is Wan 2.2-specific, because it leans on the two-pass high/low-noise structure. That's fine - 2.2 is the last open Wan base anyway, and it's still what most local video runs on.

Categorymodel/conditioning/wan/camera

Inputs (15)

NameTypeDefaultDescription
positiveCONDITIONING
negativeCONDITIONING
vaeVAE
camera_embeddingWAN_CAMERA_EMBEDDING
start_imageIMAGE
middle_imageIMAGE
end_imageIMAGE
widthINT83216–16384
heightINT48016–16384
lengthINT815–16384
middle_frameINT404–9996
ref_strength_highFLOAT0.750–1
ref_strength_lowFLOAT0.300–1
end_strength_highFLOAT0.850–1
end_strength_lowFLOAT0.700–1

Outputs (4)

NameTypeDescription
positive_highCONDITIONING
positive_lowCONDITIONING
negativeCONDITIONING
latentLATENT