Keyboard-first. On-device AI. Non-destructive. Cull thousands of RAW files faster than any existing tool — without a subscription, without a cloud account, without the friction.
* Market figures: photography software TAM, 2025
Culling is the biggest time-sink in a photographer's workflow.
A wedding photographer shoots 3,000 frames per event. Before a single image is edited, 4–6 hours disappear in Lightroom. The tools doing this work were designed in 2006 and haven't fundamentally changed since.
Import, preview generation, and flag-based culling in Lightroom averages 100–200 photos/hr. A 3,000-shot wedding takes 4–6 hours of click-heavy mouse work before editing starts.
No tool in market has built a keyboard-first culling session where hands never leave the keyboard. 3,000 photos means 3,000 mouse movements + 3,000 clicks — every session.
Aftershoot and Narrative Select require accounts and partial cloud infrastructure. Adobe's AI features are cloud-only and locked to subscription tiers. On-field photographers — no signal, no AI.
Lightroom: $120–660/yr. Narrative Select: $120–720/yr. Aftershoot: $180–576/yr. Capture One: $180/yr. Photographers are paying for four tools to accomplish a workflow that should be one.
Human-in-the-loop, not human-replaced-by-AI.
Aftershoot automates culling decisions. Narrative Select advises on them. ShotSelect puts AI-scored context on every frame while the photographer makes every call — faster, informed, and in control. The keyboard is the engine; AI is the co-pilot.
One focused tool. Four pillars of the culling session.
ShotSelect does one thing: helps photographers cull faster. It does not edit, grade, sync to the cloud, or require a subscription. It ingests a folder, gives AI-powered context on every frame, and exports XMP decisions to your existing workflow.
- Arrow keys keep/reject — no mouse needed
- Tag slots 1–9: single key applies any tag
- Auto-sort to SELECTS / REJECTED / FAVORITES
- Compare mode, zoom, pan — all keyboard-driven
- Blur scoring — batch-reject soft shots
- Near-duplicate detection — prune burst outtakes
- Closed-eye detection — filter portraits automatically
- Face grouping — cull by person across full session
- Emotion detection — tag by expression
- YOLO-World — search any object in session
- Canon CR2/CR3, Nikon NEF, Sony ARW, Fuji RAF
- DNG, Hasselblad 3FR, Phase One IIQ, HEIC
- JPEG, WebP, TIFF, BMP, PNG, video preview
- RAW/JPEG pairs — choose display source
- XMP sidecar write — star ratings, labels, keywords
- Lightroom Classic + Capture One compatible
- Export by category: Selects / Rejects / Favorites
- JSON / CSV for studio pipeline integration
Every competitor has a structural gap ShotSelect closes.
Four tools occupy this space. None combine keyboard-first culling, on-device AI, Linux support, one-time pricing, and zero cloud dependency in a single binary. That gap is ShotSelect's entire whitespace.
| Feature | Lightroom | Photo Mechanic | Aftershoot | Narrative Select | ShotSelect |
|---|---|---|---|---|---|
| Keyboard-first culling | Partial | Yes | No AI auto-culls |
Partial | Yes |
| On-device AI models | No Cloud only |
No | Partial Needs cloud login |
Yes Needs activation |
Yes 100% offline |
| No account / login required | No | Yes | No | No | Yes |
| Linux support | No | No | No | No | Yes |
| One-time purchase option | No $120–660/yr |
Yes $200 one-time |
No $180–576/yr |
No $120–720/yr |
Yes $49 one-time |
| Blur detection | Partial | No | Yes | Yes | Yes |
| Face grouping by person | No | No | Partial Burst grouping |
Partial Close-ups panel |
Yes InsightFace + HDBSCAN |
| Open-vocabulary object search | No | No | No | No | Yes YOLO-World, any noun |
| Photographer controls every cull | Yes | Yes | No AI decides |
Partial AI warns |
Yes AI informs |
| XMP / Lightroom compatible | Yes | Yes | Yes | Yes | Yes |
Six models. Fully offline. Running while you cull.
No cloud API. No GPU required. Every AI feature runs on the laptop CPU via ONNX Runtime — background-queued so the photographer keeps moving while models index in parallel. By frame 500, the whole session is pre-analysed.
Laplacian variance ranks every image by sharpness. Batch-reject the softest N% in one keystroke. Instant CPU scoring — no model download, no warm-up.
Perceptual hashing clusters visually identical burst frames. Review one representative, reject the rest in a single action. Cuts burst-heavy event sessions by 30–50%.
Detects closed or blinking eyes in portraits. Wedding and event photographers flag blinks across 500-frame portrait sets in seconds — impossible to catch manually at speed.
InsightFace + HDBSCAN clusters every detected person across the session. Cull all photos of Subject A as a sub-gallery. Goes beyond Aftershoot's burst grouping and Narrative's close-ups panel.
Detects happy, sad, surprised, angry, fearful, disgusted, and neutral expressions. Filter to smiling faces only, or tag by expression for editorial selection. No competitor offers this.
Open-vocabulary detection via YOLOv8s-WorldV2 on ONNX. Search "ring", "dog", "cake", "crowd" — any noun, any session. ~200–500ms/image on CPU. No competitor has this.
- ◆Works on a plane, on set, in a field — zero signal required
- ◆Client photos never leave the photographer's machine
- ◆No per-image API cost eating into margin
- ◆Models update with app versions — no separate model management
Aftershoot claims 90% accuracy but photographers consistently report it "stumbles" on sports, fashion, and non-standard compositions. When AI makes the culling decision, a 10% error rate means 300 wrong choices per 3,000-shot event.
ShotSelect AI informs — the photographer decides. Error rate becomes a flag frequency, not a discard frequency.
One session. One keyboard. Zero friction.
The culling session is the product. Not an import panel. Not a cloud sync dialog. Open a folder, ShotSelect pre-warms thumbnails and queues AI tasks, and the session begins. Every action is one key.
- ◆Open folder — thumbnail strip loads while AI indexes in background
- ◆Arrow-up to keep, arrow-down to reject — auto-sort moves files in real time
- ◆Press B: blur scores overlay onto every frame — reject the bottom 30%
- ◆Press D: duplicate clusters surface — batch-reject burst outtakes
- ◆Press E: closed-eye flags appear on portraits — reject in one pass
- ◆Press F: face groups load — cull every photo of Person A as a sub-gallery
- ◆Cmd+E to export: XMP sidecars written — open in Lightroom, ratings are live
A photographer culling 3,000 frames moves between photos ~3,000 times. In Lightroom that's 3,000 mouse movements + clicks. In ShotSelect: 3,000 arrow key presses. Hands stay on the keyboard; eyes stay on the image.
Tag slots (keys 1–9) eliminate even the key-combo overhead. Set "Portraits" to slot 3 — pressing 3 tags and advances. No panel interaction.
SQLite-backed sessions survive app restarts. Resume exactly where you stopped. The Start Screen shows the last 20 sessions grouped by date — one click to continue.
Photos culled per hour. The only metric that matters.
Photographers don't track DAU. They track how long post-production takes. Photos culled per hour is the cleanest signal of AI leverage, UX quality, and product value — in one number.
* AI pre-filter removes blurry and duplicate frames before manual review — cutting the decision queue by 40–60% for event shoots
** Aftershoot excluded: it auto-culls rather than presenting a manual review speed; photographers still must review AI output
- ›Captures AI leverage — more models = higher throughput
- ›Exposes UX friction before it becomes churn
- ›Maps directly to time saved — the value photographers pay for
- ›At $75/hr opportunity cost, ShotSelect pays back at $49 in under one session
Active beta. Cross-platform. Full AI suite shipping.
ShotSelect v1.0.18 ships on Mac (Apple Silicon + Intel), Windows, and Linux. Beta access runs through a cryptographic offline license system — no server dependency, fully air-gap safe.
- ✓Keyboard-first culling session — complete implementation
- ✓All 6 AI detection models with background task queue
- ✓SQLite session persistence — resume across restarts
- ✓XMP sidecar write — Lightroom and Capture One compatible
- ✓Ed25519 offline license system — no server, cryptographic
- ✓CI/CD pipeline — sign, notarize, upload to R2 on every tag
- ✓Light + dark mode, auto-update, onboarding tour
Beta distribution runs on Cloudflare Pages + R2. Photographers enter email at shotselect.app → a Pages Function generates an Ed25519-signed license key → delivered via Resend → activates fully offline.
- ›AI-suggested culling: one-key accept on model picks
- ›Studio mode: shared sessions across team
- ›Mobile companion: approve picks from phone
- ›Lightroom plugin: real-time two-way sync
Free core. Paid AI. Own it — no subscription required.
Photographers face subscription fatigue across four tools simultaneously. ShotSelect's model is deliberately anti-subscription: the keyboard culling session is free forever; AI features are a one-time $49 Pro purchase.
- Full keyboard culling session
- Auto-sort (Selects / Rejected / Favorites)
- Tag slots, compare, zoom/pan
- XMP export (Lightroom compatible)
- SQLite session history
- All 20+ RAW formats
- Everything in Free
- Blur detection + batch reject
- Duplicate detection
- Closed-eye detection
- Emotion detection
- Face grouping (InsightFace)
- YOLO-World object search
- Background task priority queue
- Everything in Pro
- Shared sessions (team culling)
- Mobile companion access
- Priority support
- Early access to new AI models
A $1.2Bn market with no dedicated culling tool.
Photography software has consolidated around editing suites. No company has built a focused culling tool with AI-first, offline-first architecture. The dedicated culling category is unclaimed.
- ›Adobe optimises for editing — culling is a feature inside a $660/yr subscription
- ›Photo Mechanic solves ingestion speed, not AI-assisted selection
- ›Aftershoot removes the photographer from decisions — a workflow shift most won't accept
- ›Narrative Select requires account, subscription, and Mac/Windows only
- ›No tool combines keyboard culling + 6 on-device AI models + offline + one-time pricing
- ✓Adobe is too slow to restructure Lightroom's 20-year-old culling interaction model
- ✓Aftershoot's automation approach creates accuracy complaints — opening for human-in-loop
- ✓Narrative Select's subscription model is the same problem they're trying to solve
- ✓ShotSelect is designed for the intersection of all constraints from day 1
The AI inflection is real. The window is 18 months.
Three forces are converging. Miss the window and Adobe absorbs AI culling into Lightroom's monolith convincingly enough that photographers won't switch. Move now, and the dedicated culling category is ours to define.
ONNX Runtime + YOLOv8 + InsightFace run at real-time speed on consumer CPUs. What required a GPU cluster two years ago ships in a 50MB binary today. The hardware caught up.
Adobe's 2024 price increase triggered the largest Lightroom migration in a decade. Aftershoot and Narrative's subscription-only models draw the same complaint. Photographers are actively looking for tools they own.
No tool has credibly positioned as an AI-native, offline, keyboard-first culling session. Aftershoot and Narrative occupy adjacent spaces but leave the intersection unclaimed. First-mover with proof-of-execution wins.