Nodes/Eden.art nodesuite/Power Lora Loader (Eden) 🎲
ComfyUI Node Runs on cloud

Power Lora Loader (Eden) 🎲

One node for all your LoRAs, with a dice roll per strength

By edenartlabΒ·Created 3 years agoΒ·Updated 2 days agoΒ· 120
Power Lora Loader (Eden) 🎲
  • model
  • clip
  • MODEL
  • CLIP
  • settings
  • strength_1
  • strength_2
  • strength_3
  • strength_4
  • strength_5
  • strength_6
  • strength_7
  • strength_8
  • strength_9
  • strength_10
  • strength_11
  • strength_12
  • strength_13
  • strength_14
  • strength_15
  • strength_16
β—„seed0β–Ί

Stack four LoRAs to get one look and you've got four loader nodes chained in a line, each with two strength fields, and a graph that looks like a fuse box. rgthree's Power Lora Loader fixed that years ago and became one of those nodes people install before anything else. Eden's version is a reimplementation of the same idea with one extra trick: any LoRA's strength can be drawn from a range by a seed, so a workflow explores a strength space instead of one fixed point in it.

How it works

The node draws its own rows in the graph: hit βž• Add Lora, pick from the list ComfyUI serves at /models/loras, and you get a row with a toggle, a name and a strength. Click the 🎲 on a row and a second line opens where you set min and max. There's a Toggle All switch at the top, and right-clicking a row gives you Move Up and Remove.

Each row serializes into the prompt as a lora_N entry; the Python side reads them in order and calls ComfyUI's own LoraLoader per row, passing the same strength to model and clip. When 🎲 is on, the value is sampled uniformly between min and max - and the random stream isn't shared, it's derived per row from the seed plus the LoRA's file name. That's the detail that makes this usable: add a sixth LoRA, delete the second, reorder the rest, and every other row keeps the strength it had.

The inputs that matter

  • seed - seeds the strength sampling and nothing else. It has the usual control_after_generate dropdown, so leaving it on randomize gives every image in a queued batch fresh strengths. Queue twenty, keep the ten that landed.
  • model - the diffusion model to apply LoRAs to. Optional, and usefully so: with nothing connected the node just samples strengths and returns them, a lottery you can feed elsewhere.
  • clip - gets the same LoRA at the same strength as the model. Note the limit in that sentence: no separate clip strength. If a LoRA wants 0.6 on the clip and 1.0 on the UNet, this node can't express it and core LoraLoader still can.

The outputs

MODEL and CLIP go where a normal loader's outputs go. The interesting ones are settings and strength_1 … strength_N.

settings is a JSON blob - the seed plus each LoRA's applied strength keyed by file basename, {"seed": 3, "loras": {"style_a": 0.72}}, disabled rows at 0.0. Run it into Save Param Dict (same pack) and every render logs what the dice rolled, which is the difference between a lucky folder of images and a dataset you can reason about later.

The strength_N outputs are one FLOAT per row, named after the LoRA in the UI - wire a sampled strength into a Math node or another loader if you want to use it elsewhere. Remove a row and the outputs compact up, so double-check links after you prune.

Installing it

You install the pack, not the node. In ComfyUI Manager search Eden Comfy Pack, or:

comfy node install eden_comfy_pipelines

Manual route:

cd ComfyUI/custom_nodes
git clone https://github.com/edenartlab/eden_comfy_pipelines.git
pip install -r eden_comfy_pipelines/requirements.txt

Restart, then look under Eden 🌱 β†’ Loaders. The requirements are light - scikit-learn, scipy, opencv-python, py7zr, no torch of its own - and you need ComfyUI 0.3.48+. This node wants no API key and no network.

Where people get burned

  • A new row defaults to 🎲 on, range 0.5–1. Add a LoRA, don't look, and your intended 1.0 is actually 0.73. Turn the dice off for anything you want fixed.
  • "Off" is not "bypassed." The toggle zeroes the strength, but with a model connected the loader still runs LoraLoader on that file at 0.0. No visual effect, correct - but you don't get the load time or patch memory back either.
  • Sixteen rows is a hard cap. Go over and the node raises rather than quietly clipping.
  • Order matters. Put the big structural LoRAs earlier and the gentle ones later; when something looks washed out, test the order before blaming the strengths.
  • It's a canvas-drawn custom widget. Eden's frontend paints the rows itself, the same family as rgthree's loader - and that one took visible damage from ComfyUI's Nodes 2.0 frontend. If the rows render as a smear after an update, try the legacy canvas before rebuilding the workflow.

And the one that isn't this node's fault: if a LoRA does nothing, check it matches the base architecture, that its trigger word is in the prompt, and that Pony/Illustrious anime LoRAs often want CLIP skip 2.

CategoryEden 🌱/Loaders

Inputs (3)

NameTypeDefaultDescription
seedINT00–18446744073709550000Seeds the strength sampling. Each LoRA draws from its own stream (seed + LoRA name), so adding, removing or reordering LoRAs doesn't change the others' samples.
modeloptMODELDiffusion model to apply the LoRAs to. Leave empty to only sample strengths.
clipoptCLIPCLIP model to apply the LoRAs to (same strength as the model).

Outputs (19)

NameTypeDescription
MODELMODELModel with all enabled LoRAs applied.
CLIPCLIPCLIP with all enabled LoRAs applied.
settingsSTRINGJSON with the seed and the applied strength per LoRA (by file basename), e.g. {"seed": 3, "loras": {"style_a": 0.72}}. Disabled LoRAs are listed with 0.0.
strength_1FLOATStrength applied to this LoRA (0.0 when disabled).
strength_2FLOATStrength applied to this LoRA (0.0 when disabled).
strength_3FLOATStrength applied to this LoRA (0.0 when disabled).
strength_4FLOATStrength applied to this LoRA (0.0 when disabled).
strength_5FLOATStrength applied to this LoRA (0.0 when disabled).
strength_6FLOATStrength applied to this LoRA (0.0 when disabled).
strength_7FLOATStrength applied to this LoRA (0.0 when disabled).
strength_8FLOATStrength applied to this LoRA (0.0 when disabled).
strength_9FLOATStrength applied to this LoRA (0.0 when disabled).
strength_10FLOATStrength applied to this LoRA (0.0 when disabled).
strength_11FLOATStrength applied to this LoRA (0.0 when disabled).
strength_12FLOATStrength applied to this LoRA (0.0 when disabled).
strength_13FLOATStrength applied to this LoRA (0.0 when disabled).
strength_14FLOATStrength applied to this LoRA (0.0 when disabled).
strength_15FLOATStrength applied to this LoRA (0.0 when disabled).
strength_16FLOATStrength applied to this LoRA (0.0 when disabled).