Nodes/ComfyUI Civitai MCP/Civitai Load Image (with Metadata)
ComfyUI Node

Civitai Load Image (with Metadata)

Load Image that doesn't throw away the metadata

By daceheg·Created 3 months ago·Updated 3 months ago· 6
Civitai Load Image (with Metadata)
    • image
    • mask
    • a1111_params
    • workflow_json
    image

    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) and mask (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 its Civitai resources list.
    • 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.

    CategoryCivitai-mcp

    Inputs (1)

    NameTypeDefaultDescription
    imageCOMBO1 options: example.png

    Outputs (4)

    NameTypeDescription
    imageIMAGE
    maskMASK
    a1111_paramsSTRING
    workflow_jsonSTRING