Skip to main content

AI-powered face search for photo libraries

Project description

๐Ÿ” face-search

Find photos of anyone in your library โ€” in seconds.

PyPI version Python 3.8+ License: AGPL-3.0 Downloads

AI-powered face search that actually works. No cloud. No subscriptions. Just results.

Installation โ€ข Quick Start โ€ข GUI Guide โ€ข CLI Reference โ€ข Python API


๐ŸŽฌ The Problem

You have 50,000+ photos. Your mom asks: "Can you find all photos of grandma from the last 10 years?"

Without face-search: Hours of manual scrolling ๐Ÿ˜ซ
With face-search: 30 seconds โšก

pip install face-search
face-search build ~/Photos
face-search search --ref ./grandma_photo.jpg
# Done. โœ…

๐Ÿ—๏ธ How It Works

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                           face-search Architecture                          โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

  ๐Ÿ“ Your Photos              ๐Ÿ” Reference Photo            ๐ŸŽฏ Results
  โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€              โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€            โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
       โ”‚                            โ”‚                           โ–ฒ
       โ–ผ                            โ–ผ                           โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”              โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                    โ”‚
โ”‚   BUILD     โ”‚              โ”‚   SEARCH    โ”‚                    โ”‚
โ”‚   Phase     โ”‚              โ”‚   Phase     โ”‚                    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜              โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜                    โ”‚
       โ”‚                            โ”‚                           โ”‚
       โ–ผ                            โ–ผ                           โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”              โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”              โ”Œโ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”
โ”‚    Face     โ”‚              โ”‚    Face     โ”‚              โ”‚   FAISS   โ”‚
โ”‚  Detection  โ”‚              โ”‚  Detection  โ”‚              โ”‚  Nearest  โ”‚
โ”‚  (OpenCV)   โ”‚              โ”‚  (OpenCV)   โ”‚              โ”‚ Neighbor  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜              โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜              โ”‚  Search   โ”‚
       โ”‚                            โ”‚                     โ””โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”˜
       โ–ผ                            โ–ผ                           โ–ฒ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”              โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                    โ”‚
โ”‚  FaceNet512 โ”‚              โ”‚  FaceNet512 โ”‚                    โ”‚
โ”‚  Embedding  โ”‚              โ”‚  Embedding  โ”‚                    โ”‚
โ”‚  (512-dim)  โ”‚              โ”‚  (512-dim)  โ”‚                    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜              โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜                    โ”‚
       โ”‚                            โ”‚                           โ”‚
       โ–ผ                            โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   FAISS     โ”‚
โ”‚   Index     โ”‚โ—„โ”€โ”€โ”€ Persisted to disk (face_index.faiss)
โ”‚  (L2 dist)  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿง  The Tech Stack

Component Technology Why
Face Detection OpenCV / RetinaFace Fast + accurate bounding boxes
Face Embeddings FaceNet512 512-dim vectors, 98.4% accuracy
Vector Search FAISS Handles 1M+ vectors, sub-second search
Multi-Ref Fusion Average Distance Multiple photos = stricter matching
GUI Gradio Beautiful web UI, zero config

๐Ÿ”ฌ Multi-Reference Magic

When you provide multiple reference photos, face-search doesn't just look for matches to ANY of them โ€” it requires matches to ALL of them:

Single Reference Photo:
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Photo  โ”‚โ”€โ”€โ”€โ”€โ”€โ”€โ–บ Search โ”€โ”€โ”€โ”€โ”€โ”€โ–บ Results (may include false positives)
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Multiple Reference Photos (RECOMMENDED):
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Photo 1 โ”‚โ”€โ”€โ”€โ”
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”‚    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Photo 2 โ”‚โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ–บโ”‚   Average   โ”‚โ”€โ”€โ”€โ”€โ”€โ”€โ–บ Results (much more accurate!)
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ”‚    โ”‚  Distance   โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”‚    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
โ”‚ Photo 3 โ”‚โ”€โ”€โ”€โ”˜         โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜             โ”‚
                        โ–ผ
              Must match ALL refs
              to score well

Why this works:

  • Person A might look like Person B from one angle
  • But Person A WON'T look like Person B from ALL angles
  • Multiple angles = unique "face signature"

โœจ Why face-search?

The Killer Use Case:

"Find every photo of grandma from 50,000 photos in 30 seconds"

๐Ÿ†š face-search vs. The Alternatives

