200,000 Photos, No Keywords, and No Intention of Typing Them In

TL;DR: I've been a photographer for forty years and my catalog was unsearchable. Photo Tagger runs a vision model on your own machine and fixes that without your work ever leaving the building.

I’ve been a serious photographer for over forty years. My image catalog is north of 200,000 images.

Ask me to find the shot of the blue door in the rain and I’ll be there for an hour. Not because it isn’t there — because I never keyworded it, and I never keyworded it because keywording 200,000 images by hand is not a project, it’s a sentence.

Every photographer with a growing library has this problem. Most of us solve it by not solving it.

Why the obvious answer didn’t work

The obvious answer is a cloud service. Upload the catalog, let somebody’s model look at it, get keywords back.

For a hobbyist, fine. For a working photographer, the objections stack up quickly. There’s client work under contract in that catalog. There’s unreleased material. There are images I have obligations about. And underneath all of it is the simple discomfort of pushing a life’s work through somebody else’s pipeline for a convenience feature.

That objection was the design constraint, and it turned out to be the interesting one: the analysis has to come to the photos, not the other way around.

What it does

Photo Tagger runs a small vision model on your own machine — via Ollama, locally, no account, no upload — and writes keywords into your Lightroom Classic catalog and the XMP sidecars, so the metadata lives with your files and works in anything that reads XMP.

And it’s doing much more than just labeling what it sees. The pieces that make it usable day to day:

It learns your vocabulary. Your existing catalog has your vocabulary in it — the words you actually search by, the client names, the shorthand only you use. The tagger reads what’s already there and reuses your terms where they fit rather than inventing parallel ones.

It tags mood, not just objects. Beyond what’s in the frame, there’s an option to describe how a photo feels — so you can search for the moody, the serene or the energetic, not only for “door” and “rain”.

It watches folders. New imports get tagged automatically. A tool you have to remember to run is a tool you stop running, and this problem is only solved if it’s solved continuously.

It writes your copyright and creator metadata while it’s in there, because that’s a chore in exactly the same category.

It can back your tags up to the cloud — the tags, not the images. Keywords are small, hard-won, and worth protecting. Your photographs stay where they are.

The design detail I’m proudest of

Photo Tagger never writes to your images. Not a byte. Everything it knows goes into a standard XMP sidecar, the same small companion file Lightroom already uses, sitting next to the original.

And it’s polite about it: if a sidecar already exists, it only touches the keyword fields it manages and leaves everything else exactly as it found it. If it can’t safely read an existing sidecar, it stops rather than risk overwriting your edits.

Delete the sidecars and your photos are exactly as they came off the card.

Where it stands

The engine, the Lightroom plugin, the folder watcher, the tray app, and the Windows installer are all built and working — a full pass from selecting photos in Lightroom to seeing keywords land in the catalog and the sidecar.

This tool has not shipped yet. When it does, you can start free, add image packs as you need them, or go unlimited, and there’ll be a product page here to get it from. Licensing, code signing, and the macOS port are what’s left, and they’re operator chores rather than engineering ones.

I built this because I needed it. That the same problem is sitting in every photographer’s catalog is what made it worth finishing.

The projects, experience and opinions here are mine. AI helped me turn my notes and build records into this piece and polished it for Cairoglyphics.ai.