The similar photos view groups photos that are alike, from loosely (they show the same thing) to strictly (the same shot, the same file). Pick how alike with a slider, review the groups, and share, delete or re-sync what you do not need. Only the last stop can prove a duplicate, which is why the app calls the whole view similar photos.
- Tap the similar photos icon on the count line of the photos screen. The grid then shows the groups one after another, each under its own heading, with a slider above them.
- Refreshing (swipe down, the reload icon, a finished sync) keeps the view, on the same slider stop.
- You leave it with the same icon again, a typed search, or a filter.
The slider has 6 stops, 0 to 5, with the name of the kind under it. Stop 0, Same faces, needs a photo to compare with, so it is offered only in Similar to this photo, which opens there; the similar photos view of the whole library starts at stop 1. Its colour tells where you are: the loosest tone first, turning green by the EXIF stop, and a neutral tone for the exact copy.
Photos that show the same people as the one you started from. Only under a single photo, and worked out on your phone (see Photos like one photo below).
Photos whose first 2 words, as the image model read them, are the same, in any order, taken with the same camera model: photos taken by one person, of one thing, with one device. Photos with no camera in their EXIF are not grouped here.
The first 3 words the same, and the same camera. A group of more than ten photos is left out: at that size three words describe a theme, not a repeat. There is nothing past three: an image model that names two or three things has nothing to say at "first 4".
The whole reading of the photo is the same, word for word (lower case, repeats dropped, sorted), and so is the camera that took it. Your own wording never counts here.
Photos with the same camera details: the same shot, even when one of them was lightly edited.
The strictest stop of all: the fingerprint of the file itself, so only true copies group together. It is worked out on your phone from the original file — Opensolr only ever sees the 1024 px copy.
The stops on the file name and the file size are gone.
The keys are written by Opensolr when a photo is indexed (photos_ingest on api.opensolr.com), from the image model's words and the photo's EXIF only — never from your tags or your own wording, so editing a photo does not move it between groups.
- Words: the image model's first 2 and first 3 words, lower-cased, de-duplicated and sorted, then hashed with md5. The key for three exists only on a photo that really has three.
- Description: the image model's whole reading, lower-cased, split on commas, repeats dropped, sorted, together with the camera model, hashed with md5.
- EXIF: date taken, camera make, camera model, lens, ISO, exposure, f-number, focal length, GPS position and altitude. File size, pixel size, orientation and modification time are left out on purpose, so a simple edit (a crop, a rotation, a filter) keeps the same key.
The keys live in the schema's *_hash dynamic field: indexed, not stored, with docValues. An index still on an older configuration has no keys yet; the app then says that finding similar photos needs the index reset for this version (see sync).
The view of the whole library answers inside what is on screen: what you typed and the filters you have on narrow the groups, so it tells you about this set of results rather than about the whole library. Each stop is one request to the phone's index: one request that asks the index which key values are shared by two photos or more, and which photos hold them. It is sent 300 ms after the slider settles, so dragging across the stops does not send a request for each one. The answer is held in the phone's search cache, so going back to a stop you have already seen costs nothing. Nothing is sent to Opensolr's AI services.
Two things keep a view of photos from becoming a view of your whole library:
- A key held by more than 50 photos is left out. At that size the key is describing a subject, not a set of copies.
- Groups are never joined. Each group is what the index found, and a photo is shown in the first group it belongs to. Joining groups that share a photo chains them together — this one with that one, that one with a third — until one group holds nearly everything you own.
The photos of the groups are then fetched a page at a time, one request per page: up to twenty groups and at most three hundred photos, with the rest following as you scroll.
Select 1 of each group, under the slider, ticks one photo of every group — the last of each — and leaves the first unticked, so every group keeps at least one photo. It only selects; review the ticks, change them if you like, then use the selection bar:
- Share the ticked photos.
- Delete them, after the app's own warning and, on Android 11 and newer, the system confirmation (see searching).
- Re-sync N to have them read again by Opensolr.
Similar photos, in the row of actions under a full-screen photo (tap a photo to open it), opens the same slider, anchored to that photo instead of to the whole index: every stop asks what else carries this photo's key for that kind. It opens at stop 0, Same faces, to loosen or tighten from there. What you typed and the filters you had on are dropped when it opens: the comparison is about the photo alone.
- The photo it started from is ringed in the grid and marked This one, so which photo the others are compared with is never a guess.
- Back to search, above the slider, leaves the view for the plain photo grid. Getting back to a photo's details is a tap on it and a swipe up, as everywhere else.
- The line above the grid counts them: N like IMG_1234.jpg.
- Select 1 of each group is not shown here at all: there is one group, and nothing to thin out.
Two requests per stop, both served from the phone's search cache when they were asked for recently: this photo's key for that stop, then every photo carrying it.
Same faces, the first stop under a photo, asks a different question: which photos show the same people. A face with a name stands for the person, so every photo that names them, or has a face that scores as them against that person's own faces, is found — not only the photos closest to that one face. A face nobody has named yet is looked for as itself. Every person of the photo must be in a result, so a photo of two people finds the photos of both together. It is answered from the copy on the phone, with no request and no limit on how many, and comes with naming faces.