Easy Civitai Lookup
Hash in, model name and trigger words out, no API key
- autov3_hash
- sha256
- air
- model_name
- version_name
- trigger_words
- additional_hashes
The name is a bit of a lie in the good direction. It doesn't browse Civitai for you, it doesn't log in, and it needs no API key. You hand it a hash or a versioned AIR identifier, and it tells you which model and version that file actually is - plus the trigger words - without downloading anything. It's a barcode scanner for model files.
Why you'd care: you renamed your models ages ago and now have no idea which Civitai page they came from. Or you're uploading a generation to Civitai and want its auto-linker to attach the checkpoint and LoRAs instead of you tagging them by hand. Both problems are hash problems, and hash search is a decades-old habit in this ecosystem for exactly this reason. This node just makes the hash addressable from inside the graph.
How it works
identifier takes one of two things. Either a hex hash - 8 to 128 characters, case doesn't matter, so a full SHA256 works and so do Civitai's short AutoV2/AutoV3 strings, because the node compares what you typed against every hash value Civitai stores for the file. Or a full versioned AIR in the form urn:air:sd1:checkpoint:civitai:4384@128713, which is the model ID at the version ID. The Civitai page URL is not accepted, and neither is a bare version number.
From there it makes one GET request: a hash goes to model-versions/by-hash/<hash>, an AIR goes to model-versions/<versionId>. For a hash it picks the file whose stored hashes match yours; for an AIR it picks the version's primary file.
The nice part is what it does with a bad answer. If the response doesn't contain the exact hash you asked for, the node raises instead of returning some near-miss model's metadata. Successful lookups are cached in memory (128 of them), so re-queuing a workflow doesn't hammer Civitai; failures aren't cached, so a transient error retries next run.
The inputs and outputs that matter
Only one field is required: identifier. weight is optional and defaults to 1 - it's the resource weight recorded alongside the hash, and you should only set it if the resource genuinely ran at a weighted scale in your prompt.
Seven STRING outputs come back: autov3_hash, sha256, air, model_name, version_name, trigger_words (comma-separated, straight from Civitai's trained words) and additional_hashes. The last one is the one you wire - it goes into Easy Image Metadata's additional_hashes socket, and from there into your A1111 metadata as a resource entry.
Getting a hash to feed in is the easy part. On the command line:
sha256sum path/to/model.safetensors
# Windows:
certutil -hashfile model.safetensors SHA256
Or copy the Model hash: value out of a PNG's A1111 parameters block, or the short hash from the model's Civitai page.
Installing it
In ComfyUI Manager, search for EasyUse Anima. If it doesn't turn up - the pack's registry metadata is still marked as pre-publication - clone it:
cd ComfyUI/custom_nodes
git clone https://github.com/n0va39/ComfyUI-EasyUseAnima
pip install -r ComfyUI-EasyUseAnima/requirements.txt
Restart ComfyUI afterwards. The pack's README lists a pile of scary optional dependencies (Impact-Pack, KJNodes, Spectrum, Lora-Manager), but those belong to its AiO generator and detailer flows. This node and its two image siblings need none of them. requests is the only thing this node touches, and the googletrans-py==4.0.0 pin in requirements is for the pack's prompt-translation feature, imported lazily - if that pin ever fights your environment, the lookup doesn't care.
Where people get burned
- A typo'd hash fails the run. That's deliberate - no silent wrong answer - but it means a mistyped character shows up as a red node, not an empty output.
- It needs the network at generation time. No key, but also no offline mode. Lookups are also serialized one at a time across the whole ComfyUI process, with roughly a 12-second deadline per operation, so a slow Civitai can visibly stall your queue. Don't call it twenty times in one graph.
- The endpoint is hardcoded to
civitai.com/api/v1. Ifcivitai.comis unreachable from where you run ComfyUI - it's blocked in the UK and Australia - you get an HTTP error, not a graceful fallback. And since Civitai's April 2026 split put the full catalogue behindcivitai.redwhile the older API host stayed oncivitai.com, a 404 on a model you can plainly see in a.redtab is worth suspecting. That's the first thing to check before you start debugging your hash. - AIR means the long form.
urn:air:<ecosystem>:<type>:civitai:<modelId>@<versionId>. Copy it from the model page; don't hand-assemble it from a URL.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| identifier | STRING | Hex hash or urn:air:ecosystem:type:civitai:modelId@versionId. | |
| weightopt | FLOAT | 1.00-100–100 | Resource weight recorded in additional_hashes. |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| autov3_hash | STRING | AutoV3 hash of the selected file, when available. |
| sha256 | STRING | Full SHA256 hash of the selected file, when available. |
| air | STRING | Versioned Civitai AIR identifier, when available. |
| model_name | STRING | Civitai model name. |
| version_name | STRING | Civitai model version name. |
| trigger_words | STRING | Comma-separated trigger words. |
| additional_hashes | STRING | Name:hash:weight entry for Easy Image Metadata's additional_hashes input. |