ImagePlus Inspector
Steal the prompt from any CivitAI image without the copy-paste shuffle
- image
- positive
- negative
- info
The ImagePlus Inspector is the front door of this pack, and it answers a question you've had since you started doing img2img: what prompt made that image, and can I have it? It's a source node - zero inputs, four outputs - that exists to hand you an image and the text that produced it. Click a button and you can browse the CivitAI gallery, paste an image or post URL, or drag/drop a local file, and out the other side come the IMAGE plus its extracted positive prompt, negative prompt, and a metadata string.
The workflow this is built for is the classic one: you see a CivitAI post you like, you want to remix it in your own style, and the prompt that created the reference is sitting right there in its generation metadata. Manually copying prompts out of CivitAI gets old fast, and CivitAI posts have carried that full metadata (prompt, sampler settings, LoRA weights) since the platform launched. The Inspector reads it for you.
How it works
There's no Python-side input because the node is driven by its frontend. The pack ships a JS extension that talks to ComfyUI's backend over HTTP routes it registers - upload_image, images, image_by_url, set_state - and the backend does the fetching. When you select a CivitAI image or paste a URL, it pulls the image through the CivitAI API (/api/v1), parses the generation metadata, and stores the result in shared state that the other two nodes in this pack read. The prompt parser handles both CivitAI's native positive/negative keys and the A1111-style parameters block with "Positive prompt:" and "Negative prompt:" in it, so it copes with whatever format the metadata actually shipped in.
The outputs that matter
image(IMAGE) - wire this into the ImagePlus KSampler Adv'simageinput withimage_inturned on, or into any normal VAE Encode for a plain img2img chain.positiveandnegative(STRING) - the extracted prompts, in case you want to paste them somewhere or feed a standard text encoder.info(STRING) - the filtered metadata string, handy for a Save Text node if you keep a log of what you generated.
There are no inputs to set at all. That's the whole design: the Inspector is a source, not a processor.
Installation
ComfyUI Manager is the easy route - search for "ComfyUI-ImagePlus" and let it install. Or clone it by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/CovertBannana/ComfyUI-ImagePlus.git
Restart ComfyUI. The only Python dependency is aiohttp>=3.9.0, which Manager handles; everything else (torch, numpy, Pillow) ships with ComfyUI. No model files to download, and the pack is MIT-licensed.
The optional CivitAI API key
You can run the Inspector keyless for a lot of it, but CivitAI rate-limits anonymous API calls and some content won't come through without auth. If you hit that, drop a key into ComfyUI/custom_nodes/ComfyUI-ImagePlus/api_key.txt - either the raw key or CIVITAI_API_KEY=<your key> on its own line. The backend also reads a CIVITAI_API_KEY environment variable, and it already knows about both civitai.com and civitai.red API endpoints, so it survived CivitAI's 2026 domain split without you lifting a finger.
Where people get burned
- Empty prompt outputs. A lot of CivitAI posts strip, poison, or simply never include the generation prompt in their metadata. Empty
positive/negativehere usually means the metadata was never there, not that the node is broken. - Local uploads don't survive a restart. A dragged-in image lives in the backend's in-memory store, referenced by an id saved into the workflow. Restart ComfyUI and those bytes are gone - the console prints "local upload missing from backend store" and the node can't reconstruct the image. Keep a copy of the reference handy and re-upload after a restart.
- You're not getting anything to appear. Before debugging, check whether the content you're fetching needs the API key (see above). The node proxies images through its own routes, so a hard 403 on anonymous requests shows up as a blank preview.
If your whole goal is "load a reference, grab its prompt, run img2img," this node plus the pack's other two make that a three-node graph instead of the usual six. That's the pitch, and it holds.
Inputs (0)
No inputs
Outputs (4)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| positive | STRING | — |
| negative | STRING | — |
| info | STRING | — |