Nodes/comfy-ovum/Load Image With Workflow Ovum
ComfyUI Node

Load Image With Workflow Ovum

Load an image and get its workflow back — metadata round-tripping made easy

By sfinktah·Created about a year ago·Updated 10 months ago· 7
Load Image With Workflow Ovum
    • IMAGE
    • MASK
    • FILEPATH
    • PROMPT&WORKFLOW
    • IMAGE_EX
    image

    Load Image With Workflow is the core LoadImage node with a memory. It pulls an image from your input folder just like the built-in one, but it also hands you the filepath and whatever prompt/workflow metadata is embedded inside that PNG. If you've ever dragged someone's image into ComfyUI to grab the workflow out of it, this is that idea, exposed as a node you can wire into a graph instead of a manual step.

    This matters more than it sounds. "Workflow included" is basically community law in ComfyUI - output PNGs carry the graph that made them, and round-tripping that provenance is genuinely useful when you want to feed a previous prompt back into a text encoder, log what a batch was generated with, or route a file on to a metadata tool. sfinktah even ships the parsing library for this in the pack's metadata/ folder, and it's been referenced in the wild for pulling workflows out of video files too.

    How it works

    Under the hood it subclasses ComfyUI's own LoadImage, so the image loading path is identical - same file dropdown, same EXIF transpose, same handling of multi-frame files. What's added is a metadata extraction pass: after the image decodes, it runs MetadataFileExtractor.extract_both() on the file and packs the results into an IMAGE_EX dict. It also reports loaded_path and loaded_basename back to the UI, so you can see exactly which file resolved.

    The inputs and outputs that matter

    The only input is image, a dropdown of files in your input folder - same as core Load Image, upload supported. The outputs are the whole point:

    • IMAGE / MASK - the decoded image and alpha mask, exactly what Load Image gives you.
    • FILEPATH - the resolved absolute path as a string (forward slashes).
    • PROMPT&WORKFLOW - the embedded metadata as a dict, {"prompt": {...}, "workflow": {...}}.
    • IMAGE_EX - one dict bundling image, mask, filepath, prompt, and workflow. There's a matching family of IMAGE_EX Context nodes in this pack that consume it, letting you override individual fields without rewiring everything.

    Installing it

    It ships in the comfy-ovum pack. Easiest is ComfyUI Manager - search for "comfy-ovum" and hit install, then restart. Or the manual route:

    cd ComfyUI/custom_nodes
    git clone https://github.com/sfinktah/comfy-ovum
    # restart ComfyUI
    

    No model downloads here. The pack's requirements.txt is light - pillow and numpy (already in ComfyUI), plus pymediainfo, requests, braceexpand, markdown-it-py, aiohttp, tomli-w. Manager handles those; if you cloned manually, run pip install -r requirements.txt inside the folder.

    Common issues

    The one that trips people up: images saved without embedded metadata (say, exported from a viewer or re-saved) come back with empty {"prompt": {}, "workflow": {}} - that's expected behavior, not a bug. Your downstream node should tolerate empty dicts. Also note multi-frame files: MPO is excluded from batching, and mismatched-size frames get skipped. And if you're looking for the "load from output folder" variant, that exists too - LoadImageFromOutputWithWorkflowOvum - for pulling files back out of your render folder.

    Categoryovum/image

    Inputs (1)

    NameTypeDefaultDescription
    imageCOMBO1 options: example.png

    Outputs (5)

    NameTypeDescription
    IMAGEIMAGE
    MASKMASK
    FILEPATHSTRING
    PROMPT&WORKFLOWDICT
    IMAGE_EXDICT