Skip to content

Feature/manually mark faces - #1678

Open
HerbertHorst wants to merge 5 commits into
pulsejet:masterfrom
HerbertHorst:feature/manually-mark-faces
Open

Feature/manually mark faces#1678
HerbertHorst wants to merge 5 commits into
pulsejet:masterfrom
HerbertHorst:feature/manually-mark-faces

Conversation

@HerbertHorst

Copy link
Copy Markdown

Add the option to tag a face manual using face recognition.

New "Add face manually" modal:

  • pick a photo, drag a rectangle over the face, enter a name (with autocomplete from existing people), and optionally flag the mark to be used for clustering.
  • Reassign an existing detected face to a different or new person from the same dialog.

Name autocomplete also added to the standard Rename person dialog.

This is the frontend half of the feature. It relies on matching backend API routes added in matiasdelellis/facerecognition#841

grafik grafik

Showcase of the outlines when opening a picture:
grafik

and when you click on a face you can reasign who this is
grafik

HerbertHorst added 5 commits June 2, 2026 21:51
Add a modal to manually mark a face region in a photo and assign it to a
person (existing or new), with an option to use the marked face for
clustering. Also supports reassigning an existing face to another person.

- New FaceManualAddModal.vue: photo picker + drag-to-mark UI
- New DAV helpers in services/dav/face.ts (getFacesForFile,
  addManualFace, reassignFace) + IFaceRectForFile type
- Wire up entry points in Metadata.vue and FaceTopMatter.vue

Pairs with the facerecognition backend endpoints for manual faces.
faceRecognitionAddManualFace() return type now includes clusteringQueued.
After saving a manual face with 'use for clustering' checked, show an
info toast if the backend signals that no descriptor is available yet
so the user understands the limitation without silent failure.
The info message now appears only when the face was actually queued
(clusteringQueued=true) and explains that the next background scan will
look for a face in the marked area and use it for automatic recognition
only if one is found.
Add datalist-based autocompletion of already-known person names to both
name fields in FaceManualAddModal (new manual face and reassignment),
sourced from the facerecognition face list. Mirrors the suggestions
shown when naming an unknown cluster; silently shows no suggestions if
the list cannot be loaded.
The standard "Rename person" dialog now offers the same name autocompletion
as the manual-face modal. On open it loads existing person names from the
active backend (recognize or facerecognition, chosen via routeIsRecognize)
and exposes them through a native datalist on the name field. Numeric
cluster ids are filtered out, names are deduped and sorted, and any load
failure is non-fatal (no suggestions shown).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant