ComfyUI Node

LoRABox (HMN)

Stack LoRAs without drowning your graph in LoraLoader nodes

By Hellrunner2k·Created 2 years ago·Updated about a year ago· 2
LoRABox (HMN)
  • LoRABox
  • LoRABox
LoRAName
Model1.0
TE1.0
Activetrue

LoRABox doesn't do anything by itself, and that's the point. It's a container: you stack LoRAs into it, one entry per node, and hand the finished box to the Magical Encoder (BufferedEncoder) in the same pack, which applies them all when it encodes your text. If you routinely stack five or six LoRAs and got tired of the daisy-chain of LoraLoader nodes - each one re-loading the model - this is the cleaner path. The name tells you the mechanism: a "box" is just a Python list of LoRA entries that the encoder walks through in order.

The inputs that matter

  • LoRAName - a dropdown populated from your loras folder. Pick the file, same as you would in LoraLoader.
  • Model - model weight, default 1.0.
  • TE - text encoder weight, default 0.96. Not 1.0, which is a deliberate little nudge: dialing the TE slightly below the model is a common trick to avoid the text encoder overpowering a LoRA.
  • Active - per-LoRA on/off switch. Turn one off without deleting the node, handy when you're A/B-ing a stack.
  • LoRABox (optional input) - feed another LoRABox output in here and the new entry is appended to that stack. That's how you build a stack one node at a time instead of cramming everything into a single line.

How it works

The energize function is almost boring enough to be a copy-paste exercise: it appends {Name, Model, TE, Active} to whatever list came in (or starts a fresh one), and returns it as the single LoRABox output. The magic isn't in this node - it's in the consumer. The Magical Encoder takes your box, and for each active entry loads the LoRA file and applies it to the model and clip via load_lora_for_models with your Model and TE strengths. Stack order matters, so the box preserves insertion order.

Where people get burned: this node looks like it should do something, and it won't until you wire the LoRABox output into a node that knows what a LORABOX is - in practice, BufferedEncoder. On its own you'll queue it and get an empty green result. That's not a bug; it's a box with nothing in it yet.

Installing it

Hellrunner's Magical Nodes is one pack, so install it once for all of these nodes. In ComfyUI Manager, search "Hellrunner's Magical Nodes" and install, or clone by hand:

cd ComfyUI/custom_nodes
git clone https://github.com/Hellrunner2k/ComfyUI-HellrunnersMagicalNodes.git

Then restart ComfyUI. No requirements.txt and no model downloads - the pack only imports torch, PIL, numpy and safetensors, which ComfyUI already ships. One quirk: the README says to clone into custom-nodes/ with a hyphen, but the real folder is custom_nodes. Use the underscore version.

Troubleshooting

  • LoRA not applying? Check the Active toggle on that entry first - it defaults to on, but it's easy to flip.
  • The LoRAName dropdown is empty if your loras folder is empty or the pack loaded before ComfyUI scanned it; restart after adding files.
  • Wrong strength feels: the stack applies in order, so a strong "base" LoRA late in the stack can wash out earlier ones. Drop Model to 0.5–0.8 and raise TE accordingly before you start blaming the node.
CategoryHellrunner's/Snip/Boxes

Inputs (5)

NameTypeDefaultDescription
LoRANameCOMBOEncoder Name to be added.
ModelFLOAT1.0-100–100Model weight
TEFLOAT1.0-100–100Text Encoder weight
ActiveBOOLEANtrueLoRA status on/off
LoRABoxoptLORABOXClipBox

Outputs (1)

NameTypeDescription
LoRABoxLORABOXLoRABox