Übersicht
Dieses Lua-Skript AI Rating & Tagging Script (Version 3.7) für darktable automatisiert die Bewertung und Verschlagwortung von Bildern mithilfe von künstlicher Intelligenz. Es verbindet sich mit einem lokal laufenden, multimodalen Large Language Model (LLM), um Bilder zu analysieren und basierend auf benutzerdefinierten Kriterien objektive Bewertungen und relevante Schlagwörter zu generieren. Das Hauptziel ist es, den Prozess der Bildauswahl und -organisation zu beschleunigen und zu standardisieren.
Wie funktioniert es?
Der Arbeitsablauf ist einfach und direkt in die darktable-Oberfläche integriert:
- Bildauswahl: Der Benutzer wählt ein oder mehrere Bilder im Leuchttisch von darktable aus.
- Analyse starten: Ein Klick auf den „AI Rating“-Button startet den Prozess.
- Bildexport & Versand: Das Skript exportiert eine temporäre, verkleinerte Version jedes Bildes und sendet diese an den lokalen KI-Server (z.B. LM Studio).
- KI-Analyse: Die KI analysiert das Bild basierend auf den Anweisungen (dem „Prompt“) in der Konfigurationsdatei. Der Benutzer kann hier genau definieren, worauf die KI achten soll (z.B. Komposition, Schärfe, Licht, Emotion).
- Antwort erhalten: Die KI sendet eine strukturierte Textantwort zurück, die eine Bewertung für jedes Kriterium sowie eine Liste von passenden Schlagwörtern enthält.
- Verarbeitung: Das Skript berechnet aus den Einzelbewertungen einen Gesamt-Score (0-100).
- Daten schreiben: Basierend auf einer ebenfalls konfigurierbaren Skala wird der Score in eine Sterne-Bewertung (0-5) umgewandelt. Die detaillierte Analyse, die Bewertung und die Schlagwörter werden anschließend direkt in darktable (DB & XMP) und optional in eine separate *.rate.xmp-Datei geschrieben.
Wichtig: Sie bestimmen welche Daten geschrieben werden!
Hauptmerkmale
- Lokale KI-Analyse: Alle Bilddaten bleiben auf dem lokalen Rechner. Es ist keine Internetverbindung zu externen Diensten nötig, was Datenschutz und Kostenkontrolle gewährleistet.
- Flexible Konfiguration: Über die zentrale ai_config.json-Datei kann alles angepasst werden: der API-Endpunkt des KI-Servers, der genaue Analyse-Prompt, das KI-Modell und die Skala zur Umrechnung von Punkten in Sterne.
- Selektives Schreiben: Der Benutzer kann über Checkboxen genau steuern, welche Daten geschrieben werden sollen (Bewertung, Beschreibung, Tags, separate XMP-Datei).
- Schutz für manuelle Daten: Eine optionale „Do not overwrite“-Funktion verhindert, dass bereits manuell vergebene Bewertungen oder Beschreibungen überschrieben werden.
- Integrierte Benutzeroberfläche: Das Skript fügt sich nahtlos als eigenes Modul in die rechte Seitenleiste des Leuchttischs ein.
- Stapelverarbeitung: Es können problemlos hunderte Bilder auf einmal zur Analyse geschickt werden.
Inhaltsverzeichnis
- Übersicht
- Wie funktioniert es?
- Wichtig: Sie bestimmen welche Daten geschrieben werden!
- Hauptmerkmale
- Voraussetzungen
- Abhängigkeiten installieren
- Installation
- Konfiguration
- Verwendung
- Troubleshooting
- Changelog
- Support

Autor: Christoph Fischer – www.net-fx.de
Version: 3.7
Lizenz: (Füge hier eine Lizenz hinzu, z.B. MIT oder GPL, falls gewünscht)
Minimale darktable-Version: 5.2
Download: AI Rating & Tagging v3.7
Voraussetzungen
- darktable: Version 5.2 oder höher (getestet unter Linux und Windows).
- Lokale KI-API: Eine laufende Instanz von LMStudio (oder kompatibel) mit einem Vision-Modell (z.B. für Bildanalyse). Die API muss HTTP-Requests unterstützen.
- Lua-Libraries: Das Skript benötigt externe Lua-Module. Diese sind nicht in darktables Standard-Lua-Umgebung enthalten und müssen installiert werden.
Abhängigkeiten installieren
Das Skript verwendet folgende Libraries:
json(z.B. dkjson): Für Parsing von JSON-Konfigurationen und API-Responses.socket.httpundltn12(aus LuaSocket): Für HTTP-Requests an die KI-API.
Unter Linux (z.B. Arch Linux, Ubuntu/Debian)
# Arch Linux
sudo pacman -S lua-socket
yay -S lua-json
# Ubuntu/Debian
sudo apt install lua-socket lua-json # Oder lua5.3-socket, je nach Distribution Falls Luarocks installiert ist: luarocks install luasocket und luarocks install dkjson.
Unter Windows
- Installiere Luarocks (den Lua-Paketmanager) von der offiziellen Website. Wähle die Version passend zu Lua 5.3/5.4.
- Öffne die Kommandozeile (cmd oder PowerShell) und führe aus: bashCopyluarocks install luasocket luarocks install dkjson
- Stelle sicher, dass die Libraries im Lua-Pfad von darktable liegen. Bei Problemen setze Umgebungsvariablen:
LUA_PATH: Pfad zu.lua-Dateien.LUA_CPATH: Pfad zu.dll-Dateien (z.B.C:\Programme\LuaRocks\scl\bin\?.dll).
Hinweis: Teste die Installation mit einem einfachen Lua-Skript: lua -e "require 'socket.http'; require 'json'". Wenn Fehler auftreten, prüfe die Logs in darktable (Help > Show Log).
Installation
- Skript herunterladen: Speichere die
.lua und .json-Datei in darktables Lua-Script-Verzeichnis (z.B.~/.config/darktable/lua/AI/unter Linux oder%APPDATA%\darktable\lua\AI\unter Windows). - Eigene Konfiguration erstellen (optional): Bearbeite die
ai_config.json-Datei nach deinen Vorstellungen. - darktable starten: Das Skript lädt automatisch. Es erscheint im rechten Panel der Lighttable-Ansicht.
- API starten: Stelle sicher, dass deine lokale KI-API (z.B. LMStudio) läuft und erreichbar ist.

