LoRA Loader + Analyzer V2
A drop-in LoRA loader that tells you what the LoRA actually did
- model
- clip
- model
- clip
- analysis
- analysis_json
- lora_path
You don't always need per-block toggles - sometimes you just want to know what a LoRA actually is before you commit to using it. This node is the plain-English version: swap it in for your standard LoRA loader, and it also tells you what format the LoRA is, which blocks it hit hardest, and hands you a path string other nodes can chain off.
What it is and why you'd reach for it
This is the basic, non-selective analyzer from ShootTheSound/comfyUI-Realtime-Lora - the pack's own docs describe it as working "on its own as a drop-in replacement for ComfyUI's standard LoRA loader," where the analysis outputs are entirely optional. You can wire model/clip through and ignore everything else, and it behaves exactly like the loader you're used to. The "V2" in the name refers to an improved detection pass under the hood - better format identification via file metadata, an updated scoring method, and more accurate block counting than the original V1 analyzer.
The pack supports more than plain LoRA: standard LoRA (lora_up/lora_down), LoKR (Kronecker decomposition, common on Z-Image), LoHa (Hadamard decomposition), and GLoRA, plus files out of AI-Toolkit, Kohya's sd-scripts, or Musubi Tuner. This node is architecture-agnostic on purpose - unlike the per-block selective loaders elsewhere in the pack, it doesn't assume you're on Flux or SDXL or Wan, it just tells you what it found.
How it works
It loads the LoRA's tensors and works out, from the shapes and metadata rather than a guess, what format you're dealing with and how many blocks it touches - the V2 nodes display the detected type directly in the analysis output, something like "ZIMAGE (LoKR)." It then reports a strength score per block based on weight magnitude: high-scoring blocks are where the LoRA learned the most, usually the ones responsible for a subject's face, a style, or composition.
Inputs and outputs that matter
- model / clip - the pipeline you'd feed any LoRA loader.
- lora_name, strength_model, strength_clip - the standard picks, split model/clip strength exactly like ComfyUI's own loader (not a single combined strength like the pack's other analyzers).
- lora_path_opt (optional) - feed a path string directly, which overrides the dropdown; this is how you chain it straight off one of the pack's trainer nodes without saving the LoRA and re-selecting it from a menu.
- Outputs: model, clip (patched, ignore the rest if you just want a loader), analysis (human-readable breakdown), analysis_json (structured data - feed this into one of the pack's per-block selective loaders to get impact-colored checkboxes there), lora_path (a string output, useful for chaining into a selective loader's own path input, or just confirming what actually got loaded).
Installing it
ComfyUI Manager: search "Realtime LoRA Trainer." Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/ShootTheSound/comfyUI-Realtime-Lora
Restart ComfyUI. This node needs nothing beyond that - no training backend, no model download. Those requirements belong to the pack's separate trainer nodes.
Troubleshooting
lora_name is empty. Only LoRAs already in your loras folder populate that dropdown. Feed a path directly via lora_path_opt if you're working with one that isn't there yet - a freshly trained LoRA from this pack's own trainer nodes, for instance.
The detected format looks wrong. Format detection reads tensor shapes and any metadata the LoRA carries, so a file saved by an unusual or very old trainer without standard naming can occasionally get misclassified. It's a strong prior, not a certainty - if your LoRA behaves oddly, don't assume the detected format is definitely correct just because the node said so confidently.
You wired analysis_json into a selective loader and the checkboxes didn't color. Double-check you're feeding the selective loader for the matching architecture - a Z-Image analysis into an SDXL selective loader's analysis_json input won't line up block-for-block, since the block counts and meanings differ per model family.
strength_model and strength_clip drifted apart and results got weird. That split is intentional and matches ComfyUI's own loader, but it's easy to nudge one slider while tuning and forget the other - if the image looks over-styled but the prompt is being ignored (or vice versa), check whether the two strengths actually match.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| clip | CLIP | — | |
| lora_name | COMBO | LoRA file to load and analyze | |
| strength_model | FLOAT | 1.00-10–10 | LoRA strength for model (UNet/DiT) |
| strength_clip | FLOAT | 1.00-10–10 | LoRA strength for CLIP text encoder |
| lora_path_optopt | STRING | Optional: override the LoRA dropdown with a file path (e.g. from a LoRA-manager / lora-stack node that outputs a path). |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| model | MODEL | Model with LoRA applied. |
| clip | CLIP | CLIP with LoRA applied. |
| analysis | STRING | Per-block patch analysis with detection confidence. |
| analysis_json | STRING | JSON analysis data. Connect to Selective LoRA Loader for impact-colored UI. |
| lora_path | STRING | Full path to the loaded LoRA file. Connect to Selective LoRA Loader. |