Is this image AI?
“Is this picture AI?” and “AI or not?” are the same question. The useful answer is a short chain of checks on the file you have, not a glance at the picture. Start with the earliest copy. Stop when you can say what that copy actually supports.
Run it on the file in front of you
The box reads source clues in the browser and, when needed and available, can request a general model score. It does not verify signatures, it does not decode SynthID, and it does not name Midjourney, GPT Image, Gemini, Flux or Grok. JPEG, PNG or WebP, up to 10 MB. A post URL is not an image.
The homepage explains the score bands. This page is the order to follow before you treat any band as an answer.
Drop an image here
or choose a file · paste with ⌘V / Ctrl V
Quick checklist
- Save the earliest file you were sent before opening it in an editor.
- Note whether it is an original export, a re-save, or a screenshot.
- Read embedded text locally. Do not treat that text as a signature.
- If someone named a generator, open that generator’s own checker on the original file.
- If the file may carry Content Credentials, use a C2PA validator. This site does not verify signatures.
- Use a general model score only as one more reading, and keep an inconclusive result inconclusive.
- Look at hands, text and lighting last. They are reasons to continue, not a conclusion.
Work down the file, not the caption
1. Name the copy you have
An original download, a chat attachment, and a photo of a screen are three files. Write down which one you are holding. Our metadata experiment found camera make, model, capture time, software and an XMP container in eight photographic originals, and in none of the browser screenshots of those same photos. It did not upload anything to a social network.
2. Read what the file still says
If it is a PNG from a local workflow, use the PNG text reader or the Stable Diffusion page. A parameters or workflow field is a stored claim. Camera EXIF is also a stored claim. Both can be copied. The how-to-tell guide puts this step in a longer order.
3. Use the vendor’s checker when the claim names one
Midjourney tells you to upload the original to midjourney.com/verify. OpenAI’s checker for supported images is openai.com/verify, which looks for Content Credentials and a SynthID watermark. Google says Gemini’s generated images include SynthID; this site cannot read it, so a Gemini or Imagen file belongs on the Gemini page only as context. Hosted Flux files are a C2PA question, described on the Flux page. Grok’s documented easy clue is a visible watermark on website and app images, which a crop removes.
4. Separate a signed credential from ordinary text
Follow how to check Content Credentials if you are going to rely on C2PA. This site notices source text. It does not verify signatures, asset bindings or certificate trust. A missing manifest is common for cameras and for generators.
5. Then, and only then, read a general score
On this site a completed pixel-model score at or below 0.35 is displayed as likely camera-origin, and at or above 0.70 as likely AI-generated. The band between them is inconclusive. Those are display thresholds from the method page, not a calibrated probability and not a published accuracy. Two products can disagree. Why detectors disagree is the longer note. Reverse image search answers a different question: where a similar picture has already been published.
Examples of signals, not of pictures
These are the kinds of evidence a file can still hold. They are not sample generations, and none of them is a fingerprint you can see in the pixels.
A PNG that still names its settings
Automatic1111 writes a parameters chunk. ComfyUI can write prompt and workflow JSON. The Stable Diffusion page reads those chunks in the browser. The text can say “flux” or a checkpoint hash and still have been edited. A JPEG of the same render usually has none of it.
A Content Credential that still needs a validator
OpenAI documents C2PA on supported ChatGPT and API images. Black Forest Labs documents it on hosted Flux outputs it controls. Seeing the letters “c2pa” in a header is not a validation. A validator has to check the signature, the binding to these pixels, and the certificate.
A camera Make and Model
Canon, Apple, or another maker in EXIF is a clue that a camera file was involved at some point. Editors copy headers. A face-swap can keep the background photo’s container. Leftover EXIF does not prove the whole frame is untouched.
A Midjourney tag you cannot read here
Midjourney says every image it delivers has a hidden ID tag, and that midjourney.com/verify checks it. Their verify page also says a positive result is not proof, because a marker can be copied, and a missing tag does not mean they did not make the file. This site does not send the file there.
Nothing embedded at all
Screenshots and many re-encodes are only pixels. You can still ask for a general score. If the model cannot separate the classes, the honest label is inconclusive. If the model does not finish, the label is unavailable. Neither label means the picture is real.
If a generator was named
Open the page that matches the claim. Each one says what that tool writes, what a screenshot removes, and which official check exists. The upload on those pages is the same general checker as the one above.
- Midjourney — hidden ID tag and their verifier. Version questions go to is this Midjourney v7?
- GPT Image — Content Credentials and SynthID on supported OpenAI images. Older exports: DALL·E.
- Gemini and Imagen — SynthID on Gemini images; Imagen is the legacy name on the same page.
- Flux — hosted credentials, including 1.1 Pro, versus a local workflow. Flux.2 is separate.
- Stable Diffusion — PNG text, not a vendor signature.
- Grok Imagine — a visible app watermark, not a trusted manifest we can verify.
Questions people ask in this wording
Is “is this picture AI” a different check from “is this image AI”?
No. People use picture, image, photo and “AI or not” for the same job: decide what this file is. The file type matters more than the wording. A screenshot, a download and an original export can show one scene and carry different clues.
What should I do with a screenshot?
You can still run a check. Expect the embedded clues to be gone. A browser screenshot in our metadata experiment kept none of the camera fields that were in the photographic originals. That was a local capture, not a measurement of any social app. A missing field is not a camera proof.
Which signal should I trust first?
The original file, then a vendor checker that matches the claimed generator, then a signed Content Credential validated by a C2PA tool. A general model score comes after those, because it does not name the product. Visual habits come last. They overlap photographs and other generators.
Can the answer be a plain yes or no?
Sometimes the file supports a narrow claim: this PNG still contains a workflow, or OpenAI’s verifier reports an OpenAI signal, or Midjourney’s verifier reports their tag. A general score in the middle band is inconclusive. An unavailable model check is not a no. Neither one should be rewritten as a yes.