LoRABox (HMN)
Stack LoRAs without drowning your graph in LoraLoader nodes
- LoRABox
- LoRABox
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
lorasfolder. 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
lorasfolder 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.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| LoRAName | COMBO | Encoder Name to be added. | |
| Model | FLOAT | 1.0-100–100 | Model weight |
| TE | FLOAT | 1.0-100–100 | Text Encoder weight |
| Active | BOOLEAN | true | LoRA status on/off |
| LoRABoxopt | LORABOX | ClipBox |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| LoRABox | LORABOX | LoRABox |