●Detection · Edits & tampering

Edited photo detection.

Find out if a real photo was changed: objects added or removed, damage exaggerated, numbers altered or the background swapped.

Multi-model detection<3s per imageZero retention
odometer_reading.jpgscan complete
Scan result
digits re-drawn
noise mismatch
EXIF edited
AI-generated
0.91LIKELIHOOD
Edited
Splice boundary
91
Clone detection
84
Noise inconsistency
79
EXIF and metadata
62
5Edit types checked
0Files retained
<3sPer image
FreeNo account needed

●Platform

Detect it. Explain it. Act on it.

Every scan returns the same three things: a result, the signals that produced it, and a decision you can route on.

odometer_reading.jpgupload · 10:42:08
AI-generated
odometer_reading.jpgintake · 10:42:11
Real
odometer_reading.jpgintake · 10:42:15
AI-generated

01

Detect

Every file is scanned by independent models for images, video and faces, in the web tool, the extension or by API.

Splice boundary
91
Clone detection
84
Noise inconsistency
79
EXIF and metadata
62

4 / 4 signals corroborateCalibrated likelihood

02

Explain

See which signals fired and how strongly. No single model decides; every result comes with its reasons.

Real
AI-generated

Result: AI-generated · 0.92<3s

03

Decide

A plain-language result, Real or AI-generated, with a likelihood and the reasons behind it.

●Coverage

What counts as an edit.

Real photos, changed after capture.

Changes

Objects addedObjects removedEdited numbersBackground swapsAI-enhanced or upscaled

Common targets

Car damageOdometersPrice tagsSerial numbersReceipts in photos

●Method

Where an edit gives itself away.

Each check runs as an independent model. Results corroborate before a result is returned.

01

Splice boundaries

Edges where pasted content meets the original photo.

02

Cloned regions

Duplicated patches used to hide or add objects.

03

Noise patterns

Sensor noise that changes across the frame.

04

Edited numbers

Digits and text that were re-drawn on odometers, tags and labels.

05

Background swaps

A real person placed on a generated or different background.

06

Metadata

Date and software inconsistencies in EXIF.

The pipeline

A detector for each kind of media.

Image, video and voice each have their own detector. Their findings come back as one clear answer you can act on.

Image

Diffusion, GAN and face-swap images from Midjourney, DALL·E, Stable Diffusion, Flux and Firefly.

Live

Video

Face swaps across 32 frames and fully generated video from Runway, Kling, Veo and Pika.

Live

Voice

Cloned and synthesised speech in calls, notes and recordings.

Live

What you get

Each file is marked Real or AI-generated, with the likelihood, signals and audit ID behind it.

One answer

●When it matters

Wherever a photo is evidence.

Damage added, exaggerated or removed.

Odometers and serial numbers altered.

Price tags and product photos changed.

Edited certificates and documents.

Photos edited before they reach an exhibit list.

Objects removed from news photos.

●How it works

Three steps. One result.

01

Upload a photo

JPG, PNG or WebP up to 50 MB.

02

Edit analysis

Splicing, cloning, noise and metadata checks run in parallel.

03

Result with regions

See which parts were changed and why.

●Integration

Three ways in.
Start with the web app.

Scan in the web app or Chrome extension today. The REST API and MCP server for your AI agents are coming soon. Same detectors, same result, same audit trail.

Web app

Available

Upload in the web app. Images, video and voice, up to 50 MB. Full results in seconds.

witness.vision/scan
Page media● Scan
odometer_reading.jpg · AI-generated · 0.91

Chrome extension

Available

Scan any image or video from inside the tools your team already uses. No download, no upload.

portal.example.com
Page media● Scan
odometer_reading.jpg · AI-generated · 0.91

API

Soon

Single scans, batch jobs and webhooks. Structured JSON with result, likelihood, signals and audit ID.

POST /v1/detect
curl -X POST https://witness.vision/api/v1/detect \
  -H "Authorization: Bearer $WITNESS_KEY" \
  -H "Content-Type: application/json" \
  -d '{"media_url": "https://…/odometer_reading.jpg"}'

→ 200 OK · 412ms
result: ai_generated · 0.91

●Why Witness

Built to be checked.

We say what the system does, what it returns and where its limits are.

Specialized models

Detection built per signal

Specialized models per signal, so you get more coverage and fewer false positives than one classifier.

Explainable

Reasons, not just a score

Every result shows the signals behind it and where in the file they fired.

Zero retention

Analysed, then gone

Media is never stored, shared or used for training.

C2PA

Provenance, when it exists

Reads Content Credentials from capture device to current file.

●FAQ

Common questions.

Something else? Talk to our team

Is an edited photo the same as an AI-generated one?

No. An edited photo started as a real capture. Witness reports edits and generation separately.

Will a beauty filter be flagged?

Light filters are not treated as manipulation. Heavy edits and AI enhancement are flagged with a lower severity.

Can it read edited numbers?

It shows where digits were altered. It does not guess the original value.