Nodes/geocine-comfyui/LoRA Loader Stack
ComfyUI Node

LoRA Loader Stack

Pile On LoRAs Without the CLIP Wire

By geocine·Created 2 years ago·Updated 2 months ago· 1
LoRA Loader Stack
  • model
  • model
lora_name_1
lora_strength_11.00

Standard ComfyUI makes multi-LoRA loading a chain: LoraLoader feeding LoraLoader feeding the sampler, each one carrying a CLIP wire you never actually use. LoRA Loader Stack collapses that whole tower into one node. Pick your LoRAs, set their strengths, and it applies them to the model in order - no CLIP input in sight.

That "no CLIP" bit is the whole design. The pack's description calls it out explicitly: it applies multiple LoRAs to a model without requiring a CLIP input. For the modern stack - Z-Image, Flux 2 Klein, Krea 2, the whole post-Flux generation - most LoRAs only touch the diffusion model anyway, so dragging a CLIP cable around just to keep the loader happy is pure ceremony. This node exists to delete that ceremony.

How it works

Under the hood it uses ComfyUI's own LoraLoaderModelOnly node - the same one core ComfyUI uses when you load a LoRA for the model without touching the text encoder. The node then chains them:

for lora_name, strength in self._iter_loras(node_inputs):
    model = self.lora_loader.load_lora_model_only(model, lora_name, strength)[0]

Each LoRA is applied in sequence, so order matters - the first applied becomes the base for the second, and so on. It also skips entries set to "None" or with strength 0, so blank slots don't corrupt anything.

The trickier part is how it gets its inputs. ComfyUI only statically registers lora_name_1 and lora_strength_1, so the node uses its hidden PROMPT/UNIQUE_ID inputs to read whatever lora_name_N/lora_strength_N pairs actually exist in the current workflow. A frontend extension (web/js/lora/loader-stack.js) gives you Add LoRA and Remove LoRA buttons that manage those dynamic rows, so you never hand-edit widget names.

Inputs and outputs

The inputs that matter:

  • model - the diffusion model the LoRAs apply to. Wire your checkpoint loader in here.
  • lora_name_1 - dropdown of your installed LoRAs (populated from models/loras), plus "None".
  • lora_strength_1 - how hard to apply it, from −100 to +100, default 1.0. Negative strengths are occasionally useful for suppressing a LoRA's effect.

Hit Add LoRA to grow more name/strength pairs. The single output:

  • model - the fully stacked model, ready for the conditioner and sampler.

Install

Part of geocine-comfyui; one install, all eleven nodes, no model downloads:

  • ComfyUI Manager → search geocine-comfyui → install → restart
  • or Comfy CLI: comfy node install geocine-comfyui
  • or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/geocine/geocine-comfyui

then restart ComfyUI.

The honest comparison

If you already live in the rgthree universe, its Power Lora Loader does this and more - trigger words, toggles, a cleaner UI. It's the heavyweight champion of multi-LoRA loading. This node is the lightweight alternative: same core idea, one wire type, no extra ecosystem baggage. For "stack three LoRAs onto a model, done," it's enough, and it's simpler to drop into a fresh graph than pulling in a whole power-node pack.

Gotchas

Model-only means model-only. This node won't apply LoRAs to the CLIP/text encoder, so if you have a LoRA with text-encoder weights (some character LoRAs, older SDXL ones), use core ComfyUI's LoraLoader for those. The dropdown list is read at node creation - drop a new LoRA into models/loras and it may not show until you re-add the node or restart. And remember the LoRA-era rule: a LoRA only works on the model family it was trained for, so the stack still respects architecture lock-in no matter how neatly it applies.

Categorygeocine/lora

Inputs (3)

NameTypeDefaultDescription
modelMODELThe diffusion model the LoRAs will be applied to.
lora_name_1COMBOThe first LoRA to apply.
lora_strength_1FLOAT1.00-100–100How strongly to modify the diffusion model.

Outputs (1)

NameTypeDescription
modelMODEL