Cullstack is a photo and video culling tool that works across your entire storage stack: local drives, NAS, SFTP, Dropbox, OneDrive, Google Photos, iCloud, and your phone, without downloading or consolidating first.
Culling a shoot straight off a NAS. Real time, not sped up.
One window for all of them. Cull a wedding shoot stored across your NAS and Dropbox without downloading first.
Browse your Synology NAS, SFTP backup server, Dropbox, OneDrive, and iPhone in the same window. Star, rate, tag, and move files across storage backends without ever leaving the app. The interface speaks Spanish, French, German, Italian, Portuguese, Russian, and Chinese as well as English.
Split Grid puts two locations side by side, so you can compare a card against the shoot it belongs to, or move selects from one drive to another without losing your place. Each pane keeps its own tabs, filters and sort order, and either side can be a local folder, a NAS, or a cloud account.
Most culling tools treat video as an afterthought. Cullstack ships full Metal-accelerated video preview, frame-accurate scrubbing, and snapshot-to-image, so hybrid photo/video shooters can cull both kinds of footage in one workflow.
JVM memory safety, async thumbnail generation, and incremental directory loading keep Cullstack responsive at 100,000+ photos, even from a NAS, where some competitors slow to a crawl.
Type what you're looking for ("car", "red dress", "the cake") and Cullstack's on-device AI surfaces the matches. No keywords to tag first, no cloud round-trip. Just describe it and it's there.
No cloud uploads, no telemetry, no training data, no third-party processing. Cullstack reads and writes your files where they already live. Compatible with client NDAs and confidentiality contracts.
Plug in your iPhone or Android and Cullstack brings in only what is genuinely new. Most import tools re-download photos you already have, because iOS reports a different path and timestamp for the same shot each time you connect, so they can’t tell old from new, and you spend the evening deleting duplicates.
Cullstack fingerprints every photo it imports and matches on content, not filenames or dates. Connect the same phone a week later and you get that week’s new frames, nothing else. No Image Capture, no Android File Transfer, no duplicate cleanup.
Incremental phone import is a Pro feature, available on macOS.
One license works on Mac, Windows, and Linux. Your ratings, tags, and collections are stored in a local database on your machine, and Cullstack can write standard XMP sidecars next to your files, so Lightroom, Bridge, and Photo Mechanic see your work too.
Cullstack is fully translated into 12 languages: English, Deutsch, Español, Français, Italiano, Polski, Português, Русский, 中文, 繁體中文, 日本語 and 한국어. Switch any time in Settings, and Traditional Chinese uses Taiwanese wording rather than a straight character swap. Built for photographers everywhere, not just the English-speaking world.
Culling is a game of speed: you make a keep-or-cut call in the time it takes the next photo to appear. Cullstack is built around that moment.
Cullstack reads each photo's embedded preview, the same technique the pro culling tools rely on, so the image is on screen the instant you land on it, then sharpens to full resolution a heartbeat later.
iPhone libraries bring most tools to a crawl. Cullstack decodes HEIC natively, so a folder of thousands of iPhone photos loads and culls as smoothly as a card full of RAW.
Thumbnails generate in parallel and cache to disk, so big folders fill in fast the first time and open instantly after. The interface stays responsive at 100,000+ photos.
Built on embedded-preview extraction and native decoding, the techniques that make professional culling feel instant. On an M-series Mac with a cold cache we measure the next JPEG on screen in about 50 ms and HEIC in about 70 ms, the same whether you just opened the folder or have been working in it for hours.
Culling means handling your clients' most private moments: weddings, newborns, families, work under NDA. So Cullstack keeps everything on your computer by default. Nothing is uploaded unless you choose to turn on a cloud feature yourself. Private is the default; the cloud is your call, not ours.
Reading, culling, rating, AI. It all runs on your machine. No account required, no servers in the loop, no copy of your shoot leaving your computer unless you explicitly ask it to.
Cloud editors upload your clients' photos by default and ask you to trust their retention policy. Cullstack flips that: nothing leaves unless you opt in, knowingly, for that specific task.
On location with no signal, behind a client firewall, or just careful with confidential work. Cullstack runs exactly the same with the network switched off entirely.
Private by default, your choice always. Your photos go to the cloud only if you decide they should.
An Annual License with Perpetual Use Rights: your license includes every update released during your active term, and if you choose not to renew you keep your last licensed version, working, indefinitely. Mac, Windows, Linux from one license.
$0forever · no account required
A real photo manager for personal libraries.
No expiry. No nag. Yours to keep.
$99USD / year · full Pro features
First year $99. Regular Pro is $179/yr at release.
Every renewal is 40% off list, which is $107/yr at today's Pro price, for as long as you keep renewing. How renewals work.
Everything Cullstack does: the full culling toolkit plus on-device AI, cloud / network drives, and the pro workflow.
30-day free trial of Pro features · 3 device activations · all updates during your active term · keep your version if you don't renew · volume licenses for studios, contact sales@aviastone.com.
Regular pricing after Early Access: Standard $99/yr (the full culling & organizing toolkit) · Pro $179/yr (adds on-device AI, cloud & network drives, and Live Ingest). Both are annual licenses with perpetual use rights. Renewal pricing is explained in the FAQ.
| Free | Standard | Pro | |
|---|---|---|---|
| Browsing & viewing | |||
| Browse local drives | ✓ | ✓ | ✓ |
| Recursive subfolder browsing | — | ✓ | ✓ |
| Photo viewer (RAW, JPEG, HEIC, TIFF, PSD, WebP, PNG) | ✓ | ✓ | ✓ |
| Video player (H.264, H.265, ProRes, AV1, VP9) | ✓ | ✓ | ✓ |
| Full-screen viewer, slideshow, compare | ✓ | ✓ | ✓ |
| AI generation metadata display (A1111, ComfyUI, Midjourney) | ✓ | ✓ | ✓ |
| Culling & organization | |||
| Color labels | ✓ | ✓ | ✓ |
| Reads XMP sidecars (other apps' metadata) | ✓ | ✓ | ✓ |
| Star ratings (0-5) & pick / reject flags | — | ✓ | ✓ |
| Comments per file | — | ✓ | ✓ |
| Full-screen culling mode (auto-advance on rate) | — | ✓ | ✓ |
| Tags & hierarchical keywords | — | ✓ | ✓ |
| Stacks (manual & auto-grouping) | — | ✓ | ✓ |
| Smart collections / saved filters | — | ✓ | ✓ |
| Sort persistence per folder + manual sort | — | ✓ | ✓ |
| XMP sidecar writer (round-trip with Lightroom / PM) | — | ✓ | ✓ |
| File operations | |||
| Single-file rename, delete, copy, move | ✓ | ✓ | ✓ |
| Duplicate finder: find & view duplicates (exact match) | Read-only | ✓ | ✓ |
| Duplicate finder: delete / move duplicates from results | — | ✓ | ✓ |
| Duplicate finder: perceptual (visual similarity) | — | ✓ | ✓ |
| Privacy scan + EXIF / GPS scrub | — | ✓ | ✓ |
| Export pipeline (resize, format convert, quality) | — | ✓ | ✓ |
| Template rename (with AI metadata tokens) | — | ✓ | ✓ |
| Compress to ZIP | — | ✓ | ✓ |
| AI assistance (on-device, no cloud) | |||
| CLIP semantic image search (type "sunset over water") | — | — | ✓ |
| Face detection (single + batch select) | — | — | ✓ |
| Closed-eye detection (flag blinks across a shoot) | — | — | ✓ |
| Blur & quality flagging (soft, defocus, motion blur) | — | — | ✓ |
| People / NSFW content flagging | — | — | ✓ |
| Auto-stack by AI similarity (CLIP) | — | — | ✓ |
| Auto-stack bursts (capture time + AI) | — | — | ✓ |
| Auto-stack by face identity (ArcFace / MobileFaceNet) | — | — | ✓ |
| Recursive CLIP indexing across full libraries | — | — | ✓ |
| Pro workflow | |||
| Cloud & network drives (WebDAV, SFTP, Dropbox, OneDrive) | — | — | ✓ |
| Google Photos & iCloud Photos browsing | — | — | ✓ |
| Live Ingest (tethered / Wi-Fi hot folder, auto-rename + metadata) | — | — | ✓ |
| Incremental phone import (only new photos, integrity-checked) | — | — | ✓ |
| Split Grid (dual-pane workflow) | — | — | ✓ |
| IPTC metadata editor + templates | — | — | ✓ |
| Batch IPTC apply across selection | — | — | ✓ |
| Batch rename, batch privacy scrub, batch export | — | ✓ | ✓ |
| Stack-aware batch operations | — | — | ✓ |
| Priority email support | — | — | ✓ |
| Platform & licensing | |||
| Mac, Windows, Linux | ✓ | ✓ | ✓ |
| Device activations | Unlimited | 3 | 3 |
| Keep your version, working, indefinitely | ✓ | ✓ | ✓ |
| Updates | Free | During active term | During active term |
| Cullstack | Photo Mechanic | Adobe Bridge | digiKam | Aftershoot | Evoto | ACDSee | |
|---|---|---|---|---|---|---|---|
| Storage and import | |||||||
| Multi-cloud browsing (Dropbox, OneDrive, Google Photos) | ✓ | — | — | — | — | — | — |
| SFTP / WebDAV / NAS browsing | ✓ | — | — | — | — | — | — |
| iPhone / Android USB import | ✓ | — | Partial | Partial | — | — | Partial |
| Live ingest (tethered / Wi-Fi hot folder) | ✓ | ✓ | — | — | — | ✓ | — |
| Culling and workflow | |||||||
| First-class video culling | ✓ | Basic preview | Partial | Partial | — | — | Partial |
| Duplicate finder (exact + visual similarity) | ✓ | — | — | ✓ | Similar-shot grouping | — | ✓ |
| Split Grid (two folders side by side) | ✓ | Multiple windows | — | Light table | — | — | — |
| Polished pro UX (modern UI, fast culling) | ✓ | ✓ | Dated | Dated | ✓ | ✓ | ✓ |
| On-device AI | |||||||
| On-device AI (semantic search, face detection, smart stacking) | ✓ | — | — | Face + AI auto-tags | Cloud / sub | Cloud | AI keywords + faces |
| AI-generated image detection (is this photo real?) | ✓ add a model | — | — | — | — | — | — |
| AI generation metadata (A1111, ComfyUI, Midjourney) | ✓ | — | — | — | — | — | — |
| Privacy | |||||||
| Runs locally, no cloud upload | ✓ | ✓ | ✓ | ✓ | ✓ | Cloud | ✓ |
| Privacy scan + EXIF / GPS scrub | ✓ | Metadata edit | Metadata edit | Metadata edit | — | — | Metadata edit |
| Platform and licensing | |||||||
| Cross-platform (Mac + Win + Linux) | ✓ | Mac + Win | Mac + Win | ✓ | Mac + Win | Mac + Win | Mac + Win |
| Linux support | ✓ | — | — | ✓ | — | — | — |
| Multi-lingual support | ✓ | — | ✓ | ✓ | — | — | ✓ |
| Pricing | Free + $99–$179/yr | $149/yr · $299 | Free | Free (open source) | Sub only | Credits / sub | Both |
| Keep your version if you stop paying | ✓ | ✓ | ✓ | ✓ | — | — | ✓ |
Compared values reflect publicly documented features as of 2026. Cullstack is positioned for photographers who manage their own files across multiple storage systems and want machine-assisted speed without giving up the final call, overlapping with Aftershoot on AI helpers but not trying to be a fully-automated culler, and complementary to RAW developers (Lightroom / darktable / RawTherapee). Free Cullstack also competes directly with Adobe Bridge and digiKam for the local-files-only use case. Evoto is a cloud-based AI editor that recently added culling; its core editing uploads your photos to Evoto's servers, and whether its culling runs on-device is not publicly documented.
30-day free trial. Full feature set. No credit card. No account.
Not sure which Mac? Apple menu → About This Mac. “Apple M1/M2/M3…” is Apple Silicon, “Intel” is Intel.
Prefer no installer? Grab the portable build. Unzip and run, no admin rights needed: Windows · Linux.
Need an older build? See previous versions.
Cullstack is signed and notarized on macOS. During Early Access the Windows and Linux builds are not yet code-signed, so Windows will show a SmartScreen “unknown publisher” warning on first run, code-signing arrives with a future release.
"Early Access" is about the product's maturity: the app is functional and we use it daily on real shoots, but it's young and moving fast, so expect frequent updates, the occasional rough edge, and a responsive team if something breaks.
As an early buyer you get full Pro features for $99 in your first year, $80 off the $179 Pro price that applies at release. What you're buying is an Annual License with Perpetual Use Rights. At release, pricing becomes two paid tiers:
Prefer to try before you buy? The 30-day free trial unlocks the full Pro feature set. No credit card, no account.
Yes, any time. You pay the difference, prorated for whatever is left of your current term, and your renewal date doesn't change. At today's prices that's about $80 to move from Standard to Pro mid-term.
Early Access includes the full Pro feature set, so you renew as Pro: 40% off the current Pro price, which is $107/yr at today's pricing. The Early Access price covers your first year; the renewal discount then applies on the same terms as every other customer.
Cullstack is an annual license with perpetual use rights. The version you've licensed keeps working forever, even if you stop renewing. Activation is verified at purchase and re-checked occasionally for refund/fraud protection, but the app continues to function with a long offline grace window. We will publish a final unlock build if we ever wind down the product.
Yes. Each license includes 3 device activations. You can deactivate from a machine you're retiring (Help → Manage License → Deactivate) and free up a slot for a new install. If you've run out of slots due to lost devices, email support@aviastone.com and we'll reset them.
Yes. 10% off for verified students, educators, and registered non-profits. Email sales@aviastone.com with proof of status.
Photo Mechanic is the gold standard for fast metadata-driven culling , particularly for sports and news photographers with deep IPTC workflows. Cullstack focuses on a different problem: helping photographers cull across multiple storage systems without consolidating to local first. We work with NAS, SFTP, Dropbox, OneDrive, Google Photos, iCloud, and your phone in one window.
Yes. Cullstack ships on-device AI helpers: semantic image search ("sunset over water"), face detection, closed-eye flagging, NSFW flagging, and AI auto-stacking by visual similarity, capture-time bursts, or face identity (with optional ArcFace / MobileFaceNet models).
What Cullstack doesn't do is pick your keepers for you. Aftershoot's lane is "give me the AI's picks and I'll refine"; Cullstack's lane is "give me AI hints + the fastest possible cockpit to drive my own cull." If you want the machine to decide, Aftershoot's a better fit. If you want machine-assisted speed but keep the final eye on every frame, that's us.
All models run locally, so no photos ever leave your machine, no Cullstack server in the loop. Compatible with the strictest client NDAs.
No. The interface is available in Spanish, French, German, Italian, Portuguese, Russian, and Chinese as well as English. Cullstack follows your system language on first run, and you can change it any time in Settings. Anything not yet translated falls back to English rather than showing a blank.
Yes, via Live Ingest. Point your camera's tether software, a Wi-Fi/FTP card, or an SD auto-import at a watch folder, and Cullstack imports each new frame the moment it finishes writing , auto-renamed from a template, stamped with your IPTC creator and copyright, and jumped to in the grid so you cull as you shoot. It's the same hot-folder live-ingest workflow Photo Mechanic pioneered, with write-completion detection so a half-transferred frame is never imported truncated.
Cullstack doesn't drive the camera itself (firing the shutter or changing ISO/aperture from the computer). That's full tethered capture, which Capture One and Lightroom handle. For the cull-as-you-shoot workflow most event, studio, and news photographers actually use, Live Ingest covers it.
Yes. There's an AI filter in the grid filter bar with three modes: Any, AI only, and Non-AI only. Photos detected as AI also get a magenta ✦ AI badge in the top-right of their grid cell. Useful for separating client deliverables from moodboard inspiration, auditing a delivery folder before sending, or tagging stock-license-clean photos.
Detection runs in six layers, fastest first, and stops on the first match:
Tiers 1–5 are built in and run automatically. In testing across mixed libraries they catch the large majority of AI photos on their own.
Pick a photo of someone (select it in the grid, or choose a file) and Tools → AI → Find this person filters the grid to their other shots. It matches on facial identity (the geometry of the face), not clothing, pose, or background, so it follows a person across outfit and scene changes. It does need a visible, detectable face: a shot from behind, or with the face turned fully away, won't match. (Requires the two face models listed in the table above.)
The Match slider runs from Loose to Strict. It mostly controls how many true shots of the person you keep, not how many wrong faces sneak in, and different people score far below the same person, so mistaken matches are rare across the whole range:
A good workflow: leave it at the balanced default, then nudge it toward Loose if a few shots you expected are missing, or toward Strict if you want only the surest matches. Hit Clear to drop the filter.
All connections live in one place: open Connection → Manage Connections…, then click the button for the backend you want: Add WebDAV…, Add SFTP…, Add Dropbox…, Add OneDrive…, or Add Google Photos…. Fill in the fields, save, then Connect. Each profile becomes its own branch in the sidebar tree (☁ WebDAV, 🔒 SFTP, 📦 Dropbox, ☁ OneDrive, 📷 Google Photos) and you can browse, copy, move, and stack across them the same as a local folder.
~/.ssh/id_ed25519); PuTTY .ppk keys
aren't read directly, convert one first with PuTTYgen
(Conversions → Export OpenSSH key). An optional
passphrase unlocks encrypted keys.
~/Library/Mobile Documents/com~apple~CloudDocs)
. Just navigate to it in the sidebar tree like any other
local folder. iCloud Photos surfaces automatically on macOS
as the iCloud Photos sidebar entry once you
grant Photos library access on first launch.
Connection details are stored on your own machine, in
~/.cullstack/connections.json. Passwords and key
passphrases are obfuscated in that file but not
encrypted, so for sensitive servers we recommend SSH key
authentication with a passphrase you type at connect time. OAuth
tokens for Dropbox, OneDrive, and Google Photos are likewise held
locally. Cullstack never relays any credential through an
Aviastone server.
Plain drag-and-drop in Cullstack copies by default, the safer choice for photo workflows, since the original always stays put. Hold Shift (or ⌘ on macOS / Ctrl on Windows) at the start of the drag to move instead. This applies to every backend: local folders, network drives (WebDAV/SFTP), and cloud (Dropbox/OneDrive). External drags in from Finder or Explorer follow the OS's own copy-vs-move conventions.
Every model is an optional one-click download from Settings → AI → Plug-Ins, and each row names its licence before you install it. Nothing is bundled in the installer and nothing runs until you ask for it.
Full model list, licences, and how to use your own — including the ONNX requirements if you want to install a detector we do not ship.
Cullstack reads your photos from wherever they already live: we never copy them to a Cullstack server. Ratings, tags, and collections are stored in a local database on your machine, and Cullstack can write standard XMP sidecars next to your photos so Lightroom, Bridge, and Photo Mechanic can read them. No telemetry, no cloud sync.
No. Cullstack reads and writes your photos where they already live: local drives, your NAS, your own SFTP / WebDAV server, or the cloud accounts you authenticate. Nothing is uploaded to a Cullstack-controlled server. This is a contractual win for wedding and portrait photographers whose NDAs prohibit transmitting images to third-party services.