PhotoSort Features

Everything you need to turn a chaotic photo library into a clean, browsable archive — automatically, and without ever uploading a single photo.

What PhotoSort Does For You

PhotoSort combines AI image understanding, EXIF metadata, and GPS data to sort thousands of photos into a folder structure that actually makes sense.

Date & EXIF Sorting

PhotoSort reads the EXIF metadata embedded in every photo — the date, time, and GPS coordinates written by your camera or smartphone. Photos are sorted first by year, then by month, giving you a reliable chronological baseline even before AI event grouping kicks in.

If EXIF data is missing, PhotoSort falls back to the file's last-modified date so no photo gets left behind.

AI Content Classification

Using the open-source CLIP model running locally in your browser, PhotoSort understands what is in each photo. It detects 15 content categories including pets, selfies, food, nightlife, concerts, nature, beach, skiing, city sightseeing, parties, weddings, shopping, home interiors, airports, and sports.

This classification shapes the event names applied to each folder — no generic "Album 1" labels.

Automatic Event Detection

PhotoSort groups your photos into sessions based on time gaps. Photos taken within 4 hours of each other belong to the same session. Sessions are then classified as either trips (away from home) or local events (at home), and each gets a descriptive human-readable name.

Result: folders like 2025/06 - Rome Trip or 2025/11 - Wedding Munich instead of a flat dump of files.

Trip Detection

Enter your home city once during setup. PhotoSort compares the GPS location of each photo session against your home city using reverse geocoding via OpenStreetMap Nominatim. Sessions that took place far from home are tagged as trips and named accordingly — even if you forgot where you were.

No account needed. The geocoding request goes to OpenStreetMap's public API — never to a PhotoSort server.

Trash & Screenshot Filtering

Before sorting begins, CLIP scans every file and filters out photos that aren't worth keeping in your organized library: screenshots, scanned receipts, documents, memes, and blurry throwaway shots. These are either skipped or placed in a separate review folder so you can decide later.

This keeps your sorted output clean without forcing you to manually cull thousands of files.

Complete Privacy — Photos Never Leave Your Device

The CLIP AI model runs entirely inside your browser using Transformers.js and WebAssembly. Your photos are read locally using the browser's File System Access API. Nothing is uploaded — not your photos, not your folder names, not your GPS data.

Gemini AI is used only to generate folder names. It receives short text descriptions of your sessions — never actual photo files.

One-Time Purchase — No Subscription

Pay once (€9.99) and use PhotoSort forever. No monthly fees, no annual renewal, no account required to keep using it. The AI model is cached in your browser after the first download — you don't need an internet connection to sort photos after that.

Non-Destructive — Copies Only

PhotoSort never moves, renames, or deletes your original files. It creates a clean copy of each photo into the organized output folder you choose. If you don't like the result, simply delete the output folder and try again. Your originals are always safe.

Fast Local Processing

Because everything runs in your browser, there's no upload bottleneck. Processing speed depends on your CPU and GPU, but PhotoSort processes thousands of photos without any network round-trips slowing it down. The AI model (~350MB) is downloaded once on first use and cached permanently.

How AI Classification Works

PhotoSort uses two AI systems that work together: CLIP for visual understanding, and Gemini for naming.

CLIP — Visual Understanding in the Browser

CLIP (Contrastive Language–Image Pretraining) is an open-source model originally developed by OpenAI and made available for browser use by Hugging Face via Transformers.js. PhotoSort uses the Xenova/clip-vit-base-patch32 checkpoint.

CLIP works by comparing your photo against a set of text descriptions — for example, "a photo at a beach" vs. "a screenshot of a website". It assigns a confidence score to each description and picks the best match. This is called zero-shot image classification: the model was never specifically trained on your photos, but it understands images well enough to categorize them accurately.

The model runs in WebAssembly inside Chrome or Edge. Your photos never leave RAM — they're processed frame by frame and the results are stored only in memory until you confirm the sort.

What CLIP Detects

  • Pets and animals
  • Selfies and portraits
  • Food and restaurants
  • Nightlife and bars
  • Concerts and live music
  • Nature and hiking
  • Beaches and water
  • Skiing and snow sports
  • City sightseeing and landmarks
  • Parties and celebrations
  • Weddings and formal events
  • Shopping and retail
  • Home and indoor life
  • Airports and travel hubs
  • Sports and fitness
  • Screenshots, receipts, and documents (filtered out)

Gemini — Smart Folder Naming

Once CLIP has classified your photos and the sessions are grouped, PhotoSort sends a brief text summary of each session to Google's Gemini API. This summary contains things like: the detected content tags, the approximate location (city/country from geocoding), and the date range.

No photos are ever sent to Gemini. Only short text descriptions are transmitted, and they contain no personally identifiable information beyond city-level location data.

Gemini responds with a concise, human-readable event name like "Weekend in Lisbon", "Family Christmas Dinner", or "Skiing in the Alps". These names become the folder labels in your sorted output.

If Gemini is unavailable or the API call fails, PhotoSort falls back to a structured default name based on location and content tags — for example, 2025-08 - Beach Photos Rome.

OpenStreetMap — Geocoding Without Google

PhotoSort uses the free OpenStreetMap Nominatim API to convert GPS coordinates from your EXIF data into readable place names. A request like lat=48.8566, lon=2.3522 returns "Paris, France". This result is used both for trip detection and for Gemini naming.

Nominatim is a public, privacy-respecting API. No API key is required and no account is needed.

Supported File Formats

PhotoSort handles all major image and video formats captured by smartphones, DSLRs, and action cameras.

Format Type Common Source EXIF Support
JPEG / JPG Image Smartphones, DSLRs, compact cameras Full EXIF + GPS
PNG Image Screenshots, edited photos Limited (no GPS)
HEIC Image iPhone (iOS 11+) Full EXIF + GPS
WebP Image Android cameras, web downloads Partial EXIF
TIFF / TIF Image RAW exports, professional cameras Full EXIF + GPS
MP4 Video Smartphones, action cameras Date metadata
MOV Video iPhone, Mac QuickTime Date metadata
AVI Video Older cameras, GoPro Date metadata
MKV Video Screen recordings, downloads Limited
M4V Video iTunes video exports Date metadata

RAW camera formats (CR2, ARW, NEF, DNG) are not currently supported but are on the roadmap.

Ready to Organize Your Photo Library?

One-time purchase. No subscription. Photos never leave your computer.

Get PhotoSort for €9.99 →

Works in Chrome and Edge on Windows, Mac, and Linux.