Wan22 Painter I2V (Tiled VAE Encode)
Painter I2V without the slow-motion curse — and without the VRAM spike
- positive
- negative
- vae
- clip_vision_output
- start_image
- positive
- negative
- latent
The Painter line of Wan 2.2 I2V nodes exists for one reason: 4-step speed LoRAs like lightx2v make everything waddle. Motion comes out sluggish and floaty because a distilled fast sampler hasn't got the steps to move things. Painter's answer is motion_amplitude - a knob that literally rescales the difference between your first frame and the generated frames in latent space, turning up the motion. This version of Painter I2V is the one you want on a low-VRAM card, because it does all that encoding in tiles.
What it actually does
Under the hood it's princepainter's ComfyUI-PainterI2V logic, with one swap: vae.encode() became vae.encode_tiled(). The node takes your start_image, fills the rest of the length with neutral gray, and encodes that stack - first frame real, the rest blank - into latent. A mask constrains only that first frame, which is what tells Wan the video has to start from your picture and is free everywhere else.
Then the Painter trick: if motion_amplitude is above 1.0, it takes the latent's first frame as a baseline, computes the difference to the gray frames, and multiplies that difference by motion_amplitude (default 1.15, up to 2.0) before re-adding it. Bigger knob, more motion per frame. It's a coarse but effective fix for the speed-LoRA float, and it's why people reach for Painter instead of the plain native I2V node. The first frame is also injected as a reference_latents entry so identity holds.
Inputs and outputs
Required: positive / negative conditioning, vae, width / height / length / batch_size, motion_amplitude, and the tiling quartet (tile_size 512, overlap 64, temporal_size 64, temporal_overlap 8). Optional: start_image and a clip_vision_output from a CLIP Vision node, which gets merged into both conditionings.
Outputs are the standard positive, negative, and latent. Drop them into your KSampler like any Wan I2V node - it's a direct replacement for the original Painter I2V node, same sockets, plus the tiling controls.
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. Zero extra Python dependencies, no bundled models - you supply the Wan 2.2 checkpoint, CLIP, VAE, and whatever speed LoRA you're fighting with.
Gotchas
Two things trip people up. First, the speed-LoRA tradeoff cuts both ways: these distilled LoRAs genuinely do hurt scene composition and lighting if you blast them on everything - the community consensus is to apply them to the low-noise pass only and keep high noise clean. motion_amplitude at 1.15 is a mild bump; if your clip still crawls, raise it in small steps rather than jumping to 2.0, or you'll get jitter instead of motion. Second, the usual pack rule: keep ComfyUI updated, because the temporal tiling arguments need a recent build.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| positive | CONDITIONING | — | |
| negative | CONDITIONING | — | |
| vae | VAE | — | |
| width | INT | 83216–16384 | — |
| height | INT | 48016–16384 | — |
| length | INT | 811–16384 | — |
| batch_size | INT | 11–4096 | — |
| 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. |
| clip_vision_outputopt | CLIP_VISION_OUTPUT | — | |
| start_imageopt | IMAGE | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |
| latent | LATENT | — |