Nodes/Crystools/πŸͺ› Metadata extractor
ComfyUI Node Runs on cloud

πŸͺ› Metadata extractor

Metadata Extractor (Crystools)

By crystianΒ·Created 3 years agoΒ·Updated 9 months agoΒ· 1,940
πŸͺ› Metadata extractor
  • metadata_raw
  • prompt
  • workflow
  • file info
  • raw to JSON
  • raw to property
  • raw to csv

Takes the raw metadata blob you get from Load image with metadata or Preview from image and cracks it open into six separate, actually usable pieces - the prompt values, the full workflow graph, file info, and a few raw formats. This is the node that turns "an image has metadata somewhere in it" into "here's the exact JSON I can wire into the rest of my graph."

Why you'd reach for it

Per the pack's own README, being able to see "all information, even metadata from other sources (like Photoshop)" is close to the whole reason this pack exists. In practice, that means: you loaded or previewed an image and you want the real values that made it - the seed, steps, cfg, the entire node graph, or just the file's basic info - without hand-parsing exif yourself. It's the node you always reach for right after a load or preview when you actually want to do something with what came out of it, rather than just look at it.

How it works

It doesn't parse anything itself so much as re-shape the raw metadata blob into the formats people actually want: structured JSON for the values that matter, and a couple of raw fallback formats (property-style, CSV) for cases where you want the whole thing as text rather than picking specific fields.

Inputs and outputs

One required input: metadata_raw, typed METADATA_RAW - a custom slot type that only comes out of Load image with metadata or Preview from image, so this node is only useful chained after one of those two. Six outputs: prompt (JSON, the generation parameters), workflow (JSON, the full graph - the same thing you'd get by dragging the PNG into ComfyUI), file info (JSON, resolution/size/that kind of metadata, human-readable), raw to JSON (JSON, the entire raw metadata formatted for readability), raw to property (STRING, the same data in "properties" format), and raw to csv (STRING, the same data as CSV).

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 models to fetch, just the pack's Python dependencies.

Common issues

metadata_raw isn't a type you can construct from scratch or feed a plain string into - it's the pack's own custom slot, so this node is dead weight on its own; it only does anything wired after Load image with metadata or Preview from image.

If several outputs come back empty, the source image simply had nothing to extract - an image created outside ComfyUI, one that went through a platform that strips exif on re-upload, or one saved with with_workflow turned off on the save node, never had that data to begin with. That's the input data missing, not a bug here.

And the general Crystools caveat applies here too: if this node (or others in the pack) go missing after a ComfyUI update, check the startup console for IMPORT FAILED - that's almost always a dependency resolution issue that a reinstall clears up, not something broken in your graph.

Categorycrystools πŸͺ›/Metadata

Inputs (1)

NameTypeDefaultDescription
metadata_rawMETADATA_RAWβ€”

Outputs (6)

NameTypeDescription
promptJSONβ€”
workflowJSONβ€”
file infoJSONβ€”
raw to JSONJSONβ€”
raw to propertySTRINGβ€”
raw to csvSTRINGβ€”