🖼️ Civitai Gallery Explorer
Browse Civitai and steal its prompts without leaving ComfyUI
- positive_prompt
- negative_prompt
- image
- info
- lora_data
ComfyUI is great at generation and genuinely bad at discovery. The Civitai tab stays parked next to your canvas because every workflow starts the same way: find something nice, copy the prompt, then go hunt down whatever LoRAs it used. Civitai Gallery Explorer is a custom node by fabwaseem (Waseem Anjum) that collapses that whole loop into a panel docked right on the node. It renders an infinite-scroll gallery of Civitai images with filters, and clicking one drops its prompt, negative prompt and LoRA list straight into your graph.
One honest note on provenance: this is a young, one-person project. The author announced it on r/StableDiffusion in March 2026, it sits at v1.0.2, and there's no community war story yet - no thread of hard-won gotchas, because not many people have run it. That isn't a reason to skip it, but go in with expectations set. Treat it as a convenience, not a workflow cornerstone.
How it works
The node itself is mostly a dumb terminal. The smarts live in the frontend (a js/ widget that draws the gallery inside the node) and in routes the pack registers on ComfyUI's own server under /civitai_gallery/.... Those routes proxy Civitai's public API - civitai.com/api/v1/images - paging through it up to 50 calls per request so the infinite scroll keeps feeding you thumbnails. No API key, no account, no model downloads just to browse; it's the same public API your browser tab hits.
Click an image and the JS writes a JSON payload into the selection_data widget; the node's is_changed reacts to that string, so ComfyUI re-runs it on every selection. execute then splits the image's generation metadata: prompts go to the prompt outputs, LoRA resources (entries with type "lora" and a modelVersionId or hash) get serialized to lora_data, and everything else - sampler, CFG, seed, model - goes out the info output.
The inputs and outputs that matter
You touch almost none of the inputs. selection_data is set by the UI, not by you. The three you'll see auto-fill on click and remain editable - positive_prompt, negative_prompt (both multiline) and lora_data (JSON). The outputs are the point:
positive_prompt/negative_prompt→ wire straight into your CLIP Text Encode nodes.image→ the actual gallery image, fetched over HTTP into a tensor. Here's the trap: it's an empty 1×1 tensor unless you connect the output. The frontend only sets adownload_imageflag in the selection payload when the image output has a wire on it, so if you expected the node to always carry the picture you clicked, connect the output first - then it starts downloading.info→ the leftover metadata as JSON, handy for reproducing an exact setting.lora_data→ feed it to the pack's companion Civitai LoRA Loader, which resolves and auto-downloads anything you don't have locally, or to whatever LoRA-stack node you already use.
Install
ComfyUI Manager, search "CivitAI Gallery Explorer", install, restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/fabwaseem/ComfyUI-Civitai-Gallery-Explorer.git
cd ComfyUI-Civitai-Gallery-Explorer
pip install -r requirements.txt
Dependencies are light - numpy, Pillow, aiohttp, tqdm. No models to fetch. One real requirement hides in the code: it imports comfy_api.latest and registers through the newer ComfyExtension API, so you need a fairly recent ComfyUI. If the node fails to load on an old install, update ComfyUI before you chase anything else.
Troubleshooting
- Node won't load - almost always the ComfyUI version issue above. Update, restart, re-check.
- Image output looks broken - you haven't connected it, so it's intentionally empty. Wire it up and re-run.
- Higher NSFW filters dry up - remember the platform split: since April 2026 the public
civitai.comsurface is SFW-only, so crank the filter above that on the default endpoint and the feed thins out fast. The backend also has aninternational_versionparameter that can swap the upstream to the mirror domaincivitai.work- the route you'd want from the UK or Australia, where the main site blocks you - but it isn't exposed in the UI, so flipping it means touching the code. - Auto-download fails on a gated LoRA - that's the companion loader's job, and it accepts an optional Civitai API key for authenticated downloads. The gallery itself never needs one.
For a node with zero hype attached, this one is built thoughtfully: the download-only-when-connected behavior and the metadata extraction are both done right. Just remember it's young software from a single author, so if a workflow you love starts depending on it, keep a fallback path in mind.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| selection_data | STRING | {} | JSON payload set by the UI (selected item + flags). |
| positive_prompt | STRING | Positive prompt (editable). | |
| negative_prompt | STRING | Negative prompt (editable). | |
| lora_data | STRING | [] | LoRA data (editable JSON). |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| positive_prompt | STRING | — |
| negative_prompt | STRING | — |
| image | IMAGE | — |
| info | STRING | — |
| lora_data | STRING | — |