ComfyUI Node

LoraThree

The retired three-LoRA stack you'll still find in old workflows

By bobmagicii·Created 2 years ago·Updated 2 years ago· 1
LoraThree
  • model
  • clip
  • MODEL
  • CLIP
  • TRIGGERS
lora1
l1_preset
l1_mstr1.0
l1_cstr1.0
lora2
l2_preset
l2_mstr1.0
l2_cstr1.0
lora3
l3_preset
l3_mstr1.0
l3_cstr1.0

First, the honest headline: LoraThree is deprecated. The source literally carries the comment "deprecated 2024-08-22 / do not use anymore." The author kept it registered so older workflows don't break, which is exactly why you might have just landed here - you loaded a shared workflow, ComfyUI complained about a missing node, you installed the pack, and there it is. If you're building something new, use LoRA S5 (LoraStackFiveSimple) from the same pack instead. If you're just trying to keep an old graph alive, read on - this node still runs fine.

What it is

A three-slot LoRA stack. It takes a MODEL and CLIP, applies up to three LoRAs in sequence, and outputs the blended MODEL, CLIP, and a TRIGGERS string. It's the more feature-rich ancestor of LoRA S5: instead of one shared strength, each LoRA gets a separate model strength and clip strength, plus its own explicit trigger "preset" dropdown. That split-strength control is the one thing S5 dropped, and it's the only real reason to miss this node.

How it works

Each slot is four inputs: the LoRA file, a preset file, a model strength (l1_mstr), and a clip strength (l1_cstr). On run it loads each selected .safetensors and patches model and clip via comfy.sd.load_lora_for_models with those two strengths independently - so you can run the model hot while keeping the clip influence light, which some character LoRAs genuinely prefer.

The trigger system works off the preset dropdown, which scans your whole loras folder for files ending in .txt or .preset and lists them (plus "None"). Pick one and the node reads its first line, wraps it in parentheses, and joins the three results with , \n\n - meaning the TRIGGERS output is basically prompt-ready, emphasis included. That's a deliberate format choice: (word1, word2) style emphasis is the standard ComfyUI way to boost a token.

Inputs and outputs

  • model, clip - your base pipeline.
  • lora1 / lora2 / lora3 - dropdowns of your installed LoRAs, plus "None".
  • l1_preset … l3_preset - the trigger preset dropdown (.txt / .preset files).
  • l1_mstr … l3_mstr - model-side strength, default 1.0, −16 to 16.
  • l1_cstr … l3_cstr - clip-side strength, same range.
  • Outputs MODEL, CLIP, TRIGGERS.

Installing it

Part of the ComfyKit Custom Nodes pack (bobmagicii/comfykit-custom-nodes). Via ComfyUI Manager, search "ComfyKit Custom Nodes"; or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/bobmagicii/comfykit-custom-nodes

Restart afterwards. There's no requirements.txt and nothing to download - the whole pack is plain Python over ComfyUI's core modules.

Troubleshooting

A few things to expect. Like its sibling loaders, IS_CHANGED returns a constant, so the node always re-executes on every queue - you won't get node caching on it. If a trigger preset file is missing, the node logs a warning and just skips that LoRA's triggers rather than failing. And the usual LoRA rules still apply: missing trigger words, over-1.0 strengths, and architecture mismatches are the top three reasons a stack "does nothing." Since this node is deprecated, don't expect bugfixes - if something misbehaves, migrate the graph to LoRA S5 and move on.

Categorybobmagicii

Inputs (14)

NameTypeDefaultDescription
modelMODEL
clipCLIP
lora1COMBO1 options: None
l1_presetCOMBO1 options: None
l1_mstrFLOAT1.0-16–16
l1_cstrFLOAT1.0-16–16
lora2COMBO1 options: None
l2_presetCOMBO1 options: None
l2_mstrFLOAT1.0-16–16
l2_cstrFLOAT1.0-16–16
lora3COMBO1 options: None
l3_presetCOMBO1 options: None
l3_mstrFLOAT1.0-16–16
l3_cstrFLOAT1.0-16–16

Outputs (3)

NameTypeDescription
MODELMODEL
CLIPCLIP
TRIGGERSSTRING