ComfyUI Node Runs on cloud

pipeLoraStack

PipeLoraStack

By TinyTerraΒ·Created 3 years agoΒ·Updated 3 months agoΒ· 604
pipeLoraStack
  • optional_pipe
  • model_override
  • clip_override
  • optional_lora_stack
  • optional_pipe
  • lora_stack
β—„toggleβ–Ύβ–Ί
β—„modeβ–Ύβ–Ί
β—„num_loras1β–Ί
β—„lora_1_nameNoneβ–Ί
β—„lora_1_strength1.00β–Ί
β—„lora_1_model_strength1.00β–Ί
β—„lora_1_clip_strength1.00β–Ί
β—„lora_2_nameNoneβ–Ί
β—„lora_2_strength1.00β–Ί
β—„lora_2_model_strength1.00β–Ί
β—„lora_2_clip_strength1.00β–Ί
β—„lora_3_nameNoneβ–Ί
β—„lora_3_strength1.00β–Ί
β—„lora_3_model_strength1.00β–Ί
β—„lora_3_clip_strength1.00β–Ί
β—„lora_4_nameNoneβ–Ί
β—„lora_4_strength1.00β–Ί
β—„lora_4_model_strength1.00β–Ί
β—„lora_4_clip_strength1.00β–Ί
β—„lora_5_nameNoneβ–Ί
β—„lora_5_strength1.00β–Ί
β—„lora_5_model_strength1.00β–Ί
β—„lora_5_clip_strength1.00β–Ί
β—„lora_6_nameNoneβ–Ί
β—„lora_6_strength1.00β–Ί
β—„lora_6_model_strength1.00β–Ί
β—„lora_6_clip_strength1.00β–Ί
β—„lora_7_nameNoneβ–Ί
β—„lora_7_strength1.00β–Ί
β—„lora_7_model_strength1.00β–Ί
β—„lora_7_clip_strength1.00β–Ί
β—„lora_8_nameNoneβ–Ί
β—„lora_8_strength1.00β–Ί
β—„lora_8_model_strength1.00β–Ί
β—„lora_8_clip_strength1.00β–Ί
β—„lora_9_nameNoneβ–Ί
β—„lora_9_strength1.00β–Ί
β—„lora_9_model_strength1.00β–Ί
β—„lora_9_clip_strength1.00β–Ί
β—„lora_10_nameNoneβ–Ί
β—„lora_10_strength1.00β–Ί
β—„lora_10_model_strength1.00β–Ί
β—„lora_10_clip_strength1.00β–Ί
β—„lora_11_nameNoneβ–Ί
β—„lora_11_strength1.00β–Ί
β—„lora_11_model_strength1.00β–Ί
β—„lora_11_clip_strength1.00β–Ί
β—„lora_12_nameNoneβ–Ί
β—„lora_12_strength1.00β–Ί
β—„lora_12_model_strength1.00β–Ί
β—„lora_12_clip_strength1.00β–Ί
β—„lora_13_nameNoneβ–Ί
β—„lora_13_strength1.00β–Ί
β—„lora_13_model_strength1.00β–Ί
β—„lora_13_clip_strength1.00β–Ί
β—„lora_14_nameNoneβ–Ί
β—„lora_14_strength1.00β–Ί
β—„lora_14_model_strength1.00β–Ί
β—„lora_14_clip_strength1.00β–Ί
β—„lora_15_nameNoneβ–Ί
β—„lora_15_strength1.00β–Ί
β—„lora_15_model_strength1.00β–Ί
β—„lora_15_clip_strength1.00β–Ί
β—„lora_16_nameNoneβ–Ί
β—„lora_16_strength1.00β–Ί
β—„lora_16_model_strength1.00β–Ί
β—„lora_16_clip_strength1.00β–Ί
β—„lora_17_nameNoneβ–Ί
β—„lora_17_strength1.00β–Ί
β—„lora_17_model_strength1.00β–Ί
β—„lora_17_clip_strength1.00β–Ί
β—„lora_18_nameNoneβ–Ί
β—„lora_18_strength1.00β–Ί
β—„lora_18_model_strength1.00β–Ί
β—„lora_18_clip_strength1.00β–Ί
β—„lora_19_nameNoneβ–Ί
β—„lora_19_strength1.00β–Ί
β—„lora_19_model_strength1.00β–Ί
β—„lora_19_clip_strength1.00β–Ί
β—„lora_20_nameNoneβ–Ί
β—„lora_20_strength1.00β–Ί
β—„lora_20_model_strength1.00β–Ί
β—„lora_20_clip_strength1.00β–Ί

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 a None stack; handy for A/B comparing "with all my LoRAs" vs "clean base model" by flipping one toggle.
  • mode - simple or advanced. Simple gives each LoRA a single lora_*_strength (applied to both model and clip). Advanced splits it into lora_*_model_strength and lora_*_clip_strength so 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.

Category🌏 tinyterra/pipe

Inputs (87)

