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.shausfü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
python server.pystarten → Web‑UI unterhttp://localhost:8000.- Ordner „Browse & Index Photos“ auswählen → Indexierung startet (Szenario‑Szenen von Scannen → Embedding → Clustering).
- Fotos werden mit Fortschrittsbanner live angezeigt.
- Mit Tastatur oder Maus Sterne setzen (S, Space, Klick auf Stern‑Button).
- Export über
python export_starred.py --output /Pfad/zum/Album(Optionen: Kopieren, Verschieben, Organisieren nach Datum).
Fehlerbehebung
- Bei Speicherproblemen Batch‑Size in
index_photos.pyreduzieren (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 ❌).
