induwara.lk
induwara.lkAI · Image provenance

AI Image Detector — Is This Photo AI-Generated?

Drop an image to check it for AI-generation markers — C2PA Content Credentials, IPTC DigitalSourceType, and known generator metadata. It reads provenance, not pixels, and runs entirely in your browser, so the file never leaves your device. A missing marker is not proof an image is human-made.

By Induwara AshinsanaUpdated Jun 7, 2026
Check an image for AI markers
Files stay on your device

Everything runs in your browser. The image is never uploaded to any server.

What this does

Drop a JPG, PNG, or WebP above and this tool reads its provenance metadata — the standardised markers that tools like Adobe Firefly, DALL·E, and Midjourney embed to label AI-generated images: IPTC DigitalSourceType, C2PA Content Credentials, and generator signatures. You get a clear verdict and the exact evidence, each linked to its standard. It checks metadata, not pixels — so a missing marker is not proof an image is human-made. Nothing is uploaded.

How it works

This tool answers one question — does an image carry a standardised marker that says it was made by AI? — by reading the file's embedded metadata. It runs no neural network and looks at no pixels. Pixel-level "AI or not" classifiers are probabilistic and cannot be cited to any authority; provenance markers, when present, are unambiguous and traceable to a published standard. The deterministic steps are:

  1. Sniff the container. The format is identified by magic bytes — not the filename — so a renamed file still reads correctly: FF D8 FF for JPEG, 89 50 4E 47 for PNG, and a RIFF…WEBP header for WebP.
  2. Extract the fields. EXIF, XMP, and IPTC are parsed with the exifr library. PNG text chunks (tEXt/iTXt/zTXt) are walked by a byte-level scanner, and a JUMBF signature scan detects a C2PA manifest anywhere in the stream.
  3. Match against the provenance tables. Three rules, in order of authority:
    • IPTC DigitalSourceType in trainedAlgorithmicMedia, compositeWithTrainedAlgorithmicMedia, or algorithmicMedia → AI, high confidence.
    • A generator signature — C2PA claim_generator, XMP CreatorTool, EXIF Software, or a Stable Diffusion PNG parameters block — matching a known tool (Firefly, DALL·E, Midjourney, Stable Diffusion, and others) → AI, high confidence.
    • A valid C2PA manifest whose source type is a real capture → provenance present, not AI.
  4. Derive the verdict. The highest-confidence match wins; every piece of evidence is listed as Standard → Field → Valuewith a link to its citing standard. When nothing matches, the verdict is "no markers found" alongside the explicit caveat that this is not proof of human origin.

The mapping tables are a maintenance item, last cross-checked against the IPTC and C2PA specifications on 2026-06-07. The three worked examples below are reconciled by a self-test in the source module so the matching rules cannot silently drift.

Worked examples

Adobe Firefly JPEG

AI provenance detected

  1. Format sniffed by magic bytes: FF D8 FF → JPEG.
  2. C2PA manifest found in an APP11/JUMBF segment; claim_generator = “Adobe Firefly 1.0”.
  3. XMP packet carries IPTC DigitalSourceType = trainedAlgorithmicMedia.
  4. Rule 3 fires twice: IPTC authoritative marker + generator signature.
  5. Highest signal = AI marker → verdict AI (high confidence), 2 evidence rows.

Stable Diffusion PNG

AI provenance detected

  1. Format sniffed: 89 50 4E 47 → PNG. No EXIF, no C2PA.
  2. PNG tEXt chunk with keyword "parameters" found.
  3. Text contains Steps: 30, Sampler: DPM++ 2M, CFG scale: 7, Model: sd_xl_base.
  4. Two characteristic tokens present → recognised as a generation-parameters block.
  5. One generator-signature evidence row → verdict AI (high confidence).

Plain phone photo

No AI provenance markers found

  1. EXIF Make = samsung, Model = SM-S911B, Software = S911BXXU…
  2. No IPTC DigitalSourceType, no C2PA manifest, no generator string.
  3. No rule in the matching step fires → 0 AI markers.
  4. Verdict: none. Camera EXIF shown for context.
  5. Caveat surfaced: metadata may have been stripped, so this is not proof of human origin.

Frequently asked questions

Sources & references

Related tools

Rate this tool
Be the first to rate

Comments & feedback

Spotted a bug or want an improvement? Tell us — our team reviews every comment, and good ideas get built. Comments are public and anonymous.

Found a generator we don't recognise yet, or a file that reads wrong?

Email me at [email protected] — most fixes ship within 24 hours.