Near-Duplicate Image Finder

By Ned Walsch · Last updated:

Drop in a set of images and find which ones are really the same picture — even after cropping, resizing, re-saving, or a light recolor. It works by computing a perceptual hash for each image and grouping the ones whose fingerprints are close. Useful for spotting a photo reused across several sock-puppet accounts, or deduping a messy evidence folder. Everything runs in your browser; the images are never uploaded.

How can I tell if two images are the same photo after cropping or resizing? Compare perceptual fingerprints rather than bytes. Each image is drawn to a canvas in your browser, reduced to greyscale, and run through a discrete cosine transform to produce a 64-bit perceptual hash (pHash); the tool measures the Hamming distance between every pair and groups images within a match sensitivity you set from 0 to 20 (default 10). pHash survives resizing, re-compression, watermarks, small brightness shifts, and modest cropping — the transformations a photo picks up as it is reposted.

Load images
🖼️
Drop images here, or click to browse
The files never leave your device — each is fingerprinted entirely in this tab.
JPG · PNG · WEBP · GIF · BMP — drop 2 or more, up to a few hundred
10

Lower sensitivity = only near-identical images group together. Higher = looser matches (more crops and edits caught, but more false pairs).

Grouping is not proof of a shared origin. A perceptual match means two images look structurally alike — it is a strong lead that they are the same photo, not a certainty. Confirm by eye before drawing conclusions, and remember that two genuinely different photos of the same scene can score as similar, while a heavily edited copy of one image can score as different.

How it works & honest limitations
Where the processing happens

Each image is drawn to a small canvas in your browser, reduced to greyscale, and run through a discrete cosine transform to produce a 64-bit perceptual hash (pHash). The tool then compares every pair of hashes by Hamming distance and groups images that fall within your sensitivity threshold. No pixels ever leave the page — you can verify this in your browser’s network tab.

What it catches well

pHash is robust to the changes that normally defeat a byte-for-byte comparison: resizing, re-compression (a JPEG saved again at a different quality), small color and brightness shifts, watermarks, and modest cropping. These are exactly the transformations an image goes through as it is reposted across platforms, which is why the same profile photo on two accounts still groups together here.

What it misses

It is not magic. A small detail cropped out of a much larger scene, a heavy edit or filter, a collage, or a genuinely different photo of the same subject from another angle will often not match. Mirror-flipped copies only match if you turn on flip checking. Treat a non-match as inconclusive, not as proof the images are unrelated.

Good OSINT uses

Deduplicating a large evidence or scrape folder before review; detecting that several accounts posted the identical image (a classic sock-puppet and coordinated-inauthentic-behavior signal); confirming that a cropped thumbnail came from a particular full image you already hold. Pair it with the reverse image search to then trace any matched image across the public web, and with Face Finder when you need to match a person rather than a whole picture.

Frequently asked questions
How is this different from reverse image search?

Reverse image search looks for a picture across the public web. This tool compares images you already have against each other and groups the ones that are visually the same after cropping, resizing, or re-saving. Use it first to find the real duplicates, then reverse-search any of them online.

What is a perceptual hash?

A short fingerprint computed from an image’s visual structure rather than its exact bytes, so two look-alike images produce similar hashes even when the files differ. This tool uses a DCT-based pHash that is robust to scaling, minor color shifts, and re-compression.

Are my images uploaded?

No. Every image is read and hashed inside your browser on a canvas. Nothing is sent anywhere, so you can compare sensitive images safely.

What can it not detect?

It will not reliably match a heavily edited image, a small detail cropped from a much larger scene, a mirror-flip unless you enable flip checking, or two different photos of the same subject from different angles. It groups look-alikes; it does not prove a shared origin.