Most photo servers use AI to help you find a picture. PixlStash uses it to help you work on them. Every model below runs on your own machine. Nothing is sent to an API.
The models are not a list of separate tricks. Each stage feeds the next, and the last one feeds the first.
Tags, descriptions, faces and embeddings, so the library is searchable by what is in the pictures.
A queue that shows you what the models probably got wrong, so the labels are worth trusting.
Quality, likeness and anomaly scores that sort the good pictures to the front of a large set and the crap ones to the back. Search by likeness.
Export the set, track the training run it produced, and bring back a LoRA to present to workflows.
Type what you are looking for and get pictures back, whether or not anything is tagged. Queries and pictures share an embedding space, so "someone in a red coat on a snowy street" works on a library nobody has ever labelled.
OpenCLIP ViT-B-32, laion2b_s34b_b79k
Faces are found, embedded and grouped into characters you can name. Switching the model pack does not lose your faces or your manual assignments: existing embeddings are refreshed in place, in the background.
InsightFace SCRFD-10G, buffalo_l or AuraFace
Choose the tagger per request rather than per install, and re-tag any selection from the context menu when a better model comes along. Batch or single image.
PixlStash Tagger (a wd-convnext-tagger-v3 finetune), WD14 wd-convnext-tagger-v3, Florence-2, JoyCaption
Write natural-language descriptions for a whole selection, or regenerate one image's description on its own. Useful as caption files when the set becomes a dataset.
JoyCaption, Florence-2
Locate objects inside a picture rather than only naming them, for crops and region work.
Florence-2
Descriptions and queries get their own text embeddings alongside the image ones, so a search can match how a picture was described as well as how it looks.
SBERT sentence-transformers
The tagger plugin API is the same one the built-in engines use. Point it at a model we have never heard of and it appears in the engine picker. Moondream2 already ships in the published plugin catalogue, so does a captioner for any OpenAI-compatible vision API. Install either with one command.
pixlstash-cli plugins install moondream2
This stage is the one other tools skip. Auto-tags are a starting guess, and a dataset built on unverified guesses trains a worse model.
A ranked queue of the labels most likely to be wrong. Accept and it writes through to the library and every open client refreshes. Dismiss and it stops asking.
Per-tag signals for the whole library: estimated wrong and missing, how much of the tag you have verified, how much sits on the decision boundary, how often your verdict overturned the model, and where the model disputes a human.
Near-duplicates are grouped into a tiered queue, and a sweep can be run as a dry run first so you see what it would remove before anything goes.
Visually similar images stack together, so a burst or a batch of variations reviews as one decision instead of forty.
One sortable number per picture, combining the image embedding, CLIP anchors, an objective quality probe and the anomaly penalty below. Sort a set of ten thousand and the ones worth looking at are at the front.
Anchor-based, CLIP embeddings
Finds malformed anatomy and similar render defects. Each detection counts by its calibrated confidence, discounted by that tag's measured precision, and correlated defects are grouped into families and combined so one bad hand tagged three ways is not punished three times.
ViT classifier, noisy-OR family grouping
Score every picture against a character's reference faces, so you can find the shots that actually look like the subject rather than merely contain them.
InsightFace embeddings, cosine similarity
Upload a face and get the library back ranked by its best matching face per picture.
InsightFace embeddings
Upload one image or several and get pictures ranked by visual similarity. With several, the per-picture scores combine, so you can search for a look rather than a single frame.
CLIP embeddings, cosine similarity
Send a reviewed, scored selection straight into a folder with its captions, ready for a trainer.
Read an ai-toolkit run where it was written and import it with its sample images. Versions of one subject group behind a single row, so a character trained four times is one entry with its history under it. PixlStash tracks the runs; it does not run the trainer.
Drive ComfyUI on a selection from inside PixlStash, or call PixlStash nodes from your own workflows. What comes back arrives tagged, with its People, Picture Set and Project associations already attached, which puts it at stage 1 again.
Checkpoints and adapters in one place, with the folders they live in, so you can see what you have before a run rather than after.
On your hardware. There is no cloud inference API in PixlStash and no account to sign into for any of it.
The desktop app ships a ready-to-run CPU runtime, so every model on this page works offline on first launch.
Hardware is detected on install and GPU acceleration is offered as an optional download: NVIDIA CUDA, or experimental AMD ROCm.
Weights download once on first start and are cached. Move the folder later and every file is copied, verified and removed from the old location, with nothing downloaded again.
The face model pack is a setting. buffalo_l is the default; AuraFace is there for commercial use, and switching keeps every face and manual assignment intact.
Immich is a very good home photo server, and if a Google Photos replacement is what you want, use it. It is worth being precise about where the two overlap.
| Capability | Immich | PixlStash |
|---|---|---|
| CLIP semantic search | Yes, with a wide model picker | Yes |
| Face detection and recognition | Yes | Yes |
| Duplicate detection | Yes | Yes, tiered queue with a dry run |
| Text in images (OCR) | Yes | No |
| Automatic tagging | No | Yes, engine selectable per request |
| Captions and descriptions | No | Yes |
| Segmentation | No | Yes |
| Label review queue and tag health | No | Yes |
| Quality and anomaly scoring | No | Yes |
| Character likeness scoring | No | Yes |
| Reverse face and likeness search | No | Yes |
| Dataset export and run tracking | No | Yes |
| Two-way ComfyUI integration | No | Yes |
| Pluggable model backends | No | Yes, tagger plugin API |
Immich documents two machine-learning tasks, smart search and facial recognition, and does them well for the job it is built for: finding a photo you already took. PixlStash does both of those and then adds additional features for working with images.