Nodes/Santodan Random LoRA Node/Random LoRA Selector to Model Selector
ComfyUI Node

Random LoRA Selector to Model Selector

Skips the stack, applies directly

By Santodan·Created about a year ago·Updated 2 months ago· 28
Random LoRA Selector to Model Selector
  • model
  • clip
  • MODEL
  • CLIP
  • applied_loras
  • trigger_words
  • help_text
exclusive_mode
refresh_lorasfalse
lora_count0
lora_name_1
min_strength_10.60
max_strength_11.00
lora_name_2
min_strength_20.60
max_strength_21.00
lora_name_3
min_strength_30.60
max_strength_31.00
lora_name_4
min_strength_40.60
max_strength_41.00
lora_name_5
min_strength_50.60
max_strength_51.00
lora_name_6
min_strength_60.60
max_strength_61.00
lora_name_7
min_strength_70.60
max_strength_71.00
lora_name_8
min_strength_80.60
max_strength_81.00
lora_name_9
min_strength_90.60
max_strength_91.00
lora_name_10
min_strength_100.60
max_strength_101.00
extra_trigger_words

If you've read the RandomLoRACustom article, this is the twin - same ten-slot pool, same exclusive mode, same random strengths, one big difference in the plumbing. The "to Model Selector" variant takes MODEL and CLIP inputs and applies the winning LoRAs directly with ComfyUI's built-in LoraLoader, so you don't need the Comfyroll CR Apply LoRA Stack detour. It's the version you want if you'd rather not think about lora_stack at all.

Honestly? If your workflow already has a LoraLoader or Power Lora Loader in it, this node just replaces that loading step with a randomized one. Feed it model + clip, get model + clip back.

How it works

Identical gamble to the list selector: with refresh_loras off, the RNG is seeded from the names you've picked plus exclusive_mode and lora_count, so the same selections reproduce the same winners. With it on, it reseeds randomly and every run re-rolls. exclusive_mode On picks exactly one LoRA; Off picks lora_count (or a random number when lora_count is 0).

Then, for each winner, the strength is drawn uniformly between that slot's min_strength and max_strength, and the LoRA is applied to your model and clip through ComfyUI's stock LoraLoader.load_lora. Because it applies as it goes, chaining actually matters: strengths are per-LoRA, and stacking five at 1.0 can oversaturate fast. The trigger words for each applied file are collected from the CivitAI sha256 lookup and cached.

Inputs

  • model, clip - required; the model pipeline you're loading LoRAs into.
  • lora_name_1lora_name_10 - the pool you're gambling on.
  • exclusive_mode - On = exactly one winner.
  • lora_count - how many to apply (0 = random count).
  • refresh_loras - re-roll every run when True.
  • min/max_strength_1..10 - per-slot strength range.
  • extra_trigger_words - optional string appended to the trigger-word output.

Outputs: MODEL, CLIP, applied_loras (a readable name (strength) list - handy for pasting into your metadata or prompt), trigger_words, and help_text.

Where people get burned

  • No undo. The randomizer applies straight into your model tensor. If the roll is bad, you rerun - there's no stack to inspect before commit. Keep refresh_loras off while tuning, on when exploring.
  • applied_loras can over-report. The author flagged in his announcement thread that the list-style node's output "is adding all the node's entries instead of only the one that was selected." The folder twins were reported working; this custom-list variant shares the older code path, so verify applied_loras against what you actually rolled rather than trusting it blindly.
  • Base-model compatibility still applies. This node will happily let you load an Illustrious LoRA onto an SDXL checkpoint - they're selectable even when wrong. The randomizer can't save you from picking a LoRA trained on a different base; that's the "LoRA not working" checklist territory (trigger words missing, weight too high, wrong base).

Install

ComfyUI Manager (search "Santodan" / "Randomize LoRAs"), or:

cd ComfyUI/custom_nodes
git clone https://github.com/Santodan/santodan-custom-nodes-comfyui

Restart. No dependencies, no downloads - it loads whatever's in your models/loras folder, with a brief CivitAI lookup the first time it sees each file.

CategorySantodan/LoRA

Inputs (36)

NameTypeDefaultDescription
modelMODEL
clipCLIP
exclusive_modeCOMBO2 options: Off, On
refresh_lorasBOOLEANfalse
lora_countINT00–10
lora_name_1COMBO1 options: None
min_strength_1FLOAT0.60-10–10
max_strength_1FLOAT1.00-10–10
lora_name_2COMBO1 options: None
min_strength_2FLOAT0.60-10–10
max_strength_2FLOAT1.00-10–10
lora_name_3COMBO1 options: None
min_strength_3FLOAT0.60-10–10
max_strength_3FLOAT1.00-10–10
lora_name_4COMBO1 options: None
min_strength_4FLOAT0.60-10–10
max_strength_4FLOAT1.00-10–10
lora_name_5COMBO1 options: None
min_strength_5FLOAT0.60-10–10
max_strength_5FLOAT1.00-10–10
lora_name_6COMBO1 options: None
min_strength_6FLOAT0.60-10–10
max_strength_6FLOAT1.00-10–10
lora_name_7COMBO1 options: None
min_strength_7FLOAT0.60-10–10
max_strength_7FLOAT1.00-10–10
lora_name_8COMBO1 options: None
min_strength_8FLOAT0.60-10–10
max_strength_8FLOAT1.00-10–10
lora_name_9COMBO1 options: None
min_strength_9FLOAT0.60-10–10
max_strength_9FLOAT1.00-10–10
lora_name_10COMBO1 options: None
min_strength_10FLOAT0.60-10–10
max_strength_10FLOAT1.00-10–10
extra_trigger_wordsoptSTRING

Outputs (5)

NameTypeDescription
MODELMODEL
CLIPCLIP
applied_lorasSTRING
trigger_wordsSTRING
help_textSTRING