home

PicBest: KI‑gestützte Bild‑Clustering‑Software für Foto‑Sammlungen

PicBest (im Repository als PicPick bezeichnet) ist ein webbasiertes Tool, das KI‑gestützte Bild‑Clustering‑ und weitere Features nutzt, um große Foto‑Sammlungen automatisch zu organisieren und die besten Bilder schnell zu markieren und zu exportieren.

Ziel

Vereinfachung des Auswählens der besten 200–300 Fotos aus Tausenden, typischerweise nach Veranstaltungen wie Hochzeiten, Urlaub oder Partys.

Technologie

  • Backend: Python, FastAPI, SQLite
  • AI/ML: OpenAI CLIP (Bilderkennung), scikit‑learn (DBSCAN‑Clustering)
  • Frontend: Vanilla JS, CSS‑Grid, keine Build‑Schritte

Key Features

  • Dateibrowser: Fotos direkt im Web‑UI durchsuchen.
  • Live‑Indexierung: Fotos werden sofort indexiert, Einblendungen passieren ohne Wartezeit.
  • Smart Clustering: Visuell ähnliche Fotos gruppiert über CLIP‑Embeddings – nur ein Bild aus jedem Burst angezeigt.
  • Zeitlinie: Fotos nach Datum/Veranstaltung getrennt, mit visuellen Trennlinien.
  • Schnelles Sternchen: Tastatur‑Shortcut „S“ (oder Leertaste) zum Sterne‑Markieren; Pfeiltasten für Navigation.
  • Share‑able Filters: Links mit URL‑Bedingungen teilen (z. B. ?folder=day1&min_rating=3).
  • Multi‑Database: Wechsel zwischen verschiedenen Foto‑Sammlungen über Dropdown.
  • Export: Gestern markierte Fotos einfach in einen Ordner kopieren, verschieben oder nach Datum ordnen.

Installation

  • macOS Apple Silicon (M1/M2/M3): Repository klonen, ./install_m1.sh ausführen (Python 3.11, Xcode, Homebrew‑Abhängigkeiten, virtuelle Umgebung, Paketinstallationen).
  • Linux / Intel Mac / Windows: Virtuelle Umgebung manuell erstellen, Abhängigkeiten installieren (apt-get install cmake build-essential), pip install -r requirements.txt.

Benutzung

  1. python server.py starten → Web‑UI unter http://localhost:8000.
  2. Ordner „Browse & Index Photos“ auswählen → Indexierung startet (Szenario‑Szenen von Scannen → Embedding → Clustering).
  3. Fotos werden mit Fortschrittsbanner live angezeigt.
  4. Mit Tastatur oder Maus Sterne setzen (S, Space, Klick auf Stern‑Button).
  5. Export über python export_starred.py --output /Pfad/zum/Album (Optionen: Kopieren, Verschieben, Organisieren nach Datum).

Fehlerbehebung

  • Bei Speicherproblemen Batch‑Size in index_photos.py reduzieren (BATCH_SIZE = 32 → 16 oder 8).

Use Cases (Beispielzahlen)

  • Hochzeit: 5 000 Fotos → ~300 für das Album.
  • Urlaub: 2 000 Fotos → ~200 Highlights.
  • Geburtstag: 500 Fotos → ~50 beste Momente.
  • Konferenz: 1 000 Fotos → ~100 Schlüssel‑Shots.

Konfiguration

  • Clustering‑Parameter in index_photos.py: DBSCAN_EPS, DBSCAN_MIN_SAMPLES.
  • Re‑Clustering möglich via python index_photos.py --recluster.

Projektstruktur

  • index_photos.py (Indexierung/Clustering)
  • server.py (FastAPI Web‑Server)
  • export_starred.py (Exportfunktion)
  • requirements.txt, .gitignore, README.md, photos.db, thumbnails/, static/ (UI‑Dateien).

Contributing

  • Offene Ideen: Drag‑and‑Drop neu ordnen, Album‑Layout‑Vorschau, Cloud‑Integration, mobile‑responsive UI, Video‑Unterstützung.
  • License: MIT.

PicBest Lite

Einmal‑HTML‑Datei, keine Installation, keine AI‑Clustering. Nur Chromium‑basierte Browser unterstützen die File‑System‑Access‑API (Chrome/E*dge ✔, Firefox/Safari ❌).

Quelle

https://github.com/hardiksondagar/picpick