Skip to content
checkaifree

Research · exploratory batch · protocol v1

What survives screenshots and recompression?

We compared 8 photographic originals with a specified JPEG export and a browser screenshot of each: 24 files, 8 independent samples.

Camera fields were present in all eight originals and absent from both transformed versions. The JPEG export deliberately omitted metadata. This describes our settings; it is not an Instagram result or an AI-detection accuracy claim.

A screenshot can look like the original while lacking its source fields. Missing fields do not make an image AI-generated or authentic.

Method and actual sample

Eight separate photographs by Thomas Bresson, licensed CC BY 2.0, were selected from Wikimedia Commons. They are a convenience sample from one photographer: 8 photographs, 0 generated images. The longer-term target of 20 mixed-source originals has not been reached.

We alphabetized the first ten results of a Commons file search for “filetype:bitmap Thomas Bresson” and excluded two originals larger than 10 MiB before extracting fields. Source descriptions and camera categories document the photographic context; metadata alone cannot authenticate the scene.

  1. Keep the downloaded original unchanged and record its SHA-256 hash.
  2. Apply EXIF orientation to pixels, convert to RGB, resize the longest side to at most 1536 with LANCZOS, then export JPEG with Pillow 12.3.0 at quality 85 and subsampling 2. Do not pass metadata to the encoder.
  3. Display the original inside an 800 × 600 white viewport with contain sizing. Capture PNG at device scale 1 using Chromium 152.0.7977.54. This is a local browser screenshot.

Pillow independently read field presence, including the EXIF sub-IFD. Separately, the site’s header reader inspected its normal first 64 KiB. We recorded absence and errors rather than filling missing fields. There were 0 reference parse errors.

A repeat run using an isolated Python environment with the same pinned Pillow version reproduced all 24 field-presence and product-signal observations and the aggregate counts. All eight original hashes matched. One screenshot PNG differed in bytes between runs without changing its observed fields; browser captures are not promised to be byte-identical. Original files, source evidence and run records are retained outside the source repository. Public sources below allow a reader to retrieve and hash-check the same originals.

Independent field reader

Original counts use N = 8. Retention denominators include only originals that contained that field. “Not measured” means the batch contained no original with that field.

Embedded fields in original files and retention after each transformation
FieldOriginalsJPEG export retainedScreenshot retained
Camera make8/80/80/8
Camera model8/80/80/8
Capture time8/80/80/8
Editing software8/80/80/8
Generation text0/8Not measuredNot measured
XMP container8/80/80/8

An XMP container is not necessarily a Content Credentials manifest. Neither its presence nor any source text here establishes a valid signature. We did not verify C2PA signatures.

What the site observed

  • Original: a source clue in 8/8 files.
  • JPEG export: a source clue in 0/8 files.
  • Screenshot: a source clue in 0/8 files.

These counts describe the header reader’s heuristic source clues, separately from the reference fields. They do not measure correct AI classifications. We did not send this batch for paid pixel-model checks.

A dragonfly in flight, photographed by Thomas Bresson; representative browser screenshot of sample P01
P01: a representative browser screenshot. Camera make/model, capture time, software and XMP were present in its original; none remained in its JPEG export or screenshot. Photograph by Thomas Bresson, original and attribution, CC BY 2.0. Modified here by browser rendering and screenshot capture.

Limits and next step

  • Convenience sample from one photographer; eight photographic files and no generated-image stratum.
  • Re-encoding deliberately omits metadata. Results describe these exact settings, not every export or social platform.
  • Field retention is not AI-detection accuracy or proof of origin. Content Credentials signatures are not verified.
  • A product source clue is a heuristic observation in the first 64 KiB, separate from the independent reference reader.

We need a broader, independently sourced photographic and generated-image batch before generalizing. We have not measured A1111/ComfyUI parameter retention here or performed any social-platform upload/download experiment.

For an actual image, obtain the original when possible, read available clues, and keep context alongside any model score. Check an image, read the method and limitations, or follow the Instagram file checklist.

Source register and hashes

All eight originals: Thomas Bresson, CC BY 2.0. Links identify the source and license; hashes identify the downloaded bytes. Embedded personal or location values are not reproduced.