Nodes/Realtime LoRA Trainer/LoRA Loader + Analyzer V2
ComfyUI Node

LoRA Loader + Analyzer V2

A drop-in LoRA loader that tells you what the LoRA actually did

By shootthesound·Created 8 months ago·Updated 2 months ago· 538
LoRA Loader + Analyzer V2
  • model
  • clip
  • model
  • clip
  • analysis
  • analysis_json
  • lora_path
lora_name
strength_model1.00
strength_clip1.00
lora_path_opt

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.

Categoryloaders/lora

Inputs (6)

NameTypeDefaultDescription
modelMODEL
clipCLIP
lora_nameCOMBOLoRA file to load and analyze
strength_modelFLOAT1.00-10–10LoRA strength for model (UNet/DiT)
strength_clipFLOAT1.00-10–10LoRA strength for CLIP text encoder
lora_path_optoptSTRINGOptional: override the LoRA dropdown with a file path (e.g. from a LoRA-manager / lora-stack node that outputs a path).

Outputs (5)

NameTypeDescription
modelMODELModel with LoRA applied.
clipCLIPCLIP with LoRA applied.
analysisSTRINGPer-block patch analysis with detection confidence.
analysis_jsonSTRINGJSON analysis data. Connect to Selective LoRA Loader for impact-colored UI.
lora_pathSTRINGFull path to the loaded LoRA file. Connect to Selective LoRA Loader.