🖼️ Civitai Discovery Hub
Browse Civitai inside ComfyUI, no API key, no model downloads
- positive_prompt
- negative_prompt
- image
- info
The usual flow for pulling inspiration off Civitai is: browser tab, scroll for twenty minutes, copy a prompt, paste it into ComfyUI, and hope the metadata lines up with your setup. This node collapses that whole loop into a single spot in the graph. It puts a full Civitai gallery browser inside ComfyUI - infinite scroll, filters, favorites - and when you click an image, its positive prompt, negative prompt, metadata, and even the actual image land on the node's outputs, ready to wire into a workflow. It doesn't generate anything. It's a front door into someone else's creative decisions, and that's the point.
How it works
Civitai Discovery Hub is really two halves working together. The front half is a JavaScript panel that renders a masonry grid and sends your filter choices to a route served by the pack (/civitai_gallery/images_stream). The back half is a small aiohttp server that proxies Civitai's public API - https://civitai.com/api/v1/images - and streams results back in batches. Pagination is cursor-based, and the server keeps fetching pages until it has filled your batch size (or hits a time budget), so the "infinite scroll" keeps working even when a filter is aggressive.
Two things worth knowing about that proxy. First, the name is a lie of omission in the best way: it calls no paid API and needs no key. Civitai's images endpoint is public, so there's nothing to sign up for. Second, it's a proxy, which means you see what Civitai's API serves you - the NSFW slider (None/Soft/Mature/X) maps straight onto Civitai's own content ratings, and since the platform split into SFW civitai.com and the full civitai.red catalogue, how spicy your results get tracks whatever the upstream endpoint returns that day. The code even has a mirror-domain fallback baked in.
Your favorites live in a civitai_favorites.json file in the pack's folder, not in the Civitai cloud - a small thing, but nice for building a reusable library offline.
The inputs and outputs that matter
The node has exactly one input, and you don't type into it:
- selection_data - a JSON payload the UI writes when you click a card. It carries the selected item plus a
download_imageflag.
Everything else is output:
- positive_prompt / negative_prompt - strings from the image's generation metadata. Wire these into your CLIP Text Encode nodes and you're sampling with someone else's prompt.
- image - an
IMAGEtensor of the actual image, downloaded on demand. This is the one that costs you: it only downloads when the output is connected, so leave it unplugged unless you're doing img2img. - info - the rest of the metadata as formatted JSON. Feed it to a save-text node or just read it.
Installing it
The whole pack installs at once - the hub node, the utility node, the JS, the server routes. Via ComfyUI Manager, search for ComfyUI-Civitai-Discovery-Hub and install. Or do it by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/Light-x02/ComfyUI-Civitai-Discovery-Hub
then restart ComfyUI. The requirements are just numpy, Pillow, and aiohttp - no giant dependencies, no model downloads, nothing to babysit. The one real catch is that this is a V3-era pack: it registers its nodes purely through the new comfy_entrypoint API with no legacy fallback, so it needs a fairly recent ComfyUI. If the node doesn't appear after install, update ComfyUI first.
Common issues
The README's FAQ covers the main frictions: if the gallery stops loading at the bottom of the scroll, sit at the bottom and let the batch finish - or nudge the scroll up and back down to re-trigger. Favorites not showing in Favorites-only mode? Hit Refresh. Videos can be slow to preview because the pack loads metadata first and micro-seeks for a thumbnail.
One honest caveat: this is a small, early pack from a single active maintainer (the December 2025 changelog is a full V3 rewrite). It has basically zero community footprint yet, so expect a rough edge now and then. The idea is a good one - a Civitai browser that hands you ready-to-run prompts in place - and worth having in the drawer even while it matures.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| selection_data | STRING | {} | JSON payload set by the UI (selected item + flags). |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| positive_prompt | STRING | — |
| negative_prompt | STRING | — |
| image | IMAGE | — |
| info | STRING | — |