CWK Wan2.2 LoRA Applier
The boring LoRA node that makes Wan 2.2's two-pass LoRA stacks actually work
- model
- clip
- lora_stack
- model
- clip
Wan 2.2 denoises in two passes - a high-noise model for motion and composition, a low-noise model for detail - and the community standard is to apply speed LoRAs (LightX2V, CausVid) to the low-noise pass only, keeping the high-noise pass unmodified. The CWK Wan2.2 LoRA Applier is the node that makes that split painless. You feed it a LORA_STACK plus a model/CLIP pair, and it walks the stack one LoRA at a time through ComfyUI's standard LoraLoader. That's the whole thing - and that's also exactly why it exists.
Why a dedicated node for this
You could, in theory, string a chain of LoraLoader nodes together by hand for each clip's stack. But the pack's Prompt Composer produces two LoRA stacks per clip (high and low), and inside a loop those stacks change every re-queue. A static chain of LoraLoader nodes can't follow that. The Applier takes whatever stack it's handed, applies each entry in order with its own model weight and CLIP weight, and passes the result out. In a looping graph, that means every clip gets its correct LoRAs with zero rewiring.
One detail from the source that's worth knowing: it's genuinely thin. If the stack is empty it returns the inputs untouched, and each LoRA is applied with LoraLoader.load_lora(model, clip, name, model_weight, clip_weight). That means the name in each stack entry must match a filename in your ComfyUI/models/loras folder exactly - there's no fuzzy matching, no directory browsing. Type it wrong in the Composer and the node silently skips that entry (empty names are filtered out before anything happens).
How you wire it
model,clip,lora_stackin,model,clipout. Three in, two out.
In a typical Wan 2.2 graph you'll run two of these. The high-noise stack goes into one applier feeding the high-noise model, and the low-noise stack into another feeding the low-noise model. The pack's own docs note you can leave the CLIP output unconnected on the low-noise side - only one text-encoded prompt is needed, and the CLIP travels with whichever applier sits before your text encoder.
The LORA_STACK type isn't pack-specific - it's the same stack convention other ComfyUI packs use - but the only thing in this pack that produces a stack is the Composer (or the Splitter/Loop Open, which unpack it). So in practice it lives entirely inside this workflow family.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/cowneko/CWK_Wan2.2_Nodes.git
or ComfyUI Manager → CWK Wan2.2 Nodes, restart. No extra Python dependencies, no custom UI.
There's nothing flashy here, and that's the compliment. It's a thin wrapper around ComfyUI's own LoRA loading, which means it's loop-safe and predictable - the kind of node you stop thinking about five minutes after adding it. The only real failure mode is mismatched LoRA filenames, and the fix is checking your Composer blocks.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| clip | CLIP | — | |
| lora_stack | LORA_STACK | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| clip | CLIP | — |