ComfyUI Flexi LoRA Loader
Roll the dice on your LoRA weights — this node plays the lottery for you
- model
- clip
- model
- clip
- memo
- album_name
- seed
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) orin order. Be careful here, see below.lora1,lora2,lora3- dropdowns populated from yourComfyUI/models/lorasfolder,Noneby default.lora1_weight,lora2_weight,lora3_weight- comma-separated lists like0.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 thealbum_nameoutput.
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 ordermode 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 withrandomize.- 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.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| mode | COMBO | randomize | 2 options: in order, randomize |
| album_name | STRING | — | |
| model | MODEL | — | |
| clip | CLIP | — | |
| lora1 | COMBO | 1 options: None | |
| lora1_weight | STRING | 0.6,0.4,0.5,0.3,0.2,0.3,0.1,0.1,0.5,0.2 | — |
| lora2 | COMBO | 1 options: None | |
| lora2_weight | STRING | 0.4,0.6,0.5,0.6,0.4,0.3,0.6,0.4,0.5,0.2 | — |
| lora3 | COMBO | 1 options: None | |
| lora3_weight | STRING | 0.2,0.0,0.1,0.3,0.2,0.3,0.2,0.1,0.1,0.1 | — |
| seed | INT | 00–18446744073709550000 | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| clip | CLIP | — |
| memo | STRING | — |
| album_name | STRING | — |
| seed | INT | — |