Duplicate Photo Finder — No Install, No Upload, No Windows Required
Choose a batch of photos to compare locally. Exact files compares file sizes and SHA-256 checksums; Near and Loose use visual fingerprints to suggest photos for review. All photos start kept, including files that cannot be decoded. Uncheck only copies you have reviewed, then export the selected originals as a ZIP. Your original files are never deleted or modified.
Private by design. Photos are hashed, compared, and zipped entirely in your browser — nothing is uploaded to a server.
How to find duplicate photos on your computer
- Choose your photos. Drop image files or click to browse. The scan processes small chunks with progress feedback; capacity depends on browser support and device memory.
- Choose a comparison. Exact files uses size plus SHA-256 checksum. Near and Loose suggest similar-looking photos using perceptual hashing; these suggestions can be wrong.
- Review every exclusion. All photos are checked initially. Compare the previews, dimensions and file sizes; uncheck only copies you do not want in the ZIP. Changing sensitivity resets all files to kept.
- Download the reviewed set. Download kept as ZIP includes selected originals, including unreadable images unless you explicitly exclude them. Numeric filename prefixes preserve same-named files. Nothing is deleted from your device.
Use Cases
Frequently Asked Questions
Are my photos uploaded to a server?
No. Hashing, comparison, and ZIP packaging all run in your browser. Your photos never leave your device.
Do I have to download or install anything?
No installation is required. Use a modern browser with image decoding and Web Crypto support. Browser support and memory determine which images and batch sizes work.
How is this different from the desktop duplicate photo finders?
Three ways. Scope: a desktop scanner indexes whole drives, so it needs broad filesystem access; this only ever sees the files you drag onto the page. Privacy: nothing is uploaded and nothing is written outside your Downloads folder. Cost: there is no trial, no unlock and no licence. The trade-off is honest — a desktop app can scan an entire disk unattended and can delete files for you, and a web page can do neither.
How does it detect duplicates that aren’t byte-identical?
Each image is downscaled to a tiny grayscale grid and converted to a 64-bit perceptual "dHash" fingerprint. A resized or re-compressed copy of the same photo produces a nearly identical fingerprint, so the two are grouped even though the files differ.
What’s the difference between Exact files, Near, and Loose?
Exact files compares full-file SHA-256 checksums and sizes, not visual fingerprints. Near allows 6 differing dHash bits; Loose allows 10. Visual grouping can merge different photos, and may miss edited or cropped copies. Review before excluding anything.
How many photos can it handle?
Processing is chunked, but image decoding, pairwise comparison and ZIP creation still use device memory and CPU. Start with a smaller batch if a large collection is slow or fails.
Which photo does it keep by default?
Every photo. File size does not prove quality or equivalence. Only photos you explicitly uncheck are excluded from the ZIP; unreadable files remain kept by default.
Will it match two different photos of the same scene?
It can. Visual hashes discard color and fine detail, so distinct photos, screenshots or flat-color images can share a fingerprint. Near and Loose are review aids, not proof that two files are the same.
How perceptual hashing finds "the same photo" in different files
A copied file can retain identical bytes; re-compression, resizing and metadata edits can change them. Exact files uses SHA-256 plus file size. Near/Loose use dHash: brightness changes in a 9×8 grayscale thumbnail become 64 bits. That compression of information can create false matches, even when all 64 bits match.
| Sensitivity | Max differing bits | What it catches | False-match risk |
|---|---|---|---|
| Exact files | Full-file SHA-256 + size | Files with matching bytes, including metadata | Cryptographic checksum, not visual similarity |
| Near | 6 of 64 | Candidates with similar brightness patterns | False matches and missed copies possible |
| Loose | 10 of 64 | A broader set of visual candidates | More candidates; manual review required |
- dHash is robust to scaling and compression because both preserve large-scale brightness gradients — but it is not rotation-invariant, so a rotated copy of a photo will not match its original.
- Grouping uses transitive matching: if A matches B and B matches C, all three land in one group even if A and C are slightly further apart. That mirrors how duplicate chains actually form (original → export → re-share).
Related tools
More free, in-browser tools from the Image Tools set — every one runs locally, with no sign-up and no upload.