docs: update for 0.5.0 — adaptive strategy default, SQLite tracker, migration note
+2
-2
@@ -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.
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
+3
-1
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user