Vantage I2V Single Model Looper
Wan 2.2 as long as you want it — this node does the stitching
- model
- clip
- project_data
- vae
- clip_vision
- start_image
- images
The name undersells it. It's not a single pass at all - it's a loop, and that loop is what turns Wan's five-second brain into a twenty-second or five-minute video without the seams screaming at you. The Vantage I2V Single Model Looper is the workhorse of the Vantage pack, aimed at Wan 2.1 and Wan 2.2 AIO checkpoints: the single-file bundles where the U-Net, CLIP, and VAE all come from one checkpoint and you skip the model juggling entirely.
Why you'd reach for it
Wan 2.2's native context is still about 81 frames, and that's the wall every long-form project hits. The usual answer is a chain-and-restitch loop you build by hand - an I2V node wired to a prompt-switcher and a seed-finder, which breaks the second you close ComfyUI. This node bakes that loop in: it renders overlapping windows, seeds each window from the last frame of the one before, and pulls its prompts from a project file instead of a text box. The pack gets passed around in r/comfyui threads as the answer to "how do I push Wan 2.2 i2v further," and this looper is the piece doing the work.
How it works
Each line in your project script is one clip, and each clip is five seconds. At 16 fps a window is 81 frames; at 25 fps it's 129. The first window seeds from your start_image; every later window seeds from the previous window's final decoded frame (or the Nth-from-last if overlap is 2 or higher), and those overlapping frames get dropped from the saved timeline so the length doesn't double up. Every loop is written to disk as PNGs under ComfyUI/vantage/<project_id>/<n>/, then all frames are loaded back and returned as a single IMAGE tensor.
The resume logic is the genuinely useful part. start_prompt in your project data says "begin at clip N": the node walks backward until it finds a folder that actually has frames, wipes the current and future folders, and regenerates from there. Rework segment 6 without re-rendering 1–5. That's the entire selling point.
The inputs that matter
- project_data - comes from the Vantage Project Loader node. This is where your positive prompts live; the looper has no prompt field of its own.
- model, clip, vae, clip_vision, start_image - your Wan AIO checkpoint, its CLIP and VAE, a CLIP vision model, and the starting frame for I2V. All required.
- negative_text, seed, steps, cfg, sampler_name, scheduler - the usual sampling stack.
- width / height (832×480 defaults, snapped to multiples of 16), fps (16 or 25), overlap, denoise, crop, batch_size - the shape and continuity controls.
overlapis the one to fiddle with: 0 or 1 seeds from the last frame, 2+ reaches back further for smoother handoffs.
The single output, images, wires into VHS_VideoCombine or a SaveVideo node - the pack's own example workflow uses VideoHelperSuite on the other end.
Installing it
From ComfyUI Manager, search VantageLongWanVideo and install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/vantagewithai/VantageLongWanVideo.git
then restart. No requirements.txt, no bundled models - bring your own Wan checkpoint and friends.
Where people get burned
If the node renders nothing useful on a fresh graph, check the obvious: prompts come from project_data, so wire the Project Loader first or the looper sees an empty list. Every run dumps PNGs into ComfyUI/vantage/, and a 20-second clip is hundreds of files - watch your disk if you iterate a lot. A start_prompt beyond your prompt list resets to 0 with a console warning, so the "fix one segment" flow only works if the index is real. And the 5-seconds-per-line cadence is fixed, so a long beat means more lines, not a longer line. CLIP vision is a required input here and I2V genuinely needs it - skip it and the conditioning falls apart.
Inputs (19)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| clip | CLIP | The CLIP model used for encoding the text. | |
| project_data | * | Dict with 'prompt_lines' and 'project_id'. | |
| negative_text | STRING | Negative text. | |
| seed | INT | 00–18446744073709550000 | — |
| steps | INT | 201–10000 | — |
| cfg | FLOAT | 8.00–100 | — |
| sampler_name | COMBO | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 | |
| scheduler | COMBO | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 | |
| width | INT | 83264–8192 | — |
| height | INT | 48064–8192 | — |
| batch_size | INT | 11–64 | — |
| denoise | FLOAT | 1.000–1 | — |
| fps | COMBO | 16 | 2 options: 16, 25 |
| overlap | INT | 10–8 | How many frames overlap into the next loop. 0 or 1 = last frame; N>=2 = Nth from bottom. |
| crop | COMBO | 2 options: center, none | |
| vae | VAE | The VAE Model used for decoding latent. | |
| clip_vision | CLIP_VISION | — | |
| start_image | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |