Nodes/Native Looper/I2V Looper
ComfyUI Node

I2V Looper

Chain Wan clips into one long video without melting your VRAM

By masteroleary·Created 5 months ago·Updated 5 months ago· 2
I2V Looper
  • model
  • vae
  • clip
  • clip_vision
  • start_image
  • loop_1
  • loop_2
  • loop_3
  • loop_4
  • loop_5
  • loop_6
  • loop_7
  • loop_8
  • loop_9
  • loop_10
  • full_video
  • used_prompts
width832
height480
steps20
cfg4.0
sampler_nameuni_pc
schedulernormal
seed0
positive_prompt
negative_prompt

What it is

ComfyUI's built-in Wan support (WanImageToVideo) hands you one clip per generation - typically 81 frames, a few seconds - and no amount of prompt persuasion turns that into a long, continuous take. I2V Looper is the answer: it chains those clips together, using the last frame of each segment as the start image of the next. The result is a genuinely long video out of Wan, with a different prompt allowed on every segment.

This is the single-model workhorse of the Native Looper pack. If you're on Wan 2.1's I2V 14B, or Wan 2.2's 5B, this is the node you want. If you're on Wan 2.2's big two-expert A14B pair, skip this page and read the High/Low variant instead - the mechanism is the same, but the sampling needs two models.

How it works

For each segment, the node encodes your prompt and the CLIP Vision features of the current start image, builds the WanImageToVideo conditioning, optionally applies that segment's LoRA, samples with a KSampler, and decodes through the VAE. Then comes the memory trick that makes the whole thing viable: it saves the decoded segment to disk, clears the VRAM cache (soft_empty_cache plus a garbage-collect), and only then starts the next loop from the previous segment's final frame. Everything gets concatenated at the end. That's why you can chain segments that would never fit in VRAM simultaneously.

The honest caveat: every loop is a fresh generation. Character and scene consistency are anchored by the previous frame, not guaranteed, so very long chains still drift eventually. The README's "sharp output and character consistency" is doing a lot of work there - it means "more consistent than ten separate generations," not "flawless."

Inputs that matter

  • model / vae / clip / clip_vision - the full Wan stack. clip_vision's tooltip is the author telling you what to load: "CLIP Vision model (e.g. clip_vision_h.safetensors)". I2V fundamentally needs that model to read your start image; skip it and nothing works.
  • start_image - frame one of loop 1. The node resizes it to your width/height automatically.
  • width / height - 832×480 by default, snapped to multiples of 16. Match your checkpoint's native resolution.
  • steps / cfg / sampler_name / scheduler - defaults of 20 steps, cfg 4, uni_pc / normal are sensible for single-pass Wan.
  • positive_prompt - the base/fallback prompt, used for any segment whose I2VLoop card has an empty prompt. negative_prompt - global negative, defaulting to "low quality, blurry, glitch, distortion."
  • loop_1 … loop_10 - where your I2VLoop configs plug in. Unconnected slots are auto-detected and skipped.

Outputs

  • full_video (IMAGE) - one tensor of all concatenated frames. Note that it is not a video file; you feed it into something like VideoHelperSuite's Video Combine to encode an mp4, which is exactly what the pack's own example workflows do.
  • used_prompts (STRING) - a per-segment log of which prompt actually ran. Genuinely useful when a segment comes out wrong and you want to know what it generated with.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/masteroleary/ComfyUI-LooperNode

Restart, or grab it through Manager by searching "Native Looper." No Python dependencies - everything it calls ships with ComfyUI core. The models are a separate download: a Wan I2V checkpoint, the Wan VAE, the umt5 text encoder, and a CLIP Vision model. The pack's own workflow uses GGUF quants (wan22I2VA14BGGUF_q8A14BHigh/Low.gguf for the HL variant), wan_2.1_vae.safetensors, umt5_xxl_fp8_e4m3fn_scaled.safetensors, and clip_vision_h.safetensors.

Common issues

  • Nothing wired into the loop slots still runs. With no loops connected, the code falls back to a single segment from the base prompt - it won't error, it'll just quietly make something you didn't plan. Check your wiring first.
  • Memory. Wan 2.1 14B wants around 12GB VRAM even with GGUF quantization; the KB's honest floor is that 720p comfort wants 24GB. Drop width/height before you drop quality if you're squeezing.
  • Seed behavior. The seed increments internally on every loop, so a "fixed" seed only pins loop 1. That's usually what you want for variation, but it surprises people who expect reproducibility.
  • It's a newborn pack - a single commit at the time of writing, zero community footprint. The code is thin enough that most failures are familiar Wan failures, but don't expect a support forum full of answers behind it yet.
Categoryvideo/native

Inputs (24)

NameTypeDefaultDescription
modelMODEL
vaeVAE
clipCLIP
clip_visionCLIP_VISIONCLIP Vision model (e.g. clip_vision_h.safetensors)
start_imageIMAGEStart image for loop 1
widthINT83216–4096
heightINT48016–4096
stepsINT201–100
cfgFLOAT4.00–30
sampler_nameCOMBOuni_pc5 options: uni_pc, euler, dpm++_sde, dpm++_2m, ddim
schedulerCOMBOnormal4 options: normal, simple, karras, sgm_uniform
seedINT00–18446744073709550000
positive_promptoptSTRINGBase/fallback prompt
negative_promptoptSTRINGGlobal negative prompt
loop_1optNATIVE_LOOP
loop_2optNATIVE_LOOP
loop_3optNATIVE_LOOP
loop_4optNATIVE_LOOP
loop_5optNATIVE_LOOP
loop_6optNATIVE_LOOP
loop_7optNATIVE_LOOP
loop_8optNATIVE_LOOP
loop_9optNATIVE_LOOP
loop_10optNATIVE_LOOP

Outputs (2)

NameTypeDescription
full_videoIMAGE
used_promptsSTRING