Skip to main content

A Date-app-like interface for rapidly sorting photos

Project description

🎯 Declutrr

Version Coverage License

A Date-app-like interface for rapidly sorting photos into "keep" and "delete" categories. Perfect for photographers who need to quickly curate large collections of images. Screenshot of the app

✨ Features

  • 🎨 Simple Interface: Clean, intuitive UI for rapid photo sorting
  • 📅 Smart Sorting: Photos displayed in chronological order using EXIF data
  • ⌨️ Keyboard Shortcuts: Quick sorting using arrow keys
  • ↩️ Undo Support: Easily reverse any sorting decision
  • ⏭️ Skip Option: Temporarily skip photos you're unsure about
  • 📊 Progress Tracking: Clear status display of sorting progress

🚀 Installation

pip install declutrr

Usage

Launch declutrr from terminal/command line

declutrr

Controls

You can choose between two control schemes:

Arrow Keys (Default)

  • → (Right Arrow): Keep photo
  • ← (Left Arrow): Delete photo
  • ↓ (Down Arrow): Skip photo

Vim-style Keys

  • L: Keep photo
  • J: Delete photo
  • K: Skip photo

Global Controls

  • Z: Undo last action
  • O: Open new folder
  • Q: Quit application
  • T: Toggle between Arrow/JKL controls

File Organization

  • Kept photos are prefixed with "G_"
  • Deleted photos are moved to a "delete" subfolder

📋 Requirements

  • 🐍 Python 3.10+
  • 🖼️ Pillow (PIL) 11.0.0+

🛠️ Additional Tools

📋 Requirements

  • 🐍 Python 3.10+
  • 🖼️ Pillow (PIL) 11.0.0+
  • 👁️ OpenCV (cv2)
  • 🤖 ultralytics (YOLOv11)
  • 🎨 tkinter (included with Python)

🏷️ Auto Tagger (scripts/auto_tagger.py)

Automatically tags photos using AI-powered object detection:

  • 🤖 Uses YOLOv11 for object detection and classification
  • 🎯 Adds Finder tags based on detected content
  • 📁 Perfect for organizing photos by content

🔍 Blur Detector (scripts/blur_detector.py)

Identifies and separates blurry photos:

  • 📊 Uses Laplacian variance to detect image blur
  • 📂 Moves blurry photos to a separate folder
  • ✨ Helps maintain photo collection quality

📱 Screenshot Detector (scripts/screenshot_detector.py)

Identifies and organizes screenshots:

  • 🤖 Uses AI and traditional CV methods
  • 🔍 Detects UI elements and screen contents
  • 📂 Separates screenshots from regular photos

🔧 Utility Scripts

  • 📅 move.sh: Organizes photos into YYYYMM folders
  • ✏️ renamer.sh: Renames photos using EXIF date/time
  • 📱 screenshot.sh: Quick screenshot organization

🤝 Contributing

Contributions are welcome! Feel free to submit a pull request or open an issue.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

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

declutrr-0.1.4.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

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

declutrr-0.1.4-py3-none-any.whl (11.9 kB view details)

Uploaded Python 3

File details

Details for the file declutrr-0.1.4.tar.gz.

File metadata

  • Download URL: declutrr-0.1.4.tar.gz
  • Upload date:
  • Size: 11.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.8.20 Darwin/24.1.0

File hashes

Hashes for declutrr-0.1.4.tar.gz
Algorithm Hash digest
SHA256 4ae2883b4c67cbe8526e758b28848276c355daae92b86f34ec148d47fd599fab
MD5 5b3681880278681bf755905155f21caa
BLAKE2b-256 e1c811c1f09fd987479cfb9e9e06761baf0836f0c43fdeefddbaa57b364e6264

See more details on using hashes here.

File details

Details for the file declutrr-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: declutrr-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 11.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.8.20 Darwin/24.1.0

File hashes

Hashes for declutrr-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 a1ed1e8c76acc977081ef17b40621eb1100fade9088e0e4b3ad0ccad4d10ad2e
MD5 4019b6dd67e5f5a8d235116c66a4d4ab
BLAKE2b-256 6637fc4fc9ac4cab2e6fe5582d5875b5268fd57107ee4c8c1d4dcfc553869e81

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