WanImageToVideoSVIPro
The KJNodes path to long Wan clips with SVI Pro
- positive
- negative
- anchor_samples
- prev_samples
- positive
- negative
- latent
Wan tops out around 81 frames - five seconds and a bit - before the model runs out of its trained context. That ceiling is the single biggest annoyance in local video, and Stable Video Infinity (SVI) is the technique that beat it: LoRA adapters from EPFL that teach Wan to survive its own errors and keep a continuous shot going for 20, 25, sometimes more seconds. This node is the conditioning node that makes SVI Pro run inside a stock ComfyUI Wan graph. It's the plumbing that chains one chunk into the next.
What it's for and how it fits
SVI isn't a model, it's a pair of LoRAs you load onto a Wan 2.2 I2V checkpoint. But adapters alone don't extend a clip - something has to feed the tail of chunk N into chunk N+1 as an anchor so the motion continues instead of restarting. That "something" is this node. It sits in the conditioning stage: it takes your positive and negative conditioning, an anchor latent, and (optionally) the previous chunk's samples, and it produces conditioning plus a starting latent that's already primed to continue the shot.
Worth setting expectations, because the SVI threads are full of both euphoria and honest griping. What you get is length. What you don't get is control: identity drifts, faces change expression shot to shot, and stacked speed LoRAs can drag in slow-motion and progressive blur the longer you go. The reliable band is roughly 20-25 seconds; past a point the wall isn't the adapter, it's ComfyUI itself crashing during assembly. Go in wanting a long continuous take, not a face that holds perfectly for a minute.
The inputs and outputs that matter
positive/negative- your normal conditioning in. They come back out modified, so you wire the node'spositiveandnegativeoutputs onward to the sampler, not your originals.anchor_samples(LATENT) - the anchor the continuation hangs off. This is the frame or frames the next chunk grows from; it's what keeps the shot continuous.prev_samples(LATENT, optional) - the previous chunk's latents, for chaining. First chunk you leave it empty; every chunk after, you feed the prior one in. This is the loop.length(default 81) - frames for this chunk, stepping in 4s because the Wan VAE compresses time ~4x. Keep it a valid 4n+1 count or you'll come up a couple frames short.motion_latent_count(default 1) - how many motion latents carry across the boundary. It's the continuity dial; bump it if motion stutters at the seam.
Outputs are positive, negative, and latent - the primed starting latent for this chunk's sampler.
How to install it
The node ships in kijai's KJNodes pack.
- ComfyUI Manager - search KJNodes for ComfyUI, install, restart.
- Manual -
cd ComfyUI/custom_nodes && git clone https://github.com/kijai/ComfyUI-KJNodes, thenpip install -r ComfyUI-KJNodes/requirements.txt, restart.
The node itself is light, but the workflow around it is not. You need a Wan 2.2 I2V-A14B checkpoint and the SVI 2.0 Pro LoRA pair (the HIGH/LOW rank-128 files, hosted on Kijai's WanVideo_comfy HuggingFace repo). A full SVI setup is a multi-gigabyte model set - budget the download and the VRAM before you wire it up.
Common issues & troubleshooting
The clip comes back a couple frames shorter than you asked. That's the 4n+1 latent math. The VAE compresses time by ~4, so length needs to land on a valid count; an off-by-a-bit request gets rounded down on decode. Stick to 4n+1 frame counts per chunk.
Faces and identity drift across the clip. Expected. SVI conditions length, not identity - it's the top complaint in every SVI thread. Add a character LoRA to the base model to hold the face, or accept shorter takes from plain Wan if identity is non-negotiable.
It gets blurrier and more slow-motion the longer it runs. Progressive blur is inherent to long autoregressive SVI and gets worse with motion LoRAs stacked on top; the slow-motion look usually comes from distill/speed LoRAs underneath, not from SVI itself. Drop the speed LoRA strength, or speed the finished clip up in post.
ComfyUI crashes on long chains. The reported ceiling is the host application during stitching and assembly, not the adapter - and more VRAM doesn't fix it because it's often system RAM. Keep chunks reasonable and stitch the final long clip outside ComfyUI if it won't hold.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| positive | CONDITIONING | — | |
| negative | CONDITIONING | — | |
| length | INT | 811–16384 | — |
| anchor_samples | LATENT | — | |
| motion_latent_count | INT | 10–128 | — |
| prev_samplesopt | LATENT | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |
| latent | LATENT | — |