Bubba LoRA Stack
Bubba LoRA Stack
- pipe
- metadata
- model
- clip
- pipe
- metadata
- model
- clip
- lora_names
- info
If you run the same character, style, and quality LoRAs on everything you make, you know the pain of the loader chain: three or four LoraLoader nodes in a row, each with two strength fields, taking up a third of your canvas. Bubba LoRA Stack collapses that into one node with six slots, each with its own name, model strength, clip strength, and enable toggle. It applies the enabled LoRAs in slot order, and records every name in the pipe metadata.
It's the same niche that rgthree's Power Lora Loader owns in the broader ecosystem - "many LoRAs, one node, toggles to audition combos." The Bubba take trades away the trigger-word fetcher for pipe awareness and metadata logging: the applied LoRA list rides the pipe into Bubba Save Image, so the PNG records exactly which stack made it.
How the slots work
Each slot has the same four fields:
lora_<n>_name- the LoRA dropdown.lora_<n>_strength_model- model-side strength, default 1.0.lora_<n>_strength_clip- clip-side strength, default 1.0.lora_<n>_enabled- the toggle. Slot 1 defaults to enabled; slots 2–6 default to off.
The enabled toggle is the killer feature. Your standing stack is the base (slot 1 always on), and the other five slots are ready-made experiments: flip slot 2 on to add the hair-color LoRA for this run, off for the next. No rebuilding the chain, no deleting nodes - just a checkbox. When you're A/B-ing "does adding this LoRA actually help?", that's the workflow.
The order matters
LoRAs are applied in slot order - 1, then 2, then 3 - and in LoRA math, order isn't free. Each application patches the model and CLIP on top of the previous ones, and the interaction can be nonlinear: a style LoRA applied after a character LoRA can shift how the character reads. If you're chasing a specific interaction, reorder the slots and compare. And with up to six LoRAs at strength 1.0 each, you can absolutely oversaturate a model - the standard failure is "everything looks like the same style no matter the prompt," and the standard fix is lowering the model strength on one of them, not deleting it.
Outputs and pipe behavior
pipe/metadata- both updated, with all applied LoRA names recorded in the metadata'sloraslist.model/clip- the patched tensors, for non-pipe wiring.lora_names- a string of the applied names (handy for filenames or display).info- a summary string.
The pipe behavior is the same as the single loader: optional pipe in, model/CLIP pulled from it unless overridden by explicit model/clip inputs.
When to use Stack vs. the single loader
The single Bubba LoraLoader is for one-off, per-image decisions. The Stack is for the standing combination you apply to everything - and the sweet spot is genuinely stacking: a character LoRA plus a style LoRA plus a quality enhancer is exactly the three-slot case this node was built for. If you only ever use one LoRA, the Stack is overkill; if you're chaining three loaders today, this is the upgrade.
Install
Bubba Nodes, one pack:
cd ComfyUI/custom_nodes
git clone https://github.com/bubbafett5611/Bubba_Nodes
or ComfyUI Manager → search "Bubba Nodes", restart. ComfyUI 0.27.0+ required, no extra dependencies beyond the pack's aiohttp/pydantic, nothing to download.
The gotcha when a slot "doesn't apply": check the enable toggle first - it's easy to set a name and strength and forget the slot is still off (slots 2–6 default disabled). It's also worth knowing the metadata records names, not strengths, so your PNG receipt says "which LoRAs" but not "how strong" - keep your own notes for the exact recipe.
Inputs (28)
| Name | Type | Default | Description |
|---|---|---|---|
| lora_1_name | COMBO | 1 options: None | |
| lora_1_strength_model | FLOAT | 1.00-100–100 | — |
| lora_1_strength_clip | FLOAT | 1.00-100–100 | — |
| lora_1_enabled | BOOLEAN | true | — |
| lora_2_name | COMBO | 1 options: None | |
| lora_2_strength_model | FLOAT | 1.00-100–100 | — |
| lora_2_strength_clip | FLOAT | 1.00-100–100 | — |
| lora_2_enabled | BOOLEAN | false | — |
| lora_3_name | COMBO | 1 options: None | |
| lora_3_strength_model | FLOAT | 1.00-100–100 | — |
| lora_3_strength_clip | FLOAT | 1.00-100–100 | — |
| lora_3_enabled | BOOLEAN | false | — |
| lora_4_name | COMBO | 1 options: None | |
| lora_4_strength_model | FLOAT | 1.00-100–100 | — |
| lora_4_strength_clip | FLOAT | 1.00-100–100 | — |
| lora_4_enabled | BOOLEAN | false | — |
| lora_5_name | COMBO | 1 options: None | |
| lora_5_strength_model | FLOAT | 1.00-100–100 | — |
| lora_5_strength_clip | FLOAT | 1.00-100–100 | — |
| lora_5_enabled | BOOLEAN | false | — |
| lora_6_name | COMBO | 1 options: None | |
| lora_6_strength_model | FLOAT | 1.00-100–100 | — |
| lora_6_strength_clip | FLOAT | 1.00-100–100 | — |
| lora_6_enabled | BOOLEAN | false | — |
| pipeopt | BUBBA_PIPE | — | |
| metadataopt | BUBBA_METADATA | — | |
| modelopt | MODEL | — | |
| clipopt | CLIP | — |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| pipe | BUBBA_PIPE | — |
| metadata | BUBBA_METADATA | — |
| model | MODEL | — |
| clip | CLIP | — |
| lora_names | STRING | — |
| info | STRING | — |