ComfyUI Extension: Comfyui-ZiT-Lora-loader
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.
Architecture-aware LoRA loader for Z-Image Turbo (Lumina2) in ComfyUI. Fixes silent key mismatches by auto-fusing separate Q/K/V into Z-Image's fused QKV format and remapping output projections.
Looking for a different extension?
Custom Nodes (4)
README
ComfyUI Z-Image Turbo LoRA Loader
Architecture-aware LoRA loading for Z-Image Turbo (Lumina2) in ComfyUI, with automatic per-layer strength calibration based on forensic weight analysis.

Background
LoRAs trained against Z-Image Turbo are commonly shipped with separate to_q, to_k, to_v projections — the standard diffusers export format. Z-Image Turbo's native architecture stores attention as a single fused QKV matrix. Loading these LoRAs without conversion means the attention weights never reach the model.
| What the LoRA ships with | What Z-Image Turbo expects | What this pack does |
|---|---|---|
| Separate to_q / to_k / to_v | Fused attention.qkv [11520, 3840] | Block-diagonal fusion at load time |
| to_out.0 naming | attention.out naming | Remaps automatically |
| Any prefix convention | Lumina2 exact key mapping | Uses z_image_to_diffusers() |
| Global strength only | Per-layer control | Interactive graph widget + auto-calibration |
Installation
cd ComfyUI/custom_nodes
git clone https://github.com/capitan01R/Comfyui-ZiT-Lora-loader.git
Nodes
Z-Image Turbo LoRA Loader
| Input | Type | Description |
|---|---|---|
| model | MODEL | Z-Image Turbo / Lumina2 model |
| lora_name | dropdown | LoRA file from models/loras |
| strength_model | float | Global LoRA strength (-20.0 to 20.0) |
| auto_convert_qkv | boolean | Fuse separate Q/K/V to Z-Image's native fused QKV format |
| lora_name_override | string (link) | Optional — overrides the dropdown when connected |
| layer_strengths | string (link) | Optional — per-layer JSON from Auto Strength node |
The graph widget shows 30 columns, one per transformer layer, each split between attention (purple, top) and feed-forward (teal, bottom). Drag to adjust. Shift-drag moves all active layers together. Click to toggle.
Z-Image Turbo LoRA Stack
Apply up to 10 LoRAs in sequence with independent strength, enable toggle, and QKV fusion per slot.
Z-Image LoRA Auto Strength
Reads the LoRA's weight tensors directly and computes per-layer strengths from the actual training signal in the file. One knob: global_strength.
Z-Image LoRA Auto Loader
Self-contained version of the above — analysis and application in one node. model in, patched model out.
How Auto Strength works
For every layer pair in the file:
ΔW = lora_B @ lora_A
scaled_norm = frobenius_norm(ΔW) * (alpha / rank)
strength = clamp(global * (mean_norm / layer_norm), floor=0.30, ceiling=1.50)
High-signal layers get pulled back, low-signal layers get nudged up, mean lands at global_strength. Layer discovery is fully dynamic.
Z-Image Turbo Architecture Reference
30 transformer layers
attention
qkv.weight [11520, 3840] (fused Q+K+V)
out.weight [3840, 3840]
q_norm.weight [128]
k_norm.weight [128]
feed_forward
w1.weight [10240, 3840] (SwiGLU)
w2.weight [3840, 10240]
w3.weight [10240, 3840]
attention_norm.weight [3840]
ffn_norm.weight [3840]
modulation.linear.weight [15360, 3840] (AdaLN)
dim=3840 n_heads=30 n_kv_heads=30 head_dim=128
Run ComfyUI workflows without the setup
No installs, no CUDA version roulette, no GPU sitting idle on your bill. Bring a workflow and run it in the browser.