Donut LoRA CivitAI Lookup
Identify any LoRA (or any hash) without leaving the graph
- name
- version
- description
- trigger_words
- model_url
- hash
- recommended_weight
- preview_image
If you have a LoRA file that came with no description, or a workflow that references a hash you don't recognize, this is the node. DonutLoRACivitAILookup is the pack's unified CivitAI lookup: point it at a LoRA file and it computes the SHA256, queries CivitAI, and hands you the name, version, description, trigger words, URL, recommended weight, and preview image. Or skip the file entirely and paste a raw hash - it'll resolve that too. It's the current, non-deprecated home for the pack's CivitAI metadata machinery, and it subsumes the older DonutLoRACivitAIInfo and DonutLoRAHashLookup nodes.
The one-line pitch: this is "what the hell is this file?" turned into a node, and it makes LoRA organization dramatically less miserable.
How it works
Two modes behind the source dropdown:
- LoRA File - pick from your
lorasfolder. The engine computes the SHA256 (cached so repeat runs are free), checks a local metadata cache, and only hits the CivitAI API when the hash isn't already known. On a hit it also downloads and caches the preview image so thepreview_imageoutput works offline later. - Hash - paste a SHA256 (at least 8 chars) and it resolves that directly, no file involved. This is the mode you want when a shared workflow references a LoRA by hash and you need to know which one it is before downloading.
Results cache locally either way. api_key is optional - needed mostly for authenticated requests and heavier rate limits. force_refresh (LoRA File mode) re-fetches from CivitAI even when cached.
The outputs
The full superset of eight, shared with the older nodes:
name,version,description,trigger_wordsmodel_url- direct page linkhash- the SHA256 (in Hash mode, it echoes your cleaned-up hash)recommended_weight- a FLOAT, the uploader's suggested strengthpreview_image- an IMAGE, populated in file mode
In Hash mode, preview_image comes back empty and version is filled from the API - the source maps the old 5-output hash signature up into the 8-output superset with documented defaults. Missing-hash results return a search URL instead of leaving you hanging.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/DonutsDelivery/ComfyUI-DonutNodes.git donutnodes
cd donutnodes
python -m pip install -r requirements.txt
or ComfyUI Manager → "DonutNodes," restart.
Where people get burned
Hash lookups are case-insensitive and whitespace-trimmed, but they are SHA256 - don't paste a truncated hash and expect magic; the node needs 8+ chars and CivitAI needs a real match. And remember the cache: after you update a LoRA file (a new version, a re-export), the old hash may be cached, so hit force_refresh to see the new one. Also worth knowing: the pack's DonutLoRALibrary node ("Scan All LoRAs") does this across your entire folder at once, which is the smarter move for a bulk inventory.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| source | COMBO | LoRA File | Look up by selecting a LoRA file or by pasting a hash |
| lora_nameopt | COMBO | Select a LoRA to look up on CivitAI | |
| hashopt | STRING | Paste the SHA256 hash of a model file | |
| api_keyopt | STRING | API key for authenticated requests (optional) | |
| force_refreshopt | COMBO | No | Force refresh from CivitAI even if cached (LoRA File mode) |
Outputs (8)
| Name | Type | Description |
|---|---|---|
| name | STRING | — |
| version | STRING | — |
| description | STRING | — |
| trigger_words | STRING | — |
| model_url | STRING | — |
| hash | STRING | — |
| recommended_weight | FLOAT | — |
| preview_image | IMAGE | — |