Nodes/Boyonodes/Boyo Painter SVI (Motion + Infinite Length)
ComfyUI Node

Boyo Painter SVI (Motion + Infinite Length)

PainterI2V motion with SVI's context preservation

By DragonDiffusionbyBoyo·Created 2 years ago·Updated 27 days ago· 16
Boyo Painter SVI (Motion + Infinite Length)
  • positive
  • negative
  • anchor_samples
  • prev_samples
  • positive
  • negative
  • latent
length81
motion_amplitude1.15
motion_latent_count1

Every local video model has a native context window, and for Wan 2.1/2.2 that window is 81 frames - roughly five seconds. Everything longer is chunking, and chunking is where long videos fall apart: the identity drifts, the motion resets, and you can see the seam. This node is the pack's answer to that problem, and it's a merge of two ideas that were already the community's favorites for it: PainterI2V's motion amplitude enhancement and WanImageToVideoSVIPro's context preservation (SVI being the Stable Video Infinity approach that got Wan 2.2 doing 20–25 second continuous takes).

This is not a beginner node. You reach for it when you've already got a working Wan video pipeline, you're chasing longer video, and you've accepted that infinite length is a stitching problem, not a magic setting. It slots in after your first PainterI2V pass and takes over for samplers 2 and onward.

How it works

The mechanism is worth understanding because it explains why the node has the inputs it has. Wan conditions generation partly through "reference latents" - the first frame that anchors the whole sequence - and through concatenated context latents, which is how you feed the previous chunk's tail into the next chunk so motion continues instead of restarting.

  • anchor_samples (LATENT) is your anchor: the output of the first PainterI2V sampler. Its first frame becomes the reference_latents entry that Wan uses to lock the start of the sequence.
  • prev_samples (LATENT, optional) is the previous chunk's latent. Its last motion_latent_count frames (default 1) get concatenated onto the anchor as the context that carries motion across the boundary. Leave it unconnected and the node still works - you just get a chunk with no continuity, i.e. a reset.
  • length (default 81) is the frame count for this chunk. Wan's VAE downsamples temporally by 4, so the node builds an empty latent of (length-1)//4 + 1 frames, and any gap between your anchor+context and that target is zero-padded.
  • motion_amplitude (1.0–2.0, default 1.15) is the PainterI2V half. It takes the frames after the base anchor, computes their difference from the base, and scales that difference - more motion, less drift-to-static. Above 1.0 it's active; set it to 1.0 to disable.

Outputs are the two conditioned CONDITIONING tensors (positive and negative, both carrying the concat latent and reference latents) plus a fresh LATENT of the requested length to feed the sampler.

Where it fits in a workflow

[Wan model] → [first PainterI2V sampler → anchor_samples]
                                ↓
         BoyoPainterSVI (length=81, prev_samples=prev chunk)
                                ↓
              [sampler 2 → ... → VAE decode → video]
                                ↓
                    (loop: decoded chunk → prev_samples)

The 4n+1 frame math matters: Wan chunks land on 81 (or 41, 121…) frames, and the node's length steps by 4 to keep you on schedule. SVI's whole point is hiding the stitching, and this node is the Boyonodes-flavoured version of that trick for Wan 2.2 - where, as the ecosystem notes, SVI works on plain Wan 2.2 but famously doesn't on some third-party builds like Bernini. If you're chaining long-form on Bernini, this path is closed.

Installation

No extra dependencies - it's all torch and ComfyUI internals:

cd ComfyUI/custom_nodes && git clone https://github.com/DragonDiffusionbyBoyo/Boyonodes

Restart and it's available under conditioning/video_models. The real requirement is the surrounding stack: a Wan 2.1/2.2 model, a VAE, and PainterI2V nodes in your workflow.

The honest limits

Infinite-length video doesn't mean drift-free video. SVI and this node make the seams invisible and the motion continuous, but identity still degrades over many chunks, and each chunk is minutes of compute on a 4090-class card. The ceiling here is "20–30 seconds without engineering," not "a feature film." Set expectations accordingly and you'll be impressed by what this node actually does.

Categoryconditioning/video_models

Inputs (7)

NameTypeDefaultDescription
positiveCONDITIONING
negativeCONDITIONING
lengthINT811–4096
anchor_samplesLATENT
motion_amplitudeFLOAT1.151–2
motion_latent_countINT10–128
prev_samplesoptLATENT

Outputs (3)

NameTypeDescription
positiveCONDITIONING
negativeCONDITIONING
latentLATENT