selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

facet logo

Self-host facet

v1.25.0

AI-powered photo scoring and culling gallery

ReleaseOpen SourceOther
Updated9 hours ago
LanguagePython
Setup difficultyModerate
MobilePWA
ThemeDark mode
Stars
323
CPU
Any (x86_64/ARM64)
RAM
8 GB minimum, 12 GB recommended for CPU profiles
Storage
Depends on photo library size; model caches 3-24 GB
Port
5000 (Web gallery viewer)
Requires
Node.js, Python
Docker
ghcr.io/ncoevoet/facet:latest
Install with Docker Compose
Facet in action — gallery, per-photo scoring, culling, capsules, timeline, map, and statsHover tooltip with score breakdownBurst culling viewSimilarity groups for cullingFilter sidebarSemantic search resultsFilter sidebar with every option expandedAlbums — manual and smart collectionsManage Persons pagePerson gallery

What is facet?

Facet is a self-hosted photo analysis and culling engine that scores images across nine quality dimensions including aesthetic quality, composition, face quality, and technical sharpness. It provides a web-based gallery for browsing, filtering, and searching photos using natural language queries. Key features include burst detection and auto-culling, face recognition with blink detection, semantic search, timeline and map views, themed capsules (slideshows), album management, star ratings, and AI-powered critique. It works with Lightroom, darktable, and digiKam through XMP sidecars, supports phone auto-upload via WebDAV, and offers an MCP endpoint for AI agents. Facet runs on CPU or GPU (NVIDIA/Apple Silicon) via Docker or native Python installation. The code is MIT licensed, though some default models have non-commercial licenses.

Should you self-host facet?

facet scores 50/100 on selfhost.directory (how scoring works) and ranks #21 of 41 in Photo Management. It has 323 GitHub stars.

It shipped 24 stable releases in the past year. The latest, v1.25.0, came out on 27 October 2026. New versions land roughly every 2 days.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is Other-licensed and written mostly in Python.

Its closest alternative on selfhost.directory is Ente (81/100, 29 702 stars). It scores higher overall, so compare the two before you pick. See facet vs Ente side by side.

Features

  • AI Photo Scoring
  • AI Tags & Content Categories
  • Album Management
  • Album Sharing & Client Proofing
  • Burst Detection & Auto-Culling
  • Face Recognition
  • MCP endpoint for AI agents
  • Multi-User Mode
  • Phone Auto-Upload (WebDAV)
  • Photo Frame / Kiosk Endpoint
  • Semantic Search
  • Star Ratings & Favorites
  • Web Gallery
  • XMP Metadata Interop

facet README

How to install facet

Install facet with Docker Compose

Docker, Docker Compose; NVIDIA Container Toolkit for GPU
Environment variables
PHOTOS_DIR, PORT, DB_PATH, FACET_VRAM_PROFILE, FACET_RETRAIN_THRESHOLD, FACET_RETRAIN_IDLE_S

git clone https://github.com/ncoevoet/facet.git && cd facet cp .env.example .env # open .env and set PHOTOS_DIR to your photo folder docker compose up -d # then open http://localhost:5000

Auto-detects hardware; use docker-compose.legacy.yml, docker-compose.8gb.yml, docker-compose.16gb.yml, or docker-compose.24gb.yml for specific GPU profiles

facet releases & version history

More in Photo Management

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…