NameTypeDefaultDescription
toggleCOMBO2 options: true, false
modeCOMBO2 options: simple, advanced
num_lorasINT10–20β€”
optional_pipeoptPIPE_LINEβ€”
model_overrideoptMODELβ€”
clip_overrideoptCLIPβ€”
optional_lora_stackoptLORA_STACKβ€”
lora_1_nameoptCOMBONone1 options: None
lora_1_strengthoptFLOAT1.00-10–10β€”
lora_1_model_strengthoptFLOAT1.00-10–10β€”
lora_1_clip_strengthoptFLOAT1.00-10–10β€”
lora_2_nameoptCOMBONone1 options: None
lora_2_strengthoptFLOAT1.00-10–10β€”
lora_2_model_strengthoptFLOAT1.00-10–10β€”
lora_2_clip_strengthoptFLOAT1.00-10–10β€”
lora_3_nameoptCOMBONone1 options: None
lora_3_strengthoptFLOAT1.00-10–10β€”
lora_3_model_strengthoptFLOAT1.00-10–10β€”
lora_3_clip_strengthoptFLOAT1.00-10–10β€”
lora_4_nameoptCOMBONone1 options: None
lora_4_strengthoptFLOAT1.00-10–10β€”
lora_4_model_strengthoptFLOAT1.00-10–10β€”
lora_4_clip_strengthoptFLOAT1.00-10–10β€”
lora_5_nameoptCOMBONone1 options: None
lora_5_strengthoptFLOAT1.00-10–10β€”
lora_5_model_strengthoptFLOAT1.00-10–10β€”
lora_5_clip_strengthoptFLOAT1.00-10–10β€”
lora_6_nameoptCOMBONone1 options: None
lora_6_strengthoptFLOAT1.00-10–10β€”
lora_6_model_strengthoptFLOAT1.00-10–10β€”
lora_6_clip_strengthoptFLOAT1.00-10–10β€”
lora_7_nameoptCOMBONone1 options: None
lora_7_strengthoptFLOAT1.00-10–10β€”
lora_7_model_strengthoptFLOAT1.00-10–10β€”
lora_7_clip_strengthoptFLOAT1.00-10–10β€”
lora_8_nameoptCOMBONone1 options: None
lora_8_strengthoptFLOAT1.00-10–10β€”
lora_8_model_strengthoptFLOAT1.00-10–10β€”
lora_8_clip_strengthoptFLOAT1.00-10–10β€”
lora_9_nameoptCOMBONone1 options: None
lora_9_strengthoptFLOAT1.00-10–10β€”
lora_9_model_strengthoptFLOAT1.00-10–10β€”
lora_9_clip_strengthoptFLOAT1.00-10–10β€”
lora_10_nameoptCOMBONone1 options: None
lora_10_strengthoptFLOAT1.00-10–10β€”
lora_10_model_strengthoptFLOAT1.00-10–10β€”
lora_10_clip_strengthoptFLOAT1.00-10–10β€”
lora_11_nameoptCOMBONone1 options: None
lora_11_strengthoptFLOAT1.00-10–10β€”
lora_11_model_strengthoptFLOAT1.00-10–10β€”
lora_11_clip_strengthoptFLOAT1.00-10–10β€”
lora_12_nameoptCOMBONone1 options: None
lora_12_strengthoptFLOAT1.00-10–10β€”
lora_12_model_strengthoptFLOAT1.00-10–10β€”
lora_12_clip_strengthoptFLOAT1.00-10–10β€”
lora_13_nameoptCOMBONone1 options: None
lora_13_strengthoptFLOAT1.00-10–10β€”
lora_13_model_strengthoptFLOAT1.00-10–10β€”
lora_13_clip_strengthoptFLOAT1.00-10–10β€”
lora_14_nameoptCOMBONone1 options: None
lora_14_strengthoptFLOAT1.00-10–10β€”
lora_14_model_strengthoptFLOAT1.00-10–10β€”
lora_14_clip_strengthoptFLOAT1.00-10–10β€”
lora_15_nameoptCOMBONone1 options: None
lora_15_strengthoptFLOAT1.00-10–10β€”
lora_15_model_strengthoptFLOAT1.00-10–10β€”
lora_15_clip_strengthoptFLOAT1.00-10–10β€”
lora_16_nameoptCOMBONone1 options: None
lora_16_strengthoptFLOAT1.00-10–10β€”
lora_16_model_strengthoptFLOAT1.00-10–10β€”
lora_16_clip_strengthoptFLOAT1.00-10–10β€”
lora_17_nameoptCOMBONone1 options: None
lora_17_strengthoptFLOAT1.00-10–10β€”
lora_17_model_strengthoptFLOAT1.00-10–10β€”
lora_17_clip_strengthoptFLOAT1.00-10–10β€”
lora_18_nameoptCOMBONone1 options: None
lora_18_strengthoptFLOAT1.00-10–10β€”
lora_18_model_strengthoptFLOAT1.00-10–10β€”
lora_18_clip_strengthoptFLOAT1.00-10–10β€”
lora_19_nameoptCOMBONone1 options: None
lora_19_strengthoptFLOAT1.00-10–10β€”
lora_19_model_strengthoptFLOAT1.00-10–10β€”
lora_19_clip_strengthoptFLOAT1.00-10–10β€”
lora_20_nameoptCOMBONone1 options: None
lora_20_strengthoptFLOAT1.00-10–10β€”
lora_20_model_strengthoptFLOAT1.00-10–10β€”
lora_20_clip_strengthoptFLOAT1.00-10–10β€”

Outputs (2)

NameTypeDescription
optional_pipePIPE_LINEβ€”
lora_stackLORA_STACKβ€”