https://github.com/ugurkantech/imageanalyzerai
Analyze and search images locally using AI-powered descriptions and semantic embeddings.
https://github.com/ugurkantech/imageanalyzerai
ai artificial-intelligence image-classification image-processing image-search meme-classification ollama ollama-api python qt5-gui
Last synced: 5 months ago
JSON representation
Analyze and search images locally using AI-powered descriptions and semantic embeddings.
- Host: GitHub
- URL: https://github.com/ugurkantech/imageanalyzerai
- Owner: UgurkanTech
- License: other
- Created: 2025-08-28T10:17:44.000Z (10 months ago)
- Default Branch: master
- Last Pushed: 2026-01-16T23:37:18.000Z (5 months ago)
- Last Synced: 2026-01-17T11:40:34.871Z (5 months ago)
- Topics: ai, artificial-intelligence, image-classification, image-processing, image-search, meme-classification, ollama, ollama-api, python, qt5-gui
- Language: Python
- Homepage:
- Size: 3.05 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# ๐ง ImageAnalyzerAI by UgurkanTech
ImageAnalyzerAI is a high-performance desktop application that leverages local multimodal AI models to generate rich image descriptions and semantic embeddings. Designed for power users and researchers, it supports fast batch processing, semantic search, and database-backed storage โ all wrapped in a sleek PyQt5 GUI.

## โถ๏ธ Demo
Analyze and search images locally using AI-powered descriptions and semantic embeddings โ perfect for organizing memes, emotes, or any large image collection.

## ๐ Features
- **Local Ollama Integration**: Connects to Ollama for image captioning and text embedding using models like CLIP, BLIP, LLaVA, and BGE.
- **Multithreaded Inference**: Utilizes up to 24 threads for parallel image processing and embedding generation.
- **Semantic Search**: Combines cosine similarity with keyword fallback to retrieve relevant image descriptions.
- **Database Management**: Stores descriptions and embeddings in SQLite and Pickle formats for persistent access.
- **Dark Mode UI**: Built with PyQt5 and styled for low-light environments.
- **Clipboard Support**: Copy image previews directly from the search results.
- **Model Family Detection**: Automatically categorizes models into vision and embedding families.
## ๐ฅ๏ธ UI Overview
| Panel | Description |
|--------------|-----------------------------------------------------------------------------|
| Left Panel | Directory selection, model dropdowns, and processing controls |
| Right Panel | Search interface with image previews, descriptions, and timestamps |
| Tabs | Switch between database preview and search views |
## ๐ ๏ธ Requirements
To run ImageAnalyzerAI, make sure the following are installed and properly configured:
- **Python 3.9+** โ Recommended for compatibility with PyQt5 and multithreading.
- **Ollama running locally** at `http://localhost:11434` โ You must have at least one **vision model** and one **embedding model** pulled.
- **Python packages**:
- `PyQt5` โ For the graphical user interface.
- `NumPy` โ For handling embedding vectors and similarity calculations.
- `Requests` โ For communicating with the Ollama API.
Install all required packages using:
`pip install -r requirements.txt`
> A PyInstaller build script is included to generate a compact standalone `.exe` for portable distribution without requiring Python on the target system.
## ๐ Usage
1. **Start Ollama locally** and ensure that at least one **vision model** and one **embedding model** are pulled and available.
These models are required for generating image descriptions and semantic embeddings. You can pull models using `ollama pull `.
2. **Launch the application** by running `python main.py`.
3. **First Run**:
- Select a directory containing images.
- Choose a vision model and an embedding model from the dropdowns.
- Click **Process** to generate image descriptions and semantic embeddings.
- These results are saved locally in a database and embedding file for future use.
4. **Subsequent Runs**:
- Previously processed data is automatically loaded.
- You can immediately perform semantic or keyword-based searches without reprocessing.
- Reprocessing is only needed if you change models or add new images to the directory.
## ๐ฆ Portable Build
A PyInstaller build script is included to generate a compact standalone `.exe` version of the application.
This allows ImageAnalyzerAI to run as a portable app without requiring Python or external dependencies on the target system.
- The build is optimized for minimal size.
- All required assets and dependencies are bundled.
- Ideal for distributing the app as a single executable.
## ๐งช Search Logic
- Semantic Search: Cosine similarity between query and stored embeddings.
- Fallback: Keyword search if all images are below threshold or ollama is offline.
## ๐ License
See the LICENSE file in the repository for usage terms