Apply LoRA to MODEL (Native)
The fix that made WANAnimate LoRAs actually load
- model
- lora
- MODEL
This is the node the whole pack was built around
IAMCCS-nodes started as one bug report with a workaround. In native WANAnimate pipelines running without WanVideoWrapper, LoRA weights silently failed to load - most keys were ignored, so a character or style LoRA did almost nothing and consistency fell apart. The reason is subtle: the animation model init bypasses the internal LoRA merge functions that normal wrappers trigger. This node is the second half of the fix. It takes a stacked LoRA bundle and applies it to a MODEL at the Torch level, no wrapper required.
How it works
The input contract is deliberately boring: model (MODEL) plus lora (LORA). That LORA input is the special part - it's meant to receive the output of this pack's LoRA Stack (WAN-style remap) node, which bundles multiple LoRAs into one stack with per-slot strengths and WAN-style key remapping. This node walks that stack and patches the model directly.
Two implementation details worth knowing, because they show up in the logs:
- It caches patched models by
(model, lora signature). Run the same stack twice and the second apply is a cache hit - which matters when you're iterating in a loop where the stack changes per generation. IS_CHANGEDreturnsfloat("nan"), forcing re-evaluation every run. That's deliberate: inside an Easy-Use or for-loop, the scheduled stack can change per iteration even though the graph wiring didn't, so the node refuses to reuse a stale patch.
What you'll actually set
Not much - that's the appeal. The few things that matter live upstream:
- Build your stack in
IAMCCS_WanLoRAStack(the WAN-style remap node). It handles WAN 2.1, WAN 2.2, and Flow-family LoRAs, including the LightX2V distilled packs. - Set each LoRA's strength there. A single 1.0 is rarely right for a character LoRA on a video model; start lower and check the patch is visibly there.
- Wire the stack's
loraoutput here, then connect theMODELout to your sampler.
Output is a single MODEL, ready to run. That's it - one hop in, one out.
Installation and gotchas
Same routine as the whole pack:
cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git
Or search "IAMCCS" in ComfyUI Manager. The pack needs a recent ComfyUI (0.3.x+), Python 3.12+, Torch 2.8+. No extra pip packages for this node.
Where people get confused: this node does not take a raw .safetensors path. It wants a LORA object, which in this ecosystem is the stack - so if you plug a bare LoraLoader output in and see weak or no effect, you've skipped the remap step. And if your LoRA still seems dead, check the console: the node logs applied_default vs applied_scheduled so you can see exactly which entries went in. If a stack entry is listed as "missing optional weights," that LoRA just doesn't carry those keys - usually harmless, occasionally the sign you've grabbed a WAN 2.1 LoRA for a 2.2 base. This is the node to reach for if you're doing WANAnimate or Flow-based video and your LoRAs have been quietly doing nothing.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| lora | LORA | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |