Face Grouping
Groups faces into people, Immich-style and incremental: a face that has no person joins the person of its most similar face that has one, if that's at least SamePerson alike. Else, if MinFaces − 1 other unassigned faces are that alike, they start a new person together. Otherwise it waits for more faces of whoever it is. Faces with a person never move: that's the user's to change (merge, split).
The cutoff was tuned on the owner's photos (tools/faces/cluster_tune.py): 0.50 mixed different people, 0.60 split real ones; 0.55 kept every right join and split every wrong one.