FINE.
SHYT.
Find the keepers in your photo library. Self-hosted, AI-assisted culling that learns your taste — not a generic "good photo" template. Free. Private. Runs on your own machine.
Three jobs, one workflow.
Point fineshyt at a folder of photos. It looks at each one, sorts the obvious bursts, and asks you to rate the ones it isn't sure about. The more you rate, the better it gets at surfacing photos you'd actually keep.
Technical scoring
Every photo gets a sharpness score (focus check) and an exposure score (clipped highlights/shadows) computed on the full-resolution original. Sort by either, independent of style.
Burst detection
When you fired off ten frames in three seconds, fineshyt groups them, highlights the sharpest, and lets you keep one and reject the rest in a single click.
Personalized ranking
You rate photos 1-5 stars. A model trained on those ratings drifts toward the kind of work you actually like. Photos that match get a MATCH badge in the gallery.
Built for photographers who own their workflow.
- Local-first. Your photos never leave your machine. No cloud upload, no subscription, no rate limits.
- Learns your taste. Most culling tools score against a generic "good photo" model. fineshyt's preference model is trained on your ratings, so its definition of a keeper is yours.
- Reads RAW + TIFF. CR2, CR3, NEF, ARW, DNG, RAF, ORF, DNG, plus 16-bit TIFFs — opened natively, not pre-converted.
- Open source. MIT-licensed, self-hostable, hackable. No vendor lock-in.
One command after Docker is installed.
The fineshyt install assumes Docker Desktop and Ollama are on your machine (both have one-click installers). After that:
git clone https://github.com/qweliant/fineshyt.git cd fineshyt make compose # creates .env, generates a secret, builds, starts
First run, edit .env to point PHOTO_LIBRARY at
the folder where your photos live, then re-run make compose.
Open http://localhost:4000 when
it's done starting up. The first build downloads ML models (~3 GB) — go
get coffee.
Photos on multiple drives? Set PHOTO_LIBRARIES
in .env instead — colon-separated:
PHOTO_LIBRARIES=/Volumes/Drive1:/Volumes/Backup-2024:/Users/me/Pictures
Each drive gets its own clickable chip in the gallery's Directory
field, and you type real paths (/Volumes/Drive1/Wedding-2024)
instead of a translated /photos/... path.
Step-by-step Windows guide: install-windows.html · Once it's running, the how-to-use guide walks you through importing photos and rating them · Other platforms: README
Quick answers.
Does it modify my photos?
No. The source directory is mounted read-only. fineshyt makes resized JPEG
copies for the AI worker, the originals are never touched.
Does it work offline?
Yes, with Ollama as the LLM. The first run pulls models (Ollama's
LLaVA + a CLIP image encoder), after that the whole pipeline is local.
Hardware requirements?
16 GB RAM is comfortable. 8 GB works but you'll feel it. Apple Silicon,
modern Intel/AMD, or any GPU Ollama supports. SSD strongly recommended
if your library is large.
How many photos before it gets useful?
The taste model needs ~30 ratings to start producing useful scores and
~150 to feel sharp. Burst detection and technical scores work on photo
one.
Where do I report bugs / suggest features?
GitHub Issues.
Or email — see the README.