πͺ Load image with metadata
Load Image with Metadata (Crystools)
- image
- mask
- prompt
- Metadata RAW
This is a drop-in replacement for ComfyUI's built-in Load Image node with three things added: it reads and exposes the image's embedded prompt and metadata, and it lets you browse subfolders inside your input directory instead of dumping every image in one flat list.
Why you'd reach for it
The subfolder support alone is worth the swap once your input folder has more than a handful of files - the stock node has always been a flat list, which gets unwieldy fast if you're organizing reference images by project. But the real reason this exists is the same instinct behind the whole pack: ComfyUI images carry their generation history embedded in the file, and if you're iterating on someone else's output - a workflow from Reddit, a render from a teammate, your own older image - you want to see exactly what produced it without dragging the file into a fresh tab just to inspect the graph.
How it works
It reads the same embedded PNG exif that ComfyUI writes natively (and that Save image with extra metadata writes with its own extras), same mechanism as any tool that round-trips ComfyUI's workflow-in-PNG convention. Beyond the image and mask you'd get from the stock node, it separately extracts the prompt - the actual parameter values used, not the full node graph - and a raw metadata blob you can pass to Metadata extractor for the rest (workflow, file info, and a few raw formats).
Inputs and outputs
One required input: image, a dropdown of files in your input folder (and its subfolders, filtered to skip hidden folders and typical metadata files as of a mid-2025 update). You can drop a file onto it or paste an image straight from the clipboard, same as the stock node. Four outputs: image and mask (identical to the default node), prompt (JSON - the parameters, not the graph), and Metadata RAW (the full blob, feed it to Metadata extractor to actually use it).
Installing it
Through ComfyUI Manager, search crystools. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/crystian/ComfyUI-Crystools.git
cd ComfyUI-Crystools
pip install -r requirements.txt
Restart ComfyUI. No model downloads for this node - pure file I/O.
Common issues
If prompt and Metadata RAW come back empty, the image simply has no embedded metadata to extract - that happens a lot with images that passed through anything other than a direct ComfyUI save: messaging apps and social platforms routinely strip metadata on re-encode, and an image saved elsewhere never had it to begin with. That's the source file, not this node, being the problem.
Format support has grown over time - webp reading was only added in mid-2024 - so if you're on an old, un-updated install and a webp silently doesn't yield metadata, updating the pack is the fix before you go looking elsewhere.
And the broader Crystools footgun worth knowing generally: users have reported this pack's nodes going missing or throwing IMPORT FAILED after a ComfyUI update, almost always a Python dependency resolution problem rather than anything about your workflow. Check the startup console log for that string if the node disappears from your menu, and reinstall the pack to force pip to resolve fresh.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| image | COMBO | 1 options: example.png |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | β |
| mask | MASK | β |
| prompt | JSON | β |
| Metadata RAW | METADATA_RAW | β |