feat: warn on launch when unsupported advanced tuning vars are set; move ENABLE_FRIGATE_SCORES to unsupported section
This commit is contained in:
@@ -203,14 +203,14 @@ In scheduled mode the process (and loaded models) stays resident between runs. T
|
|||||||
| :--- | :--- | :--- |
|
| :--- | :--- | :--- |
|
||||||
| `MAX_AUTO_IMAGES` | `80` | Maximum training images per person in Frigate |
|
| `MAX_AUTO_IMAGES` | `80` | Maximum training images per person in Frigate |
|
||||||
| `QUALITY_REPLACEMENT` | `true` | When at cap, swap a weaker tracked image for a better candidate. With Frigate scoring active, targets the most redundant image (highest pre-upload recognize score); otherwise uses blur score. Never touches manually added Frigate files. Set `false` to skip people at cap |
|
| `QUALITY_REPLACEMENT` | `true` | When at cap, swap a weaker tracked image for a better candidate. With Frigate scoring active, targets the most redundant image (highest pre-upload recognize score); otherwise uses blur score. Never touches manually added Frigate files. Set `false` to skip people at cap |
|
||||||
| `ENABLE_FRIGATE_SCORES` | `true` | Call Frigate's recognize endpoint pre-upload to store diversity scores used for quality replacement. Adds ~200 ms per upload. Disable to use blur-score replacement only |
|
|
||||||
|
|
||||||
#### Advanced Tuning *(calibrated — do not adjust)*
|
#### Advanced Tuning *(calibrated — do not adjust)*
|
||||||
|
|
||||||
These defaults are tuned for Frigate's ArcFace requirements. If you change them and run into issues, support will not be provided.
|
These defaults are tuned for Frigate's ArcFace requirements. winnow will warn on launch if any are set. Image quality issues caused by non-default values will not be investigated.
|
||||||
|
|
||||||
| Variable | Default | Description |
|
| Variable | Default | Description |
|
||||||
| :--- | :--- | :--- |
|
| :--- | :--- | :--- |
|
||||||
|
| `ENABLE_FRIGATE_SCORES` | `true` | Call Frigate's recognize endpoint pre-upload to store diversity scores used for quality replacement. Adds ~200 ms per upload. Disabling also disables the below-cap novelty gate |
|
||||||
| `FRIGATE_SCORE_CEILING` | *(unset)* | Below-cap novelty gate. Unset: dynamic — skips candidates whose Frigate score exceeds the most-redundant tracked file's score, auto-calibrates each run. `0`: disable entirely. Positive value (e.g. `0.85`): fixed hard ceiling |
|
| `FRIGATE_SCORE_CEILING` | *(unset)* | Below-cap novelty gate. Unset: dynamic — skips candidates whose Frigate score exceeds the most-redundant tracked file's score, auto-calibrates each run. `0`: disable entirely. Positive value (e.g. `0.85`): fixed hard ceiling |
|
||||||
| `MIN_FACE_WIDTH` | `90` | Minimum face crop width in pixels |
|
| `MIN_FACE_WIDTH` | `90` | Minimum face crop width in pixels |
|
||||||
| `FACE_MARGIN` | `0.15` | Padding around bounding box crop (fraction of face size) |
|
| `FACE_MARGIN` | `0.15` | Padding around bounding box crop (fraction of face size) |
|
||||||
|
|||||||
@@ -130,6 +130,18 @@ def _handle_duplicate_people(people: list[dict]) -> list[dict]:
|
|||||||
return people
|
return people
|
||||||
|
|
||||||
|
|
||||||
|
_UNSUPPORTED_VARS = [
|
||||||
|
"ENABLE_FRIGATE_SCORES",
|
||||||
|
"FRIGATE_SCORE_CEILING",
|
||||||
|
"MIN_FACE_WIDTH",
|
||||||
|
"FACE_MARGIN",
|
||||||
|
"ENABLE_FACE_ALIGNMENT",
|
||||||
|
"USE_FULL_RESOLUTION",
|
||||||
|
"MIN_CONFIDENCE",
|
||||||
|
"BLUR_THRESHOLD",
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
def main() -> None:
|
||||||
"""Entry point for winnow CLI."""
|
"""Entry point for winnow CLI."""
|
||||||
try:
|
try:
|
||||||
@@ -145,6 +157,17 @@ def main() -> None:
|
|||||||
[dim]Immich -> Frigate Training Data Curator[/dim]
|
[dim]Immich -> Frigate Training Data Curator[/dim]
|
||||||
""")
|
""")
|
||||||
|
|
||||||
|
set_unsupported = [v for v in _UNSUPPORTED_VARS if os.environ.get(v)]
|
||||||
|
if set_unsupported:
|
||||||
|
console.print(
|
||||||
|
f"[bold yellow]⚠ Advanced tuning vars set: "
|
||||||
|
f"{', '.join(set_unsupported)}[/bold yellow]"
|
||||||
|
)
|
||||||
|
console.print(
|
||||||
|
"[dim] These defaults are calibrated for Frigate's ArcFace requirements. "
|
||||||
|
"Image quality issues caused by non-default values will not be investigated.[/dim]\n"
|
||||||
|
)
|
||||||
|
|
||||||
ConfigManager.get().interactive_setup()
|
ConfigManager.get().interactive_setup()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|||||||
Reference in New Issue
Block a user