ashesbloom/LocalLens
Local Lens is a privacy-first, AI-powered photo organizer for your PC. Sort and group photos by faces, dates, and locationsβall locally, with no cloud upload. Enjoy a modern, intuitive UI and keep your memories organized and secure on your own device.
Local Lens
Your Memories, Your Machine, Your Privacy.
Local Lens is the AI-powered home for your photos. Sort by face, location, and date entirely offline.
π₯ Download Latest Version
Linux support coming soon
οΏ½ Quick Install
macOS (Homebrew) β Recommended
brew install ashesbloom/locallens/local-lensHomebrew handles Gatekeeper automatically β no extra steps needed!
macOS (Manual DMG)
- Download the
.dmgfrom Releases - Drag Local Lens to Applications
- Fix Gatekeeper (required for unsigned apps):
- Download and double-click
Fix_Local_Lens.commandfrom the release - Or: Right-click the app β Open β Click "Open"
- Or run in Terminal:
xattr -cr "/Applications/Local Lens.app" && codesign --force --deep --sign - "/Applications/Local Lens.app"
- Download and double-click
Windows
Download and run the .msi or .exe installer from Releases.
π₯οΈ Software Preview
See how Local Lens organizes thousands of photos in seconds:
Different Modes & Themes
Screenshots are for illustration. UI evolves with every update.
π Why Local Lens?
| Feature | βοΈ Cloud Services (Google/iCloud) | π Local Lens |
|---|---|---|
| Privacy | Your photos are scanned for ads/data | 100% Private. Zero data leaves your PC. |
| Cost | Monthly Subscription ($$$) | Free & Open Source |
| Storage | Limited (15GB cap) | Unlimited (Limited only by your HDD) |
| Speed | Depends on Internet speed | Instant (Local Processing) |
| AI Processing | Server-side | On-Device (CNN & HOG Models) |
π― Vision & Purpose
Local Lens revolutionizes photo management with intelligent, privacy-first automation. Designed for photographers, data hoarders, families, and anyone with terabytes of digital memories, it transforms overwhelming photo organization into an effortless, secure experience.
The Problem
Manual photo sorting is tedious. Cloud solutions get expensive and risk your privacy.
The Solution
Local Lens brings enterprise-grade AI directly to your desktop. No subscriptions, no upload times, no data harvesting.
Core Features
- π 100% Offline AI: All facial recognition and analysis runs on your hardware.
- π€ Face Recognition: Train the AI to recognize friends and family.
- πΊοΈ Location Intelligence: Visualizes where your photos were taken (GPS clustering).
- π Smart Timeline: Auto-sorts messy folders into chronological order.
- β‘ Lightning Search: Dynamic filtering by date, location, or person.
- π Non-Destructive: Your original files are never modified; we only organize.
π§ Under the Hood: The "Enhanced Automatic Strategy"
How do we keep it fast without crashing your PC? Local Lens uses an adaptive, two-pass strategy:
- The Speed Pass (HOG): We scan images using a lightweight algorithm (Histogram of Oriented Gradients). If a face is clearly visible, we log it.
- The Precision Pass (CNN): If the first pass is unsure, we escalate to a Convolutional Neural Network (CNN) for high-precision detection.
- Intelligent Fallback: If your hardware runs out of memory, the system automatically adjusts to a lighter model instantly.
This guarantees the best possible result for every photo, adapting to your specific hardware.
πΌοΈ Supported Formats
Whether you shoot on an iPhone or a DSLR, we've got you covered:
.jpg, .jpeg, .png, .gif, .bmp, .tiff, .webp, .heic, .heif
RAW Support: .dng, .cr2, .cr3, .nef, .arw, .raf, .avif, .psd
ποΈ Architecture
Local Lens uses a hybrid architecture combining the best of web and desktop technologies:
βββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Tauri Desktop App β
β βββββββββββββββββββββββββββββββββββββββββββββββ β
β β React Frontend (UI) β |
β β β’ Modern React with Hooks β |
β β β’ Vite for fast development β |
β β β’ Real-time communication with backend β |
β βββββββββββββββββββββββββββββββββββββββββββββββ β
β | | |
β βββββββββββββββββββββββββββββββββββββββββββββββ β
β β Python Backend (Sidecar) β |
β β β’ FastAPI REST server β |
β β β’ AI face recognition engine β |
β β β’ Image processing pipeline β |
β β β’ Metadata extraction & analysis β |
β βββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββ
π οΈ Technology Stack
Frontend
- Framework: React.js with modern hooks
- Build Tool: Vite for fast development and building
- Desktop Framework: Tauri (Rust-based) for native desktop integration
- UI Components: Custom components with CSS modules
- State Management: React hooks with localStorage persistence
Backend
- Language: Python 3.11+
- API Framework: FastAPI for high-performance REST API
- AI/ML Libraries:
face_recognition- Facial detection and recognitiondlib- Computer vision and machine learning toolkitnumpy- Numerical computing
- Image Processing:
Pillow- Python Imaging LibraryPillow-HEIF- HEIF/HEIC format supportrawpy- RAW image format support (Windows)Wand- ImageMagick binding for RAW support (macOS/Linux)
- Geolocation:
reverse_geocoderfor location data - Server:
uvicornASGI server
Build & Distribution
- Python Bundling: PyInstaller for creating standalone executables
- Desktop Packaging: Tauri for cross-platform application packaging
- Installer Generation: Platform-specific installers (.msi, .dmg, .deb, .AppImage)
π Prerequisites
For Normal Users
- No prerequisites - The distributed application includes all dependencies
For Development
Required Software
- Node.js (v18 or higher) - Download
- Rust (latest stable) - Install via rustup
- Python (3.11 or higher) - Download
- Git - Download
Platform-Specific Requirements
Windows
- Visual Studio Build Tools or Visual Studio Community
- Install "C++ CMake tools for Visual Studio" workload
- Or install standalone: Microsoft C++ Build Tools
- CMake - Download
macOS
- Xcode Command Line Tools - Install
- CMake - Install via Homebrew
- dlib - Pre-compiled library (required for face recognition)
- ImageMagick - For RAW image processing (alternative to rawpy)
# Install Xcode Command Line Tools
xcode-select --install
# Install required Homebrew packages
brew install cmake dlib imagemagickNote for Apple Silicon (M1/M2/M3) Macs: The
dliblibrary must be installed via Homebrew first due to compatibility issues with newer Python versions. This is handled automatically when you follow the installation steps above.
Linux (Ubuntu/Debian)
- Build essentials and development tools
sudo apt update
sudo apt install build-essential cmake libopenblas-dev liblapack-dev
sudo apt install python3-dev python3-venv pkg-configLinux (CentOS/RHEL/Fedora)
- Development tools and dependencies
# CentOS/RHEL
sudo yum groupinstall "Development Tools"
sudo yum install cmake openblas-devel lapack-devel python3-devel
# Fedora
sudo dnf groupinstall "Development Tools"
sudo dnf install cmake openblas-devel lapack-devel python3-develπ Project Structure
local-lens/
βββ backend/ # Python FastAPI backend
β βββ main.py # Main FastAPI application
β βββ organizer_logic.py # Core photo organization logic
β βββ enrollment_logic.py # Face recognition training
β βββ exceptions.py # Custom exception classes
β βββ requirements.txt # Python dependencies
β βββ long_path_manifest.xml # Windows long path support
β βββ venv/ # Python virtual environment
βββ frontend/ # React + Tauri frontend
β βββ src/ # React source code
β β βββ App.jsx # Main application component
β β βββ components/ # React components
β β βββ assets/ # Static assets
β βββ src-tauri/ # Tauri configuration
β β βββ src/ # Rust source code
β β β βββ lib.rs # Main Rust application
β β βββ tauri.conf.json # Tauri configuration
β β βββ Cargo.toml # Rust dependencies
β β βββ icons/ # Application icons
β βββ package.json # Node.js dependencies
β βββ vite.config.js # Vite configuration
βββ docs/ # Documentation
βββ LICENSE # MIT License
βββ README.md # This file
π€ Contributing
We welcome contributions! Please see our Contributing Guidelines for details.
Development Workflow
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Test thoroughly on your target platform(s)
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
π License
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). See the LICENSE file for details.
π Acknowledgments
- face_recognition - Facial recognition library
- Tauri - Desktop application framework
- FastAPI - Modern Python web framework
- React - Frontend framework
- Vite - Build tool and development server
π Support
- π§ Email: mayankpandeydk123@gmail.com
- π Bug Reports: GitHub Issues
- π Documentation: Project Wiki
βοΈβπ₯ Engineered with purpose by Mayank Pandey
If you found my project useful, please consider supporting me so I can build more projects like this,
cuz I'm broke af:






