Nodes/ComfyUI Smart Helper Nodes/Smart Wan First-Middle-Last Frame to Video (High Noise End)
ComfyUI Node

Smart Wan First-Middle-Last Frame to Video (High Noise End)

More control over WAN's first-middle-last frame conditioning

By slvslvslv·Created 2 years ago·Updated 7 days ago· 3
Smart Wan First-Middle-Last Frame to Video (High Noise End)
  • positive
  • negative
  • vae
  • start_image
  • middle_image
  • end_image
  • clip_vision_start_image
  • clip_vision_middle_image
  • clip_vision_end_image
  • positive_high
  • positive_low
  • negative
  • latent
width832
height480
length81
batch_size1
modeNORMAL
middle_frame_ratio0.50
high_noise_mid_strength0.80
high_noise_end_strength1.00
low_noise_start_strength1.00
low_noise_mid_strength0.20
low_noise_end_strength1.00
structural_repulsion_boost1.00

ComfyUI already ships a "Wan First-Middle-Last Frame to Video" node - it's the one that lets you steer a clip with three keyframes instead of just a start and end. Smart Wan First-Middle-Last Frame to Video (High Noise End) is this pack's standalone copy with one meaningful addition: a separate strength knob for how the end frame grips the high-noise expert.

If you've used the core node, everything here is familiar. You feed it a start_image, a middle_image, and an end_image, and it builds the conditioning: keyframes pasted onto a gray canvas, VAE-encoded, masked per-expert, and injected into your positive conditioning. middle_frame_ratio (0–1, default 0.5) decides where the middle keyframe lands in the clip. The node spits out four outputs - positive_high, positive_low, negative, latent - which is the signature of WAN 2.2's two-expert MoE workflow: the high-noise expert establishes coarse structure first, then the low-noise expert refines it, and each gets its own conditioning path.

The reason this variant exists is a quirk people hit on the core node: when the end frame is anchored at full strength for the high-noise step, the tail of the clip can come out with a noise burst or a weird hard stop. The stock node gives you one end strength shared by both experts. Here you get high_noise_end_strength and low_noise_end_strength independently, plus high_noise_mid_strength and low_noise_mid_strength for the middle frame. The play: drop high_noise_end_strength toward 0.6–0.8 so the coarse-structure expert isn't forced to slam into the end frame, while keeping low_noise_end_strength at 1.0 so the refiner still lands the shot on target. When a strength is below 1, the node doesn't just weaken the mask - it also blends that keyframe toward neutral gray in the concat image, because the model still sees end-frame pixels otherwise.

Defaults lean sensible for this: low_noise_mid_strength starts at 0.2 (the refiner mostly ignores the middle frame so it doesn't stamp a still on the video), low_noise_start_strength at 1.0. The mode selector - NORMAL or SINGLE_PERSON - changes how the low-noise image canvas is built, a small concession to character work where you want the refiner to respect the subject more.

The other knob worth knowing is structural_repulsion_boost (1.0–2.0). It amplifies motion between keyframes by comparing the actual pixels of adjacent keyframes, building a spatial gradient, and relaxing the mask where the images differ most - a way to add movement without touching any strength sliders. Default 1.0 is off.

The three optional clip_vision_*_image slots are CLIP_VISION_OUTPUT ports; the node merges their token sequences and injects the result into the conditioning. They're the same shape of input the core FML node takes, so existing workflows port across.

Install through ComfyUI Manager (search "Smart Helper Nodes"), or clone:

cd ComfyUI/custom_nodes
git clone https://github.com/slvslvslv/ComfyUI-SmartHelperNodes

Restart ComfyUI afterward. Nothing heavy to download - requirements.txt is empty, no models are fetched, and it works with the WAN 2.2 checkpoint setup you already have.

CategorySmartHelperNodes/Wan

Inputs (21)

NameTypeDefaultDescription
positiveCONDITIONING
negativeCONDITIONING
vaeVAE
widthINT83216–8192
heightINT48016–8192
lengthINT811–8192
batch_sizeINT11–4096
modeoptCOMBONORMAL2 options: NORMAL, SINGLE_PERSON
start_imageoptIMAGE
middle_imageoptIMAGE
end_imageoptIMAGE
middle_frame_ratiooptFLOAT0.500–1
high_noise_mid_strengthoptFLOAT0.800–1
high_noise_end_strengthoptFLOAT1.000–1
low_noise_start_strengthoptFLOAT1.000–1
low_noise_mid_strengthoptFLOAT0.200–1
low_noise_end_strengthoptFLOAT1.000–1
structural_repulsion_boostoptFLOAT1.001–2
clip_vision_start_imageoptCLIP_VISION_OUTPUT
clip_vision_middle_imageoptCLIP_VISION_OUTPUT
clip_vision_end_imageoptCLIP_VISION_OUTPUT

Outputs (4)

NameTypeDescription
positive_highCONDITIONING
positive_lowCONDITIONING
negativeCONDITIONING
latentLATENT