Feature face-search Google Photos Apple Photos Amazon Photos
Cost Free forever Free (15GB) / $3+/mo Free (5GB) / $1+/mo Free (5GB) / $2+/mo
Privacy 100% local Trains AI on your photos Cloud sync Cloud sync
Works Offline โœ… Always โŒ Needs internet โš ๏ธ Limited โŒ Needs internet
Own Your Data โœ… Full control โŒ Locked in โš ๏ธ Export pain โŒ Locked in
Custom Threshold โœ… Tunable โŒ Fixed โŒ Fixed โŒ Fixed
CLI Automation โœ… Full scripting โŒ None โŒ None โŒ None
Multi-Reference โœ… Average fusion โŒ Single face โŒ Single face โŒ Single face

๐ŸŒŸ What Makes It Special

๐Ÿš€ Zero Setup

pip install face-search
# That's it. No Docker, no databases,
# no API keys, no cloud accounts.

โšก Blazing Fast

Index: 1,000 photos/minute
Search: <100ms for 100k faces
Storage: ~2KB per face

๐Ÿ”’ 100% Private

Everything runs locally.
Your photos never leave your machine.
No internet required after install.

๐ŸŽฏ Accurate

FaceNet512: 98.4% accuracy
Multiple detectors available
Tunable thresholds

๐Ÿง  Smart Features

Feature What It Does Why It Matters
Multi-Reference Fusion Uses 3+ photos to create a "face signature" Dramatically reduces false positives
Labels System Save faces with names, search by name forever "Find all photos of Dad" โ€” one click
Co-occurrence Intelligence Tracks who appears together in photos "Mom + Dad always together" = higher confidence
Incremental Indexing Add new photos without re-indexing everything Perfect for growing libraries
CLI + GUI + Python API Three ways to use it Works for everyone โ€” tech-savvy or not

๐Ÿ“ฆ Installation

# Basic install
pip install face-search

# With GUI support (recommended)
pip install face-search[gui]

System Requirements

  • Python: 3.8+
  • RAM: 4GB minimum, 8GB recommended
  • Disk: ~50MB + index size (2KB per face)
  • OS: macOS, Linux, Windows

๐Ÿš€ Quick Start

3 Commands to Find Anyone

# 1๏ธโƒฃ Put reference photo(s) in a folder
mkdir reference_faces
cp photo_of_person.jpg reference_faces/

# 2๏ธโƒฃ Build index from your photo library (one-time)
face-search build ~/Photos

# 3๏ธโƒฃ Search!
face-search search

Output:

๐Ÿ” Searching for faces...
Found 47 matches:

  /Photos/2023/vacation/beach_001.jpg (distance: 0.312)
  /Photos/2022/birthday/party_042.jpg (distance: 0.387)
  /Photos/2021/christmas/family_003.jpg (distance: 0.401)
  ...

๐ŸŽจ GUI Guide

The GUI provides a complete visual workflow for face search.

Launch

pip install face-search[gui]
face-search gui

Opens at http://localhost:7860

GUI Workflow

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                     face-search GUI                              โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ 1๏ธโƒฃ Build    โ”‚ 2๏ธโƒฃ Reference โ”‚ 3๏ธโƒฃ Search   โ”‚ 4๏ธโƒฃ Export             โ”‚
โ”‚   Index     โ”‚   Photos     โ”‚   Results   โ”‚   Results             โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Tab 1: Build Index

Configure and build your face index:

Setting Description Recommendation
Directory Path Your photo library /Users/you/Photos
Detector Face detection model opencv (fast) or retinaface (accurate)
Workers Parallel processing 4-8 for faster indexing
Max Size Image resize 1280 (balanced) or 0 (best quality)
Incremental Add to existing โœ… Keep checked to add new photos

Tab 2: Reference Photos

Upload photos of the person you're searching for:

  • Drag & drop multiple photos
  • Use 2-3 photos from different angles
  • Good lighting helps accuracy
  • Photos are cached automatically

๐Ÿ’ก Multi-Reference Enhancement: When you upload multiple photos, face-search combines them intelligently. A photo must match ALL your references to score well, dramatically reducing false positives. More references = stricter matching!

Tab 3: Search

Find matches in your library:

Setting Range Use Case
Threshold 0.3 Very strict Only near-identical
Threshold 0.5 Balanced Same person, different photos
Threshold 0.7 Lenient Different angles/lighting

Features:

  • ๐Ÿ“„ Pagination - Browse all results (50 per page)
  • ๐Ÿ–ผ๏ธ Preview - Click any image to enlarge
  • ๐Ÿ“Š Distance scores - Lower = better match

Tab 4: Export

Export your results:

Format Output Use Case
TXT One path per line Import to other tools
JSON Paths + distances Programmatic use
Shell cp commands Copy files to folder

