Nodes/ComfyUI-Zlycoris/Z-Image Stacker
ComfyUI Node

Z-Image Stacker

Build a LoRA stack without the spaghetti

By TripleHeadedMonkey·Created 7 months ago·Updated 7 months ago· 4
Z-Image Stacker
  • input_stack
  • LYCORIS_STACK
lora_name
strength_model1.00
strength_clip1.00

The Zlycoris raw loaders accept an optional LYCORIS_STACK input so you can apply several adapters in sequence instead of one. ZImageLycorisStacker is the node that builds that stack: it takes a LoRA plus its strengths, prepends any existing stack you hand it, and outputs a LYCORIS_STACK - a list of patch jobs that flows into ZImageLoaderAndPatcher or ZImageAITKLoRALoader.

Why stack at all

Plain "multiple Load LoRA nodes into one model" stacking is a known Z-Image pain point: the community repeatedly reports quality collapse when more than one standard LoRA is applied at once, while structured stacking with LoKR/LoHA formats has shown it can work. This node is the structured route - you keep each adapter's strength, chain them in order, and let the patcher apply them one after another on the raw state dicts. It's the same idea as a "LoRA stacker" in packs like Efficiency or rgthree, but tuned to the raw pipeline and LyCORIS formats this pack cares about.

The inputs

  • lora_name - dropdown from models/loras/.
  • strength_model / strength_clip - default 1.0, range ±100 (matching the loaders).
  • input_stack (LYCORIS_STACK, optional) - chain stackers: feed one stacker's output into the next one's input_stack and you get an ordered list where the later node's LoRA is applied after the earlier ones.

The single LYCORIS_STACK output then goes into a loader's lora_stack socket. Order matters: the patcher applies stack jobs in list order, so put character adapters before style adapters (or whatever order you want the layering).

Install

ComfyUI Manager (search ComfyUI-Zlycoris) or:

cd ComfyUI/custom_nodes
git clone https://github.com/TripleHeadedMonkey/ComfyUI-Zlycoris.git

Restart ComfyUI. Pure plumbing - no models.

Where people get burned

  • Strengths of 0 are how you disable a stack member. The patcher skips any job with strength_model or strength_clip at 0. So a zero isn't a bug, it's a bypass - useful for A/B testing a stack without disconnecting wires.
  • The stack is just metadata until a loader consumes it. A LYCORIS_STACK output does nothing on its own. If nothing seems applied, check that it's actually wired into the loader's lora_stack, and that the loader got a real lora_name too - the loader applies the stack and then the single LoRA on top.
  • Order isn't labeled in the graph. With three chained stackers it's easy to lose track of which order they resolve in. The convention is: the node closest to the loader in the chain is applied last. Add a note or title to your stackers if you're stacking more than two.
  • This stacker speaks the raw/LyCORIS pipeline. For normal ComfyUI-native stacking you'd stay with the standard LoRA nodes - this one only plugs into the Zlycoris loaders, so don't try to wire its output into Load LoRA.
CategoryZ-Image/Loaders

Inputs (4)

NameTypeDefaultDescription
lora_nameCOMBO0 options:
strength_modelFLOAT1.00-100–100
strength_clipFLOAT1.00-100–100
input_stackoptLYCORIS_STACK

Outputs (1)

NameTypeDescription
LYCORIS_STACKLYCORIS_STACK