EXIF · XMP · IPTC · PNG
AI image metadata viewer
Every image file carries hidden fields alongside its pixels. Drop one here to read them — and to see which ones say the picture was made by AI.
Free · no sign-up · your file never leaves your device
Drop an image to read its metadata, click to choose, or paste
JPEG · PNG · WebP · AVIF · HEIC (Safari) — checked on your device
What hides inside an image file
A JPEG, PNG, WebP or HEIC file is more than a grid of pixels. Cameras and software write structured metadata into it, and several of these containers matter for AI detection:
- EXIF
- Written by cameras and phones: make, model, lens, exposure time, aperture, ISO, focal length, capture date and often GPS. Editing software adds a Software field. A rich, consistent EXIF block is typical of a genuine photo; generators almost never write one.
- XMP
- An extensible XML packet used by Adobe and many others. It can hold the creator tool, edit history, rights, keywords and, importantly, the IPTC extension field
DigitalSourceType. - IPTC
- The news-industry standard for captions, credits and keywords, now including the digital source type vocabulary that distinguishes camera captures from AI generations.
- PNG text chunks
- Key-value text stored in PNG files. Stable Diffusion tools write their prompt and settings here; ComfyUI stores the entire workflow graph as JSON.
- C2PA manifests
- Signed provenance records stored in their own boxes inside the file. See the C2PA viewer for every detail.
How GPTTrace reads it
When you drop an image, GPTTrace reads EXIF, XMP and IPTC with the exifr library, parses every PNG text chunk (decompressing zTXt and compressed iTXt chunks), extracts raw XMP packets so that fields exifr doesn’t know about aren’t lost, reads JPEG comment segments and walks any C2PA manifest. It then sorts what it found into fields that name the tool that made the file — Software, CreatorTool, generation parameters — and free-text fields such as descriptions and keywords, because a generator name in a caption is much weaker evidence than one in the Software field.
The result lists the evidence first, then a metadata snapshot of the most informative fields, then every PNG text chunk in full. A Stable Diffusion PNG will show its whole prompt; a phone photo will show its camera and exposure settings.
When there is no metadata
Most images you find online have been stripped by the platform that served them. That is normal and says almost nothing about whether a picture is real. In that case GPTTrace falls back to analysing the pixels with its neural classifier and forensic checks, and the metadata section simply stays short. If you need the metadata, try to obtain the original file from its creator or source rather than a downloaded copy.
Camera metadata that supports authenticity
A real phone photo usually has a dozen or more camera fields that agree with each other: a make and model, a lens that exists for that model, an exposure time and ISO that fit the lighting in the picture, a capture time and often GPS coordinates. GPTTrace counts these and reports “camera metadata present” when enough of them are there. A fabricated image with copied EXIF can fake this, but the fields often disagree — a lens from another brand, a night scene shot at 1/4000 s, a capture date before the camera model was released. If the details matter, check them against each other.
Metadata fields that identify AI images
These are the traces GPTTrace checks for. “Some files only” means the trace is often missing — a re-save, screenshot or social-media upload removes metadata — so its absence proves nothing.
| Generator | Where | What to look for | How reliable |
|---|---|---|---|
| Stable Diffusion | PNG tEXt “parameters” | Prompt, negative prompt, Steps, Sampler, CFG scale, Seed and Model hash (AUTOMATIC1111, Forge, SD.Next) | Documented by the vendor |
| Stable Diffusion | PNG tEXt “prompt” / “workflow” | The full node graph as JSON (ComfyUI) | Documented by the vendor |
| Stable Diffusion | PNG tEXt “invokeai_metadata” | Generation settings (InvokeAI) | Documented by the vendor |
| Stable Diffusion | Pixels | Sizes that are multiples of 64, e.g. 512×512, 768×768, 1024×1024, 832×1216 | Commonly seen |
| Midjourney | PNG iTXt / XMP Description | The prompt text followed by a “Job ID” on files downloaded from the web app | Commonly seen |
| Midjourney | XMP / IPTC | Author or credit fields naming Midjourney on some exports | Some files only |
| Midjourney | Pixels | No camera EXIF; Discord and social re-uploads strip all metadata | Commonly seen |
| Google Imagen / Gemini (Nano Banana) | Pixels | SynthID invisible watermark — only Google’s own tools can read it | Documented by the vendor |
| Google Imagen / Gemini (Nano Banana) | IPTC / XMP | DigitalSourceType = trainedAlgorithmicMedia (“Made with Google AI”) | Documented by the vendor |
| Google Imagen / Gemini (Nano Banana) | C2PA manifest | Content Credentials on images from recent Gemini and Pixel versions | Some files only |
| Google Imagen / Gemini (Nano Banana) | Pixels | A small visible sparkle watermark in the corner on free-tier Gemini images | Commonly seen |
How accurate is it? Our measured numbers
We test GPTTrace on labelled image samples and publish the results, including where it does badly. It is tuned to keep false accusations rare, so it misses some AI content rather than flag real work.
image check: AUC 0.938 (cross-validated)
679 labelled samples (399 AI, 280 human), run 2026-10-08. At the “Likely AI” line it caught 64% of AI samples and wrongly flagged 5% of human ones.
| Source | Truth | Samples | Result at “Likely AI” |
|---|---|---|---|
| gemini-nano-banana | AI | 40 | 40% caught |
| midjourney-v6 | AI | 40 | 68% caught |
| midjourney-v5 | AI | 40 | 73% caught |
| flux-dev | AI | 40 | 13% caught |
| flux-schnell | AI | 40 | 48% caught |
| sdxl | AI | 40 | 100% caught |
| gpt-image | AI | 40 | 30% caught |
| kling | AI | 39 | 97% caught |
| leonardo-stablecog | AI | 40 | 98% caught |
| bitmind-imagine-mix | AI | 40 | 80% caught |
| fullsize-photos | Human | 40 | 10% wrongly flagged |
| open-images-photos | Human | 40 | 5% wrongly flagged |
| lfw-faces | Human | 40 | 0% wrongly flagged |
| caltech-objects | Human | 40 | 3% wrongly flagged |
| coco-photos | Human | 40 | 0% wrongly flagged |
| ffhq-faces | Human | 40 | 0% wrongly flagged |
| celeba-faces | Human | 40 | 18% wrongly flagged |
Data sources and method: methodology & accuracy.