๐ Isulion Civitai Model Explorer
Search Civitai's model catalog without leaving your graph
- model_info
The Isulion Civitai Model Explorer is a thin, honest wrapper around Civitai's public API. You give it a search query - "flux lora", "SDXL realism", whatever - and it hits https://civitai.com/api/v1/models and returns a formatted text block with the top matches: model name, type, the version hash, and the rest of the listing metadata. It's a research node, not a downloader. It exists to answer "what should I be looking at" without tabbing out of ComfyUI.
The name oversells it slightly. It's not an explorer in the browse-forever sense; it's a search box with one page of results at a time. But as a prompt-tool it's genuinely useful for the "I want to use a LoRA, what exists?" moment, especially when paired with the other Civitai nodes in the pack to pull reference images.
What you set
- search_query - the only thing that matters. Free text, same terms you'd type in Civitai's search bar.
- sort_by -
Highest Rated,Most Downloaded, orNewest. "Highest Rated" is the sane default; "Newest" is for hunting fresh stuff before the herd. - nsfw_filter -
Hide NSFW/Show All/Only NSFW. Maps straight onto Civitai'snsfwparameter. - model_type -
Checkpoint,LORA,Embedding, orAll. If you only want LoRAs, say so. - page - 1 to 100. The API paginates; you're looking at one page of results.
- api_key - the gotcha. This node requires a Civitai API token. Leave it blank and you get back
Error: No API key provided. Paste a token in, or set theCIVITAI_API_TOKENenvironment variable and it picks that up automatically. You can grab a token from your Civitai account settings; it's free.
Output is a single model_info STRING - one formatted block per match with Model:, Type:, Hash:, and friends, separated so you can read them in the node's preview. It's text you read, not data you wire onward, so treat this node as the end of a research branch, not a feeder into your pipeline.
How it behaves
Two implementation details are worth knowing. The node has a result cache keyed on (query, sort, nsfw, type, page), so re-running the same search doesn't hammer Civitai twice. But it also returns float("NaN") from IS_CHANGED, which tells ComfyUI to always re-execute it on every queue run - the cache is in-process only, so you can't accidentally skip a fresh search by forgetting to change a value. That also means it'll re-hit the API every single generation if it's upstream of your sampler, which is pointless. Wire it as a leaf you run once and read, not as something feeding the sampler directly.
Install
Standard pack install - ComfyUI Manager, search "Isulion", or:
cd ComfyUI/custom_nodes
git clone https://github.com/Isulion/ComfyUI_Isulion
then restart ComfyUI. No extra dependencies beyond requests, which ComfyUI already ships.
Troubleshooting
The error messages are unusually honest for a custom node. "Error: No API key provided" means exactly that. "Warning: No results found" means the query genuinely returned nothing - try loosening it or dropping the model_type filter, because a filter plus a weak query is the usual cause of empty results. And if you're hitting Civitai repeatedly in a loop, that's the IS_CHANGED behavior above, not a bug - disconnect the node from anything that re-runs on every queue.
It's a small, single-purpose tool: Civitai search as a node. Not glamorous, but it'll save you the Alt-Tab.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| search_query | STRING | โ | |
| sort_by | COMBO | Highest Rated | 3 options: Highest Rated, Most Downloaded, Newest |
| nsfw_filter | COMBO | Hide NSFW | 3 options: Hide NSFW, Show All, Only NSFW |
| model_type | COMBO | All | 4 options: Checkpoint, LORA, Embedding, All |
| page | INT | 11โ100 | โ |
| api_key | STRING | โ |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model_info | STRING | โ |