Organize Family Photos by Face: Fully Offline on Windows
Detect, cluster, and name people in your photo library with local ONNX models: no Docker, no cloud upload, searchable by person.
PhotoPrism and Immich work well if you want a server, Docker, and a web UI. On Windows, with a desktop library that must stay offline, face grouping is harder to find: most options are cloud DAMs or Mac-centric apps.
DupeZappa Face Recognition runs locally: YuNet for detection, AuraFace for embeddings, clustering in-app, and optional sync to Smart Tags so you can search people by name in Universal Search.
What you get
| Step | Result |
|---|---|
| Detect | Faces in images via local ONNX models |
| Cluster | Similar embeddings grouped into anonymous people |
| Name | You assign real names; the app does not guess relatives |
| Merge | Combine two clusters that split the same person |
| Search | Named people indexed as tag:"Name" and face metadata |
Thumbnails are served through the same local file server as other media previews. No face data leaves your PC through DupeZappa's built-in path.
First-time setup
- Open Settings → Face Matching.
- Run Check / install models; downloads are SHA-256 verified from pinned upstream revisions.
- Enable Face matching.
- Optional: Auto-index faces after search index completes; runs detection when Universal Search finishes a job.
Models default to your app config folder. Detection input size: 320px (faster) or 640px (more accurate).
Tune thresholds for your library
| Setting | Lenient | Strict |
|---|---|---|
| Detection confidence | 0.3 | 0.9 |
| Recognition similarity | 0.3 (loose clusters) | 0.8 (tight clusters) |
Family reunion photos with partial faces need looser detection. Professional headshots with few subjects can use stricter recognition to avoid merging cousins.
Naming and merging workflow
- Run face indexing on an indexed photo root (or let auto-index trigger after search).
- Open Face People; review anonymous clusters.
- Name high-confidence clusters first.
- Merge clusters that split the same person across lighting or age.
- Browse all images for a person; wrong matches get removed from the cluster.
Merging moves embeddings and file associations to the target person and cleans up duplicate Smart Tags.
Link faces to the rest of the toolkit
Named people auto-sync to Smart Tags. That enables:
- Universal Search:
tag:"Grandma Rose"across drives. - Duplicate Scanner: find duplicate photos of the same person in different folders.
- No file moves; tags are virtual references only.
Read Smart Tags Without Moving Files for collection workflows.
vs cloud and self-hosted alternatives
| Approach | Tradeoff |
|---|---|
| Google Photos / iCloud | Easy face grouping; uploads required |
| PhotoPrism / Immich | Private self-host; server ops |
| digiKam / ACDSee | Powerful; photo-centric DAM learning curve |
| DupeZappa | Windows desktop; offline ONNX; tied to search + dedup |
Choose DupeZappa face recognition when privacy means no server and no cloud, and you want people discovery in the same app as duplicates and search.