Wan22 Painter Long Video (Tiled VAE Encode)
Painter Long Video with a tiled VAE encode
- positive
- negative
- vae
- previous_video
- initial_reference_image
- clip_vision_output
- start_image
- end_image
- positive
- negative
- latent
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.
Inputs (18)
| Name | Type | Default | Description |
|---|---|---|---|
| positive | CONDITIONING | — | |
| negative | CONDITIONING | — | |
| vae | VAE | — | |
| width | INT | 83216–16384 | — |
| height | INT | 48016–16384 | — |
| length | INT | 811–1000 | — |
| batch_size | INT | 11–4096 | — |
| motion_frames | INT | 51–20 | — |
| motion_amplitude | FLOAT | 1.151–2 | — |
| tile_size | INT | 51264–4096 | — |
| overlap | INT | 640–4096 | — |
| temporal_size | INT | 648–4096 | Amount of frames to encode at a time. |
| temporal_overlap | INT | 84–4096 | Amount of frames to overlap. |
| previous_videoopt | IMAGE | — | |
| initial_reference_imageopt | IMAGE | — | |
| clip_vision_outputopt | CLIP_VISION_OUTPUT | — | |
| start_imageopt | IMAGE | — | |
| end_imageopt | IMAGE | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |
| latent | LATENT | — |