Nodes/ComfyUI_EmAySee_CustomNodes/EmAySee Lora Stacker (20 Sequential)
ComfyUI Node

EmAySee Lora Stacker (20 Sequential)

Stack up to twenty LoRAs, applied in a fixed order

By EmAySee·Created about a year ago·Updated 4 months ago· 2
EmAySee Lora Stacker (20 Sequential)
  • model
  • clip
  • lora_1
  • lora_2
  • lora_3
  • lora_4
  • lora_5
  • lora_6
  • lora_7
  • lora_8
  • lora_9
  • lora_10
  • lora_11
  • lora_12
  • lora_13
  • lora_14
  • lora_15
  • lora_16
  • lora_17
  • lora_18
  • lora_19
  • lora_20
  • MODEL
  • CLIP
strength_model_11.00
strength_clip_11.00
strength_model_21.00
strength_clip_21.00
strength_model_31.00
strength_clip_31.00
strength_model_41.00
strength_clip_41.00
strength_model_51.00
strength_clip_51.00
strength_model_61.00
strength_clip_61.00
strength_model_71.00
strength_clip_71.00
strength_model_81.00
strength_clip_81.00
strength_model_91.00
strength_clip_91.00
strength_model_101.00
strength_clip_101.00
strength_model_111.00
strength_clip_111.00
strength_model_121.00
strength_clip_121.00
strength_model_131.00
strength_clip_131.00
strength_model_141.00
strength_clip_141.00
strength_model_151.00
strength_clip_151.00
strength_model_161.00
strength_clip_161.00
strength_model_171.00
strength_clip_171.00
strength_model_181.00
strength_clip_181.00
strength_model_191.00
strength_clip_191.00
strength_model_201.00
strength_clip_201.00

The "I use more than one LoRA" node

Most stacked-LoRA workflows in ComfyUI are a literal chain: LoraLoaderLoraLoaderLoraLoader, three nodes in a row with the strengths buried in each. EmAySee_LoraStacker20 collapses that into one node with twenty LORA_OBJECT slots, each with its own strength_model and strength_clip, applied in a fixed order - slot 1 first, slot 20 last. It takes a model and clip in and hands back the fully-patched pair.

Stacking is standard practice - character + style + detail adapters on top of a base - and the LoRA world has firm opinions on it: LoRAs are architecture-bound (an SDXL adapter does nothing on Flux), and the old 0.5–0.8 strength rule is SDXL-era advice, not a law. What this node adds is a single place to see the whole roster and its weights at once, plus an application order that's explicit rather than emergent from your wiring. That order matters: later slots patch the output of earlier ones, so slot 1 is "base" and slot 20 is "final touch."

How it works

It walks slots 1 through 20, and for each one that has a connected LORA_OBJECT (and non-zero strengths), applies it to the running model/clip with comfy.sd.load_lora_for_models, threading the result into the next slot. Empty slots and 0/0-strength slots are skipped entirely, so a two-LoRA setup works fine in a node that nominally holds twenty.

Inputs

  • model (MODEL), clip (CLIP) - the base to patch, threaded through all 20 slots.
  • strength_model_1/strength_clip_1strength_model_20/strength_clip_20 (FLOAT, −10 to 10, default 1.0) - per-slot strengths.
  • lora_1lora_20 (LORA_OBJECT, all optional) - the adapters from EmAySee_LoraNameSelector.

Outputs: MODEL and CLIP.

Install

From ComfyUI_EmAySee_CustomNodes:

cd ComfyUI/custom_nodes
git clone https://github.com/EmAySee/ComfyUI_EmAySee_CustomNodes
# restart ComfyUI

Or via ComfyUI Manager → "ComfyUI_EmAySee_CustomNodes". No extra dependencies.

Gotchas

The honest take: twenty slots is overspec'd for almost everyone, and the node is visually enormous because every slot ships with its own pair of strength sliders - most stacks are 3–5 LoRAs, so you'll be scrolling past a lot of empty boxes. That's the trade for having everything in one node. The subtler trap is negative strengths: the range goes down to −10 for a reason (some workflows use negative LoRAs to subtract a style), but if you see a stack "not working," check whether a slot you forgot about is applying a negative weight. And since it's the object pipeline, feed it LORA_OBJECTs from LoraNameSelector - string names and LORA-typed outputs won't connect.

CategoryEmAySee/Loaders

Inputs (62)

NameTypeDefaultDescription
modelMODEL
clipCLIP
strength_model_1FLOAT1.00-10–10
strength_clip_1FLOAT1.00-10–10
strength_model_2FLOAT1.00-10–10
strength_clip_2FLOAT1.00-10–10
strength_model_3FLOAT1.00-10–10
strength_clip_3FLOAT1.00-10–10
strength_model_4FLOAT1.00-10–10
strength_clip_4FLOAT1.00-10–10
strength_model_5FLOAT1.00-10–10
strength_clip_5FLOAT1.00-10–10
strength_model_6FLOAT1.00-10–10
strength_clip_6FLOAT1.00-10–10
strength_model_7FLOAT1.00-10–10
strength_clip_7FLOAT1.00-10–10
strength_model_8FLOAT1.00-10–10
strength_clip_8FLOAT1.00-10–10
strength_model_9FLOAT1.00-10–10
strength_clip_9FLOAT1.00-10–10
strength_model_10FLOAT1.00-10–10
strength_clip_10FLOAT1.00-10–10
strength_model_11FLOAT1.00-10–10
strength_clip_11FLOAT1.00-10–10
strength_model_12FLOAT1.00-10–10
strength_clip_12FLOAT1.00-10–10
strength_model_13FLOAT1.00-10–10
strength_clip_13FLOAT1.00-10–10
strength_model_14FLOAT1.00-10–10
strength_clip_14FLOAT1.00-10–10
strength_model_15FLOAT1.00-10–10
strength_clip_15FLOAT1.00-10–10
strength_model_16FLOAT1.00-10–10
strength_clip_16FLOAT1.00-10–10
strength_model_17FLOAT1.00-10–10
strength_clip_17FLOAT1.00-10–10
strength_model_18FLOAT1.00-10–10
strength_clip_18FLOAT1.00-10–10
strength_model_19FLOAT1.00-10–10
strength_clip_19FLOAT1.00-10–10
strength_model_20FLOAT1.00-10–10
strength_clip_20FLOAT1.00-10–10
lora_1optLORA_OBJECT
lora_2optLORA_OBJECT
lora_3optLORA_OBJECT
lora_4optLORA_OBJECT
lora_5optLORA_OBJECT
lora_6optLORA_OBJECT
lora_7optLORA_OBJECT
lora_8optLORA_OBJECT
lora_9optLORA_OBJECT
lora_10optLORA_OBJECT
lora_11optLORA_OBJECT
lora_12optLORA_OBJECT
lora_13optLORA_OBJECT
lora_14optLORA_OBJECT
lora_15optLORA_OBJECT
lora_16optLORA_OBJECT
lora_17optLORA_OBJECT
lora_18optLORA_OBJECT
lora_19optLORA_OBJECT
lora_20optLORA_OBJECT

Outputs (2)

NameTypeDescription
MODELMODEL
CLIPCLIP