Nodes/ComfyUI-Transformers-Pipeline/EXIF Metadata Extractor
ComfyUI Node

EXIF Metadata Extractor

Pull camera data out of real photos

By mediocreatmybest·Created about a year ago·Updated 12 months ago· 3
EXIF Metadata Extractor
  • image_paths
  • metadata
  • formatted_metadata

Every photo a real camera or phone takes carries a block of embedded metadata alongside the pixels - EXIF. Camera make and model, lens, exposure settings (shutter speed, aperture, ISO), focal length, timestamp, sometimes GPS. This node's whole job is reading that block back out of a list of image files. It's the odd one out in this pack: everything else here is built around running a Hugging Face model, and this one doesn't touch a model at all - it's a fast, cheap, CPU-only read.

Why it's useful in a captioning pipeline

EXIF presence and content is one of the tells that separates a real photograph from an AI-generated or heavily edited image - generated images typically carry no EXIF at all, or a stripped-down block that doesn't match a real camera's fingerprint. That cuts both ways for dataset work. If you're curating a photography-focused training set and want to confirm what you scraped is actually camera output rather than someone else's AI generations mixed in, checking for a real EXIF block is a fast, cheap first filter. And if you're chasing photorealism specifically, exposure and lens data is a level of technical description most captioning models never produce on their own - "shot at f/1.8, shallow depth of field, 50mm" describes camera behavior a caption like "a person standing in a room" doesn't, and that's exactly the kind of detail that helps a photorealism LoRA learn camera characteristics rather than just subject matter.

How it works

Feed it a list of image paths and it reads whatever EXIF tags exist on each file, no inference involved.

The inputs and outputs that matter

  • image_paths (LIST, required) - the only input, normally straight from Image Loader.

Two outputs: metadata (LIST) and formatted_metadata (LIST) - a raw/structured version and a human-readable rendering of the same underlying data per image. Use formatted_metadata if you're display it directly or gluing it onto a caption; use metadata if something downstream needs to parse specific fields programmatically.

Installing it

Through ComfyUI Manager: search ComfyUI-Transformers-Pipeline, install, restart. By hand:

cd ComfyUI/custom_nodes
git clone https://github.com/mediocreatmybest/ComfyUI-Transformers-Pipeline

then restart. Nothing to download for this node specifically - no model weights, just a metadata read off your local files.

Common issues & troubleshooting

Metadata comes back empty or nearly empty for most images. This is expected, not a bug, for anything that didn't come straight off a camera. Images saved by ComfyUI, upscaled, run through an editor, or generated by a diffusion model typically have no meaningful EXIF block, or one that's been stripped along the way. If your dataset is a mix of scraped/generated images and real photos, expect a lot of blank entries from the non-photo half - and that gap is itself useful signal if you're trying to separate the two.

Formatted output looks different from what you expected. EXIF fields vary a lot between camera makes and phone models - not every image carries the same tags, so formatted_metadata for one file won't necessarily list the same fields as another. That's a property of EXIF itself, not something this node can normalize away.

Trying to use this to verify an image is "real." Treat it as a signal, not proof - EXIF can be stripped, edited, or forged, and its absence doesn't guarantee an image is AI-generated any more than its presence guarantees it isn't. Useful for quick dataset triage, not a forensic tool.

CategoryTransformers Pipeline

Inputs (1)

NameTypeDefaultDescription
image_pathsLIST

Outputs (2)

NameTypeDescription
metadataLIST
formatted_metadataLIST