๐Ÿ’ป CLI Reference

build - Index Your Photos

# Basic
face-search build /path/to/photos

# Fast mode (smaller images, more workers)
face-search build /path/to/photos --max-size 640 --workers 8

# Best quality (no resize, accurate detector)
face-search build /path/to/photos --max-size 0 --detector retinaface

# Add new photos to existing index
face-search build /path/to/new/photos --incremental

# Skip tiny faces (faster, cleaner results)
face-search build /path/to/photos --min-face-size 40

All Options:

Option Default Description
--detector opencv opencv, ssd, mtcnn, retinaface
--conf 0.3 Min detection confidence (0-1)
--max-size 1280 Max image dimension (0 = no resize)
--workers auto Parallel workers
--incremental true Only index new files
--min-face-size 0 Skip faces smaller than N pixels
--index ./face_index.faiss Index file location

search - Find Faces

# Basic search
face-search search

# Strict matching (fewer false positives)
face-search search --threshold 0.3

# Get more results
face-search search --top 500

# Save to file
face-search search --output-file matches.txt

# Copy matched photos to folder
face-search search --copy --output ./my_matches

All Options:

Option Default Description
--ref ./reference_faces Reference photos directory
--threshold 0.5 Distance threshold (lower = stricter)
--top 100 Max results per reference
--output-file - Save paths to text file
--copy false Copy matches to output folder
--output ./matches Output folder for --copy

info - Show Index Stats

face-search info

Output:

๐Ÿ“Š Index Statistics
โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
  Total Faces:    32,450
  Unique Images:  18,234
  Index Size:     64.2 MB
  
๐Ÿ“ Sources:
  โ€ข /Users/you/Photos (28,000 faces)
  โ€ข /Volumes/Backup/Old Photos (4,450 faces)

gui - Launch Web Interface

face-search gui                    # Default port 7860
face-search gui --port 8080        # Custom port
face-search gui --share            # Create public link

๐Ÿ Python API

Basic Usage

from face_search import FaceFinder

# Initialize
finder = FaceFinder()

# Build index from photos
finder.build("/path/to/photos")

# Load reference faces
finder.load_references("./reference_faces")

# Search
matches = finder.search(threshold=0.5, top_k=100)

# Process results
for match in matches:
    print(f"{match.file_path} (distance: {match.distance:.3f})")

Advanced Configuration

from face_search import FaceFinder
from face_search.detectors import DetectorFactory
from face_search.embedders import EmbedderFactory

# Custom detector
detector = DetectorFactory.create("retinaface")

# Initialize with custom components
finder = FaceFinder(
    detector=detector,
    min_confidence=0.5,
    index_file="./custom_index.faiss"
)

# Build with options
finder.build(
    "/path/to/photos",
    max_size=0,           # No resize
    workers=8,            # Parallel processing
    incremental=True,     # Add to existing
    min_face_size=40      # Skip tiny faces
)

Batch Processing

from face_search import FaceFinder

finder = FaceFinder()
finder.load()  # Load existing index

# Multiple search sessions
for ref_dir in ["./person1", "./person2", "./person3"]:
    finder.load_references(ref_dir)
    matches = finder.search(threshold=0.5)
    
    print(f"\n{ref_dir}: {len(matches)} matches")
    for m in matches[:5]:
        print(f"  {m.file_name} ({m.distance:.3f})")

โšก Performance Guide

Speed vs Accuracy Tradeoffs

                    SPEED โ—„โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–บ ACCURACY
                    
  --max-size 640          --max-size 1280           --max-size 0
  --detector opencv       --detector ssd            --detector retinaface
  --workers 8             --workers 4               --workers 1
  --min-face-size 60      --min-face-size 40        --min-face-size 0
  
  โšก ~15 img/sec          โš–๏ธ ~6 img/sec              ๐ŸŽฏ ~2 img/sec

Recommended Presets

# ๐Ÿš€ FAST - Quick scan, good enough quality
face-search build ~/Photos --max-size 640 --workers 8 --min-face-size 50

# โš–๏ธ BALANCED - Default, works for most cases  
face-search build ~/Photos

# ๐ŸŽฏ ACCURATE - Best quality, slower
face-search build ~/Photos --max-size 0 --detector retinaface

# ๐Ÿ“ˆ LARGE LIBRARY - For 100k+ photos
face-search build ~/Photos --max-size 1024 --workers 8 --incremental

Performance Tips

Tip Impact How
Use SSD 2-3x faster Store photos on SSD, not HDD
Resize images 2x faster --max-size 640
Skip tiny faces 10-30% faster --min-face-size 40
Parallel workers 4-8x faster --workers 8
Incremental builds Huge for updates --incremental

๐ŸŽฏ Threshold Guide

The threshold controls how strict matching is (lower = stricter):

Distance
   โ”‚
0.2โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Nearly identical (same photo, minor edit)
   โ”‚
0.3โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Very confident match
   โ”‚             โ””โ”€ Use for: Exact person identification
0.4โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
   โ”‚
0.5โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Good match (DEFAULT)
   โ”‚             โ””โ”€ Use for: General face search
0.6โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
   โ”‚
0.7โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Possible match
   โ”‚             โ””โ”€ Use for: Different angles/lighting
0.8โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
   โ”‚
0.9โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Weak match (may include false positives)
   โ”‚
1.0โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Very different faces

๐Ÿ”ง Troubleshooting

No faces detected

# Try more accurate detector
face-search build ~/Photos --detector retinaface

# Lower confidence threshold
face-search build ~/Photos --conf 0.2

# Check image quality - blurry/dark photos are harder

Too many false positives

# Lower threshold (stricter)
face-search search --threshold 0.3

# Use more reference photos (2-3 different angles)
cp more_photos/*.jpg ./reference_faces/

Slow indexing

# Resize images
face-search build ~/Photos --max-size 640

# More workers
face-search build ~/Photos --workers 8

# Skip tiny faces
face-search build ~/Photos --min-face-size 50

Missing matches

# Higher threshold (more lenient)
face-search search --threshold 0.7

# More results
face-search search --top 500

# Better reference photos (clear face, good lighting)

๐Ÿ“Š Benchmarks

Tested on MacBook Pro M1, 16GB RAM:

Photos Faces Index Time Index Size Search Time
1,000 2,500 2 min 5 MB <50ms
10,000 25,000 20 min 50 MB <100ms
50,000 120,000 1.5 hr 240 MB <200ms
100,000 250,000 3 hr 500 MB <300ms

๐Ÿ›๏ธ Architecture

face_search/
โ”œโ”€โ”€ core.py          # FaceFinder main class
โ”œโ”€โ”€ detectors.py     # Face detection (OpenCV, RetinaFace, etc.)
โ”œโ”€โ”€ embedders.py     # Face embeddings (FaceNet512)
โ”œโ”€โ”€ index.py         # FAISS vector index
โ”œโ”€โ”€ loaders.py       # Image loading
โ”œโ”€โ”€ cache.py         # Reference caching
โ”œโ”€โ”€ models.py        # Data models
โ”œโ”€โ”€ interfaces.py    # Abstract interfaces (SOLID)
โ”œโ”€โ”€ cli.py           # Click CLI
โ””โ”€โ”€ gui.py           # Gradio GUI

Design Principles:

  • ๐Ÿ”Œ Pluggable - Swap any component (detector, embedder, index)
  • ๐Ÿ“ฆ SOLID - Clean interfaces, single responsibility
  • ๐Ÿงช Testable - Dependency injection throughout
  • ๐Ÿš€ Efficient - Batch processing, multiprocessing, caching

๐Ÿ“„ License

AGPL-3.0 - Open source with copyleft

โœ… Allowed โŒ Required
Commercial use Disclose source
Modification Same license
Distribution State changes
Private use Network use = distribution

For details: GNU AGPL-3.0


๐Ÿ™ Credits

Built with amazing open source:


Made with โค๏ธ for finding memories

โฌ† Back to Top

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

face_search-0.2.0.tar.gz (51.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

face_search-0.2.0-py3-none-any.whl (48.9 kB view details)

Uploaded Python 3

File details

Details for the file face_search-0.2.0.tar.gz.

File metadata

  • Download URL: face_search-0.2.0.tar.gz
  • Upload date:
  • Size: 51.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.10

File hashes

Hashes for face_search-0.2.0.tar.gz
Algorithm Hash digest
SHA256 f37b437335e3653cede6bf94b9c8b5b1eb8223ee5d45106ea844d2e9de5be6cc
MD5 dd1cb165bffba081ca8da94f7fb65438
BLAKE2b-256 bd0fc03f15ebd0c0147e4f5b9f9e5787854f0b9a1f3e31b168dec605c1268282

See more details on using hashes here.

File details

Details for the file face_search-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: face_search-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 48.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.10

File hashes

Hashes for face_search-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e8f79835469147040179438f36ed061d337739b9f8e7523f4b7de03156a4bbd0
MD5 d715911473c89f6ca3a5a707b67f4e0a
BLAKE2b-256 598d9d97fe87e3d827c5e56a1beba10f1cd67d983d4cdd64ada10e4e5719ea6f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page