AI image metadata: where the evidence is actually written

Metadata is not one place but several, and knowing which is which decides how much a finding is worth. An image or video can carry a signed C2PA manifest, descriptive EXIF and XMP fields, PNG text chunks holding generation parameters, and container-level entries in MP4 or MOV. They differ in what they record, how easily they are edited, and how quickly they vanish when a file is shared. This guide walks through each layer as the parser reads it.

Short answer: signed provenance first, descriptive fields second

Read a C2PA manifest before anything else, because it is the only layer whose integrity can be checked cryptographically. Then read EXIF and XMP, where platform names and AI labels often appear but can be rewritten by anyone. PNG text chunks are where the Stable Diffusion ecosystem stores prompts and workflows. Container metadata does the equivalent job for video. Everything below the signature is a clue rather than a proof.

Samples behind each layer

Adobe Firefly JPEGThe signed layer: a valid C2PA manifest declaring digitalSourceType = trainedAlgorithmicMedia, reported as valid rather than trusted because its certificate is outside the trust list.
ComfyUI / Stable Diffusion XL PNGThe PNG text layer: prompt and workflow chunks holding node graph and generation parameters, none of it signed.
Google Veo MP4The container layer: credentials and tool fields carried inside the ISO base media box structure rather than an image marker.

Signals to Check

EXIFA camera-era standard. Software, Artist and UserComment sometimes carry a tool name or a JSON AI label, and a wholesale absence of camera fields is itself mildly informative.
XMPAdobe's XML metadata. CreatorTool, Credit and DigitalSourceType are the fields most likely to name a generator when the original export survives.
C2PAThe signed layer, serialised as JUMBF and embedded per format: an APP11 segment in JPEG, a dedicated chunk in PNG, a box in MP4.
PNG text chunkstEXt, iTXt and zTXt hold free-form key/value text, which is why prompts, seeds, samplers and full workflow JSON end up here rather than in EXIF.
MP4 / MOV containerftyp brand, the box tree, udta/meta/ilst, encoder, tool and software entries, plus AIGC strings and SEI markers in the bitstream.

Why generation parameters live outside EXIF

EXIF was designed for cameras: fixed tags for exposure, aperture, ISO and lens. A prompt, a seed and a serialised node graph do not fit that shape, so the Stable Diffusion ecosystem writes them into PNG text chunks instead, which accept arbitrary key/value strings. This is the single most common misunderstanding in the area — searches for "ComfyUI EXIF" or "PNG info" are almost always looking for text chunks, not camera tags. The practical upshot is that you need a reader that inspects both regions, because a tool that only parses EXIF will report an empty result on a file that is full of readable evidence.

How quickly each layer disappears

The layers are not equally fragile, and knowing the order helps you interpret an empty result:

  • Chat apps: PNG text chunks go first, along with most XMP fields and EXIF GPS data.
  • Social platform transcoding: EXIF, the C2PA manifest, XMP CreatorTool and every generation parameter are typically gone.
  • Screenshots and screen recordings: nothing of the original survives; you get the capture tool's own metadata instead.
  • Re-export or save-as: provenance fields are dropped, and new software may write unrelated EXIF over the top.

Reading metadata without handing over the file

Metadata inspection is a read-only operation on bytes you already have, so there is no technical reason to upload anything. AICheck365 parses EXIF, XMP, C2PA, PNG chunks and MP4 boxes locally through Rust compiled to WebAssembly, which keeps working documents and personal photographs on your own machine. It also means results appear without a round trip, and that large video files are bounded by your hardware rather than an upload limit.

Reading a file layer by layer

  1. Work from the original — Use the file as exported by the tool or downloaded from the platform, since every later copy loses layers.
  2. Check the signed layer first — Look for a C2PA manifest and read its signature state, trust state and declared digitalSourceType before anything else.
  3. Read EXIF and XMP — Check Software, CreatorTool, Credit, DigitalSourceType and UserComment for tool names or AI labels, remembering these are unsigned.
  4. Open PNG text chunks — For PNG files, read tEXt/iTXt/zTXt for prompt, seed, sampler, CFG, model and any workflow JSON.
  5. For video, walk the container — Read ftyp, the box tree and udta/meta/ilst for encoder and tool fields, then look for SEI markers in the bitstream.

Limits

Run the full detector to read every layer at once, or open a specific tool when you already know which layer you need.

FAQ

Where do AI tools write their metadata?

It depends on the tool and the format. Signed provenance goes into a C2PA manifest, descriptive tool names into EXIF and XMP, generation parameters and workflows into PNG text chunks, and video-level details into the MP4 or MOV container.

Why is there no AI information in the EXIF?

Because most generation parameters are not stored there. EXIF holds camera-oriented tags, while prompts, seeds and workflows are written into PNG text chunks, which a reader has to inspect separately.

Can AI metadata be faked?

Every layer except a valid C2PA signature can be edited or copied between files. That is precisely why signature and trust state are reported separately from descriptive fields.

Is reading metadata online safe?

Here it never leaves your device: parsing runs in your browser, so no upload is involved and nothing is retained.

Sources and verification records