What the Smart Cleanup scan looks for in your photos, DeDup 1.5.3 on Android
Smart Cleanup in DeDup 1.5.3 sorts your most recent photos into five named groups, such as screenshots and receipts. It doesn't look for duplicates. You open a group, tick the photos you want gone, and delete them. The start screen calls it "AI Image Cleanup"; this post says what is actually behind that name.
What it scans
Images only, not videos. The scan reads the 1,000 images most recently added to your phone, newest first. Older images aren't looked at.
The five groups
- Screenshots
- Memes & Graphics
- Receipts & Docs
- Blurry Shots
- Poor Exposure
How a photo gets sorted
First, an ML Kit image labeler describes each photo in words, keeping labels at a 0.6 confidence level or higher. DeDup then checks those labels in order, and the first match wins:
- A label containing "screenshot", "user interface", "software" or "web page" puts the photo in Screenshots.
- "meme", "joke", "cartoon", "illustration", "poster" or "comics" puts it in Memes & Graphics.
- "text", "paper", "document", "receipt", "invoice" or "bill" puts it in Receipts & Docs.
The match is on part of the word, so a photo of a sign that gets a "text" label would land in Receipts & Docs even though it isn't a receipt.
If no label matched, DeDup looks at the pixels of a shrunken copy of the photo. Average brightness below 40 or above 225 (on a 0 to 255 scale) means Poor Exposure. Otherwise, a sharpness score below 100 means Blurry Shots. As a last check, a label containing "blur" or "out of focus" also means Blurry Shots.
Does it need Gemini Nano?
No. The sorting above doesn't use it. After results appear, DeDup fills in a short note for some photos, shown as a sparkle badge that opens an "AI Insight" dialog. The note is the brightness or sharpness reading when there is one. Otherwise it comes from simple rules about the file name, such as a name containing "screenshot".
The code does contain a Gemini Nano check, but it only runs on API level 37 and newer, and even there the code only writes a log line before using the file-name rules. So the on-device Gemini model doesn't change anything in 1.5.3, and nothing breaks when it's missing.
Selecting and deleting
Groups start collapsed and nothing is ticked. Open a group to see thumbnails. Each group has Select All and Deselect All. Tap Delete Selected when you're ready. Guests get a "Sign in required" dialog instead.
- On Android 11 and newer, DeDup first checks that each photo still exists, then asks Android for a system delete request. The system prompt appears, and if you decline, nothing is deleted.
- On older versions, this screen calls ContentResolver delete directly. If that call is refused, the photo stays in the list.
- If the system request can't be created for another reason, the code falls back to a direct delete.
Deletion is permanent. DeDup has a Trash screen, but in 1.5.3 nothing in the scanners sends files to it.
Scope of this post
Checked against: DeDup 1.5.3 source code (Android).
Not tested on a device: how accurate the groups are on real photos, how long scanning 1,000 images takes, and what the system prompt looks like on any Android version. Not verified: whether the ML Kit labeler's model ships inside the app or is downloaded.