Add RESET_PERSON=* to reset all tracked people; fix near-duplicate dedup
- RESET_PERSON=* resets every tracked person (deletes their Frigate files and clears the tracker). Any other value resets that specific person by name, including someone literally named 'all'. - Near-duplicate removal pass added before diversity clustering: greedily drops candidates within 0.10 cosine distance of a higher-quality image, eliminating burst-shot duplicates that FPS would otherwise pass through.
This commit is contained in:
+14
-3
@@ -156,11 +156,22 @@ def main() -> None:
|
||||
rprint(f"Server: [dim]{Config.IMMICH_URL}[/dim]")
|
||||
rprint(f"Output: [dim]{Config.OUTPUT_DIR}[/dim]")
|
||||
|
||||
# Handle RESET_PERSON before anything else
|
||||
# Handle RESET_PERSON before anything else.
|
||||
# RESET_PERSON=* resets every tracked person; any other value resets
|
||||
# that specific person by name.
|
||||
reset_person_name = os.environ.get("RESET_PERSON", "").strip()
|
||||
if reset_person_name:
|
||||
reset_person(reset_person_name)
|
||||
rprint(f"[bold yellow]Reset tracking data for: {reset_person_name}[/bold yellow]")
|
||||
if reset_person_name == "*":
|
||||
names = list(get_person_summary().keys())
|
||||
if names:
|
||||
for name in names:
|
||||
reset_person(name)
|
||||
rprint(f"[bold yellow]Reset tracking data for all {len(names)} people.[/bold yellow]")
|
||||
else:
|
||||
rprint("[dim]No tracking data to reset.[/dim]")
|
||||
else:
|
||||
reset_person(reset_person_name)
|
||||
rprint(f"[bold yellow]Reset tracking data for: {reset_person_name}[/bold yellow]")
|
||||
|
||||
# Show per-person tracker summary if data exists
|
||||
summary = get_person_summary()
|
||||
|
||||
Reference in New Issue
Block a user