Z-Image LoRA Merger
Stack LoRAs on Z-Image without setting the picture on fire
- model
- clip
- model
- clip
You've got a character LoRA and a style LoRA that are great apart and dreadful together. Chain them the normal ComfyUI way on Z-Image Turbo and out comes a blown-out, artifacty mess. That's not you doing it wrong - it's how LoRAs combine. ComfyUI adds each LoRA's effect on top of the last, so two at strength 1.0 is a 2.0 total effect. SDXL mostly shrugs that off. Distilled models like Z-Image Turbo, SDXL Turbo and LCM don't have the headroom, and you get the "burned" look this whole pack exists to fix.
Z-Image LoRA Merger is the pack's main node, and it fixes it the cheap way: it normalizes your strengths before applying.
The honest mechanic
Worth being clear about what "merge" means here, because the name overpromises. This node does not merge weights. It reads the strengths you set on each LoRA, rescales them with a formula, then applies the LoRAs one after another through ComfyUI's stock LoRA loader. That's why it's fast and nearly free in memory. The genuine weight-merging nodes live in the same pack - Merge to Single and True Merge - but for the overexposure problem you don't need them.
The rescaling is the point. There are six blend modes, of which three matter:
- normalize (default): scales strengths so the sum of squares equals
target_strength². Your 0.6 and 1.0 become 0.51 and 0.86 - proportions kept, total energy capped. This is the one to reach for. - average: divides every strength by the LoRA count and multiplies by target. Predictable, blunt.
- sqrt_scale: divides by √n. Mathematically sensible if the LoRAs act independently.
The decay modes (linear, geometric) make the first LoRA dominant and taper the rest - handy when you want a style as a garnish on top of a character. And additive is plain chaining with no normalization, kept around for A/B comparison. If your output looks identical to before, you're on additive.
Inputs that matter
The list is short. Feed model and clip in from your checkpoint loader, pick a blend_mode and target_strength, then choose lora_1/lora_2 (both required) with their strength_1/strength_2. Three more LoRA slots are optional, as is clip_strength_multiplier, which scales only the CLIP side of each LoRA - useful when a style LoRA is dragging your prompt semantics. Strengths run -10 to 10, so you can subtract a LoRA's influence rather than only adding it.
Outputs are model and clip, straight into your KSampler. Nothing else.
Settings that work
On Z-Image Turbo specifically, the author's recommendation is normalize with target_strength around 0.7–0.9, and drop to sqrt_scale if it still looks cooked. Start there. And despite the name, it works on any model - the Z-Image branding is the motivation, not a requirement.
Install
No dependencies to wrestle with, no model downloads, no pip install. It's plain Python over ComfyUI internals, so installation is:
ComfyUI Manager → search "Z-Image LoRA Merger" → install → restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/DanrisiUA/ComfyUI-ZImage-LoRA-Merger
Restart ComfyUI and you'll find it under loaders/lora, next to the rest of the pack.
Gotchas
- The node caches loaded LoRA tensors per instance. Swap a LoRA file on disk mid-session and you may need to reload the workflow to see the change.
- A strength of exactly 0 skips that LoRA silently.
- If "nothing happens," double-check the blend mode isn't
additive- that's the control case.
The author, DanrisiUA, is also behind ComfyUI-LoRA-Block-Filter and publishes LoRAs of his own, and it shows: this is a pack written by someone who burned a few images before writing the fix.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | The model to apply LoRA to | |
| clip | CLIP | The CLIP model | |
| blend_mode | COMBO | normalize | LoRA blending mode |
| target_strength | FLOAT | 1.000–2 | Target total strength (for normalize/average) |
| lora_1 | COMBO | First LoRA | |
| strength_1 | FLOAT | 1.00-10–10 | — |
| lora_2 | COMBO | Second LoRA | |
| strength_2 | FLOAT | 1.00-10–10 | — |
| lora_3opt | COMBO | Third LoRA | |
| strength_3opt | FLOAT | 1.00-10–10 | — |
| lora_4opt | COMBO | Fourth LoRA | |
| strength_4opt | FLOAT | 1.00-10–10 | — |
| lora_5opt | COMBO | Fifth LoRA | |
| strength_5opt | FLOAT | 1.00-10–10 | — |
| clip_strength_multiplieropt | FLOAT | 1.000–2 | Strength multiplier for CLIP |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| clip | CLIP | — |