pipeLoraStack
PipeLoraStack
- optional_pipe
- model_override
- clip_override
- optional_lora_stack
- optional_pipe
- lora_stack
The tinyterra pipe loaders take a LORA_STACK - one input that carries a whole list of LoRAs - instead of making you string together ten LoraLoader nodes. pipeLoraStack (ttN pipeLoraStack) is what builds that stack. Up to 20 LoRAs, each with its own strength, packaged into a single lora_stack output that plugs straight into pipeLoader v2 or pipeLoaderSDXL_v2.
It's the same idea as rgthree's Power Lora Loader - bundle the LoRAs so the graph stays small - just scoped to the tinyterra pipe ecosystem. If you're the kind of person who runs three or four LoRAs on every generation, this is the node that stops your workflow from becoming a wall of loaders.
How it works
Three controls at the top drive everything:
toggle(True/False) - master switch. Off means the node outputs the incoming pipe untouched and aNonestack; handy for A/B comparing "with all my LoRAs" vs "clean base model" by flipping one toggle.mode-simpleoradvanced. Simple gives each LoRA a singlelora_*_strength(applied to both model and clip). Advanced splits it intolora_*_model_strengthandlora_*_clip_strengthso you can push one harder than the other.num_loras- how many LoRA slots to show, 1 to 20. The pack's dynamic widgets hide the rest, so the node stays small until you crank the count up.
Each visible slot gets a lora_N_name dropdown plus the strength field(s). A couple of details worth knowing: an existing LORA_STACK can be chained in via optional_lora_stack (the node prepends those entries to the ones you set - stacking stacks), and there's an optional_pipe input that just passes straight through to the optional_pipe output, so you can thread the node into a pipe line without it interrupting anything.
Outputs: optional_pipe (the passthrough) and lora_stack - the thing the loaders consume.
From the source, the stacking logic is straightforward: import any existing stack entries, then add every lora_1..N whose name isn't "None", in order. Order matters because LoRAs apply sequentially - if two LoRAs fight over the same weights, the later one wins.
Install and gotchas
One-time pack install - ComfyUI Manager β search ComfyUI_tinyterraNodes, or git clone https://github.com/TinyTerra/ComfyUI_tinyterraNodes.git into ComfyUI/custom_nodes, restart. No dependencies or downloads.
The gotcha is the classic stack-triple: it's easy to forget you left num_loras at 4 with a LoRA loaded in slot 3, then wonder why every image has that LoRA's style baked in. Set unused slots to "None" explicitly. And don't expect stack-based loading to work on newer architectures - like the rest of the pack, this is SD1.5/SDXL machinery, and GGUF/Flux users will be on native nodes instead.
Inputs (87)
| Name | Type | Default | Description |
|---|---|---|---|
| toggle | COMBO | 2 options: true, false | |
| mode | COMBO | 2 options: simple, advanced | |
| num_loras | INT | 10β20 | β |
| optional_pipeopt | PIPE_LINE | β | |
| model_overrideopt | MODEL | β | |
| clip_overrideopt | CLIP | β | |
| optional_lora_stackopt | LORA_STACK | β | |
| lora_1_nameopt | COMBO | None | 1 options: None |
| lora_1_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_1_model_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_1_clip_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_2_nameopt | COMBO | None | 1 options: None |
| lora_2_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_2_model_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_2_clip_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_3_nameopt | COMBO | None | 1 options: None |
| lora_3_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_3_model_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_3_clip_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_4_nameopt | COMBO | None | 1 options: None |
| lora_4_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_4_model_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_4_clip_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_5_nameopt | COMBO | None | 1 options: None |
| lora_5_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_5_model_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_5_clip_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_6_nameopt | COMBO | None | 1 options: None |
| lora_6_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_6_model_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_6_clip_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_7_nameopt | COMBO | None | 1 options: None |
| lora_7_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_7_model_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_7_clip_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_8_nameopt | COMBO | None | 1 options: None |
| lora_8_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_8_model_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_8_clip_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_9_nameopt | COMBO | None | 1 options: None |
| lora_9_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_9_model_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_9_clip_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_10_nameopt | COMBO | None | 1 options: None |
| lora_10_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_10_model_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_10_clip_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_11_nameopt | COMBO | None | 1 options: None |
| lora_11_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_11_model_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_11_clip_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_12_nameopt | COMBO | None | 1 options: None |
| lora_12_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_12_model_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_12_clip_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_13_nameopt | COMBO | None | 1 options: None |
| lora_13_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_13_model_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_13_clip_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_14_nameopt | COMBO | None | 1 options: None |
| lora_14_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_14_model_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_14_clip_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_15_nameopt | COMBO | None | 1 options: None |
| lora_15_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_15_model_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_15_clip_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_16_nameopt | COMBO | None | 1 options: None |
| lora_16_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_16_model_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_16_clip_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_17_nameopt | COMBO | None | 1 options: None |
| lora_17_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_17_model_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_17_clip_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_18_nameopt | COMBO | None | 1 options: None |
| lora_18_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_18_model_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_18_clip_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_19_nameopt | COMBO | None | 1 options: None |
| lora_19_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_19_model_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_19_clip_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_20_nameopt | COMBO | None | 1 options: None |
| lora_20_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_20_model_strengthopt | FLOAT | 1.00-10β10 | β |
| lora_20_clip_strengthopt | FLOAT | 1.00-10β10 | β |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| optional_pipe | PIPE_LINE | β |
| lora_stack | LORA_STACK | β |