AIPhotos
An iOS-style photo gallery for Android that understands your photos with on-device AI, without sending anything anywhere.
- Year
- 2026
- Role
- Solo
- Status
- In progress
- Context
- KORE Tech (my startup)

Results
0
network permissions
No Internet access, accounts, ads or analytics
512
numbers per face signature
GhostFaceNet, on-device
A native Android gallery with an iPhone Photos-style experience: Years, Months and All views with a pinch-to-zoom grid, a viewer with live video scrubbing and frame saving, and Ultra HDR on screens that support it. It started from Google’s open-source AI Edge Gallery and became its own app.
Smart Search runs EmbeddingGemma fully on the device through LiteRT-LM: search in plain language, find similar photos, search with a picture, and find moments inside videos. Details search (place, date, people, text) works even without the model.
ML Kit reads the text in photos and detects faces, and GhostFaceNet (converted to TFLite) turns each face into a 512-number signature, so people are grouped, named and merged automatically. Clean Up finds duplicates, near-identical shots, blurry, dark or blank photos, old screenshots and large files.
The app has no Internet permission at all: no accounts, ads, analytics or cloud. It works and I use it every day. It isn’t on the Play Store yet.
README · synced from muhammadrehanrasool.github.ioOpen original ↗
A taste of iOS, with AI features.
The beautiful, private photo gallery for Android that understands your photos without ever sending them anywhere.
100% offline · No accounts · No ads · No tracking · No Internet permission
📱 See AIPhotos in action
Your phone holds years of memories, receipts, screenshots, trips and the people you love. Most galleries either show them as an endless grid or ask you to upload everything to the cloud before they get "smart".
AIPhotos does both jobs on the phone itself. It gives you the clean, fluid feel of iOS Photos, with frosted-glass bars, buttery pinch-to-zoom grids and an iPhone-style viewer. On top of that it adds on-device intelligence: search by describing a photo, find text inside pictures, recognise faces, sort photos into your own Smart Albums and clean up clutter. All of it runs on your phone. AIPhotos can't upload your photos even if it wanted to, because it doesn't have the Internet permission.
✨ Highlights
| 🔎 Search like you think | "dog on the beach", "receipts from last week", "night videos in london 2024", across photos and videos |
| 📝 Text in Photos | Find any screenshot, note, receipt or sign by the words written in it |
| 👤 People | Faces grouped into people automatically; name them, find them in search, and tune the grouping with presets and sliders |
| 🗂️ Smart Albums | Describe an album in words ("my car", "receipts"), or save any search, and matching photos gather there, new ones included |
| 🧹 Clean Up | Duplicates, burst retakes, blurry and blank shots, old screenshots, huge files, each reviewable full screen with adjustable thresholds. Favorites are never touched |
| 🎬 Find Moments | Describe a scene and jump to the exact second inside a long video |
| 🗺️ Places map | Every photo with a location, pinned on a world map that works fully offline |
| 📲 Made for your phone | AIPhotos checks what your phone can run and only offers what works well on it |
| 🔒 Truly private | Everything stays on the phone. No account, no cloud, no analytics, no network |
📱 Feature tour
A library that feels like home
- Years, Months and All views. Your timeline is grouped by month with headers that follow you as you scroll.
- Pinch the grid live between 3, 5 and 7 columns. Keep pinching to zoom out to Months, then Years, and spread your fingers to dive back in. Tap a month and you land on its first photo.
- Fast scroller with a month bubble, for jumping through thousands of photos in a second.
- Select by dragging: long-press and slide across photos to select a range. Long-press a selection to drag it into another app (split screen, freeform windows, external displays).
An iPhone-style viewer
- Swipe between photos, pinch or double-tap to zoom, drag down to close.
- iOS layout: the top pill shows where the photo was taken ("Herne Bay") with the full date and time. At the bottom are Share in a circle, a capsule with ♥, Info and Find Similar (Find Moments for videos), and Delete in a circle. In Recently Deleted, the ends become Recover and Delete Forever.
- Videos zoom too: pinch in while a video plays, or double-tap to switch between fit and fill the screen, just like iOS.
- Live video scrubbing: the picture follows your finger frame by frame. You can save any frame as a photo in one tap.
- Ultra HDR photos are shown in HDR on supported screens.
- You land where you left off. Swipe through fifty photos, close the viewer, and the grid is scrolled to the exact photo you stopped on.
- An Info sheet with camera, lens, exposure, size, place and folder, plus any text found in the photo with a Copy button.
Search that understands you
AIPhotos has two search modes, and you can switch between them at any time.
- Details is instant, needs no AI, and works the moment you install the app. It searches by:
- Place: "paris", "pakistan". Places are worked out offline from a world city list (a small one-time download, see Getting started).
- Date: "march 2024", "last week", "yesterday", "weekend".
- Time of day: "night", "sunset", "morning".
- Type: "videos", "screenshots", "favorites", "panoramas", "4k", "png".
- Length: "over 2 min", "under 10 sec".
- People you've named.
- Words written in the photo (see Text in Photos below).
Terms combine, so "night videos in london 2024" just works. With an empty search box, the Explore page shows your places, times of day and media types. The keyboard opens as soon as you switch to Search, and the search bar sits right above it. - AI (optional Smart Search) finds photos from a plain description: "kids playing in the snow", "a red car", "birthday cake". You can also use Find Similar Photos, search with a picture, or Live Search, where you point the camera at something and see matching photos instantly. Any search (typed words, a picked photo, or the camera's See all) can be saved as a Smart Album in one tap.
🎞️ Videos in AI search
Turn on Search Videos Too in Settings → Smart Search and AI search finds videos as well as photos. Only the video's keyframes are read, decoded at a small size, so even long or 4K videos are quick. There are two ways to index them: - Collage (default, lighter): up to 6 keyframes from start to end are combined into one picture, so each video is analyzed once. - Accurate (Advanced settings): each keyframe is analyzed on its own, up to 6 per video. It finds smaller things, shows the time that matched, and opens the video at that moment.
📝 Text in Photos
AIPhotos reads the words in your photos, on the phone, and makes them searchable. - Type a shop name and get the receipt. Type a Wi-Fi password, a flight number or a quote and get the screenshot. - In AI search, photos containing your words are moved up: to the very top when the words are specific (a brand, a name), and given a gentle lift when they're common. - Open Info on any photo to see and copy its text. - Uses Google ML Kit's text recognizer, bundled inside the app and fully offline. It reads Latin-alphabet languages. - One switch in Settings → Text in Photos. Turning it off deletes every bit of text read so far.
👤 People
- Faces are found with ML Kit and matched with GhostFaceNet, a modern face-recognition model (512-number face signatures). The model is an 8 MB one-time download (see Getting started).
- Faces are grouped into people automatically, using the same two-pass approach Apple describes for Photos. Name people, merge them, fix mistakes, or tag someone by hand. Your corrections are remembered.
- Fix groups in bulk, without labelling photo by photo:
- On a person's page, select photos and choose Not This Person or Move To… another person or a new one.
- In People, tap Select, pick several people, and Merge them or choose Don't Feature.
- Safeguards against wrong merges, both on by default:
- Faces in one photo are different people: two faces in the same photo are never put in one person.
- Merge only best matches: two groups merge only when each is the other's closest match, so one big group can't swallow everyone near it.
- Face Map shows every face laid out by likeness, one color per person, with red rings on faces that are probably in the wrong person. The All Faces list puts each person's least alike faces first. Tap a face to open its person or photo, or mark it Not Them.
- View-only while sorting: while faces are being scanned or sorted, People is view-only so your changes don't land on groups that are about to change. A banner says why, and Pause stops the scan so you can edit right away.
- Don't Feature a person and they leave People, search and the face badges. New photos of them stay with them, out of sight, and you can feature them again under Not Featured.
- Full control over grouping in Settings → People (Advanced):
- 15 presets, such as Strict, Relaxed, Family Look-Alikes, Kids Growing Up, Sharp Faces Only, Frequent Faces and Names Lead. One tap regroups everyone right away so you can compare.
- A slider for every setting: how alike faces must be, merge rounds, merging only when clear, the bar for single faces and for joining named people, the blurry-face limit, and how many faces make a person. Three short labels under each slider say what low, middle and high do.
- The safeguards above, and Pause When Phone Is Warm.
- Names and your own fixes are always kept when regrouping.
- Face badges in the viewer are off by default; switch them on in Settings → People, or use ⋯ → Show People for a single photo.
- Named people work in search: "Ali at the beach".
- Off by default. Turning it off deletes all face data.
🗂️ Smart Albums you describe in words (AI on)
Make your own albums without tagging a single photo. 1. Give the album a name, then describe what belongs, in as many ways as you like: "a receipt", "a bill from a shop", "an invoice". 2. Optionally say what to keep out: "a restaurant menu". 3. Slide Strictness while a live preview shows exactly which photos match, with the weakest matches at the end so you can see where to draw the line.
Or start from a search: after searching by words, by a photo, or with the camera, tap Save as Smart Album. The editor opens already filled in, so you only name it and set the strictness.
A Smart Album matches the same photos AI search finds for its words, so searching "sunset" is a quick way to check what a "Sunsets" album will hold. New photos are sorted into your Smart Albums automatically as they're analyzed. When you browse your library, small pills appear on each photo; tap one to open that album. You can edit or delete a Smart Album at any time, and deleting it never touches your photos.
🧹 Clean Up
Free up space in minutes, and keep the photos that matter. - Duplicates: exact copies, confirmed by comparing the actual file contents, not just names. The original is kept. - Similar Shots: bursts and retakes taken moments apart. The sharpest one is kept and the rest are pre-selected. - Blurry: photos that are out of focus everywhere. Portrait-mode photos with a sharp subject and blurred background are not flagged. - Dark or Blank: pocket shots and covered lenses. - Old Screenshots: screenshots older than a month. - Large Files: everything over 25 MB, biggest first, with the size on each tile.
Review before you delete. Tap any suggestion to see it full screen; tap its check mark to select or deselect it. Photos marked to keep can still be selected. Clean Up Settings has a slider for every threshold (how blurry, how alike, how far apart in time, how dark, how large, how old), and changes apply straight away.
Favorites are never suggested for deletion. Everything you delete goes to Recently Deleted for 30 days, so nothing is lost by accident.
🎬 Video tools
- Find Moments: describe a scene ("the goal", "cutting the cake") and jump to the exact second in a long video. Save the moments you like as clips.
- Compress Video: the best settings for each video are pre-selected (for example 4K to 1080p, or HEVC when the phone has a hardware encoder), so one tap is usually enough. Or choose resolution, quality and codec yourself, check the estimated size, and preview before saving next to the original.
And more
- Albums: Recents, Favorites, your folders, Videos, Screenshots, Recordings, Saved Moments, Recently Deleted. Create albums, rename them, and move photos between them.
- Places map: in Albums → Places, a map card shows country outlines (built in, no download) with photo pins that group together as you zoom out. Pinch or double-tap to zoom, and tap a pin to open its photos.
- Recordings: your voice notes and recordings, playable right in the gallery and found in more folders than before. Recordings Settings has Add Folder for the voice notes WhatsApp, Telegram and some recorders keep in folders Android hides, and an All Audio switch that lists every audio file. Google Recorder and some dialers keep recordings inside their own app; export them from there and they appear here.
- Basic and Advanced settings: a switch at the top of Settings. Basic (the default) shows the few settings most people need. Advanced shows every option, including search tuning, the People sliders and test, and Accurate video indexing.
- This Phone (in Settings) shows the phone's memory, chip, AI accelerator, graphics, video encoders, camera, screen lock, free storage and whether Gemini Nano is installed, measured on the phone itself. Each feature is marked Yes, Limited or No with the reason. Basic hides features the phone can't run; Advanced shows them greyed out with the reason.
- Use as wallpaper or contact photo, share, favorite, delete with iOS-style confirmation sheets.
- Light, Dark and System themes with frosted "liquid glass" bars.
- Storage & Cache: see and clear every cache, the search index and the model files.
🔒 Privacy you don't have to take on trust
- No Internet permission. AIPhotos removes the Internet permission from its own build, so it cannot send or receive anything. You can check this in Android's app info.
- No accounts, no ads, no analytics, no crash reporting, no cloud.
- Photos, search indexes, face data, text read from photos, Smart Albums and photo locations live in the app's private storage and are excluded from backups.
- AI features are opt-in. The Smart Search model, the face model and the place-names table are downloaded by you, in your own browser, and each file is checked before it is used.
Read the full policy in PRIVACY.md, or view the online privacy policy.
⚡ Fast, light and battery-friendly
All this analysis runs on the phone, so AIPhotos is built to stay out of your way: - Each photo is analyzed once. A single decode gives its text, its Clean Up measurements (a 64-bit picture fingerprint, sharpness and brightness: about 30 bytes per photo) and nothing more. Edited photos are re-checked; everything else is skipped. - Background work pauses while you scroll, while the phone is warm, and when the battery is low. It resumes exactly where it stopped. - Smart Albums cost no extra AI work. They reuse the search index Smart Search already keeps, with a few searches per album rather than a pass over every photo. Changing the strictness slider is instant, and new photos are sorted in batches as they're indexed. - Text search uses a full-text index on disk, so a word is found among tens of thousands of photos in milliseconds, without holding the text in memory. - Duplicates are confirmed by reading just 128 KB of each candidate file, and only for files that already share an exact size. - Thumbnails are sized to the grid, prefetched ahead of your scroll, and swapped for tiny ones during fast flings.
🚀 Getting started
- Install AIPhotos and allow access to photos and videos.
- That's it. Your library, Details search, Text in Photos, Clean Up and the Places map work right away.
Downloads (optional)
To keep the app small, two data files are separate downloads in Settings → Downloads. For each one, tap Download in Browser, then Pick Downloaded File. The file is checked before it is used, and you can replace or delete it there at any time. - Face model (about 8 MB): needed for People. - Place names (about 4 MB): names photo locations (city, province, country) for Places and place search. The map works without it.
Both come from the app's GitHub release.
Turning on Smart Search (optional)
Smart Search powers AI search, Find Similar, Live Search, video search, Find Moments and Smart Albums. It uses Google's EmbeddingGemma model, running entirely on your phone.
- Open Settings → Smart Search and turn it on.
- Tap Download the model. Hugging Face opens in your browser; download
embeddinggemma-2-740m.litertlm(about 485 MB) from https://huggingface.co/litert-community/embeddinggemma-2-740m-litert-lm/tree/main. - Tap Choose the downloaded file and pick it, usually in Downloads.
AIPhotos uses the file where it is, so it never takes up space twice. If Android won't let the AI engine read that location, AIPhotos offers to move the file into its own storage instead. Your photos are then analyzed in the background, including new ones even while the app is closed. Settings → Smart Search → Test Model shows whether the model loads, how fast it runs, and how many photos are searchable.
Turning on People (optional)
Settings → People turns on face grouping once the face model is added in Settings → Downloads. If people are mixed up or split, switch Settings to Advanced and try a preset (Strict or Relaxed first), checking People after each one. The Face Map shows where the mix-ups are.
🛠️ Build from source
Requirements: Android Studio, or JDK 21 with Android SDK platform 37. From Android/src:
./gradlew assembleRelease # app/build/outputs/apk/release/app-release.apk
Or push to GitHub: .github/workflows/build_android.yaml builds the APK and attaches it as a
downloadable artifact.
- Package id
com.kore.aiphotos. Minimum Android 12 (API 31). - Release builds use R8 with resource shrinking, keep native libraries compressed, and include only arm64.
- The face model and place-names table are not in the APK; users add them in Settings → Downloads.
Build with
-Paiphotos.bundlePacks=true(or set it ingradle.properties) to put both inside the APK instead, for example for a sideloaded test build. - The world map outlines are generated at build time from Natural Earth country shapes.
- The face model is produced by
.github/workflows/build_face_model.yaml, which converts GhostFaceNet to TFLite and verifies it against the original. You only need to run it to rebuild the model.
Under the hood
Kotlin · Jetpack Compose · Material 3 · Hilt · WorkManager · Media3 (ExoPlayer, Transformer) · Coil · Haze · CameraX · LiteRT and LiteRT-LM · MediaPipe Tasks · ML Kit (face detection, text recognition) · SQLite with FTS4.
🙏 Credits
- Started as a fork of Google AI Edge Gallery (Apache 2.0).
- EmbeddingGemma by Google, for on-device search.
- GhostFaceNets (MIT), for face recognition.
- ML Kit face detection and text recognition.
- City data from GeoNames (CC BY 4.0).
- Country outlines from Natural Earth (public domain).
The full list of open-source licenses is in Settings → Open Source Licenses.
License
Apache 2.0. See LICENSE.
Developed by Rehan Sathio.