Nodes/ComfyUI-ZImage-LoRA-Merger/Z-Image LoRA Merger
ComfyUI Node

Z-Image LoRA Merger

Stack LoRAs on Z-Image without setting the picture on fire

By DanrisiUA·Created 8 months ago·Updated 8 months ago· 18
Z-Image LoRA Merger
  • model
  • clip
  • model
  • clip
blend_modenormalize
target_strength1.00
lora_1
strength_11.00
lora_2
strength_21.00
lora_3
strength_31.00
lora_4
strength_41.00
lora_5
strength_51.00
clip_strength_multiplier1.00

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.

Categoryloaders/lora

Inputs (15)

NameTypeDefaultDescription
modelMODELThe model to apply LoRA to
clipCLIPThe CLIP model
blend_modeCOMBOnormalizeLoRA blending mode
target_strengthFLOAT1.000–2Target total strength (for normalize/average)
lora_1COMBOFirst LoRA
strength_1FLOAT1.00-10–10
lora_2COMBOSecond LoRA
strength_2FLOAT1.00-10–10
lora_3optCOMBOThird LoRA
strength_3optFLOAT1.00-10–10
lora_4optCOMBOFourth LoRA
strength_4optFLOAT1.00-10–10
lora_5optCOMBOFifth LoRA
strength_5optFLOAT1.00-10–10
clip_strength_multiplieroptFLOAT1.000–2Strength multiplier for CLIP

Outputs (2)

NameTypeDescription
modelMODEL
clipCLIP