You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .github/ISSUE_TEMPLATE/bug_report.yml
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -16,7 +16,7 @@ body:
16
16
options:
17
17
- label: I have verified that OpenCV ONNX models (`face_detection_yunet_2023mar.onnx` and `face_recognition_sface_2021dec.onnx`) are present in `models/`.
<em>Polished, fully offline browser UI — with a built-in dark mode and an analytics dashboard.</em>
15
+
</p>
16
+
7
17
Face Sort Studio is a privacy-first tool that scans your photo gallery and automatically organizes images into folders based on the people in them. Using high-performance deep learning models, it detects every face and creates unique identity embeddings to match targets with precision—all while remaining 100% offline.
8
18
9
19
Everything runs locally on your hardware. No cloud uploads, no API keys, and no data leaves your machine.
@@ -63,6 +73,21 @@ If you want to run the app without installing Python or any libraries, you can b
63
73
64
74
## 🚀 Quick Start (Local Setup)
65
75
76
+
**Windows, in three steps** (full setup options are in [Setup](#setup) below):
-**Windows** — scripts are PowerShell; the core app runs on any OS
207
+
-**Primary support: Windows** — the automation scripts and portable EXE are Windows-only. The Flask core is pure Python and runs on macOS/Linux via the manual steps ([Option C](#setup)); the system-tray + auto-open-browser launcher (`run.py`) is a Windows-desktop convenience, while `face-sort` is the cross-platform headless command.
184
208
-**Tailscale** (optional) — only needed for the public sharing flow
185
209
186
210
---
@@ -353,7 +377,6 @@ These are planned or suggested improvements for future versions:
353
377
-**Person renaming** — rename "Person_01" to actual names in the UI
-**Batch operations** — re-run a previous job with different settings
356
-
-**Dark mode** — toggle between light and dark themes
357
380
358
381
### Medium-Term
359
382
-**TensorFlow integration** — swap OpenCV models for TensorFlow-based detection/recognition for improved accuracy on challenging photos
@@ -377,7 +400,7 @@ These are planned or suggested improvements for future versions:
377
400
Flask's synchronous model is simpler to reason about for a local desktop-style app. Background jobs run in threads. The template engine (Jinja2) is built in. For a single-user local tool, Flask is the right balance of simplicity and power.
378
401
379
402
**Why OpenCV DNN instead of TensorFlow?**
380
-
The OpenCV models (YuNet + SFace) are tiny ONNX files (~2 MB total) that run on CPU without CUDA. They provide excellent accuracy for face detection and recognition. TensorFlow integration is on the roadmap for users who want to push accuracy further on difficult photos.
403
+
The OpenCV models (YuNet + SFace) are compact ONNX files (~37 MB total, downloaded once on first run) that run on CPU without CUDA. They provide excellent accuracy for face detection and recognition. TensorFlow integration is on the roadmap for users who want to push accuracy further on difficult photos.
381
404
382
405
**Why SQLite?**
383
406
Zero configuration, no separate database server, single file. Perfect for a local app. The SQLAlchemy ORM means swapping to PostgreSQL or Azure SQL later requires only changing the connection string in `config.py`.
0 commit comments