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

Wan22 Painter Long Video (Tiled VAE Encode)

Painter Long Video with a tiled VAE encode

By Fossiel·Created 9 months ago·Updated 9 months ago· 2
Wan22 Painter Long Video (Tiled VAE Encode)
  • positive
  • negative
  • vae
  • previous_video
  • initial_reference_image
  • clip_vision_output
  • start_image
  • end_image
  • positive
  • negative
  • latent
width832
height480
length81
batch_size1
motion_frames5
motion_amplitude1.15
tile_size512
overlap64
temporal_size64
temporal_overlap8

Wan 2.2 is a five-second-clip model. The trick for anything longer is chaining: take the tail of your last clip, feed it in, and ask for the next five seconds. Painter Long Video is the node built for exactly that - it takes a previous_video, uses its last frames as the seed, and can pin start_image and end_image constraints on top. This version runs all of that conditioning through a tiled VAE encode, which is what makes long-form chaining plausible on a card that isn't a 5090.

What it actually does

It's princepainter's ComfyUI-PainterLongVideo logic with vae.encode() swapped for encode_tiled(). Give it a previous_video and it grabs the last few frames - motion_frames (default 5) decides how many, capped internally at 73 - resizes them to your width / height, and builds a gray-filled frame stack that starts from the last frame of the previous clip. The tail of that video is encoded as reference_motion so the new clip continues the motion instead of just the pixels, and the last frame doubles as a reference_latents entry for identity.

You can also drop in start_image and/or end_image to constrain the new clip's endpoints. A clip_vision_output and an initial_reference_image give the model extra identity anchors. motion_amplitude (1.0–2.0, default 1.15) is the Painter family's slow-motion fix, scaling the latent difference between the seed frame and the generated frames.

One honest warning built into the source: it raises an error if you connect nothing - you must wire at least one of previous_video, start_image, or end_image. That's a deliberate guard, not a bug.

Inputs and outputs

Required: positive / negative conditioning, vae, width / height / length (this node allows up to 1000 frames) / batch_size, motion_frames, motion_amplitude, plus the tiling group. Optional: previous_video, start_image, end_image, initial_reference_image, clip_vision_output.

Outputs: positive, negative, latent - the usual KSampler feed.

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 deps, no bundled models - your own Wan 2.2 checkpoint, CLIP, and VAE.

Gotchas

The reference-motion encode is a separate tiled pass, so on long length values this node does a lot of encoding and can feel slower than the original - that's the VRAM tradeoff, and it's usually worth it. Continuity across chunks is the real enemy: identity drift at boundaries is a known Wan chaining weakness, so keep motion_frames modest and consider a color-match step between segments. And yes, the standing rule: keep ComfyUI current for the temporal tiling arguments.

Categoryvideo/painter

Inputs (18)

NameTypeDefaultDescription
positiveCONDITIONING
negativeCONDITIONING
vaeVAE
widthINT83216–16384
heightINT48016–16384
lengthINT811–1000
batch_sizeINT11–4096
motion_framesINT51–20
motion_amplitudeFLOAT1.151–2
tile_sizeINT51264–4096
overlapINT640–4096
temporal_sizeINT648–4096Amount of frames to encode at a time.
temporal_overlapINT84–4096Amount of frames to overlap.
previous_videooptIMAGE
initial_reference_imageoptIMAGE
clip_vision_outputoptCLIP_VISION_OUTPUT
start_imageoptIMAGE
end_imageoptIMAGE

Outputs (3)

NameTypeDescription
positiveCONDITIONING
negativeCONDITIONING
latentLATENT