Nodes/ComfyUIFlexiLoRALoader/ComfyUI Flexi LoRA Loader
ComfyUI Node

ComfyUI Flexi LoRA Loader

Roll the dice on your LoRA weights — this node plays the lottery for you

By ronsantash·Created 2 years ago·Updated 2 years ago· 8
ComfyUI Flexi LoRA Loader
  • model
  • clip
  • model
  • clip
  • memo
  • album_name
  • seed
moderandomize
album_name
lora1
lora1_weight0.6,0.4,0.5,0.3,0.2,0.3,0.1,0.1,0.5,0.2
lora2
lora2_weight0.4,0.6,0.5,0.6,0.4,0.3,0.6,0.4,0.5,0.2
lora3
lora3_weight0.2,0.0,0.1,0.3,0.2,0.3,0.2,0.1,0.1,0.1
seed0

The Flexi LoRA Loader exists to answer one annoying question: which weight actually makes this LoRA sing? LoRA strength is a dial you're supposed to turn by hand, and 0.6 might be perfect while 0.4 is mush - but you'll only find out by generating. This node automates the finding. You give it up to three LoRAs and a comma-separated list of weights per LoRA, and every queue it picks a fresh random combination and applies it. Run a batch, skim the results, and you've saved yourself ten manual generations. It's a personal utility node from a single author (@ronsantash), who built it, by his own admission, because he kept hand-varying the weight on one favorite "Analog Film Gravure for Flux" LoRA.

How it works

Each time the node runs it does the same thing: parse the three weight strings, find the longest list, and pick one index. In randomize mode the index comes from a random.Random seeded with your seed input, so a given seed always gives the same pick - that's what makes runs reproducible. Then for each LoRA slot it applies the weight at that index to both the model and the CLIP at once, via comfy.sd.load_lora_for_models, and hands the patched model down the graph.

Two details matter. LoRAs whose list is shorter than the longest one get padded with 0.0 - a weight of zero is a no-op, so that slot is effectively skipped for that queue. And the node re-loads each LoRA file from disk every queue; fine on an SSD, just don't batch 500 and wonder why things slowed down.

The name is a slight lie, in the best way: it's called a loader but it's really a weight-sampler wrapper around ComfyUI's normal LoRA loading.

Inputs and outputs that matter

The ones you'll actually touch:

  • mode - randomize (the real one) or in order. Be careful here, see below.
  • lora1, lora2, lora3 - dropdowns populated from your ComfyUI/models/loras folder, None by default.
  • lora1_weight, lora2_weight, lora3_weight - comma-separated lists like 0.6,0.4,0.5,0.3,0.2. Each list gets one value per queue.
  • seed - sets which index gets picked.
  • album_name - a label, used as a prefix for the album_name output.

Outputs: model and clip (wire those into your sampler's model and conditioning inputs), plus three bookkeeping outputs. memo is a multi-line string recording the album, which LoRAs were applied at what weight, and the chosen index - feed it to anything that logs text, the author suggests a "D2 Send Eagle"-style memo node. album_name comes back with the weights appended as two-digit codes (FLL + weights 0.5, 0.6, 0.1 becomes FLL050601). seed spits out a fresh random seed so each queue in a batch picks a different combination.

Installing it

Straightforward - this is a zero-dependency pack. No requirements.txt, nothing to install beyond ComfyUI's own bundled modules. Via ComfyUI Manager, search "Flexi LoRA" and install, or:

cd ComfyUI/custom_nodes
git clone https://github.com/ronsantash/Comfyui-flexi-lora-loader

Restart ComfyUI and it appears under loaders/lora. One housekeeping note: the repo's changelog still only lists v0.1.0 while the README is at v0.2.0 - small sign this is a test-release personal project. It works, just don't expect a firehose of updates.

Where people trip up

  • in order mode does nothing yet. The option is in the dropdown, but the code just picks index 0 every time - the README admits sequential mode is "planned for future update." Stick with randomize.
  • Malformed weight text nukes the whole list. If any entry fails to parse as a float, the entire list collapses to [0.0] and your LoRA silently becomes a no-op. Keep it clean comma-separated numbers.
  • The README says keep weights 0.0–1.0, and that's real advice. The code defines min/max constants but never actually clamps, so values above 1.0 won't error - they'll just blow out the image, and it's easy to not notice why.
  • Negative weights work since v0.2.0, which is useful for "remove this style" cases, and they show up with a minus sign in the album code (-05).
  • Weights apply to both the model and the CLIP at equal strength. Some LoRAs (especially style ones) want a weaker text-encoder strength, and you can't split them here - so this node suits the equal-strength cases.

The honest verdict

For the cost of one install you get a decent automated weight-search harness, which is more than most "loader" nodes give you. It's not the one you'd reach for when you already know your weights - that's rgthree's Power Lora Loader territory, static stacking with per-entry toggles. This is the node for the "I don't know yet" phase. Just remember it samples, it doesn't search: no smarts, no early stopping, just a batch of rolls.

Categoryloaders/lora

Inputs (11)

NameTypeDefaultDescription
modeCOMBOrandomize2 options: in order, randomize
album_nameSTRING
modelMODEL
clipCLIP
lora1COMBO1 options: None
lora1_weightSTRING0.6,0.4,0.5,0.3,0.2,0.3,0.1,0.1,0.5,0.2
lora2COMBO1 options: None
lora2_weightSTRING0.4,0.6,0.5,0.6,0.4,0.3,0.6,0.4,0.5,0.2
lora3COMBO1 options: None
lora3_weightSTRING0.2,0.0,0.1,0.3,0.2,0.3,0.2,0.1,0.1,0.1
seedINT00–18446744073709550000

Outputs (5)

NameTypeDescription
modelMODEL
clipCLIP
memoSTRING
album_nameSTRING
seedINT