Image Comparison — what the percent score means and how to use it
Drop two photos into the box at the top and the tool returns a single percent — how much of what is in one photo is also in the other. The page below is for people who actually need to act on that number: photographers culling near-duplicates, QA testers checking a screenshot against last week's, fraud teams hunting recycled damage photos. We cover what the number means at each level, where it lies to you, and the workflows we use ourselves.
What the percent really means
The tool runs both photos through MobileNet, a small vision model that turns each image into 1,024 numbers standing for what is in it — "dog", "wooden floor", "outdoor light". The two lists of numbers are compared with a measure called cosine similarity. The result is rescaled to a 0–100 percent. It is a measure of "how much the same stuff is in both photos", not "how identical the pixels are".
| Score | What you are looking at | Useful for |
|---|---|---|
| 95–100% | The same photo. Crop, resize, slight colour shift, light JPEG compression. | Finding duplicates in a folder, spotting reposts |
| 85–95% | Two shots of the same scene seconds apart — the same room, same subject, slight pose change. | Culling burst shots; spotting "before/after" edits |
| 65–85% | Same subject, different angle or lighting. A portrait of the same person from two sessions. | Face matching when you already have a candidate |
| Below 65% | Different subjects, even if the colour palette is similar. | A negative match — these are not the same photo |
One worked example: two identical PNG screenshots of the same web page, taken on the same computer 10 seconds apart, will sometimes score around 96–98% rather than a clean 100%. That gap is anti-aliasing — the way the operating system renders text changes by a fraction of a pixel between captures. So even "the exact same thing" almost never reads 100% unless the file is byte-identical.
Three workflows worth knowing
1. Culling burst shots in a photo library
You have ten near-identical photos from a single burst, and you want to keep one. Pair them up and compare. Anything 95% or higher is safe to delete the second copy. 85–95% is two slightly different moments — keep both if you want the option to pick the better one later. Lightroom's "Stacks" and Photos.app's "Hide Duplicates" use a similar score under the hood.
2. Spotting a Photoshopped repost
Someone reposts your photo with a different filter applied, or with a logo cropped out, or with the background swapped. A side-by-side score in the 70–90% range is the giveaway — the subject is the same but something has changed. If you suspect the change is local (a face has been swapped, an object has been removed), zoom into the suspicious region and compare again with just the cropped piece — the score will fall further than you expect if the local edit is real.
3. Visual regression testing during a website redesign
Designers and QA testers compare a screenshot of today's build with last week's to catch accidental layout drift. The comparison here is rougher than a tool like Percy or Chromatic — it gives you a single number, not a pixel-diff overlay. But it is good as a smoke check before you do the full diff: anything below 90% deserves a look.
What the percent will not catch
- ⚠Small but important changes. A 10-pixel watermark added to the corner of a 4000×3000 photo will move the score by less than 1%. If you are looking for small added elements, do a side-by-side visual scan instead.
- ⚠Colour-only edits. A photo and the same photo with a sepia filter often score 85%+. The model is mostly looking at what is in the photo, not its colour palette.
- ⚠Two photos of the same kind of thing. Two different golden retrievers in a park will score around 75–88% because the model sees "golden retriever in grass" in both. The score is similarity of content, not identity.
Privacy note — where the comparison runs
Both photos are first uploaded to our hosting (Vercel Blob) so the browser can fetch them as buffers. The MobileNet model and the actual similarity comparison then run inside your browser tab — no comparison is done on our server. The first time you use the tool, the model file (about 17MB) downloads and is cached, so later comparisons are instant. You can confirm this in your browser's developer tools: after the model loads, the comparison itself produces no further network calls. Use the Purge button to delete the two uploads from our storage when you are done.
Frequently asked questions
How is this different from reverse image search?
Reverse image search asks "where else on the web is this photo?". Image comparison asks "how similar are these two specific photos I already have?". Use reverse search when you have one photo and want to find copies. Use comparison when you have two photos in front of you and want a similarity number.
Can I compare images of different sizes?
Yes. The model squashes everything to 224×224 internally, so a thumbnail and a 4K original of the same photo will still score near 100%. Aspect ratio differences (a wide crop vs a square crop of the same photo) will drop the score a few points.
Why are two identical PNG screenshots not 100%?
Anti-aliasing. Even on the same machine, the way the OS renders text and edges can shift by a sub-pixel between two screenshots. That micro-difference moves the score off 100. If you need a guaranteed-identical check, compare the file hashes directly.
What file types?
JPEG, PNG and WebP, up to 10MB each. You can mix formats — a JPEG against a PNG is fine.
Why we ship a browser-side model. For comparison, we don't need the photos to leave your computer. Running MobileNet locally means your originals stay private, the tool works on a plane, and there is no per-call cost we have to pass on. The trade-off is the 17MB one-time download.
Deep dive on the similarity model • Tell us what threshold worked for you

