Windows Desktop App

Sort thousands of photos
by location, automatically.

Point it at a folder. AI reads signs, recognizes landmarks, checks GPS coordinates, and organizes everything into clean folders — like Colorado / Denver / Red Rocks / 2025‑04‑07.

No subscription Uses your own API key Free tier via Gemini (where available)
DKPhotoSorter
DKPhotoSorter application window showing settings, directory configuration, and sorting controls
Windows 10 / 11
13 Image Formats
530+ Tests Passing
Free Tier (where available)

From chaos to clarity in minutes.

Before
Unsorted Photos /
IMG_4521.jpg
IMG_4522.HEIC
DSC_0093.jpg
Photo-2024-03-15.png
IMG_4523.jpg
Screenshot_20240315.png
IMG_4890.HEIC
DSC_0127.jpg
photo (1).jpg
IMG_4524.jpg
... and 847 more files
After
Sorted Photos /
Bahamas / Nassau / Atlantis Paradise Island / 2023-07-04
Colorado / Colorado Springs / Garden of the Gods / 2024-12-27
Colorado / Denver / Red Rocks / 2023-03-13
Cruise Ship / 2023-07-04
Holiday / Halloween / 2024-10-31
Home / 2024-01-15
North Dakota / Fargo / Family / 2024-01-15
Screenshot / 2023-03-04

Three steps. Zero manual sorting.

No more dragging files into folders for hours. Let AI do what it's best at.

01

Pick your folders

Select a source folder of unsorted photos and choose where you want the organized output to go. The app scans all subfolders recursively.

02

AI analyzes every photo

Each photo is analyzed by Google Gemini or OpenAI — reading signs, recognizing landmarks, identifying venues, and checking GPS coordinates from EXIF data.

03

Photos sorted into folders

Photos are automatically organized into a clean hierarchy: State / City / Venue / Date for trips, or category folders like Home, Family, and Holiday for everyday shots.

Everything you need. Nothing you don't.

🧠

Choose Your AI Provider

Switch between Google Gemini (free tier where available) and OpenAI anytime. Each uses its own API key stored securely on your machine. No vendor lock-in.

DKPhotoSorter with Google Gemini provider selected DKPhotoSorter with OpenAI provider selected
Original photo files
STAYS LOCAL
Folder paths
STAYS LOCAL
API keys (each sent only to its own provider)
STORED LOCALLY
Sort logs, cache & undo data
STAYS LOCAL
Thumbnails + filename + GPS + date → AI provider
SENT (HTTPS)
GPS coordinates → Overpass API
SENT (HTTPS)
Home address → Nominatim (1-2 calls)
SENT (HTTPS)
License key → Gumroad (every 7 days)
SENT (HTTPS)
🔒

Your Original Photos Never Leave Your Computer

Only resized thumbnails and photo metadata are sent to the AI for analysis — never your originals. We don't run servers or collect any data.

Cache Everything. Undo Anything.

Results cached by file content and model. Re-running costs nothing. Dry run first, then real run — the analysis is already paid for. Made a mistake? One-click undo restores everything.

Re-analysis cost

$0.00

Undo Last Sort
🗺

Trip Detection + Geo Inference

Photos with GPS far from home get State/City prefixes automatically. Non-GPS photos with recognizable landmarks (Chicago Skyline, Statue of Liberty) also get geographic hierarchy via AI geo inference. International trips get Country/City.

Address verification dialog showing multiple location matches
🕓

Scheduled Sorting

Schedule sorts to run at a specific time. Perfect for Gemini free tier — set it to start after the daily quota resets at midnight Pacific.

🧹

Subject Normalization

900+ built-in overrides clean up AI output — hotels become Travel, restaurants get venue name subfolders, vehicles/beverages/airports auto-detected, Disney parks grouped together, beaches and national parks organized, screenshots and receipts grouped, spelling deduped.

🛡

NSFW Pre-Filter

Photos from known NSFW folders are routed to a separate folder without ever being sent to the AI — protecting your privacy and saving API cost.

📈

Real-Time Cost Estimates

See exactly what a sort will cost before you run it. Set a spending limit. Track cost per-model with live progress during the sort.

Cost estimate showing $5.04 for 4,638 photos with Gemini Flash
🌐

Offline Geocoding

Bundled GeoNames database with 400K+ places converts GPS to city names instantly — no internet needed for reverse geocoding.

📋

Duplicate Detection

Exact duplicates detected by SHA-256 hash during the initial scan, before AI analysis. Also checks against photos already sorted in previous runs. Duplicates routed to a separate folder. Enabled by default.

📁

Non-Photo File Sorting

Videos, audio, documents, spreadsheets, presentations, and archives are automatically detected and sorted into category folders — no AI analysis needed, no extra cost.

Starting at pennies per hundred photos.

One-time purchase for the app. You bring your own API key — these are estimated direct costs from Google and OpenAI based on current pricing.

OpenAI

GPT-4.1 Mini

Pennies / 100 photos

No free tier — pay-as-you-go

  • API data never used for training
  • No daily request limits
  • Multiple model tiers available
  • 30-day retention for abuse monitoring only

Enable billing for faster sorts with more workers and higher detail:

DKPhotoSorter with billing enabled showing 4 workers, high detail, and faster estimated time

Estimate your cost

Photos: 1,000

Gemini Flash

$1.90

Flash Lite

$0.40

OpenAI

$3.20

Estimates based on current API pricing from Google and OpenAI. Actual costs may vary. Check your provider's pricing page for current rates.

Cache saves repeat runs — re-analyzing the same photos costs $0.00

Built on trust, not tracking.

0

data sent to us

400K+

offline geocoding places

100%

your keys, your machine

Only resized thumbnails are sent to the AI for analysis. Everything else stays on your computer. No servers, no analytics, no tracking.

Read our full Privacy Policy →

13 image formats supported.

Including iPhone HEIC — no conversion needed.

JPG JPEG PNG HEIC HEIF WebP AVIF TIFF TIF BMP JFIF JP2 J2K

Frequently asked questions.

Do I need an API key?
Yes — you bring your own. Google Gemini offers a free tier (no credit card required) that can sort about 17 photos per day. For larger collections, you can enable billing on your Gemini key or use OpenAI (pay-as-you-go).
Is this a subscription?
No. DKPhotoSorter is a one-time purchase. The only ongoing cost is the API usage from Google or OpenAI, which you control directly. Re-analyzing cached photos costs nothing.
What happens to my photos?
Your original photo files never leave your computer. Only resized thumbnails and photo metadata (filename, date, GPS) are sent to the AI for analysis. The developer collects zero data — no servers, no analytics, no tracking.
Can I undo a sort?
Yes. Every sort creates a manifest file. Click Undo in the app and all photos are moved back to their original locations. You can also use Dry Run mode to preview the organization before committing.

Stop sorting photos manually.

One-time purchase. No subscription. Your API key, your data, your machine.