Civitai Load Image (with Metadata)
Load Image that doesn't throw away the metadata
- image
- mask
- a1111_params
- workflow_json
ComfyUI's stock Load Image is quietly wasteful: it gives you the pixels and discards everything else. Your saved PNGs carry the full generation recipe - the A1111-format parameters string, plus the ComfyUI prompt and workflow JSON chunks - and a plain Load Image node just throws those away. This node is a drop-in replacement with the same file picker, upload button and preview, except it also recovers the embedded metadata and hands it to you as a1111_params and workflow_json outputs.
The input and outputs
One input, image, the standard dropdown of files in your input directory (with the upload button, so you can pull a file in from anywhere). Four outputs:
image(IMAGE) andmask(MASK) - exactly what stock Load Image gives you, including alpha handling (a zero mask when there's no alpha channel).a1111_params(STRING) - the recovered A1111/Civitai parameters string, or empty if the file has none. This is the format Civitai uses for prompts, sampler settings, seed and itsCivitai resourceslist.workflow_json(STRING) - the embedded ComfyUI workflow as a JSON string, empty if absent.
How it works
It reads the file directly with PIL rather than letting ComfyUI pre-process it. For PNG it pulls the parameters text chunk; for JPEG it decodes the EXIF UserComment tag, handling the UTF-16/ASCII encodings A1111 actually writes. It also reads the prompt and workflow JSON chunks. The genuinely clever bit is the fallback: a file saved by ComfyUI's stock SaveImage node embeds a prompt graph but no parameters string, so the pack synthesizes an equivalent A1111 parameters string from that graph - same auto-detection the posting nodes use. The node also hashes the file and re-runs when it changes on disk, so it's safe in loops.
Why you'd reach for it
The intended loop is re-posting. Load a saved image with this node, wire a1111_params and workflow_json into Civitai Post Image or Civitai Create Post, and the re-post carries the original prompt, sampler settings and original workflow graph - the wired workflow_json takes precedence over the live workflow, so the post reproduces the image you actually loaded, not the graph you happen to be running now. Pair a1111_params with Civitai Parse A1111 Params and you can also drive other nodes from the recipe - feed the recovered prompt back into a sampler, pull the seed, whatever.
Where people get burned
The outputs are strings, and empty strings are the expected "no metadata here" signal - a PNG saved by some third-party app will come back with empty a1111_params and no workflow_json, and that's not a bug. Also remember this is your input folder, not Civitai: to load an image from the site by ID, you want Civitai Get Image instead.
Installing it
ComfyUI Manager, search ComfyUI Civitai MCP, or:
cd ComfyUI/custom_nodes
git clone https://github.com/daceheg/ComfyUI-civitai-mcp.git
Restart after. The pack's only real dependency is requests; this node is fully local - no API key, no network.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| image | COMBO | 1 options: example.png |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| mask | MASK | — |
| a1111_params | STRING | — |
| workflow_json | STRING | — |