The AI features

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.

One loop, four stages

The models are not a list of separate tricks. Each stage feeds the next, and the last one feeds the first.

  1. STAGE 1

    Label

    Tags, descriptions, faces and embeddings, so the library is searchable by what is in the pictures.

  2. STAGE 2

    Review

    A queue that shows you what the models probably got wrong, so the labels are worth trusting.

  3. STAGE 3

    Score and search

    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.

  4. STAGE 4

    Train and generate

    Export the set, track the training run it produced, and bring back a LoRA to present to workflows.

Label

STAGE 1 OF 4

Semantic search

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

Face detection and recognition

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

Tagging, with the engine you pick

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

Captions and descriptions

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

Segmentation

Locate objects inside a picture rather than only naming them, for crops and region work.

Florence-2

Sentence embeddings

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

Bring your own tagger

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

Review

STAGE 2 OF 4

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.

Tag review queue

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.

Tag health board

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.

Duplicate review

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.

Automatic grouping

Visually similar images stack together, so a burst or a batch of variations reviews as one decision instead of forty.

Score and search

STAGE 3 OF 4

Smart score

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

Anomaly detection

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

Character likeness

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

Reverse face search

Upload a face and get the library back ranked by its best matching face per picture.

InsightFace embeddings

Reverse likeness search

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

Train and generate

STAGE 4 OF 4

Dataset export

Send a reviewed, scored selection straight into a folder with its captions, ready for a trainer.

Training runs and versions

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.

Two-way ComfyUI

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.

Model shelf

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.

Where it runs

On your hardware. There is no cloud inference API in PixlStash and no account to sign into for any of it.

CPU out of the box

The desktop app ships a ready-to-run CPU runtime, so every model on this page works offline on first launch.

GPU when you have one

Hardware is detected on install and GPU acceleration is offered as an optional download: NVIDIA CUDA, or experimental AMD ROCm.

Models managed for you

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.

Licensing you choose

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.

Compared with Immich

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.

AI capabilities in Immich compared with PixlStash
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.