Nodes/ComfyUI-Fossiel-WAN-Additional-Tilers/Wan22 Painter FLF2V (Tiled VAE Encode)
ComfyUI Node

Wan22 Painter FLF2V (Tiled VAE Encode)

First-last frame with real movement, on the VRAM budget you actually have

By Fossiel·Created 9 months ago·Updated 9 months ago· 2
Wan22 Painter FLF2V (Tiled VAE Encode)
  • positive
  • negative
  • vae
  • clip_vision_start_image
  • clip_vision_end_image
  • start_image
  • end_image
  • positive
  • negative
  • latent
width832
height480
length81
batch_size1
motion_amplitude1.15
tile_size512
overlap64
temporal_size64
temporal_overlap8

First-last frame (FLF) video is the classic way to make a loop or a short transformation: give Wan a start image and an end image, and it bridges them. The stock nodes do it, but the in-between often reads as a lazy morph - the kind where things slide instead of move. Painter FLF2V fixes that with an "inverse structural repulsion" pass that actively boosts the difference between your two frames. This version wraps that whole pipeline in a tiled VAE encode, so the fix doesn't cost you a VRAM disaster.

What it actually does

Like the rest of the Painter family, this is princepainter's node logic with the encodes switched to encode_tiled(). It builds a gray baseline, stamps your start_image and end_image into the front and back, and encodes it. Then comes the interesting part: it also computes a linear interpolation between the start and end latents, subtracts that from the official baseline, and separates the result into low-frequency (color) and high-frequency (structure) components.

The tooltip says it best: motion_amplitude runs 1.0 = official version to 2.0 = extreme speed (eliminates slow motion). At 1.0 you get stock FLF behavior. Above that, it scales the high-frequency difference - the actual structure that changes between your frames - and adds it back, with a boost that maps 1.0–2.0 onto up to 4× internal strength. Low-frequency color is deliberately left alone, which is why cranking the knob doesn't melt your palette into mush. If your start and end are close in appearance, nothing much gets boosted; if they're genuinely different shots, you get real movement instead of a crossfade.

Inputs and outputs

Required: positive / negative conditioning, vae, width / height / length / batch_size, motion_amplitude (default 1.15), and the tiling group (tile_size 512, overlap 64, temporal_size 64, temporal_overlap 8). Optional: start_image, end_image, and clip_vision_start_image / clip_vision_end_image outputs, which get merged into a single CLIP Vision set.

Outputs: positive, negative, latent - wire them to your KSampler as you would the original Painter FLF2V node.

Installing it

ComfyUI Manager → search Fossiel or WAN-Additional-Tilers, or:

cd ComfyUI/custom_nodes
git clone https://github.com/Fossiel/ComfyUI-Fossiel-WAN-Additional-Tilers

Restart ComfyUI. No Python dependencies beyond ComfyUI, no bundled models - your own Wan 2.2 checkpoint, CLIP, and VAE.

Gotchas

The boost only engages when both start_image and end_image are connected and length is above a couple of frames - wire both, or the knob does nothing and you're just running stock FLF. Past 1.5 or so, watch for over-sharpened structure and the occasional flicker between frames; back off in 0.05 steps. And the standing pack rule: keep ComfyUI current, because temporal tiling needs a recent build.

Categoryconditioning/video_models

Inputs (16)

NameTypeDefaultDescription
positiveCONDITIONING
negativeCONDITIONING
vaeVAE
widthINT83216–16384
heightINT48016–16384
lengthINT811–16384
batch_sizeINT11–4096
motion_amplitudeFLOAT1.151–21.0=official version, 2.0=extreme speed (eliminates slow motion)
tile_sizeINT51264–4096
overlapINT640–4096
temporal_sizeINT648–4096Amount of frames to encode at a time.
temporal_overlapINT84–4096Amount of frames to overlap.
clip_vision_start_imageoptCLIP_VISION_OUTPUT
clip_vision_end_imageoptCLIP_VISION_OUTPUT
start_imageoptIMAGE
end_imageoptIMAGE

Outputs (3)

NameTypeDescription
positiveCONDITIONING
negativeCONDITIONING
latentLATENT