How DeDup 1.5.3 on Android searches photos by album, app or date
The photo search in DeDup 1.5.3 on Android carries the description "AI Search", and its own prompt reads "Search by album, app, or date". The second wording is the accurate one. It matches your words against the folder, app and month a photo came from. It doesn't look at what's in the picture.
Where it is
Open the search from the dashboard. A sheet appears with a search box and six suggestion chips: Screenshots, WhatsApp, Camera, Downloads, Telegram and Instagram. Searching starts after you pause typing for about 400 milliseconds.
What gets indexed
At app start, DeDup queues a background job that runs only while the phone is idle. For each image it reads four things from the system media store: file name, album (folder) name, folder path and date taken. From the album, path and date it builds a short line of text such as "whatsapp images, march 2024". That line, not the picture, is what gets embedded.
The embedding comes from a text model, universal sentence encoder, that's bundled inside the app. It runs on the CPU through MediaPipe, so nothing is downloaded for it. DeDup stores each image's address, file name, album name, the description line, the numbers the model produced and the time it was indexed. No pixels or thumbnails are stored. Later runs index only new images and remove entries for images no longer on the phone. The run is skipped if photo access hasn't been granted. The database is excluded from cloud backup and device transfer.
How a search works
- Your words are turned into numbers with the same text model.
- Each stored line is scored against them by cosine similarity.
- Scores of 0.25 or higher are kept, best first, up to 200 results.
If the index is still empty (indexing hasn't finished yet) or the model can't load, DeDup falls back to a plain keyword match against file name, album and folder path. Common words are dropped ("find", "photos") and a few are widened: "screen" also looks for "screenshot", and "social" also looks for Instagram, Facebook, Twitter, Snapchat and TikTok. Fallback results are newest first, up to 500.
In practice, a query like "beach sunset" can only match if a beach or sunset shows up in a folder name, path or file name. "January 2024" and "WhatsApp" are what this is built for.
On the phone, and what's sent
The search and indexing classes contain no network code, so the query is compared on the phone. The app's analytics log the query's length and the number of matches, and a code comment says the query text itself stays on the device. DeDup does send crash reports, usage analytics and any feedback text you type through Firebase.
Deleting from the results
Each result has a trash-can icon. Guest users see a "Sign in to delete" dialog. For signed-in users on Android 11 and newer, DeDup asks the system for a delete request, and the system shows its own confirmation. Older versions try a direct delete. Deletion is permanent: DeDup's Trash screen exists, but nothing in the scanners sends files to it in 1.5.3.
Scope of this post
Checked against: DeDup 1.5.3 source code (Android).
Not tested on a device: how long indexing takes, when the idle condition is met on your phone, how relevant results are for any query, and the system delete prompt. Nothing here was run.