Nodes/ComfyUI-TJ_NODE/Z-Image LoRA Analyzer (TJ)
ComfyUI Node

Z-Image LoRA Analyzer (TJ)

See what your LoRA actually does, layer by layer

By designloves2·Created 4 months ago·Updated 3 days ago· 13
Z-Image LoRA Analyzer (TJ)
  • model
  • clip
  • model
  • clip
  • analysis_text
  • analysis_json
lora_name
global_strength1.00
use_originalfalse
block_config{}

Stop guessing which blocks your LoRA is actually moving

Z-Image LoRA Analyzer (TJ) is a block-level LoRA inspection and filtering node for Z-Image models. You feed it a loaded model and a LoRA, and it shows you which of the model's 30 layers that LoRA touches and how hard - with live per-block strength bars you can drag, filter weak blocks, and pass the adjusted model straight back out. It's the "X-ray your LoRA" node, and it exists because the usual LoRA workflow is opaque: you apply a file, tweak one global number, and hope.

The family lineage is worth knowing: the README credits comfyUI-Realtime-Lora for the idea of block-wise analysis (built from scratch, not copied), and there are sibling analyzers for Krea2 and Klein (4B/9B). This one targets Z-Image's 30-layer structure, shared by Turbo and Base.

How it works

The node loads the LoRA, decomposes it, and shows per-block effect strengths in a UI with real-time bars - drag a strength and it re-applies instantly, with a "compare to original" overlay. Under the hood it:

  • Auto-detects key formats - dot, kohya, diffusers, LoKr, and shorthand forms all parse without you telling it which one the file is.
  • Lets you filter per block - the block_config (JSON) records which blocks are active and at what strength. One-click presets handle the common moves: "keep the strong core," "balance," "trim weak blocks."
  • Outputs the patched model - model comes out with the LoRA applied according to your per-block config, so you can run a real generation through it rather than trusting a bar chart.

use_original is the A/B switch: with it on, the block config is ignored and the original model passes through, so you can compare filtered vs unfiltered output in the same run. There's also an architecture-mismatch warning - put a 9B LoRA in the wrong family node and it tells you instead of silently doing nothing.

The inputs that matter

  • model - the loaded Z-Image model (required). clip is optional.
  • lora_name - the LoRA file to analyze.
  • global_strength - the master strength applied on top of the per-block config.
  • use_original - ignore the config and pass the original through (for A/B).
  • block_config - the per-block JSON; the UI manages this, you mostly shouldn't hand-edit it.

Outputs: model (patched, for generation), clip, analysis_text (readable summary), and analysis_json (the block data, for automation).

Install it

Part of the TJ_NODE pack, no extra deps:

cd ComfyUI/custom_nodes
git clone https://github.com/designloves2/ComfyUI-TJ_NODE.git

Or ComfyUI Manager → search TJ_NODE, restart. Category: ✨ TJ_Node/Lora Analyzer.

Where people get burned

Two things. First, the analysis is only as meaningful as your mental model of "block strength = effect": a strong block on a LoRA you don't care about is still strong - filter with intent, not just by the bars. The one-click presets are a good start but they're blunt; fine-tune after a test render. Second, remember the model output is the patched model, and the pack sandboxes saving to models/loras subfolders - you can save a filtered LoRA out, but the path is constrained by design, so a custom output path that's "rejected" is expected behavior, not a bug. Also: this is an analysis tool, not a training tool. If you're coming from a LoRA-training mindset, the KB's core reminder applies here more than ever - LoRAs are architecture-bound, so a Z-Image LoRA only means anything on a Z-Image model. It pairs best with the pack's Z-Image Turbo node: analyze, adjust, and render through it in the same workflow.

Category ✨ TJ_Node/Lora Analyzer

Inputs (6)

NameTypeDefaultDescription
modelMODEL
lora_nameCOMBO0 options:
global_strengthFLOAT1.00-5–5
use_originalBOOLEANfalse
block_configSTRING{}
clipoptCLIP

Outputs (4)

NameTypeDescription
modelMODEL
clipCLIP
analysis_textSTRING
analysis_jsonSTRING