Randomize LoRAs (Stack)
Randomize LoRAs (Stack) — the same roulette, for Efficiency Nodes users
- lora_stack
- LORA_STACK
- trigger_words
- chosen_loras
Randomize LoRAs (Stack) is the sibling of the pack's main LoRA node with one crucial difference: instead of patching model and clip directly, it hands you a LORA_STACK - the list of LoRA tuples that nodes with stacking support consume. If you've never touched Efficiency Nodes, this one is aimed at you anyway, and you can safely read "stack" as "a list I hand to another node to apply."
Why the stack version
Why would you want that? Two reasons, both good. First, if your model-loading already runs through Efficiency Nodes' consolidated loaders, a direct-patching random node fights that flow - it loads its own model, applies LoRAs, and hands back a modified model you'd have to splice in somewhere. The stack version just produces data, so it drops cleanly into the chain: randomize here, stack there, load once. Second, it has an optional lora_stack input, so you can feed in the LoRAs you always want and let the node add random ones on top. Fixed base plus random accent, in one wire.
How it works
Mechanically it's the same engine as RandomizeLoras: up to ten slots, each with a LoRA file, a min/max strength range, and optional trigger words; a seeded roll decides how many get picked and at what strength. Each chosen LoRA becomes a (name, strength, strength) tuple appended to the stack - the same strength for model and clip, which is what the stack format expects. The trigger-words and chosen-loras strings are produced exactly like the non-stack version, so you still get a human-readable record of the roll.
Inputs and outputs
The inputs you care about: seed (reproducibility), min_random / max_random (how many LoRAs the roll picks), the ten lora_x / min_str_x / max_str_x slots for your pool, and the optional lora_stack input if you're chaining. Outputs are LORA_STACK - feed it to a Lora Stacker or an Efficiency loader - plus trigger_words and chosen_loras for your prompt and metadata.
Gotchas
The gotchas are the stack-shaped ones. Nothing applies your roll for you: if the LORA_STACK output isn't wired to a consumer node, you've spent the whole roll for nothing. Keep the same seed and same slots for reproducibility. And keep strength minimums above zero - the range allows negatives, and a random negative-strength LoRA is a surprise you don't want.
Honest caveat: this node barely has an audience yet - it's the least-searched of the four in the pack. If you're first to this party, the non-stack Randomize LoRAs is the better-documented sibling, and the stack node is worth reaching for only when you're already building through Efficiency Nodes.
Installing
Install is the same story as the rest of the pack: ComfyUI Manager, search "unwdef", or:
cd ComfyUI/custom_nodes
git clone https://github.com/unwdef/unwdef-nodes-comfyui.git
Restart, done. No pip step, no models - the whole pack is pure Python on top of ComfyUI core. Updates are a git pull and a restart.
Inputs (44)
| Name | Type | Default | Description |
|---|---|---|---|
| seed | INT | 00–18446744073709550000 | — |
| min_random | INT | 11–10 | — |
| max_random | INT | 101–10 | — |
| lora_1 | COMBO | 1 options: None | |
| min_str_1 | FLOAT | 0.50-10–10 | — |
| max_str_1 | FLOAT | 1.00-10–10 | — |
| trigger_words_1 | STRING | — | |
| lora_2 | COMBO | 1 options: None | |
| min_str_2 | FLOAT | 0.50-10–10 | — |
| max_str_2 | FLOAT | 1.00-10–10 | — |
| trigger_words_2 | STRING | — | |
| lora_3 | COMBO | 1 options: None | |
| min_str_3 | FLOAT | 0.50-10–10 | — |
| max_str_3 | FLOAT | 1.00-10–10 | — |
| trigger_words_3 | STRING | — | |
| lora_4 | COMBO | 1 options: None | |
| min_str_4 | FLOAT | 0.50-10–10 | — |
| max_str_4 | FLOAT | 1.00-10–10 | — |
| trigger_words_4 | STRING | — | |
| lora_5 | COMBO | 1 options: None | |
| min_str_5 | FLOAT | 0.50-10–10 | — |
| max_str_5 | FLOAT | 1.00-10–10 | — |
| trigger_words_5 | STRING | — | |
| lora_6 | COMBO | 1 options: None | |
| min_str_6 | FLOAT | 0.50-10–10 | — |
| max_str_6 | FLOAT | 1.00-10–10 | — |
| trigger_words_6 | STRING | — | |
| lora_7 | COMBO | 1 options: None | |
| min_str_7 | FLOAT | 0.50-10–10 | — |
| max_str_7 | FLOAT | 1.00-10–10 | — |
| trigger_words_7 | STRING | — | |
| lora_8 | COMBO | 1 options: None | |
| min_str_8 | FLOAT | 0.50-10–10 | — |
| max_str_8 | FLOAT | 1.00-10–10 | — |
| trigger_words_8 | STRING | — | |
| lora_9 | COMBO | 1 options: None | |
| min_str_9 | FLOAT | 0.50-10–10 | — |
| max_str_9 | FLOAT | 1.00-10–10 | — |
| trigger_words_9 | STRING | — | |
| lora_10 | COMBO | 1 options: None | |
| min_str_10 | FLOAT | 0.50-10–10 | — |
| max_str_10 | FLOAT | 1.00-10–10 | — |
| trigger_words_10 | STRING | — | |
| lora_stackopt | LORA_STACK | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| LORA_STACK | LORA_STACK | — |
| trigger_words | STRING | — |
| chosen_loras | STRING | — |