LoRA Info Extractor
Know exactly which LoRAs are in your Wan stack — with hashes and CivitAI lookups
- lora
- lora_json
- lora_info
- lora_passthrough
When you load a Wan workflow from someone else, the LoRA stack is usually a black box - a bundle of files whose identities and trigger words you're expected to just know. LoRA Info Extractor opens that box: it walks the LoRA stack, hashes each file, optionally checks CivitAI for a matching version, and emits structured metadata plus a readable summary. And it passes the original stack through untouched, so you can drop it into a chain without changing anything.
The required input is lora, typed WANVIDLORA - the LoRA stack output from a WanVideo Lora Select or a compatible node. The node is forgiving about what that stack looks like: it hunts through stack/list/children/chain-style keys and sniffs for path-ish attributes, so it copes with the slightly different shapes different LoRA nodes produce. If it can't find a stack, it coerces a single LoRA entry so you still get metadata.
Three optional inputs shape the behavior. fallback_name is used when no metadata can be determined - a manual override when hashing and lookup both come up empty. use_civitai_api defaults to true: leave it on and the node queries CivitAI for matching model versions; flip it off to skip remote lookups entirely and rely on local metadata (faster, fully offline, and quieter). wan_model_type tells it whether the LoRA is used with the Wan 2.2 high-noise model, low-noise model, or neither - which is exactly the distinction that matters in a two-pass Wan workflow, and which the pack's other nodes (FilenameGenerator, CivitMetadataHelper) share.
Outputs: lora_json (structured metadata as a JSON string), lora_info (a human-readable summary - which files were found, which matched CivitAI, cache hits, missing files), and lora_passthrough (the original WANVIDLORA stack, unchanged, so you can keep the chain flowing while reading the side-channel metadata).
Under the hood: files get hashed (with a persistent hash cache so repeated runs don't re-hash), and the CivitAI service matches hashes against the API, using the CivitAI key from the pack's ComfyUI settings. That hash-and-match approach is how model managers have kept versions straight for years - a hash is the only reliable identifier when filenames lie.
Installing
Part of Swiss Army Knife:
- ComfyUI Manager: search "Swiss Army Knife", install, restart.
- Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/sammykumar/ComfyUI-SwissArmyKnife.git
cd ComfyUI-SwissArmyKnife
pip install -e .
Gotchas
- The CivitAI key lives in ComfyUI settings, not on the node. Without it, CivitAI lookups may be rate-limited or fail - the node still works, you just lose the enriched matching.
- It's the
WANVIDLORAtype. Non-Wan LoRA nodes that don't emit that type won't connect without adapters. wan_model_typeis a label, not a selector - it's recorded in the metadata, it doesn't move files or change the stack.- Missing files are reported, not fatal. A stack that references a deleted LoRA yields metadata with
exists: false, which is itself useful information.
If you've ever stared at a downloaded Wan workflow and wondered what the three LoRAs in the stack actually are, this is the node that answers with receipts.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| lora | WANVIDLORA | LoRA stack from WanVideo Lora Select or compatible nodes | |
| fallback_nameopt | STRING | Used when no LoRA metadata can be determined | |
| use_civitai_apiopt | BOOLEAN | true | Disable to skip remote lookups and rely on local metadata only |
| wan_model_typeopt | COMBO | high | Specify whether this LoRA is used with Wan 2.2 High Noise, Low Noise model, or none/other |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| lora_json | STRING | — |
| lora_info | STRING | — |
| lora_passthrough | WANVIDLORA | — |