ncoevoet/facet

Local AI photo scoring, culling, and gallery — score, organise, and explore your library with face recognition and semantic search. No cloud, no subscriptions.

Facet is a self-hosted photo analysis and culling tool. It runs entirely on your own machine, reads a folder of photos, scores each one across 9 quality dimensions (aesthetics, composition, sharpness, exposure, etc.), and shows the results in a web gallery you can open in any browser. No cloud, no account, no API keys — every photo stays on your hardware.

The core workflow:

  1. Scan — Point Facet at a photo folder. It analyzes each image for quality, composition, and faces. Supports JPG, HEIC, 10 camera RAW formats, PNG, GIF, and more.
  2. Browse — Open the web gallery to explore with filters, search, and multiple layouts.
  3. Cull — Facet groups rapid-fire shots (bursts), flags closed eyes, finds visually similar photos, and surfaces the strongest picks, so you can quickly delete the weak ones.

Key features, grouped:

  • Scoring: 9 metrics per photo, with weights tuned per content type (portrait, landscape, macro, etc.). Hover any photo to see a tooltip with the score breakdown and EXIF data.
  • Culling: burst detection with auto-best selection, sequence awareness (panoramas/brackets are kept whole), similarity grouping, chronological "scene" grouping, one-click auto-cull with a dry-run preview, genre presets (sports/wedding/concert), blink detection, duplicates via perceptual hashing, and a "junk sweep" that catches screenshots/documents/memes.
  • Browsing: mosaic and grid views, date/camera/lens/person/rating filters, natural-language semantic search ("sunset on the beach"), a timeline view, geotagged map, themed slideshow "capsules", "On This Day" memories, and folder navigation.
  • Organizing: automatic face recognition with person grouping and merge suggestions, manual and smart albums, star ratings, AI tags, batch operations with undo, and keyboard shortcuts.
  • Understanding: dashboards for equipment/categories/timeline, an AI critique of each score, weight tuning with A/B photo comparison, a personal Taste ranker that learns from your decisions, histogram display, and AI captions.
  • Sharing: shareable album links (no login for recipients), client proofing mode with comments, phone auto-upload via WebDAV, photo-frame/kiosk feeds, static portfolio export, and CSV/JSON export.
  • More: dark/light modes with 10 accents, mobile-responsive interface, installable as a PWA, virtualized gallery (stays fast at 100k+ photos), resumable scans, 7 UI languages, multi-user support, and plugins/webhooks.

Hardware realities:

  • Most features run on any CPU-only machine — scoring, face detection, search, albums, metadata export.
  • Apple Silicon automatically uses the GPU via PyTorch's Metal backend.
  • An NVIDIA GPU (16 GB or 24 GB VRAM) unlocks the strongest AI models: TOPIQ aesthetic scoring, SigLIP embeddings, VLM tagging, AI captions/critique, and subject saliency.
  • No local GPU? You can point the AI text features at a remote Ollama or OpenAI-compatible server.

Who it's for:

  • People with large local photo libraries who want to find their best shots and trim bursts and near-duplicates.
  • Those who value privacy and already use Lightroom, darktable, digiKam, or Immich — Facet writes ratings and tags to XMP sidecars (originals untouched by default) and reads external edits back, with a Lightroom plugin for two-way sync.
  • It is not a mobile cloud app, does not edit RAW files, and requires some setup (Python installation; the best models need a GPU).

Quick start: Docker is recommended — clone, copy .env.example, set your photos directory, run docker compose up, open http://localhost:5000. A no-Docker route exists for Linux/macOS via install.sh. First-run walkthrough, full docs, and configuration references are in the docs/ folder.

License: MIT for Facet's own code. Some default AI models (TOPIQ, InsightFace weights) are non-commercial; a commercial licensing mode routes to permissively licensed replacements automatically.

Related

  • Project
  • Project
  • Project
  • Project