Nodes/WanVideoLooper/WanVideo Looper Lora Sequencer
ComfyUI Node

WanVideo Looper Lora Sequencer

Different LoRAs on different shots, without leaving the graph

By SquirrelRat·Created 10 months ago·Updated 8 months ago· 10
WanVideo Looper Lora Sequencer
  • model_high_1
  • model_high_2
  • model_high_3
  • model_high_4
  • model_high_5
  • model_high_6
  • model_high_7
  • model_high_8
  • model_high_9
  • model_high_10
  • model_low_1
  • model_low_2
  • model_low_3
  • model_low_4
  • model_low_5
  • model_low_6
  • model_low_7
  • model_low_8
  • model_low_9
  • model_low_10
  • clip_1
  • clip_2
  • clip_3
  • clip_4
  • clip_5
  • clip_6
  • clip_7
  • clip_8
  • clip_9
  • clip_10
  • model_clip_sequence

Here's the thing the main looper node can't do alone: it runs every segment with the same models. If your video is "woman walks in, woman turns into a dragon, dragon flies off," you want the dragon shots to carry a different LoRA than the human ones - and WanVideo Looper Lora Sequencer is how you get that per-segment control.

The pattern is deliberately ComfyUI-native: you don't do any patching inside this node. You build your patched models the normal way - Load LoRA (or whatever you're using) wired into the base Wan 2.2 high-noise and low-noise models - and you connect the finished MODEL and CLIP outputs into this node's inputs. It then bundles them into a sequence the looper understands and hands them over via its single output, model_clip_sequence, which plugs into the looper's optional input of the same name.

How it works

Under the hood it's a list assembler with a friendly face. It exposes ten segments' worth of inputs - model_high_1 through model_high_10, model_low_1 through model_low_10, and clip_1 through clip_10, all optional - and packs each set into a tuple (model_high, model_low, clip) inside a list. The looper indexes that list by segment number: segment 1 uses what you plugged into _1, segment 2 what you plugged into _2, and so on. Any slot you leave unconnected falls back to the looper's clean base models, which is exactly the behavior you want - patch only the shots that need it.

The one genuinely clever bit is the UI. A little JS watches what's connected and only shows inputs up to the highest connected segment, so instead of a wall of thirty ports you get a tidy node that grows as you plug things in. Connect segment 1, you see segment 2's inputs appear; connect those, and segment 3 shows up. It's a small thing, but it makes a 30-input node readable.

Where people get burned

  • It only covers the first 10 prompts. The sequencer hard-stops at segment 10. If your prompt_list has 14 lines, segments 11–14 silently run on the base models. The looper logs which models each segment is using, so glance at the console if a late segment comes out looking like it lost its LoRA.
  • The looper still needs its own base inputs. model_clip_sequence overrides per segment, but model_high, model_low, and clip on the looper are still required and act as the fallback - leave them wired even when the sequencer is connected, or the whole thing refuses to run.
  • Bypassed or wrong-typed connections get ignored. The looper checks that model_clip_sequence is actually a list and quietly ignores it otherwise (it logs a warning). If your per-segment LoRAs aren't applying, that's the first thing to check.
  • Wan 2.2 LoRA basics still apply. Speed LoRAs (lightx2v, CausVid) are the one place to be careful: the community consensus is that they degrade motion and detail on the high-noise pass. If you're sequencing speed LoRAs, keep them off the motion model - this node lets you be that precise, which is rather the point.

Install with the rest of the pack: ComfyUI Manager search "WanVideoLooper", or git clone https://github.com/SquirrelRat/WanVideoLooper into custom_nodes/, restart. No models, no extra Python - it's pure routing between the LoRA nodes you already use and the looper. For anyone trying to hold character identity across a multi-shot Wan video, this is the missing piece between "one LoRA for everything" and "render each shot separately by hand."

CategoryWanVideoLooper

Inputs (30)

NameTypeDefaultDescription
model_high_1optMODELPatched HIGH model for segment 1.
model_high_2optMODELPatched HIGH model for segment 2.
model_high_3optMODELPatched HIGH model for segment 3.
model_high_4optMODELPatched HIGH model for segment 4.
model_high_5optMODELPatched HIGH model for segment 5.
model_high_6optMODELPatched HIGH model for segment 6.
model_high_7optMODELPatched HIGH model for segment 7.
model_high_8optMODELPatched HIGH model for segment 8.
model_high_9optMODELPatched HIGH model for segment 9.
model_high_10optMODELPatched HIGH model for segment 10.
model_low_1optMODELPatched LOW model for segment 1.
model_low_2optMODELPatched LOW model for segment 2.
model_low_3optMODELPatched LOW model for segment 3.
model_low_4optMODELPatched LOW model for segment 4.
model_low_5optMODELPatched LOW model for segment 5.
model_low_6optMODELPatched LOW model for segment 6.
model_low_7optMODELPatched LOW model for segment 7.
model_low_8optMODELPatched LOW model for segment 8.
model_low_9optMODELPatched LOW model for segment 9.
model_low_10optMODELPatched LOW model for segment 10.
clip_1optCLIPPatched CLIP model for segment 1.
clip_2optCLIPPatched CLIP model for segment 2.
clip_3optCLIPPatched CLIP model for segment 3.
clip_4optCLIPPatched CLIP model for segment 4.
clip_5optCLIPPatched CLIP model for segment 5.
clip_6optCLIPPatched CLIP model for segment 6.
clip_7optCLIPPatched CLIP model for segment 7.
clip_8optCLIPPatched CLIP model for segment 8.
clip_9optCLIPPatched CLIP model for segment 9.
clip_10optCLIPPatched CLIP model for segment 10.

Outputs (1)

NameTypeDescription
model_clip_sequenceANY