Übersicht

Dieses Skript ermöglicht die KI-gestützte Bewertung von Bildern über eine Web-Oberfläche oder die Kommandozeile. Die Ergebnisse können als CSV-Dateien für die Datenanalyse und/oder als XMP-Sidecar-Dateien für die Integration in Bildverwaltungsprogramme wie Darktable gespeichert werden.

Funktionen

  • KI-gestützte Bewertung: Bilder werden von einer lokalen KI bewertet.
  • Flexible Ausführung: Nutzung über eine Web-Oberfläche oder direkt über die Kommandozeile.
  • Ergebnisspeicherung: Speichert Bewertungen als CSV-Dateien und/oder XMP-Sidecar-Dateien.
  • Anpassbare Prompts: System- und Benutzer-Prompts können konfiguriert werden, um die Bewertungskriterien und das Ausgabeformat der KI zu steuern.
  • Bildkonvertierung: Verwendet darktable-cli zur Konvertierung von Originalbildern in temporäre JPEG-Dateien für die KI-Analyse.
  • Fortschrittsverfolgung: Im Web-Modus kann der Fortschritt der Bildverarbeitung verfolgt werden.

Voraussetzungen

  • Python 3: Eine aktuelle Version von Python.
  • pip: Der Python-Paketmanager.
  • Darktable: Eine Open-Source-Fotobearbeitungssoftware. darktable-cli muss im Systempfad (PATH) verfügbar sein.
  • LM Studio oder eine kompatible lokale KI-API: Eine laufende Instanz, die dem OpenAI-Standard entspricht und unter der konfigurierten URL erreichbar ist (Standard: http://localhost:1234/v1/chat/completions).

Installation der Python-Abhängigkeiten

Öffne dein Terminal oder deine Kommandozeile und führe den folgenden Befehl aus:

Fish
pip install pandas flask requests  

Dateistruktur

Stelle sicher, dass die folgenden Dateien im selben Verzeichnis liegen:

  • Ai-Rating.py: Das Hauptskript.
  • ai_rating_utils.py: Eine Hilfsdatei mit gemeinsamen Funktionen.
  • prompt.txt: Enthält den Benutzer-Prompt für die KI-Bewertung.
  • system_prompt.txt: Enthält den System-Prompt, der die KI anweist, wie sie die Bilder bewerten soll.
  • template.html: Die HTML-Vorlage für die Web-Oberfläche.

Wenn prompt.txt oder system_prompt.txt nicht existieren, werden sie beim ersten Start des Skripts mit Standardinhalten erstellt.

Konfiguration der Prompts

Die KI-Bewertung basiert auf zwei Prompts:

  • system_prompt.txt: Definiert die Bewertungskriterien und das gewünschte Ausgabeformat der KI.
  • prompt.txt: Enthält die Anweisung an die KI, das Bild zu analysieren und zu bewerten.

Diese Dateien können manuell bearbeitet oder im Web-Modus über die Benutzeroberfläche angepasst und gespeichert werden.

Ausführung des Skripts

Konsolenmodus

Nützlich für die Stapelverarbeitung von Bildern ohne grafische Oberfläche.

Syntax:

Fish
python Ai-Rating.py <folder_path> [--subfolders] [--model <model_tag>] [--no-skip] [--csv] [--xmp] [--api-url <url>]  

Argumente:

  • <folder_path>: Der Pfad zu dem Ordner, der die zu bewertenden Bilder enthält (Pflichtargument).
  • --subfolders: (Optional) Verarbeitet auch Bilder in Unterordnern.
  • --model <model_tag>: (Optional) Ein Tag für das verwendete KI-Modell.
  • --no-skip: (Optional) Verarbeitet Bilder neu, auch wenn bereits Ergebnisse existieren.
  • --csv: (Pflichtargument, wenn --xmp nicht angegeben ist) Speichert Ergebnisse in einer CSV-Datei.
  • --xmp: (Pflichtargument, wenn --csv nicht angegeben ist) Speichert Ergebnisse in XMP-Sidecar-Dateien.
  • --api-url <url>: (Optional) Überschreibt die Standard-URL der LM Studio API.
Web-Modus

Bietet eine benutzerfreundliche Oberfläche im Browser.

Starten des Servers:

Fish
python Ai-Rating.py [--host <host_address>] [--port <port_number>] [--api-url <url>]  

Argumente:

  • --host <host_address>: (Optional) Die Host-Adresse (Standard: 127.0.0.1).
  • --port <port_number>: (Optional) Der Port (Standard: 5000).
  • --api-url <url>: (Optional) Überschreibt die Standard-URL der LM Studio API.

Nach dem Starten des Servers navigiere zu der angezeigten Adresse (standardmäßig http://127.0.0.1:5000).

Funktionsweise

  1. Bildkonvertierung: darktable-cli konvertiert Originalbilder in temporäre JPEG-Dateien.
  2. KI-Bewertung: Die JPEGs werden zusammen mit den Prompts an die lokale KI-API gesendet.
  3. Ergebnis-Parsing: Die KI-Antwort wird geparst, um Bewertungskriterien, Gesamtbewertung und Keywords zu extrahieren.
  4. Speichern der Ergebnisse:
    • CSV: Ergebnisse werden in ai_rating_results_<model_tag>.csv gespeichert.
    • XMP: XMP-Sidecar-Dateien werden für jedes Bild erstellt oder aktualisiert.

Fehlerbehebung

  • darktable-cli nicht gefunden: Stelle sicher, dass Darktable installiert ist und der Pfad zu darktable-cli in deiner System-PATH-Variable enthalten ist.
  • API-Fehler: Überprüfe, ob die lokale KI-API läuft und erreichbar ist.
  • Prompts nicht gefunden: Das Skript erstellt prompt.txt und system_prompt.txt automatisch.
  • Keine Ausgabe (CSV/XMP): Stelle sicher, dass die entsprechenden Optionen im Konsolen- oder Web-Modus aktiviert sind.

Changelog

  • v2.1: Verbesserte Fehlerbehandlung, Timing-Logs
  • v2.0: Erste Version mit XMP-Support

Support

Für Fragen, Bugs oder Beiträge: www.net-fx.de, viel Spaß mit KI-gestütztem Tagging! 📸🤖