diff --git a/FAQ.md b/FAQ.md index e3402b4..161da67 100644 --- a/FAQ.md +++ b/FAQ.md @@ -8,7 +8,7 @@ No — with one exception. winnow only reads from Immich (assets, people, face b ## How many images should I upload to Frigate? -The `auto` strategy decides this for you — it keeps selecting until adding more images would be redundant. In practice this is usually 10–40 per person. You can cap it with `MAX_AUTO_IMAGES` (default `20`). +The `adaptive` strategy (default) decides this for you — it keeps selecting until adding more images would be redundant. In practice this is usually 10–40 per person. You can cap it with `MAX_AUTO_IMAGES` (default `20`). The default is intentionally conservative. The goal is for winnow to **supplement** a training set that should be primarily built from manually-curated images — photos you took specifically for recognition, in controlled conditions, uploaded directly through Frigate's UI. winnow is for the people you can't do that for: faces in your library you want Frigate to recognise but don't have dedicated training photos for. @@ -74,4 +74,4 @@ docker compose pull docker compose up -d ``` -The `latest`, `cpu`, `rocm`, and `intel` tags on GHCR always point to the latest release. Versioned tags (e.g. `ghcr.io/sudolulo/winnow:v0.4.10`) are also published for each release and are useful for pinning to a known-good version. +The `latest`, `cpu`, `rocm`, and `intel` tags on GHCR always point to the latest release. Versioned tags (e.g. `ghcr.io/sudolulo/winnow:v0.5.0`) are also published for each release and are useful for pinning to a known-good version. diff --git a/Setup.md b/Setup.md index a22e4fa..9f1bd50 100644 --- a/Setup.md +++ b/Setup.md @@ -180,7 +180,7 @@ docker exec winnow cat /app/frigate_train/winnow.log | Variable | Default | Description | | :--- | :--- | :--- | -| `STRATEGY` | `auto` | `auto` (embedding-based adaptive), `standard` (30 images), `broad` (100 images) | +| `STRATEGY` | `adaptive` | `adaptive` — embedding-based diversity selection, stops when candidates become redundant; `standard` — fixed 30 images; `broad` — fixed 100 images. `auto` is a legacy alias for `adaptive` | | `LIMIT` | *(unset)* | Exact image count — overrides `STRATEGY` preset | | `AUTO_MODE` | *(auto)* | Force non-interactive mode in a terminal; auto-detected otherwise | | `VERBOSE` | `false` | Enable DEBUG-level console output (log file is always DEBUG) | @@ -224,7 +224,7 @@ The following variables control quality thresholds that are pre-calibrated for F | `FORCE_CPU` | `false` | Disable GPU — fall back to CPU for all inference | | `OPENVINO_DEVICE` | `CPU` | Intel variant only: `GPU` = iGPU/Arc (requires `/dev/dri`); `CPU` = OpenVINO CPU plugin (optimised CPU kernels, not the iGPU) | | `ENABLE_CACHE` | `true` | Cache computed embeddings to disk (speeds up re-runs on the same library) | -| `CACHE_DIR` | `.if_cache` | Path for embedding cache and upload tracker files | +| `CACHE_DIR` | `.if_cache` | Path for embedding cache and upload tracker database (`winnow_tracker.db`) | | `INSIGHTFACE_HOME` | *(system)* | InsightFace model cache path (Buffalo_L) | ### Output diff --git a/Troubleshooting.md b/Troubleshooting.md index e09ebe3..142760d 100644 --- a/Troubleshooting.md +++ b/Troubleshooting.md @@ -142,10 +142,12 @@ docker exec winnow cat /app/frigate_train/winnow.log | grep -i "provider\|execut ## Same images uploaded every run -The upload tracker is stored in `CACHE_DIR` (`/app/.if_cache` by default). If this volume isn't persisted between runs, the tracker resets and images are re-uploaded. +The upload tracker is stored in `CACHE_DIR` (`/app/.if_cache` by default) as `winnow_tracker.db` (SQLite). If this volume isn't persisted between runs, the tracker resets and images are re-uploaded. Make sure `/app/.if_cache` is mounted to a persistent host path. +**Upgrading from 0.4.x:** winnow automatically migrates the legacy JSON tracker files (`frigate_uploaded_ids.json` / `frigate_rejected_ids.json`) to SQLite on the first run and renames them to `.json.bak`. No manual action is required. + --- ## Re-uploading a specific person