Nodes/IAMCCS-nodes/LoRA Stack (WAN-style remap)
ComfyUI Node

LoRA Stack (WAN-style remap)

4 LoRAs in, one remapped WAN stack out

By IAMCCS·Created 11 months ago·Updated 8 days ago· 113
LoRA Stack (WAN-style remap)
  • lora
  • LORA
lora1no
strength11.00
lora2no
strength20.00
lora3no
strength30.00
lora4no
strength40.00
model_typeflow

The reason IAMCCS-nodes exists is a bug that drove people crazy: in native WANAnimate workflows - no WanVideoWrapper - LoRA weights mostly failed to load, so your character LoRA silently did nothing and consistency fell apart. IAMCCS_WanLoRAStack is the fix. It merges up to four LoRAs into one bundle, remaps their keys into the shape native Wan expects, and hands that bundle to a matching apply node. Stack here, apply there, done.

Why it works

The technical story from the README is that native WANAnimate pipelines skip the internal LoRA merge functions the wrapper used. IAMCCS's answer is two nodes: this stack (which replaces the missing load phase) and IAMCCS_ApplyLoRAHooksToConditioning or IAMCCS_ModelWithLoRA (which injects the bundle at the Torch level). The key word is remap. The source code converts Wan 2.1 lora_down/lora_up keys into Wan 2.2's lora_A/lora_B format, and normalizes whatever naming convention the file shipped in (transformer.*, pipe.dit.*, blocks.*, lora_unet__*) into the diffusion_model.* form ComfyUI's Wan path expects. That's the cross-compatibility trick: it's why character LoRAs, the LightX2V distill LoRAs, and WAN Boost Realism all just work on the same slot.

The inputs that matter

Four slots, one model_type:

  • lora1lora4, each with its own strength1strength4. Pick "no" to leave a slot empty; a slot with strength 0.0 is skipped too.
  • model_type - wan2x, flow, or standard. This picks the remapping logic. flow is the default and the safe choice for WAN 2.2 and other flow-matching DiTs; use wan2x for the WAN 2.x-specific path, standard to skip remapping entirely.
  • Optional lora input (type LORA) - chain another stack here to go past four LoRAs. The README's bigger animation graphs concatenate stacks this way.

Output is a single LORA bundle. That's it. It's an intermediate node - it does not touch a model - so if you wire it straight to a sampler you've built a no-op. It feeds the apply node.

Where it sits in a workflow

Load your base WAN 2.2 / LightX2V model, build this stack with your character + style + speed LoRAs, then run the bundle through IAMCCS_ApplyLoRAHooksToConditioning (which applies it via the same comfy.sd.load_lora_for_models path as core's LoRA Loader - no per-step hook patching, which matters because that stalls 14B offloaded models) and send the resulting model to your sampler. If you'd rather skip the two-node dance, the pack also offers LoRA Stack (Model In→Out) WAN, which merges stack + apply into one node.

Install

  • ComfyUI Manager → search "IAMCCS" → install → restart.
  • Or:
cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git

Restart ComfyUI. Pack requirements: ComfyUI ≥ 0.3.0, Python ≥ 3.12, Torch ≥ 2.8, with CUDA 12.6/12.8 in the README's example setups. No extra model downloads - it reads whatever .safetensors is in your loras folder. That's the point: this is a compatibility layer, not a model.

CategoryIAMCCS/LoRA

Inputs (10)

NameTypeDefaultDescription
lora1COMBOno1 options: no
strength1FLOAT1.00-5–5
lora2COMBOno1 options: no
strength2FLOAT0.00-5–5
lora3COMBOno1 options: no
strength3FLOAT0.00-5–5
lora4COMBOno1 options: no
strength4FLOAT0.00-5–5
model_typeCOMBOflow3 options: wan2x, flow, standard
loraoptLORA

Outputs (1)

NameTypeDescription
LORALORA