LoRA Auto Downloader
Paste a workflow, get every missing LoRA downloaded
- passthrough_model
- passthrough_clip
- status_report
- missing_loras
- model
- clip
You found a workflow on CivitAI, loaded it, and got slapped with the "LoRA not found" wall - usually several walls, one per missing file, and each one means a detour to the CivitAI page to hunt down the right model. This is the node that cuts through that. Of the five nodes in the comfyui-smart-lora-downloader pack, LoRAAutoDownloader is the one that actually does what the pack's name promises - you feed it the workflow, it finds every LoRA referenced in it, checks what you already own, and downloads the rest from CivitAI. It's the least glamorous of the bunch and the most reliable.
How it works
The node is a JSON parser with a downloader bolted on. You give it the workflow's prompt JSON, and extract_loras_from_workflow walks every node looking for LoRA loader class types - LoraLoader, LoraLoaderModelOnly, LoRALoader, JsonLoraLoader - plus lora_config blocks. It grabs each LoRA's name and its strength_model / strength_clip values. Then check_lora_exists looks for that basename with .safetensors, .ckpt, or .pt in your ComfyUI models/loras/ folder. Missing ones go to the CivitAI API (civitai.com/api/v1/models) with your token as a Bearer header, sorted by Highest Rated, and it takes the first result, then downloads that model's latest version's primary file into your LoRA folder.
Here's the part to remember: it doesn't verify the first search hit is actually the LoRA the workflow wanted. It grabs the top result and commits. Usually fine for well-known names, occasionally a completely different LoRA lands in your folder. Check what actually downloaded before you trust it.
The inputs that matter
- workflow_data - the workflow JSON to scan. This is where almost everyone trips up. The parser wants the API/prompt format (nodes keyed with
class_typeandinputs), not the pretty graph JSON you get from File → Export. In ComfyUI, enable Dev Mode in Settings, then "Save (API Format)" to get the right one. - civitai_token - required for downloads. Free from CivitAI → Account Settings → API Keys. No token, no search, no download.
- auto_download (default true) - self-explanatory; turn it off and you just get a report.
- check_only (default false) - dry run. Good first step if you're unsure what a stranger's workflow is pulling.
There's also optional passthrough_model and passthrough_clip, so you can drop the node into the middle of a graph and let the model flow continue through it. Outputs are status_report (readable summary), missing_loras (JSON list), and the passed-through model / clip.
Installing it
Same as the rest of the pack: cd ComfyUI/custom_nodes && git clone https://github.com/LargeModGames/comfyui-smart-lora-downloader, then restart ComfyUI. ComfyUI Manager may list it as "comfyui-smart-lora-downloader" - search that name - but the README's own clone URL is stale (comfyui-lora-auto-downloader.git), so if you copy-paste from the README you'll clone the wrong repo. Its only real dependency is requests, which ships with ComfyUI anyway, so there's nothing heavy to install.
Troubleshooting
- Downloaded LoRAs aren't in the Load LoRA node. ComfyUI scans
models/loras/only at startup - restart it fully. This catches everyone once. - The downloaded name doesn't match. CivitAI's filename can differ from what the workflow references. Check the Load LoRA dropdown for something similar, not identical.
- Nothing happens at all. You pasted the UI graph JSON instead of the API format, or
civitai_tokenis empty. Both fail silently-ish - the status report will tell you which. - Wrong LoRA arrived. That's the first-search-result behavior above. Delete it and let
check_only+ a manual search find the right one.
The honest read: this is the workhorse node in a small, rough pack. The README spends its energy hyping the Auto LoRA Detector, but when you actually want a missing LoRA on disk, this is the node you reach for.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| workflow_data | STRING | {} | JSON workflow data to scan for LoRA usage |
| civitai_token | STRING | CivitAI API token for downloading models | |
| auto_download | BOOLEAN | true | Automatically download missing LoRAs |
| check_only | BOOLEAN | false | Only check for missing LoRAs without downloading |
| passthrough_modelopt | MODEL | — | |
| passthrough_clipopt | CLIP | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| status_report | STRING | — |
| missing_loras | STRING | — |
| model | MODEL | — |
| clip | CLIP | — |