Skip to content

meet244/PicFolio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

55 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

PicFolio ๐Ÿ“ท

Frame 5

PicFolio is a self-hosted, privacy-first photo management app โ€” a local Google Photos alternative. It runs entirely on your own machine, giving you AI-powered photo organization, face grouping, smart search, duplicate detection, and a clean web UI, without paying for cloud storage or sharing your photos with anyone.


Screenshots

  • Desktop๐Ÿ’ป

  • Web ๐ŸŒ


Features

  • Multi-user support โ€” Separate photo libraries per user, each with their own login

  • AI Auto-tagging โ€” Every photo is tagged automatically using the Recognize Anything Model (RAM)

  • Face Grouping โ€” Detects and clusters people across your library using DeepFace; name them for easy browsing

  • Natural Language Search โ€” Search photos by description ("dog at beach") powered by Gemini Pro + semantic embeddings

  • Auto Albums โ€” Photos grouped automatically by scene and content

  • Places / GPS Map โ€” Browse photos by location using EXIF GPS data on an interactive map

  • Duplicate Detection โ€” Find and remove duplicate photos

  • Blur Detection โ€” Surface and clean up low-quality, blurry shots

  • Favorites & Bin โ€” Like photos, delete to bin, restore anytime

  • Upload โ€” Drag and drop upload from browser (works on mobile too)

  • Statistics โ€” View storage usage and library stats

  • 100% Local โ€” Nothing leaves your machine (except an optional Gemini API key for search)


Tech Stack

Layer Technology
Backend Python, Flask, SQLite, Waitress
AI / ML RAM (Recognize Anything Model), DeepFace, Gemini Pro, SentenceTransformers
Frontend Next.js 15, React 19, Tailwind CSS
Maps Leaflet, React Leaflet
Media Pillow, MoviePy, OpenCV

Installation

Prerequisites

  • Python 3.10+

  • Node.js 18+

  • A Gemini API key (free, optional โ€” only needed for AI search)


Backend Setup

1. Create and activate a virtual environment

# Windows

python  -m  venv  venv

venv\Scripts\activate

  

# macOS / Linux

python  -m  venv  venv

source  venv/bin/activate

2. Install Python dependencies

pip  install  -r  Backend/requirements.txt

3. Configure environment variables

Create a .env file inside the Backend/ folder:

Gemini=your_gemini_api_key_here

4. Run the backend

python  backend/start.py

The backend server will start on http://localhost:5000.


Frontend Setup

1. Navigate to the frontend directory

cd  Frontend

2. Install dependencies

npm  i

3. Run the development server

npm  run  dev

The frontend will be available at http://localhost:3000.


First-Time Setup

  1. Open http://localhost:3000 in your browser

  2. Go to the Setup page and enter your backend server URL (http://localhost:5000)

  3. Create your first user

  4. Start uploading photos


Contributions

Contributions are welcome! Whether it's bug fixes, feature enhancements, or documentation improvements, feel free to submit a pull request.


About

๐Ÿ“ธ Simplifying photo management on desktop via mobile with a client-server setup. Upload, organize, and share photos seamlessly using local storage and AI for automatic tagging and grouping.

Topics

Resources

License

Stars

Watchers

Forks

Contributors