GalleryID Desktop · Available for Mac & Windows
Start with a roster. Accelerate with headshots.
Load a roster, and one press writes the name and the full caption line into the metadata — that’s CaptionID. Add headshots, and MatchID, our facial recognition for sports photos, starts finding the athletes for you. Anything it isn’t sure about waits for your click instead of being guessed at.
From the sidelines, not a focus group
You covered the game. Then the job splinters: one app to cull, another to tag, a code file you maintain by hand, an editor, an FTP client. We’re photographers, and we were tired of conforming to that stack. So we rebuilt the workflow itself.
Don’t replace your tools. Rethink your workflow. Desktop works around the tools you love, and in many cases, in place of them.
Same MatchID. Same names in each file.
Cloud runs MatchID against a gallery you uploaded. Desktop runs it against the photos already on your computer. Pick the one that fits your workflow, or run both on independent subscriptions. A photo named in Desktop carries its names into Cloud.
The Desktop workflow
The whole path from captured to named, delivered files, on your own computer.
Ingest
Fast ingest with token rename and folder patterns. Profiles save the whole config so the next event is one click. Photos load as they copy, so you can start tagging your protected frames while the rest of the card is still ingesting.
Photos never leave the computer.

Identified
One press from the folder’s roster writes the name and the full caption line, and codes work if you prefer keystrokes. Index headshots and MatchID starts filling in names for you, with uncertain matches waiting in the review queue. Not sure who someone is? Ask Who Is This.
By hand or by MatchID. Same named file.

Deliver
FTP destinations with watermarking, or ZIP export with sidecars. Send files however you already do — upload to your own gallery, hand off a drive, deliver to the wire. Names ride along in IPTC and EXIF metadata.
The names travel with the file.

Three ways to tag
A roster gets you moving. Headshots make it fly.
Type the player once and the fields fill themselves, the name and the full caption line together, with no separate long form to enter. That’s CaptionID. Prefer keystrokes? Code replacement works here too, and the Roster Library pulls a name by jersey number and team in two keystrokes. Your workflow, your input.
Rosters bind to the folder, so the next event opens with the right one already loaded. No clearing out last season’s saved rosters mid-year.
Faces match against the headshots you indexed on your own machine, and jersey numbers fill in when the face is not legible. Confidence thresholds decide what gets written without you looking at it. Anything below the line lands in the review queue instead of being guessed at.
Confirmed matches can be added as extra reference photos, giving MatchID more angles of each athlete so the next event matches better.
You know the moment. The number is hidden, the player could be one of two who look alike from across the field, and you’re scrolling back through the take to narrow it down. It happens on teams you cover often.
Click Who Is This, and MatchID checks that one photo against the headshots scoped to the folder and hands you its best match. You confirm and keep moving.
Straight talk
A name gets written one of two ways: you confirm it, or it clears a confidence threshold you set yourself. Nothing in between, and nothing guessed at. Tag it from the roster and you are the first and last word on it. Let MatchID find it and anything uncertain waits in the review queue for your click.
Review is worth a pass even when the match is right, because being correct about who is in the frame is not the same as deciding who belongs in the delivery. Not everyone in the frame does. Most photographers caption in that same pass, right in the queue.
Desktop speeds up review and captioning. The decisions stay yours.
What's in Desktop
Desktop covers the ingest, culling, ratings and IPTC work you already know, and code replacement values still run here. What it adds is facial recognition, jersey numbers, rosters that follow the folder, and one-click tagging with no file to maintain. There is a full side-by-side against Photo Mechanic, Lightroom and the roster tools if you want the detail: GalleryID Desktop vs Photo Mechanic →
In wire work, speed and accuracy win. The first photos on the wire are the ones that get used, and the miscaptioned ones are the ones that get remembered. Desktop was built for both sides of that.
Ingest
Ingest was rebuilt so the card lands and you can start editing sooner. The work happens once, while the file is being written, instead of twice.
Measured: 4,664 files, 52 GB, off the card in 1 minute 19 seconds.
Canon R3 JPEGs over a CFexpress reader into a MacBook Air M4, timed from the ingest click to the card ejecting. Results vary with hardware, card and file type.
MatchID is not part of ingest. Importing copies, renames and stamps your files. Nothing analyses the pictures while the card comes across. MatchID is a step you run yourself, on a folder or a selection, whenever you are ready — which means you can cull first and identify only the frames you kept.
Cull
Paging through a take loads from previews written during the ingest, so nothing decodes a full-size file on a keypress. RAW pages through the JPEG preview your camera embeds in each file, JPEG pages through itself, and either way the next frame is just there. Rate, label, filter.
Focus check does the squinting for you. It scores blur across the frame and sharpness on the faces that are actually the subject, not the spectator behind them, at four sensitivity levels: Off, Lenient, Moderate and Strict. It starts on its own after the card ejects, the photos stay available the whole time it runs, and flagged frames are marked, never hidden or deleted.
Filter out the soft frames, rate what’s left, and identify only the photos that survived. Nothing analyses the pictures while the card is copying, so the cull starts the moment the card lands.
The Catalog
Index whole drives into an offline-browsable archive. Browse, search by name, keyword, or filename, and preview the library without mounting a single disk. Export HD previews or originals with people, keywords, and capture date embedded in the files.
The Catalog is the search layer over drives you already organise yourself. It reads the names and keywords embedded in your files, including years of tagging done in other software, so the archive is searchable the day you index it.
Removing something from the catalog never touches the source files; it just drops the reference. The companion apps for iPhone and Android put the catalog in your pocket, synced over your own wifi only.

