-
Notifications
You must be signed in to change notification settings - Fork 0
FAQ
No. winnow only reads from Immich (assets, people, face bounding boxes). It never writes back to Immich or deletes anything.
The auto strategy decides this for you — it keeps selecting until adding more images would be redundant. In practice this is usually 20–60 per person. You can cap it with MAX_AUTO_IMAGES (default 80).
Quality and diversity matter far more than volume. 30 well-spread images outperform 200 from the same week.
- Face mode: Extracts and aligns face crops, uploads them directly to Frigate's face training API. This is for teaching Frigate to recognize specific people.
- Object mode: Runs YOLO detection on full images and saves crops of a target class (dog, cat, car, etc.) to disk. Frigate has no API for object training data, so you place them manually.
Yes — in object mode, FRIGATE_URL is not used and crops are saved to the output volume. In face mode you need Frigate to receive the uploads, but you can use DRY_RUN=true to preview selection without uploading.
winnow computes a vector embedding for each candidate image (what the face/object actually looks like — angle, lighting, expression). It then clusters those embeddings and picks representatives that are maximally spread across the embedding space. It stops when the next-most-different image is already close to something already selected. See the README for the full pipeline.
Yes. By default it processes every named person in your Immich library. Use ONLY_PEOPLE to whitelist specific names or SKIP_PEOPLE to exclude them.
Any NVIDIA GPU with CUDA 12.x support. The models (InsightFace Buffalo_L + SigLIP) fit comfortably in 4 GB VRAM. CPU mode works but is significantly slower.
ARM builds (linux/arm64) use CPU-only — CUDA is not available on ARM.
Yes — the compose.yml uses standard Docker volume mounts. Replace the example paths with whatever absolute paths suit your setup.
docker compose pull
docker compose up -dThe latest tag on GHCR tracks the main branch. Pinning to a version tag (e.g. ghcr.io/sudolulo/winnow:v0.2.0) is recommended for stability.