ComfyUI Node

FLUX LoRA Stack

Ten FLUX LoRAs in one node — and it fixes the format most loaders botch

By capitan01R·Created 5 months ago·Updated 5 months ago· 28
FLUX LoRA Stack
  • model
  • MODEL
lora_1
strength_11.00
enabled_1true
convert_1true
lora_2
strength_21.00
enabled_2true
convert_2true
lora_3
strength_31.00
enabled_3true
convert_3true
lora_4
strength_41.00
enabled_4true
convert_4true
lora_5
strength_51.00
enabled_5true
convert_5true
lora_6
strength_61.00
enabled_6true
convert_6true
lora_7
strength_71.00
enabled_7true
convert_7true
lora_8
strength_81.00
enabled_8true
convert_8true
lora_9
strength_91.00
enabled_9true
convert_9true
lora_10
strength_101.00
enabled_10true
convert_10true

If you run FLUX.2 Klein with any kind of LoRA stack, this is the node to try before you reach for anything else. The FLUX LoRA Stack from capitan01R/Comfyui-flux2klein-Lora-loader loads up to ten LoRAs in sequence, each with its own strength, on/off toggle, and - the part that matters - its own auto-convert flag for diffusers-format files.

Why does the convert flag matter so much? Most Klein LoRAs ship in diffusers format, with separate to_q, to_k, to_v projections per attention layer. FLUX's native architecture stores those as a single fused QKV matrix, and the single blocks fuse attention plus the MLP gate into one linear1 projection. Load a diffusers LoRA without converting and a chunk of the attention weights never reaches the model. The author's table puts it bluntly: without conversion, "most attention weights never reach the model." This pack fuses them at load time, which is the whole reason it exists. That's not a feature a stock loader gives you.

Why you'd reach for it

Klein is unusually tolerant of LoRA stacking - community testing found Klein 9B handling three LoRAs at strength 1.0 each (a total of 3.0) where Z-Image burned out at two. The classic "realism sandwich" of a snapshot-realism LoRA plus a skin LoRA plus an NSFW/anatomy LoRA is a genuinely common Klein workflow. The FLUX LoRA Stack is the clean way to run that: one node between your model loader and your sampler, no daisy-chaining ten LoraLoader nodes. The main rival is rgthree's Power Lora Loader, which is excellent for general stacking but doesn't do the diffusers→native fusion or the per-layer calibration this pack adds.

Inputs and outputs

It's simple: model in, patched MODEL out. Wire it into your sampler's model input. Everything else is optional slots 1 through 10, and each slot has the same three controls:

  • lora_N - dropdown of everything in ComfyUI/models/loras. Pick the file here.
  • strength_N - per-slot strength, default 1.0, range -20 to 20. You'll live between about 0.5 and 1.2; the wide range is for mixing/negating experiments.
  • enabled_N and convert_N - toggles. convert_N defaults on, which is what you want for diffusers-format Klein LoRAs; flip it off for a file that's already native FLUX format.

Slots are applied in order, and a slot is skipped entirely if it's disabled, set to "None", or has strength 0. You can leave a handful of empty slots in place and just fill the ones you use.

Install

Easiest is ComfyUI Manager - search Comfyui-flux2klein-Lora-loader. Or do it by hand:

cd ComfyUI/custom_nodes
git clone https://github.com/capitan01R/Comfyui-flux2klein-Lora-loader.git

Then restart ComfyUI. There are no model downloads and no pip dependencies beyond numpy, which ComfyUI already ships. Your LoRAs just need to live in models/loras so the dropdown sees them. The pack is MIT-licensed and on the Comfy registry.

Where people get burned

Most of the pain is the format, and it's the kind you can't see from the output - you'll just wonder why a LoRA looks weak. If a LoRA was trained with to_q/to_k/to_v naming and you load it without conversion, the weights silently don't land. Keep convert_N on unless you know the file is native FLUX. Also remember the 4B/9B rule: Klein LoRAs are not interchangeable across sizes, so a 4B file in a 9B workflow is a waste of time no matter how good the loader is. And per the author's README, this is built around the Klein 9B layout (8 double blocks + 24 single blocks) - treat anything else as untested territory.

Categoryloaders/FLUX

Inputs (41)

NameTypeDefaultDescription
modelMODEL
lora_1optCOMBO1 options: None
strength_1optFLOAT1.00-20–20
enabled_1optBOOLEANtrue
convert_1optBOOLEANtrue
lora_2optCOMBO1 options: None
strength_2optFLOAT1.00-20–20
enabled_2optBOOLEANtrue
convert_2optBOOLEANtrue
lora_3optCOMBO1 options: None
strength_3optFLOAT1.00-20–20
enabled_3optBOOLEANtrue
convert_3optBOOLEANtrue
lora_4optCOMBO1 options: None
strength_4optFLOAT1.00-20–20
enabled_4optBOOLEANtrue
convert_4optBOOLEANtrue
lora_5optCOMBO1 options: None
strength_5optFLOAT1.00-20–20
enabled_5optBOOLEANtrue
convert_5optBOOLEANtrue
lora_6optCOMBO1 options: None
strength_6optFLOAT1.00-20–20
enabled_6optBOOLEANtrue
convert_6optBOOLEANtrue
lora_7optCOMBO1 options: None
strength_7optFLOAT1.00-20–20
enabled_7optBOOLEANtrue
convert_7optBOOLEANtrue
lora_8optCOMBO1 options: None
strength_8optFLOAT1.00-20–20
enabled_8optBOOLEANtrue
convert_8optBOOLEANtrue
lora_9optCOMBO1 options: None
strength_9optFLOAT1.00-20–20
enabled_9optBOOLEANtrue
convert_9optBOOLEANtrue
lora_10optCOMBO1 options: None
strength_10optFLOAT1.00-20–20
enabled_10optBOOLEANtrue
convert_10optBOOLEANtrue

Outputs (1)

NameTypeDescription
MODELMODEL