Nodes/zsq_prompt/Lora Stack
ComfyUI Node

Lora Stack

A LoRA shopping list, not a loader — know the difference

By windfancy·Created 2 years ago·Updated 5 months ago· 2
Lora Stack
    • lora_stack
    num_loras1
    lora_1_name
    lora_1_strength1.00
    lora_2_name
    lora_2_strength1.00
    lora_3_name
    lora_3_strength1.00
    lora_4_name
    lora_4_strength1.00
    lora_5_name
    lora_5_strength1.00

    Lora Stack (loraStack) from the zsq_prompt pack looks like a LoRA loader, but it isn't one. It builds a list of up to five LoRAs (name + strength each) and hands that list to the pack's "Checkpoint & Sampler" combo nodes - which are the things that actually apply the LoRAs to your model. If you wire loraStack's output into a regular LoraLoader or a KSampler, nothing will connect, because its output isn't a model - it's a custom ZSQ_LORA_STACK data type that only this pack's combo samplers understand.

    How it works

    You set num_loras (1–5, slider) and the node exposes that many lora_N_name / lora_N_strength pairs. The name dropdowns pull from your ComfyUI/models/loras/ folder (plus a "None" option to skip a slot). When it runs, it packs the chosen LoRA paths and strengths into a stack structure and returns it as one ZSQ_LORA_STACK value.

    The stacking is worth noting: the combo sampler nodes accept an optional lora_stack input, so you can chain stacks together - feed one loraStack into another node's optional stack slot, or combine them in the combo sampler, to exceed the five-per-node ceiling. The "None" slots just get skipped, so a num_loras of 3 with only two names filled still works.

    Inputs and outputs that matter

    • num_loras - how many LoRA slots to activate, 1 to 5.
    • lora_N_name - the LoRA file, from your loras folder. "None" disables the slot.
    • lora_N_strength - the per-LoRA weight, 0 to 2.5 (default 1.0). This is where you'll actually tune - and the community default advice stands: 1.0 is often too hot, 0.5–0.8 is a saner start for many LoRAs.
    • Output: lora_stack (ZSQ_LORA_STACK) - wire this into a zsq_prompt "Checkpoint & Sampler" node's optional stack input.

    Where it fits

    Honestly? Only if you're already living inside this pack's combo-sampler workflow style (the checkpoint_sampler family - one node that loads the checkpoint, applies stacks, and samples). If you're on a normal ComfyUI graph with separate Load Checkpoint + LoraLoader nodes, this node's data type will just sit there refusing to connect. The sibling Simple Lora Stack (loraStack_2) is the one that actually applies LoRAs to a model and clip directly - reach for that if you want a drop-in multi-LoRA loader. This node is the config-builder for the all-in-one sampler crowd.

    Installing zsq_prompt

    Shared pack install. ComfyUI Manager → search zsq_prompt → install, restart. Or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/windfancy/zsq_prompt
    

    Restart ComfyUI. Heavy shared deps (transformers, opencv-python, opencv-contrib-python, scikit-image, timm, onnx, ultralytics) come with the pack; if Manager flags "conflicting with zsq_prompt" on a workflow, that's dependency-overlap noise, only meaningful once the pack is installed. No LoRA model files are downloaded by the node - it reads whatever's already in your models/loras/ folder.

    Gotchas

    • The output type is the whole story. ZSQ_LORA_STACK wires only into this pack's combo samplers. Expect a dead-end if you try to use it elsewhere.
    • Max five LoRAs per node, though you can chain stacks into the optional input of combo nodes for more.
    • A LoRA that's incompatible with your base model won't be caught here - it'll be applied (or fail) at the sampler stage. If a LoRA does nothing, check the base-model compatibility and the trigger word, per the usual checklist, rather than blaming this node.
    CategoryZSQ/Loaders

    Inputs (11)

    NameTypeDefaultDescription
    num_lorasINT11–5
    lora_1_nameoptCOMBO1 options: None
    lora_1_strengthoptFLOAT1.000–2.5
    lora_2_nameoptCOMBO1 options: None
    lora_2_strengthoptFLOAT1.000–2.5
    lora_3_nameoptCOMBO1 options: None
    lora_3_strengthoptFLOAT1.000–2.5
    lora_4_nameoptCOMBO1 options: None
    lora_4_strengthoptFLOAT1.000–2.5
    lora_5_nameoptCOMBO1 options: None
    lora_5_strengthoptFLOAT1.000–2.5

    Outputs (1)

    NameTypeDescription
    lora_stackZSQ_LORA_STACK