Z-Image Turbo LoRA Stack
10 Slots, Per-Slot Strength, and the QKV Fix Built In
- model
- MODEL
Single-LoRA workflows are the Z-Image default, but eventually you want a character plus a style plus a detail LoRA in one image. On SDXL that was just tedious. On Z-Image it's also a trap - the community has burned itself stacking multiple LoRAs at full strength and watching quality collapse into mush. If you're going to stack, do it with control. That's the whole reason the Z-Image Turbo LoRA Stack exists.
It's the same architecture-aware loading as the single Z-Image Turbo LoRA Loader - fuses separate to_q/to_k/to_v keys into Z-Image's fused QKV format, remaps to_out.0 → out, builds the key map with ComfyUI's z_image_to_diffusers() - but applied to up to 10 LoRAs in sequence, all in one node. Without that fusion step, most diffusers-format Z-Image LoRAs quietly drop their attention weights on the stock loader; the Stack bakes the fix into every slot.
The inputs that matter
One MODEL in, one MODEL out. Then ten identical slots, each with four controls:
- lora_N - dropdown of your
models/lorasfolder, defaultNone. - strength_N - per-slot strength, −20 to 20, default 1.
- enabled_N - on/off toggle, default on. This is the killer feature.
- fuse_qkv_N - the QKV fusion toggle, default on. Set it to Direct only if the file already ships in fused format.
How it works
The node builds one shared key map from your model, then walks the slots in order: for each enabled slot it loads the LoRA, fuses QKV if the file has separate Q/K/V keys, patches a clone of the model, and chains that result into the next slot. That ordering matters - it's not a weighted blend. Each subsequent LoRA patches on top of the previous one, so slot order is effectively your layering order.
Why use this over chaining three LoraLoaders? No spaghetti, one node, and per-slot bypass. enabled_N alone is worth it: flip a slot on and off to A/B test a combination without disconnecting anything, and strength_N lets you park a temperamental LoRA at 0.7 while everything else sits at 1.
The honest caveat
The community consensus on Z-Image is that more than one LoRA at once tends to collapse quality, and LoKR-format LoRAs are the partial exception. This node doesn't magically fix that - nothing does. What it does is make it cheap to find out. For most people the winning config ends up being one character LoRA plus one light style LoRA with everything else toggled off, and this node is the fastest way to discover that for your specific files.
Installing and troubleshooting
cd ComfyUI/custom_nodes
git clone https://github.com/capitan01R/Comfyui-ZiT-Lora-loader
Restart ComfyUI. It's also in ComfyUI Manager under the pack title Comfyui-ZiT-Lora-loader. No extra dependencies, no model downloads - same story as the single loader, since it's literally the same codebase (the Stack subclasses the Loader).
If a slot "does nothing," check the console: each one logs [Z-Image LoRA Stack] Slot N: name (N keys). A slot with zero useful keys means the file's naming doesn't line up - try toggling fuse_qkv off for that file or running it through the single loader to see what's happening. A strength of 0 or an off toggle skips the slot cleanly, so those are your debugging switches too. And remember the base rule: Turbo LoRAs won't work on Z-Image Base at all, stack node or not.
Inputs (41)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| lora_1opt | COMBO | 1 options: None | |
| strength_1opt | FLOAT | 1.00-20–20 | — |
| enabled_1opt | BOOLEAN | true | — |
| fuse_qkv_1opt | BOOLEAN | true | — |
| lora_2opt | COMBO | 1 options: None | |
| strength_2opt | FLOAT | 1.00-20–20 | — |
| enabled_2opt | BOOLEAN | true | — |
| fuse_qkv_2opt | BOOLEAN | true | — |
| lora_3opt | COMBO | 1 options: None | |
| strength_3opt | FLOAT | 1.00-20–20 | — |
| enabled_3opt | BOOLEAN | true | — |
| fuse_qkv_3opt | BOOLEAN | true | — |
| lora_4opt | COMBO | 1 options: None | |
| strength_4opt | FLOAT | 1.00-20–20 | — |
| enabled_4opt | BOOLEAN | true | — |
| fuse_qkv_4opt | BOOLEAN | true | — |
| lora_5opt | COMBO | 1 options: None | |
| strength_5opt | FLOAT | 1.00-20–20 | — |
| enabled_5opt | BOOLEAN | true | — |
| fuse_qkv_5opt | BOOLEAN | true | — |
| lora_6opt | COMBO | 1 options: None | |
| strength_6opt | FLOAT | 1.00-20–20 | — |
| enabled_6opt | BOOLEAN | true | — |
| fuse_qkv_6opt | BOOLEAN | true | — |
| lora_7opt | COMBO | 1 options: None | |
| strength_7opt | FLOAT | 1.00-20–20 | — |
| enabled_7opt | BOOLEAN | true | — |
| fuse_qkv_7opt | BOOLEAN | true | — |
| lora_8opt | COMBO | 1 options: None | |
| strength_8opt | FLOAT | 1.00-20–20 | — |
| enabled_8opt | BOOLEAN | true | — |
| fuse_qkv_8opt | BOOLEAN | true | — |
| lora_9opt | COMBO | 1 options: None | |
| strength_9opt | FLOAT | 1.00-20–20 | — |
| enabled_9opt | BOOLEAN | true | — |
| fuse_qkv_9opt | BOOLEAN | true | — |
| lora_10opt | COMBO | 1 options: None | |
| strength_10opt | FLOAT | 1.00-20–20 | — |
| enabled_10opt | BOOLEAN | true | — |
| fuse_qkv_10opt | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |