From d0cb2e17b1b4982be74900eee1b95275662c6cfc Mon Sep 17 00:00:00 2001 From: Holden Date: Sun, 14 Jun 2026 16:12:23 +0000 Subject: [PATCH] config: raise MIN_FACE_COUNT default from 0 to 3 People with fewer than 3 tagged photos produce degenerate training sets and rarely benefit from processing. Skip them by default. --- README.md | 2 +- winnow/config.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index a72dba0..5e077ad 100644 --- a/README.md +++ b/README.md @@ -191,7 +191,7 @@ In scheduled mode the process (and loaded models) stays resident between runs. T | :--- | :--- | :--- | | `ONLY_PEOPLE` | *(unset)* | Comma-separated whitelist — process only these people | | `SKIP_PEOPLE` | *(unset)* | Comma-separated list — skip these people | -| `MIN_FACE_COUNT` | `0` | Skip people with fewer than N tagged assets in Immich | +| `MIN_FACE_COUNT` | `3` | Skip people with fewer than N tagged assets in Immich | | `MERGE_DUPLICATE_PEOPLE` | `false` | When Immich has duplicate entries for the same person (same face split across multiple names), merge their asset pools before processing. Without this, each duplicate group emits a warning and is skipped | | `YEARS_FILTER` | `10` | Ignore images older than N years | diff --git a/winnow/config.py b/winnow/config.py index b7b4c95..435e596 100644 --- a/winnow/config.py +++ b/winnow/config.py @@ -35,7 +35,7 @@ class _Config: ENABLE_FRIGATE_SCORES: bool = True # People filtering - MIN_FACE_COUNT: int = 0 + MIN_FACE_COUNT: int = 3 MERGE_DUPLICATE_PEOPLE: bool = False # Output quality @@ -60,7 +60,7 @@ class _Config: self.OUTPUT_DIR = os.getenv("OUTPUT_DIR", "./frigate_train") self.YEARS_FILTER = int(os.getenv("YEARS_FILTER", "10")) self.MIN_FACE_WIDTH = int(os.getenv("MIN_FACE_WIDTH", "90")) - self.MIN_FACE_COUNT = int(os.getenv("MIN_FACE_COUNT", "0")) + self.MIN_FACE_COUNT = int(os.getenv("MIN_FACE_COUNT", "3")) self.MERGE_DUPLICATE_PEOPLE = os.getenv("MERGE_DUPLICATE_PEOPLE", "false").lower() in ("true", "1", "yes") self.BLUR_THRESHOLD = float(os.getenv("BLUR_THRESHOLD", "120.0")) self.MIN_CONFIDENCE = float(os.getenv("MIN_CONFIDENCE", "0.7"))