Every guide for GalleryID. Each topic says who it is for and what it needs.
People & MatchID

The Photo Review page is your dedicated workspace for reviewing face recognition results. Select a gallery from the sidebar and you'll see every photo as a card with its pending matches, approved tags, and editable metadata. Galleries with pending matches are sorted to the top so you can focus on what needs attention first.
SWIM: Riverside vs Lakewood
FB: Riverside vs Eastport
WSOC: Riverside vs Westfield
SWIM_10086.jpg
Riverside Women's SwimmingJamie Chen
52%SWIM_10198.jpg
Riverside Women's SwimmingFor the person search to show the right athletes, each gallery needs a roster matching scope — the teams that the system should match against. Without a scope set, person search returns no results by default. You can toggle to "All Indexed" to search your full athlete database when needed.

Open the Gallery Browser
Open gallery settings
Set the roster matching teams
Save
Gallery Title
Event Date
Roster Matching
Select categories and teams to match against for face recognition
Categories
Cal Athletics Teams


| Status | Badge Color | Meaning |
|---|---|---|
| Pending | Amber | AI found a match — needs human confirmation |
| Approved | Green | Confirmed correct by a reviewer |
| Auto-approved | Blue | High confidence match, approved automatically |
| Rejected | Red | Match was incorrect, person dismissed |

Each pending match appears as a compact two-line row. The first line shows a source badge and the person's name with approve/reject buttons. The second line (when available) shows position, jersey number, team, and a color-coded confidence pill. Click the green checkmark to approve or the red X to reject.
For galleries with many matches, use the batch dropdown in the toolbar to process matches in bulk. Actions are grouped into three categories:
| Action | What It Does |
|---|---|
| Approve ≥ 95% | Approve only very high confidence face matches |
| Approve ≥ 80% | Approve high and medium-high face matches |
| Approve ≥ 60% | Approve most face matches except low confidence |
| Approve all pending | Approve everything regardless of confidence |
| Auto-approve XMP matches | Approve pending matches where the AI name matches the photographer's XMP tag |
| Reject jersey-only | Reject all pending jersey-only matches (number-based, no face similarity) |
| Reject all remaining | Reject all pending matches (use with caution) |


Some matches are based solely on jersey number detection (OCR), not face similarity. These appear with distinct visual styling so you can tell them apart from real face matches:
Marcus Rivera
Tyler Brooks
63%| Indicator | Meaning |
|---|---|
| Orange background | This match was made by jersey number only — no face was compared |
| # badge (instead of headshot) | Shows the detected jersey number |
| "Jersey Only" label | Confirms this is a number-based match, not a face match |
| 0% confidence | No face similarity score exists for jersey-only matches |
While reviewing photos, you may notice a clear shot of an athlete — good lighting, visible face, recognizable angle. You can add that photo directly as a reference to improve future matching, without leaving the review workflow.

Find a good photo
Click "+ Add as Reference Photo"
Select a face
Assign to a person
Choose a photo type
Click "Add Reference"
Photos that have been used as reference photos are visually marked in the review grid:
Tyler_Brooks_FB_162205.jpg
Tyler Brooks| Indicator | Where | What It Means |
|---|---|---|
| Purple circle icon | Top-left of photo thumbnail | This photo has been used as a reference (hover for tooltip) |
| Purple card border | Around the entire card | Quick visual distinction from non-reference photos |
| "✓ Already a Reference · Add Another" | Below tag input | Replaces the default "+ Add as Reference Photo" link |
| Purple info banner in modal | Top of Add Reference modal | Warns you this photo is already a reference |
Each photo card has a search input for manually tagging people. This works the same as the person search in the Gallery Browser — type a name or jersey number and select from the dropdown, or add a free-text name for someone not in the database.

| Tag Type | What Happens | Badge Color |
|---|---|---|
| Indexed person | Creates an approved match record + writes to xmp_persons | Green (AI) |
| Free-text name | Writes name to xmp_persons only — no match record | Purple (XMP) |
All tags — whether from AI, auto-approval, XMP metadata, or manual entry — display as unified two-line rows. Each row has a colored source badge, the person's name, and a hover-to-show remove button. When detail data is available, a second line shows position, jersey number, team, and a color-coded confidence pill.
| Source Badge | Color | Meaning |
|---|---|---|
| AI | Green | Manually approved face match from AI recognition |
| AUTO | Blue | High-confidence match approved automatically |
| XMP | Purple | From XMP metadata embedded by photographer, or free-text tag |
| M | Sky blue | Manually tagged by a reviewer |
| Color | Range | Meaning |
|---|---|---|
| Green | 80%+ | High confidence — strong face similarity |
| Amber | 50–79% | Medium confidence — review recommended |
| Red | Below 50% | Low confidence — likely needs manual verification |
Hover over any tag row to reveal the × button on the right side. Clicking it removes the name from xmp_persons and, if there's an associated face match, rejects that match.

Each photo card has a collapsible "Metadata" section. Click it to expand and edit four fields:
| Field | XMP Mapping | Description |
|---|---|---|
| Headline | Xmp.photoshop.Headline | Short description, typically auto-generated from event title |
| Title | Xmp.dc.title | Photo title for cataloging |
| Caption | Xmp.dc.description | Longer description or context for the photo |
| Persons Shown | Xmp.iptc.PersonInImage | Comma-separated names (manual, independent of AI tags) |

The toolbar provides quick filters to focus on specific photos. New sub-filters let you separate face matches from jersey-only matches:
| Filter | Shows |
|---|---|
| All | Every photo in the gallery |
| Pending (N) | Only photos with at least one pending match of any type |
| Faces (N) | Only photos with pending face matches (real face similarity) |
| Jersey (N) | Only photos with pending jersey-only matches (number detection only) |
| Done (N) | Only photos with approved/auto-approved matches |
| No Matches | Photos where no faces were detected |
The Faces and Jersey sub-filters only appear when there are matches of that type in the current gallery. This keeps the toolbar clean for galleries without jersey matching.
After approving, rejecting, tagging, or editing metadata, click "Save & Rebake" in the toolbar to persist all changes. This:
The circular-arrows icon in the review toolbar reloads the current gallery's data from the database without a full page reload. Use it after making changes outside the review page (e.g., uploading new photos, running face recognition) to see updated results without navigating away.

When you close the review modal after approving, rejecting, or tagging, the gallery data automatically refreshes. This ensures filters, match counts, and person badges are immediately up to date without needing to manually reload.
When you filter photos by person name and then open the review modal, navigation only cycles through the filtered set. For example, filtering to "Jamie" showing 8 photos means the modal shows "1 of 8" and only navigates those 8 — not the full gallery.
Use the column toggle in the toolbar to switch between 2-column and 3-column layouts on desktop. On mobile, photos always display in a single column. The 2-column layout gives more room for metadata and match details, while 3-column fits more photos on screen at once.
Related