# Person Removal Feature ## Description Tap-to-remove people from photos using Vision's person segmentation. ## Acceptance Criteria - [ ] User taps person in photo with Person tool selected - [ ] `VNGenerateForegroundInstanceMaskRequest` generates mask for tapped person - [ ] Mask preview shown with red tint overlay - [ ] Mask automatically dilated by 2-4px to capture edge pixels - [ ] User can adjust feather amount before confirming - [ ] On confirm: mask feathered and passed to InpaintEngine - [ ] Inpainted result displayed, operation added to stack - [ ] "Select all people" option available when multiple people detected - [ ] Multiple people can be removed one at a time - [ ] Partial occlusion handled (Vision provides usable mask) - [ ] User can refine mask with brush tool if needed - [ ] Error handling: - No person at tap: "No person found at tap location" toast - Low confidence mask: "Does this look right?" confirmation with preview - [ ] Performance: mask generation < 500ms, inpaint per spec targets ## Technical Notes - Vision's person segmentation is robust on iOS 17+ - Use `indexesOfInstancesContainingPoint` to identify which person was tapped - For "select all", combine masks from all detected instances - Allow brush refinement by switching to brush tool with existing mask loaded ## Edge Cases - Person partially out of frame: mask what's visible - Person behind object: Vision may include occluding object, allow brush refinement - Very small person in photo: may not be detected, suggest zoom or brush - Multiple overlapping people: tap selects frontmost, allow sequential removal