Lora Inspector
Read any LoRA's training card without leaving ComfyUI
- lora_data
- lora_markdown
- lora_html
Every LoRA you download is a tiny mystery. What rank was it trained at? Which base model does it actually want? What are the trigger words the trainer baked in? Usually you guess, or you chase the Civitai page - which goes dead the moment the uploader gets bored. Lora Inspector from comfyui-daz-tools solves this the honest way: it opens the .safetensors file itself and reads the training metadata out of the header. No API, no key, no network. The answer is literally inside the file.
How it works
When you run it, the node walks models/loras (all configured LoRA roots, recursively), reads each safetensors metadata block with safetensors' safe_open, and stashes the results in models/loras/dx_lora_db.json. One scan covers the whole folder, so switching between LoRAs afterward is instant.
The metadata is the same ss_* fields a kohya-style trainer writes. It pulls out the three things you actually care about:
- Identity: base model (
ss_base_model_version), rank (ss_network_dim), alpha (ss_network_alpha), file size, last modified. - Training recipe: network module, steps, epochs, resolution, number of training images, the training comment if there is one.
- The good stuff: optimizer, learning rate, UNet / text-encoder LR, scheduler, noise offset, min-SNR gamma, mixed precision - plus trigger words, which it derives from
ss_tag_frequencyby merging tag counts across training subsets and taking the top 20.
It also auto-classifies each LoRA into a category based on the base-model metadata (falling back to the filename): WAN2.2, WAN2.1, LTX2.3, LTX2, LTX, Flux1, Flux2, Flux2 Klein, Chroma, ZIT, Qwen, or Others. That alone is worth it - knowing a LoRA is WAN2.2 before you stack it on a 2.1 workflow saves you a weird run.
Inputs and outputs
The inputs are simple: a category dropdown, a lora dropdown (entries are prefixed with their category, e.g. WAN2.2 - models/...), and a rescan boolean you tick when you add LoRAs.
It outputs three flavors of the same data - lora_data (structured JSON, good for feeding downstream logic), lora_markdown, and lora_html (rendered cards for display). It's marked as an output/display node, so its main job is being the thing you glance at while you're picking a LoRA, not a link in a compute chain.
Installing it
ComfyUI Manager, search comfyui-daz-tools. Or the manual route:
cd ComfyUI/custom_nodes
git clone https://github.com/denyazzolin/comfyui-daz-tools
Then restart ComfyUI. No extra pip dependencies - safetensors ships with ComfyUI, and the .pt-only LoRAs just get listed without metadata. That's all there is to it.
Where people get burned
First-run confusion, mostly. On a fresh install the node auto-scans once, but if you've had it open since before the scan finished - or you add LoRAs and don't rescan - you'll see Unknown categories or a "value not in list" error on the dropdown. The fix is the README's exact advice: tick Rescan = Yes, run the node once, then reload the page. The dropdown options are rebuilt on load.
One honest caveat: this only reads what the trainer wrote. LoRAs trained with tools that skip metadata (some diffusers pipelines, some one-click trainers) will show up sparse - filename classification still gets you a category, but rank/alpha will be blank. That's not the node lying, that's the file not carrying the info.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| category | COMBO | 1 options: (no loras found) | |
| lora | COMBO | 1 options: (no loras found) | |
| rescan | BOOLEAN | false | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| lora_data | STRING | — |
| lora_markdown | STRING | — |
| lora_html | STRING | — |