Nodes/ComfyUI EasyUse Anima/Easy Civitai Lookup
ComfyUI Node

Easy Civitai Lookup

Hash in, model name and trigger words out, no API key

By n0va39·Created 3 months ago·Updated a day ago· 27
Easy Civitai Lookup
    • autov3_hash
    • sha256
    • air
    • model_name
    • version_name
    • trigger_words
    • additional_hashes
    identifier
    weight1.00

    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. If civitai.com is 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 behind civitai.red while the older API host stayed on civitai.com, a 404 on a model you can plainly see in a .red tab 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.
    CategoryEasyUse Anima/Image

    Inputs (2)

    NameTypeDefaultDescription
    identifierSTRINGHex hash or urn:air:ecosystem:type:civitai:modelId@versionId.
    weightoptFLOAT1.00-100–100Resource weight recorded in additional_hashes.

    Outputs (7)

    NameTypeDescription
    autov3_hashSTRINGAutoV3 hash of the selected file, when available.
    sha256STRINGFull SHA256 hash of the selected file, when available.
    airSTRINGVersioned Civitai AIR identifier, when available.
    model_nameSTRINGCivitai model name.
    version_nameSTRINGCivitai model version name.
    trigger_wordsSTRINGComma-separated trigger words.
    additional_hashesSTRINGName:hash:weight entry for Easy Image Metadata's additional_hashes input.