The iPhone companion, browsing the Catalog over your own wifi.
Built-in Roster Library
18,815 team rosters and 474,304 athletes, already loaded: NCAA Division I, II and III, with the D2 and D3 coverage running 90 sports deep, plus the NFL, NBA, WNBA, MLB, NHL, MLS, NWSL, Liga MX, PGA and LPGA. Auto-synced inside the app. Pull a name by jersey number and team in two keystrokes.
For the photographers who want to manually type names from a roster — without the copy-paste from team PDFs and media guides. Other sports work the moment you load your own roster; the Library list is convenience, not a limit.
MatchID matches faces against the headshots you index locally. The Roster Library is a names-and-numbers lookup for the rosters you don't have headshots for. Use either. Use both. Same file ends up named.
Pricing
On-device MatchID. Built-in Roster Library. IPTC and EXIF metadata. Everything runs local. Nothing to upload. We store nothing.
+$10/mo or +$100/yr per additional device. macOS 12+ or Windows 10/11. 14-day free trial.
The other half of the lineup
Want the season searchable after delivery? That's GalleryID Cloud — your hosted, named archive with galleries, share links, and search by athlete, from $20/mo for 200 GB. Same identification engine. Independent subscription. Explore Cloud →
Questions
MatchID is GalleryID’s facial recognition, tuned for sports action. Consumer facial recognition is trained on people looking at the camera; MatchID was trained on sports photography, where athletes are in motion, turned away, or wearing helmets. In Desktop it runs locally against headshots you index on your own computer, and it exists to accelerate the one-press tagging: the roster buttons you would press yourself get pressed for you, with jersey numbers read as a second signal. Helmets can obstruct the face, and camera angles and lighting can reduce effectiveness, so matches it is not sure about wait in the review queue for your click. And because it was trained on the hardest conditions in photography, everything easier — portraits, media day, team events — is covered too.
Everything runs local. There is nothing to upload, and we store nothing. The photos, the headshots you index, and the face data all stay on your computer, with no cloud quota. Delivery is yours to choose: FTP out, hand off a drive, or publish to GalleryID Cloud when you want a hosted archive.
The recognition built into consumer photo apps struggles here, because those models learned from photos where people face the camera. Action photography is the opposite: motion blur, heads turned away, athletes at distance, helmets. MatchID was trained on a large archive of sports photography instead, and reads jersey numbers when there is no face to read. It will not name everything on the first pass. Anything it is unsure of lands in a review queue where one click from the roster finishes it.
It can, but it doesn’t have to. Desktop covers ingest, culling, ratings, tagging, captioning, and FTP and ZIP delivery, so it can carry the whole workflow. It also plays well with the tools you keep: code replacement values run here too, metadata reads across both, and plenty of photographers cull elsewhere and bring the folder here for identification and delivery.
Yes, end to end. Ingest, culling, ratings, tagging, captioning and delivery all work on 15 RAW formats: CR2, CR3, NEF, NRW, ARW, SR2, RAF, ORF, RW2, DNG, PEF, SRW, X3F, IIQ and 3FR. Culling pages through the full-size JPEG preview your camera embeds in each RAW file, so nothing decodes sensor data on a keypress and browsing stays instant. The one feature that stays JPEG-side is the crop and tone adjustment. Raw developing belongs to Lightroom and Capture One; the files themselves are fully supported here.
GalleryID Desktop includes a catalog of its own, called the Catalog. It indexes whole drives into an offline archive you can browse and search by name, keyword or filename with the drives unplugged. Point it at the same drives and it takes over that role directly. Your years of tagging carry over automatically, because the captions, keywords and names were embedded in IPTC and XMP inside the files themselves, and the Catalog reads what is already there. No export, no migration tool. Removing an item from the Catalog never touches the source file.
Use the Roster Library instead. Click a player and the name goes into the fields you chose. The built-in library holds 18,815 team rosters and 474,304 athletes: NCAA Division I, II and III (including 649 D2 and D3 schools across 62 conferences and 90 sponsored sports), plus ten professional leagues (NFL, NBA, WNBA, MLB, NHL, MLS, NWSL, Liga MX, PGA and LPGA) and tournament squads for the 2026 FIFA World Cup and Leagues Cup. You can also build a roster in the app, upload your own as .xlsx, .xls, .csv, .tsv or .txt (the delimiter is detected for you), or upload the code replacement file you already use in other captioning software. It works here as is.
Identification works for any sport today. It is driven by your roster and your headshots, not by a fixed list, so lacrosse, soccer, volleyball, and anything else work the moment you load a roster. The built-in Roster Library is a convenience for the leagues we curate, and it grows over time.
No. Rosters bind to a folder. Open a different event and the right roster is already loaded, and subfolders inherit it unless you say otherwise.
Because every name is confirmed, never guessed. A name gets written one of two ways: you confirm it, or it clears a confidence threshold you set yourself. Tag from the roster and you are the first and last word on it. Let MatchID find it and anything uncertain waits in the queue for your click. Review is worth a pass even when the match is right, because being correct about who is in the frame isn’t the same as deciding who belongs in the delivery; not everyone in the frame does. Most photographers caption in that same pass. The queue speeds up review and captioning. It doesn’t replace the need for them.
Wherever you put the tokens. Your template holds a token for the name and a token for the caption line, and you place them in the fields you want filled: the caption, Persons Shown, keywords, headline, one field or several. Each press writes to exactly the fields you mapped, nothing else. Names are written into IPTC and XMP, including Persons Shown and Personality, so they read wherever the file goes next — any program that reads metadata, including Lightroom, Capture One and Photo Mechanic — and they stay in the file after it leaves your machine.
No. Identification runs on your machine and is unmetered. $20/mo or $200/yr for the first device, +$10/mo or +$100/yr for each additional device, with a 14-day free trial.
Because a perpetual license is perpetual for the camera and computer you owned the day you bought it. The typical policy in this category includes about a year of free updates; after that, the software keeps working only if your gear and OS stand still. Buy a new body and its RAW files may not open. Update your OS and the app may break, prompting a paid upgrade to the next version. GalleryID Desktop is $200/yr and always current: new camera formats, new OS versions, new features, no repurchase ladder. The subscription isn’t a payment plan. It’s the update policy.
Yes. macOS 12+ and Windows 10/11.
Names in the file. Nothing in the cloud.
Download for Mac & Windows →