https://github.com/einaeffchen/omoide
Free and Open-Source media manager
https://github.com/einaeffchen/omoide
face-detection library media
Last synced: 2 days ago
JSON representation
Free and Open-Source media manager
- Host: GitHub
- URL: https://github.com/einaeffchen/omoide
- Owner: EinAeffchen
- License: other
- Created: 2021-08-13T06:09:40.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2026-02-02T09:44:01.000Z (2 days ago)
- Last Synced: 2026-02-02T11:48:31.080Z (2 days ago)
- Topics: face-detection, library, media
- Language: TypeScript
- Homepage:
- Size: 65.3 MB
- Stars: 242
- Watchers: 5
- Forks: 13
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
[](https://buymeacoffee.com/einaeffchen)
# Omoide
**Offline-first Memory Organization & Intelligent Discovery Engine**
Omoide is a self-hosted, offline-capable photo and video library designed for privacy and longevity. It uses local AI to organize your media, making it searchable and discoverable without sending a single byte to the cloud.
---
## 📥 Download
**[Download the latest release for Windows](https://github.com/EinAeffchen/Omoide/releases/latest)**
*Also available as a [Docker container](#-quick-start-docker) for Linux/NAS.*
---
## ✨ Key Features
### 🔒 Private & Offline
- **100% Local**: No cloud services, no subscriptions. Your data stays on your drive.
- **Offline-First**: Works fully offline after the initial model download.
- **Portable**: Run it as a desktop app on Windows or host it via Docker.
### 🧠 Intelligent Organization
- **Face Recognition**: Automatically detects and clusters faces. Name them once, and Omoide finds them everywhere.
- **Semantic Search**: Search for "dog in the snow" or "birthday party" using natural language. Powered by OpenCLIP.
- **Auto-Tagging**: Optional AI categorization of your images.
- **Co-appearance Graph**: Visualize how people in your library are connected.
### ⚡ Powerful Tools
- **Duplicate Detection**: Find and clean up exact or near-duplicates using perceptual hashing.
- **Map View**: Explore your photos on a world map. Edit or add GPS data directly.
- **Video Support**: Scans and plays videos, extracting scenes for easy preview.
- **Orphan Face Management**: Review and merge fragmented face clusters.
### 🛠️ Flexible Management
- **Multiple Profiles**: Switch between different libraries easily.
- **Read-Only Mode**: safely serve your archive to others.
- **Background Tasks**: Robust task management for scanning and processing large libraries.
---
## 📸 Screenshots
| Library Grid | Media Detail |
|:---:|:---:|
|  |  |
| Semantic Search | People Overview |
|:---:|:---:|
|  |  |
| Map View | Co-appearance Graph |
|:---:|:---:|
|  |  |
---
## 🚀 Quick Start (Docker)
Perfect for NAS or always-on servers.
1. **Copy the template**:
```bash
cp .env.template .env
cp omoide.env.example omoide.env
```
2. **Configure `.env`**:
Set your media directories and ports.
Ensure the folders you set in your .env actually exist in your system, to prevent permission issues on automatic creation.
3. **Run**:
```bash
docker compose up -d
```
4. **Open**: `http://localhost:8123`
> **Note for arm64**: Ensure `sqlite-vec` matches your platform (e.g. 0.1.7a2) and build with `docker buildx` or `make build-image-arm64`.
---
## 🖥️ Quick Start (Desktop Development)
Requirements: Python 3.12+, FFmpeg, Node 18+.
```bash
# 1. Build Frontend
cd frontend && npm ci && npm run build && cd ..
# 2. Run Backend
uvicorn app.main:app --host 127.0.0.1 --port 8123
```
To build a standalone binary:
```bash
pyinstaller main.spec
```
---
## 🧩 How It Works
- **Backend**: FastAPI + SQLModel (SQLite).
- **Vector Search**: `sqlite-vec` for high-performance similarity search.
- **AI Models**:
- **Vision**: OpenCLIP for embeddings and search.
- **Faces**: InsightFace (ONNX) for detection and recognition.
- **Clustering**: HDBSCAN for grouping faces.
- **Frontend**: React + MUI.
---
## 📄 License
**PolyForm Noncommercial License 1.0.0**
Free for personal, non-commercial use. See `LICENSE.md` for details.
---
## ❤️ Support
Omoide is a passion project maintained in my free time. If it helps you rediscover your memories, consider supporting its development!
[**☕ Buy Me a Coffee**](https://buymeacoffee.com/einaeffchen)