Nodes/scorpiov-nodes/Scorpiov Image Meta Reader πŸ”
ComfyUI Node

Scorpiov Image Meta Reader πŸ”

Pull a PNG's prompt, model, and LoRAs back out of its metadata

By scorpiovΒ·Created 3 months agoΒ·Updated 9 days agoΒ· 2
Scorpiov Image Meta Reader πŸ”
    • model
    • vae
    • loras
    • positive_prompt
    • negative_prompt
    • raw_metadata
    β—„image_pathβ–Ί

    Every decent image you've ever generated is a tiny database. ComfyUI's Save Image embeds the full workflow JSON into the PNG, A1111 embeds its own parameters chunk, and Civitai's whole culture is built on sample images carrying generation metadata - prompts, sampler settings, LoRA weights - so other people can recreate the result. The problem has always been reading that data back: you open a PNG someone shared, and the recipe for making it sits invisibly inside the file. Scorpiov Image Meta Reader is the node that digs it out.

    Give it a file and it parses both metadata formats - the A1111 parameters chunk and ComfyUI's native JSON - and hands you the goods as separate string outputs:

    • model and vae - which checkpoint and VAE were used.
    • loras - one line per LoRA with name and weight, formatted so it can be wired straight into the pack's Save Image node.
    • positive_prompt and negative_prompt - the actual prompt text.
    • raw_metadata - the full dump, so nothing gets lost (ADetailer settings, hires-fix params, sampler details all hide in here).

    How it works

    The input is a single image_path string - a bare filename as it comes out of a Load Image node, or a full path to a PNG anywhere on disk. The tooltip says it plainly: "Filename from a Load Image node, or a full path to a PNG file." That dual behavior is handy because it means you can inspect a file that isn't in your input/ folder at all.

    There's also a "Read Metadata Now" button on the node, and it's the feature people actually reach for. Because the node is an output node with a scrollable textarea, you can drop a filename in, click the button, and read the metadata without running the whole workflow. That's the difference between "quickly check what this image was generated with" and "queue up my entire pipeline just to look at a header." If you're reverse-engineering someone's workflow from a shared PNG, this is the fastest way in.

    Gotchas

    • The loras string is the hook. Wire loras into the pack's Save Image loras input and the saved PNG gets a proper Lora hashes: line plus <lora:...> tags, which is what lets Civitai recognize and badge the LoRAs. That round-trip - read an image, feed its settings into a new generation, save with the same metadata - is the workflow this pack is clearly built around.
    • There's a real limitation baked into the pack's own design: if the image you're reading was generated with prompts or LoRAs delivered via Scorpiov Anywhere's broadcast connections, they were never real graph wires, so the graph-walking logic that reconstructs "what was in this workflow" won't see them. Wire those directly if you need them to show up.
    • Unreadable or missing files don't crash - you get empty strings and a "File not found" / "No image path provided" message in the display instead.

    Installing

    Part of scorpiov-nodes. Install the pack either through ComfyUI Manager (search "scorpiov-nodes") or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/vikramudyawar/scorpiov-nodes
    

    then restart ComfyUI. No extra Python dependencies - metadata parsing is all standard-library and PIL, which ComfyUI already ships.

    The ecosystem is stuffed with PNG-info readers, from A1111's own to various browser extensions, and if you only ever inspect files outside ComfyUI you don't need this one. But if you want metadata as graph data - strings you can feed back into your workflow, compare, or embed into a new save - this is the cleanest way to get it without leaving the canvas.

    CategoryScorpiov/Image

    Inputs (1)

    NameTypeDefaultDescription
    image_pathSTRINGFilename from a Load Image node, or a full path to a PNG file.

    Outputs (6)

    NameTypeDescription
    modelSTRINGβ€”
    vaeSTRINGβ€”
    lorasSTRINGβ€”
    positive_promptSTRINGβ€”
    negative_promptSTRINGβ€”
    raw_metadataSTRINGβ€”