Home
Softono
PicFolio

PicFolio

Open source MIT Jupyter Notebook
35
Stars
5
Forks
0
Issues
2
Watchers
3 months
Last Commit

About PicFolio

πŸ“Έ 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.

Platforms

Web Self-hosted iOS Android

Languages

Jupyter Notebook

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.