With the advent of publicly available LLMs and embedding models, I figured I’d kill two birds with one stone: I’d learn a bit about using such models, and I’d build a tool that lets me use a semantic search on my photos.

I keep those photos on a NAS in my home network, and frequently back them up using bart - my back-up and restore tool. So all I really need is a web site for showing the photos and letting me search them. That’s why I built photo search, a tool that uses publicly available multi-lingual models that work both on text and images to index and query photos based on the contents.

On top of that, photo search also uses EXIF tags on photos to track additional metadata such as timestamps, thus allowing filtering of photos by timestamps when available. Search results are shown based on similarity to the search term. The GUI also lets the user look for similar photos.

Embeddings are stored in a vector database (currently only qdrant is supported), and the GUI itself requires authentication to both search and view photos.

You can find all my code for photo search on GitHub. You will also find some setup instructions and runtime requirements there. Be sure to also check out bart on GitHub.