Konfiguration
Das Skript lädt Einstellungen aus ai_config.json. Sie ist im Skript enthalten.
Beispiel für ai_config.json
{
"api_settings":{"lmstudio_api_url":"http://localhost:1234/v1/chat/completions",
"model_tag":"local-model",
"max_tokens":800,
"temperature":0.2,
"retry_attempts":3,
"retry_delay":2},
"image_settings":{"max_width":800,"max_height":600,"jpeg_quality":85},
"rating_scale":[
{"score":0,"rating":0},
{"score":20,"rating":1},{"score":40,"rating":2},
{"score":60,"rating":3},{"score":80,"rating":4},
{"score":100,"rating":5}],
"system_prompt":"...","user_prompt":"..."
}- api_settings: Konfiguration für die KI-API (URL, Modell, Tokens, etc.).
- image_settings: Bildverarbeitung (Größe, Qualität für Export).
- rating_scale: Mapping von Scores (0-100) zu Sternen (0-5).
- system_prompt / user_prompt: Anweisungen für die KI (anpassbar für bessere Results).
Hinweis: Ändere die Prompts, um die KI auf deine Bedürfnisse zu zuschneiden (z.B. für Landschaftsfotos vs. Porträts).
Verwendung
- Bilder auswählen: Wähle Bilder in darktables Lighttable aus.
- Einstellungen anpassen: Verwende die Checkboxen im Skript-Panel:
- Overwrite Rating: Überschreibt bestehende Ratings.
- Overwrite Description: Überschreibt Beschreibungen.
- Overwrite Tagging: Überschreibt Tags.
- Overwrite XMP Rating: Überschreibt
.rate.xmp-Dateien. - Show Progress on Screen: Zeigt Fortschritt und KI-Responses an.
- KI-Rating starten: Klicke auf „AI Rating“. Das Skript exportiert Bilder, sendet sie an die API und wendet Results an.
- Stoppen: Bei Bedarf „Stop“ klicken, um abzubrechen.
- Ergebnisse prüfen: Ratings, Tags und Beschreibungen erscheinen in darktable. XMP-Dateien werden neben den Originalen gespeichert.
Performance: Bei vielen Bildern kann es dauern (abhängig von API und Hardware). Timing-Infos werden angezeigt.
Troubleshooting
- Skript lädt nicht: Prüfe Abhängigkeiten (siehe Installation). Logs in darktable anzeigen.
- API-Fehler: Stelle sicher, dass LMStudio läuft und die URL korrekt ist. Teste mit
curloder einem Browser. - Ungültige Responses: Passe Prompts in
ai_config.jsonan – die KI muss strukturierte Ausgaben liefern (z.B. „### Keywords: …“). - XMP-Konflikte: Darktables eigene XMP-Dateien werden nicht überschrieben – nur
.rate.xmp. - Speicherprobleme: Bei großen Bildern Reduziere
max_width/max_heightin der Config. - Windows-spezifisch: Pfadprobleme? Verwende absolute Pfade in
ai_config.json. - Debugging: Aktiviere
VERBOSE_DEBUG = trueim Skript für detaillierte Logs. (darktable -d lua)
Bei weiteren Problemen: Kontaktiere den Autor.
Changelog
- Neue Logik und Optionen zum schreiben der Daten.
- v3.3: Schreibt das Rating in die Darktable DB und in die Darktable XMP ( *.ARW.xmp).
- v3.2: Verbesserte Fehlerbehandlung, Timing-Logs, Stop-Funktion.
- v3.0: Erste Version mit XMP-Support und GUI.
Support
Für Fragen, Bugs oder Beiträge: www.net-fx.de, viel Spaß mit KI-gestütztem Tagging! 📸🤖
