ImageIndexer  by jabberjabberjabber

Local image indexing and metadata tagging

Created 1 year ago
259 stars

Top 97.9% on SourcePulse

GitHubView on GitHub
Project Summary

ImageIndexer addresses the need for locally processing and organizing image collections using AI. It targets users who want to automatically generate descriptive metadata (captions and keywords) for their images without relying on cloud services, enhancing searchability and organization. The primary benefit is local, private, and efficient image indexing powered by a local LLM.

How It Works

ImageIndexer leverages a local Visual Language Model (VLM) via Koboldcpp to analyze images, generating captions and keywords. This information is then embedded directly into the image's metadata fields (MWG:Keyword, MWG:Description, XMP:Identifier, XMP:Status). The use of XMP:Identifier ensures that files can be renamed, moved, or reprocessed without losing their indexing information. The system supports GPU acceleration (CUDA, Metal, Vulkan) for faster inference and offers both one-step (keywords + simple caption) and two-step (keywords + detailed caption) processing.

Quick Start & Requirements

  • Installation: Clone the repository or download the ZIP. Install Python 3.8+ (3.7+ for macOS). Install ExifTool (brew install exiftool on macOS, sudo apt-get install libimage-exiftool-perl on Ubuntu).
  • Prerequisites: Python 3.8+, ExifTool. A discrete GPU is recommended for performance.
  • Setup: Download and run the appropriate script (llmii-windows.bat or ./llmii.sh). The AI model will be downloaded to the resources directory on first run.
  • Documentation: Consult the wiki for detailed information.

Highlighted Details

  • Fully local processing, no cloud dependency.
  • Supports GPU acceleration (Nvidia CUDA, Apple Metal, AMD Vulkan).
  • Automatic model download and configuration via Koboldcpp.
  • Handles various image formats, including raw camera files.
  • Cross-platform compatibility (Windows, macOS ARM, Linux).

Maintenance & Community

Contributions are welcome via Pull Requests. The project acknowledges ExifTool, Koboldcpp, PyQt6, and JSON parsing libraries.

Licensing & Compatibility

Licensed under GPLv3. This license is copyleft, meaning derivative works must also be licensed under GPLv3. Compatibility for commercial use or linking with closed-source software may be restricted due to the GPLv3 license.

Limitations & Caveats

The tool's keyword de-pluralization and language rules are English-specific; using it for other languages may yield unexpected results. It directly modifies image metadata, and while it uses specific fields for tracking, users should be aware of the metadata being written.

Health Check
Last Commit

1 month ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
4
Star History
12 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.