LLMImageIndexer ist ein intelligentes Bildverarbeitungs- und Indexierungstool, das lokale KI nutzt, um umfassende Metadaten für Ihre Bildsammlung zu generieren. Dieses Tool verwendet fortschrittliche Sprachmodelle, um Bilder zu analysieren und Bildunterschriften und Schlüsselwort-Metadaten zu generieren.
Intelligente Bildanalyse : Nutzt ein lokales KI-Modell, um eine variable Anzahl von Schlüsselwörtern und eine Bildunterschrift für jedes Bild zu generieren.
Metadatenverbesserung : Kann Bildmetadaten mit generierten Tags automatisch bearbeiten.
Lokale Verarbeitung : Die gesamte Verarbeitung erfolgt lokal auf Ihrem Computer.
Multiformat-Unterstützung : Verarbeitet eine Vielzahl von Bildformaten, einschließlich aller wichtigen Rohkameradateien.
Benutzerfreundliche GUI : Enthält eine GUI und ein Installationsprogramm. Verlässt sich für alle KI-Funktionen auf Koboldcpp, eine einzelne ausführbare Datei.
GPU-Beschleunigung : Verwendet Hardware von Apple Metal, Nvidia CUDA oder AMD (Vulkan), sofern verfügbar, um die Inferenz erheblich zu beschleunigen.
Plattformübergreifend : Unterstützt Windows, macOS ARM und Linux.
Stopp- und Startfähigkeit : Kann gestoppt und gestartet werden, ohne dass alle Dateien erneut verarbeitet werden müssen.
Schlüsselwort-Nachbearbeitung : Erweitern Sie Schlüsselwörter, sodass alle Synonyme zu jedem Bild mit einem der Synonyme hinzugefügt werden, oder deduplizieren Sie Schlüsselwörter, indem Sie das am häufigsten verwendete Synonym anstelle aller übereinstimmenden Synonyme verwenden.
Bevor Sie dieses Skript verwenden, sollten Sie Folgendes beachten:
Dies ist ein Projekt von jemandem, der mit den formalen Protokollen professioneller Fotografen überhaupt nicht vertraut ist. Wenn Sie sich zum Bezahlen Ihrer Rechnungen auf Ihre Fotografie verlassen, sollten Sie die Auswirkungen dieses Skripts ausgiebig testen, bevor Sie es auf etwas Wichtiges ausführen
Wenn Sie angewiesen werden, die Metadaten zu schreiben, werden mit exiftool folgende Tags geschrieben: MWG:Keywords, XMP:Description, Status, XMP:Identifier. Dabei handelt es sich nicht unbedingt um die Namen der Tags, die von Exiftool verwendet werden sollen. Der Exiftool-Entwickler ist wahrscheinlich der führende Experte für Dateimetadatenschemata und kennt den geeigneten Ort zum Platzieren der Metadaten besser, als ich es jemals erhoffen könnte. Ich habe viel Zeit darauf verwendet, die Auswirkungen so gering wie möglich zu halten und gleichzeitig die Möglichkeit zu gewährleisten, den Status der verarbeiteten Bilder ohne eine zentrale Datenbank oder ein Informationsspeicher zu verfolgen, sodass die Dateien überall verschoben oder umbenannt werden können Problem, aber Sie müssen sicherstellen, dass Ihre Bilder nicht durch die Daten in diesen Feldern negativ beeinflusst werden
Dies ist ein ziemlich technischer Prozess. Hoffentlich funktioniert einfach alles, und ich habe versucht, dies zu erreichen, aber ich habe nur begrenzte (wieder: keine) Möglichkeiten, dies auf anderen Computern oder Plattformen zu testen, sodass jede Menge Fehler auftreten können. Ich werde mein Bestes geben, mit den Leuten zusammenzuarbeiten, um Probleme zu lösen, aber Sie sollten über die technischen Fähigkeiten verfügen, um Fehler zu beheben und Anweisungen zu befolgen. Wenn Ihnen das nicht gelingt, sollten Sie zögernd vorgehen.
Python 3.8 oder höher
KoboldCPP
Es ist ein Vision-Modell erforderlich, aber wenn Sie es mit llmii-run.bat öffnen, lädt es bei der ersten Ausführung den MiniCPM-V 2.6 Q4_K_M gguf und den F16-Projektor aus Bartowskis Repo auf Huggingface herunter. Wenn Sie das nicht verwenden möchten, öffnen Sie stattdessen einfach llmii-no-kobold.bat und öffnen Sie Koboldcpp.exe und laden Sie das gewünschte Modell.
Klonen Sie das Repository oder laden Sie die ZIP-Datei herunter und extrahieren Sie sie.
Installieren Sie Python für Windows.
Laden Sie KoboldCPP.exe herunter und legen Sie es im LlavaImageTagger-Ordner ab. Wenn es nicht KoboldCPP.exe heißt, benennen Sie es in KoboldCPP.exe um
Führen Sie llmii-run.bat
aus und warten Sie, bis Exiftool installiert ist. Wenn der Vorgang abgeschlossen ist, müssen Sie die Datei erneut starten. Wenn Sie es über ein Terminalfenster aufgerufen haben, müssen Sie das Fenster schließen und es erneut öffnen. Anschließend wird eine Python-Umgebung erstellt und die Modellgewichte heruntergeladen. Der Download ist ziemlich groß (6 GB) und es gibt keinen Fortschrittsbalken, aber es muss nur einmal durchgeführt werden. Sobald dies erledigt ist, wird KoboldCPP gestartet und in einem der Terminalfenster wird „ Please connect to custom endpoint at http://localhost:5001
angezeigt. Dann ist es bereit.
Klonen Sie das Repository oder laden Sie die ZIP-Datei herunter und extrahieren Sie sie.
Installieren Sie Python 3.7 oder höher, falls noch nicht installiert. Sie können Homebrew verwenden:
brew install python
ExifTool installieren:
brew install exiftool
Laden Sie KoboldCPP für macOS herunter und legen Sie es im LLMImageIndexer-Ordner ab.
Öffnen Sie ein Terminal im LLMImageIndexer-Ordner und führen Sie Folgendes aus:
chmod +x koboldcpp-mac-arm64 ./llmii-run.sh
Klonen Sie das Repository oder laden Sie die ZIP-Datei herunter und extrahieren Sie sie.
Installieren Sie Python 3.7 oder höher, falls noch nicht installiert. Verwenden Sie den Paketmanager Ihrer Distribution, zum Beispiel unter Ubuntu:
sudo apt-get update sudo apt-get install python3 python3-pip
Installieren Sie ExifTool. Auf Ubuntu:
sudo apt-get install libimage-exiftool-perl
Laden Sie die entsprechende KoboldCPP-Binärdatei für Ihre Linux-Distribution von den KoboldCPP-Releases herunter und legen Sie sie im Ordner LLMImageIndexer ab.
Öffnen Sie ein Terminal im LLMImageIndexer-Ordner und führen Sie Folgendes aus:
chmod +x koboldcpp-linux-x64 ./llmii-run.sh
Für alle Plattformen richtet das Skript die Python-Umgebung ein, installiert Abhängigkeiten und lädt die erforderlichen Modellgewichte herunter (insgesamt 6 GB). Diese Ersteinrichtung wird nur einmal durchgeführt und dauert je nach Download-Geschwindigkeit einige Minuten.
Starten Sie die LLMImageIndexer-GUI:
Unter Windows: Führen Sie llmii-run.bat
aus
Unter macOS/Linux: Führen Sie python3 llmii-gui.py
aus
Stellen Sie sicher, dass KoboldCPP ausgeführt wird. Warten Sie, bis im KoboldCPP-Fenster die folgende Meldung angezeigt wird:
Please connect to custom endpoint at http://localhost:5001
Konfigurieren Sie die Indizierungseinstellungen in der GUI:
Wählen Sie das Zielbildverzeichnis aus
Legen Sie die API-URL fest (Standard: http://localhost:5001).
Wählen Sie die zu generierenden Metadaten-Tags aus (Schlüsselwörter, Beschreibungen).
Legen Sie zusätzliche Optionen fest (Unterverzeichnisse crawlen, Dateien sichern usw.)
Klicken Sie auf „Bildindexer ausführen“, um den Vorgang zu starten.
Überwachen Sie den Fortschritt im Ausgabebereich der GUI.
Verzeichnis : Zielbildverzeichnis (enthält standardmäßig Unterverzeichnisse)
API-URL : KoboldCPP API-Endpunkt (ändern, wenn auf einem anderen Computer ausgeführt)
API-Passwort : Legen Sie es fest, wenn dies für Ihr KoboldCPP-Setup erforderlich ist
Bildunterschrift : Lassen Sie das Bild vom LLM beschreiben und in XMP:Description festlegen (verdoppelt die Verarbeitungszeit)
GenTokens : Anzahl der Token, die das LLM generieren soll
Verarbeitete Dateien überspringen, die sich nicht in der Datenbank befinden : Es wird nicht versucht, Dateien mit einer UUID und Schlüsselwörtern erneut zu verarbeiten, selbst wenn sie sich nicht in der Datenbank llmii.json befinden
Neuverarbeitung fehlgeschlagen : Wenn bei einer Datei in der letzten Runde ein Fehler aufgetreten ist, wird versucht, sie erneut zu verarbeiten
ALLE erneut verarbeiten : Die bereits verarbeiteten Dateien werden in einer Datenbank gespeichert und übersprungen, wenn Sie später fortfahren. Dadurch werden sie erneut verarbeitet
Unterverzeichnisse nicht crawlen : Deaktivieren Sie das Scannen von Unterverzeichnissen
Erstellen Sie vor dem Schreiben keine Backups : Überspringen Sie das Erstellen von Backup-Dateien (HINWEIS: Dies gilt für die Verarbeitung und Nachbearbeitung; wenn Sie die Nachbearbeitung aktivieren und diese Option deaktiviert lassen, wird ein zweites Backup erstellt!)
Simulationsmodus : Simulieren Sie die Verarbeitung, ohne in Dateien oder Datenbanken zu schreiben
Verarbeitung überspringen : Wenn Sie die Schlüsselwortverarbeitung verwenden möchten und nicht möchten, dass jedes Bild im Verzeichnis vor dem Start überprüft wird, aktivieren Sie dieses Kontrollkästchen
Schlüsselwörter : Wählen Sie, ob Sie Schlüsselwörter löschen und neue eingeben oder vorhandene Schlüsselwörter aktualisieren möchten
Nachbearbeitung von Schlüsselwörtern : Schlüsselwörter wie generiert beibehalten, Schlüsselwörter erweitern, indem alle Synonyme auf passende Schlüsselwörter angewendet werden, oder Schlüsselwörter dedepezieren, indem übereinstimmende Synonyme durch die häufigsten Synonyme ersetzt werden; Diese Option wird nach Abschluss des Indexers ausgeführt, es sei denn, das Kontrollkästchen „Verarbeitung überspringen“ ist aktiviert
Weitere Informationen und Schritte zur Fehlerbehebung finden Sie im Wiki.
Beiträge sind willkommen! Bitte senden Sie gerne einen Pull Request.
Dieses Projekt ist unter der MIT-Lizenz lizenziert – Einzelheiten finden Sie in der LIZENZ-Datei.
ExifTool zur Metadatenmanipulation
KoboldCPP für die lokale KI-Verarbeitung
PyQt6 für das GUI-Framework
Fix Busted JSON und Json Repair für Hilfe bei fehlerhafter JSON-Analyse