Please read carefully the description
Nami is a privacy-first face recognition photo gallery for Sailfish OS. It scans your photo gallery, detects faces, and lets you tag and group photos by person, entirely on your device.
⚠️ This is a preliminary, experimental release (v0.7.0). Expect rough edges.
Source code: https://github.com/nicosouv/harbour-nami
This app is written by a human developer with an LLMs (Claude and Mistral Vibe). It is also an experiment: testing how to package a Sailfish OS app together with its ML models fully bundled, so it runs 100% offline out of the box.
The models are NOT downloaded at runtime. They are fetched during the CI build (SHA-256 checksum-verified) and shipped inside the RPM. Both come from the OpenCV Model Zoo:
- YuNet (face detection, MIT license)
Source: https://github.com/opencv/opencv_zoo/tree/main/models/face_detection_yunet
Direct file: https://media.githubusercontent.com/media/opencv/opencv_zoo/main/models/face_detection_yunet/face_detection_yunet_2023mar.onnx
- SFace (face recognition, Apache-2.0 license)
Source: https://github.com/opencv/opencv_zoo/tree/main/models/face_recognition_sface
Direct file: https://media.githubusercontent.com/media/opencv/opencv_zoo/main/models/face_recognition_sface/face_recognition_sface_2021dec.onnx
- All face detection and recognition runs locally on your device (C++ / OpenCV DNN). No cloud, no external API.
- The app makes no network requests at runtime: photos, face embeddings and names never leave your phone.
- Model files are checksum-verified at build time so you get exactly the published OpenCV Zoo models.
- Face data: detected faces, biometric embeddings, the names you assign, and manual corrections is kept in a local SQLite database on the device only.
- The database is stored with owner-only file permissions (0600), so other user accounts or processes on the device cannot read it. Note: it is not encrypted, the security model relies on the device's own storage and lock-screen protection.
- The only app settings persisted are non-personal: the folder to scan, the recognition strictness threshold, and an internal embedding-format version. No names or biometric data are stored as settings.
- One-tap "Clear all data" (in Settings, with a confirmation) wipes every photo record, detected face, biometric embedding, person name and manual correction, then runs a database VACUUM to purge the deleted data from freed pages. It also deletes the cached face-crop images from disk.
This is an early version, if the app doesn't work for you or you dislike something about it, I'm genuinely open to constructive criticism.
Please report issues or ideas on GitHub: https://github.com/nicosouv/harbour-nami/issues
| Attachment | Size | Date |
|---|---|---|
| 40.17 MB | 07/07/2026 - 22:33 |
- Local, on-device face detection and recognition (YuNet + SFace, OpenCV DNN), no cloud, no network at runtime
- Automatic photo gallery scan with batch processing and progress, cancellable
- Face grouping, naming and tagging by person
- UI to identify and sort faces quickly
- Person pages with photo gallery, "view face in photo" highlight, and one-tap confirm of all matches
- Distinct badges for manual vs auto-matched faces, with similarity scores
- Person merge, incremental scan, and persistent manual corrections
- Configurable scan folder and recognition strictness
- Events and Memories views based on EXIF capture dates
- Face thumbnail provider with disk cache (avatars, identify flow)
- Full-screen photo viewer with pinch-to-zoom
- Full translations: English, French, German, Italian, Spanish, Finnish
- ML models bundled and SHA-256 checksum-verified at build time
Recent comments