Nodes/ComfyUI-FairLab/Load LoRA Dual
ComfyUI Node

Load LoRA Dual

Two LoRAs, one node, independent strengths

By yanhuifair·Created 2 years ago·Updated 3 months ago· 2
Load LoRA Dual
  • model
  • clip
  • models
  • clips
lora_name
strength_model1.00
strength_clip1.00
lora_name_2
strength_model_21.00
strength_clip_21.00

Stacking LoRAs is ComfyUI 101 - a style LoRA on top of a character LoRA, or a detail enhancer layered over a base - and the stock way to do it is a daisy chain of LoraLoader nodes. Load LoRA Dual collapses that into a single node: two LoRA slots, each with independent model and CLIP strengths, applied in one place. It's the "two loaders glued together" convenience node, and for the common two-LoRA case it genuinely declutters the graph.

The inputs mirror the core LoraLoader twice over, so everything you already know about LoRA strength applies:

Inputs and outputs

  • model, clip - the diffusion and CLIP models to apply LoRAs to.
  • lora_name, strength_model, strength_clip - first LoRA and its strengths.
  • lora_name_2, strength_model_2, strength_clip_2 - second LoRA and its strengths.
  • models (MODEL list), clips (CLIP list) out.

Strengths range −100 to 100; negative strengths are allowed and behave like inversions. The tooltips (from the pack's own schema) are explicit that "this value can be negative," which is the same contract as core ComfyUI.

How it works

Under the hood it instantiates the standard LoraLoader and calls load_lora twice - once per LoRA - then returns the two results. The quirk to know: the outputs are declared as lists. You get [model1, model2] on the models socket, not a single merged model. Wire these into nodes that accept list inputs, or index them - a plain sampler expecting one MODEL won't take the list directly. That's the biggest "huh?" moment people hit with this node, and it's worth checking whether it's been changed to a merged output in the version you're running.

Where it fits

Anywhere two LoRAs ride along with the same base model and you want both strengths tweakable from one panel instead of two. If your stack is three or more LoRAs, or you want each applied conditionally, the per-node approach (or a LoRA stack pack) is the better fit.

Install

FairLab installs as one pack via ComfyUI Manager (search ComfyUI-FairLab) or:

cd ComfyUI/custom_nodes
git clone https://github.com/yanhuifair/ComfyUI-FairLab.git
cd ComfyUI-FairLab
pip install -r requirements.txt

Restart. It lists LoRA names from your normal loras/ folder, so no model downloads beyond the LoRAs you already use. It's under Fair/loaders.

Gotchas

  • The list-typed outputs are the thing to double-check first when this node "doesn't work." If your downstream sampler rejects the socket, that's why.
  • Both LoRAs apply to the same base model independently - the second doesn't stack on the first's result the way a daisy chain does. That's usually fine; the results are nearly identical for two light LoRAs, but the order semantics differ if a LoRA is sensitive to being applied on top of another.
  • No LoRA-file dependencies beyond what you already have; lora_name pulls from the standard loras directory.
CategoryFair/loaders

Inputs (8)

NameTypeDefaultDescription
modelMODELThe diffusion model the LoRA will be applied to.
clipCLIPThe CLIP model the LoRA will be applied to.
lora_nameCOMBOThe name of the LoRA.
strength_modelFLOAT1.00-100–100How strongly to modify the diffusion model. This value can be negative.
strength_clipFLOAT1.00-100–100How strongly to modify the CLIP model. This value can be negative.
lora_name_2COMBOThe name of the LoRA.
strength_model_2FLOAT1.00-100–100How strongly to modify the diffusion model. This value can be negative.
strength_clip_2FLOAT1.00-100–100How strongly to modify the CLIP model. This value can be negative.

Outputs (2)

NameTypeDescription
modelsMODELThe modified diffusion model.
clipsCLIPThe modified CLIP model.