A powerful, local-first AI tagging and analysis plugin for Eagle App.
It uses Ollama running vision models (Qwen3-VL, LLaVA, etc.) to automatically:
- Tag images, video, audio, and text with descriptive keywords
- Describe content in detail
- Analyze genre, lighting, style, color palette, and technical quality
- Suggest Names for your files
- Extract ComfyUI/SD Metadata — reads AI generation prompts from PNGs
- Group Similar Images — perceptual hashing reduces LLM calls by 60-80%
- Resume Interrupted Batches — never lose progress
- Rate Content — 1-5 star aesthetic scoring
Everything runs offline via Ollama. No cloud. No API keys.
- Images — Full analysis with subjects, genre, lighting, color, mood, style
- Video — Extracts 5 representative frames, merges tags across all frames
- Audio — Extracts metadata (duration, bitrate, ID3 tags) and analyzes genre/mood/instrumentation
- Text — Summarizes and categorizes documents
Automatically detects and extracts generation metadata from AI images:
- ComfyUI workflow data and prompts
- Stable Diffusion WebUI parameters (prompt, negative prompt, steps, sampler, seed, CFG)
Extracts 5 dominant colors using PIL median-cut quantization. Classifies palette type:
- Monochrome, Vibrant, Dark, Warm, Cool, Mixed
- Normalize — lowercase, deduplicate, strip special chars
- Filter — remove stopwords, enforce min/max length, blacklist
- Score — quality score based on diversity, count, deduplication ratio
Uses perceptual hashing (aHash) to find duplicate/similar images before processing. Tags from one representative are propagated to all duplicates.
Automatically adjusts batch size based on Ollama response times. Fast GPU = larger chunks, slow CPU = smaller chunks.
- Response Cache — SHA256-based LRU cache (500 entries). Same image = instant result.
- Server-Side Batch —
POST /process/batch/pathssends file paths only; backend reads directly from disk - No Upload Overhead — avoids copying image bytes over HTTP for local files
- API Token Auth — random 32-char token generated on init, passed via
X-API-Key - Restricted CORS — only
localhost,file://, and Eagle webview origins allowed - PID Tracking — kills orphaned Python servers on plugin load, force-kills on close
- Results Panel — per-item breakdown: tags, aesthetic score, color palette, AI metadata
- Model Selector — auto-detects all Ollama models, shows vision capability, recommends best
- Keyboard Shortcut —
Ctrl+Shift+Ttriggers tagging without opening plugin window - Eagle Progress Bar — native
eagle.window.setProgress()during batch - Resume — tracks processed item IDs (not just count), survives selection changes
- Ollama: Download Ollama and ensure it is running (
http://localhost:11434) - Python 3.10+
- Eagle App
git clone https://github.com/theCosmicCrafter/localcura-eagle-plugin.git
cd localcura-eagle-pluginpython -m venv venv
# Windows:
venv\Scripts\activate
# Linux/Mac:
source venv/bin/activate
# Install dependencies
pip install -r backend/requirements.txt
# Verify installation (optional but recommended)
python check_requirements.py-
Start Ollama: Make sure Ollama is running in the background.
-
Start the Backend:
python backend/localcura.py --start-server --port 8005
- The system will automatically check for and pull
qwen3-vlif it's missing.
- The system will automatically check for and pull
-
In Eagle:
- Load the unpacked plugin from the
eagle_pluginfolder. - Select items and click "Analyze & Tag Selected".
- Use the settings gear to customize behavior.
- Load the unpacked plugin from the
Create a .env file in the root directory:
OLLAMA_BASE_URL=http://localhost:11434/api
OLLAMA_MODEL=qwen3-vl:8b
# Optional toggles
EXTRACT_METADATA=true
EXTRACT_COLORS=true
MAX_TAGS=30
MIN_TAG_LENGTH=2
MAX_TAG_LENGTH=25Click the ⚙️ Settings button in the plugin header to customize:
| Setting | Default | Description |
|---|---|---|
| Chunk Size | 5 | Items processed per batch |
| Chunk Delay | 5000ms | Wait time between batches |
| Adaptive Chunking | On | Auto-adjust based on response times |
| Resume | On | Save progress for crash recovery |
| Compression | On | Resize large images before sending |
| Extract Metadata | On | Read ComfyUI/SD data from PNGs |
| Extract Colors | On | Extract dominant color palette |
| Verify Tags | On | 3-layer tag cleaning |
| Max Tags | 30 | Limit tags per item |
| AI Model | Auto | Select Ollama model (fetched dynamically) |
| Endpoint | Method | Description |
|---|---|---|
GET /health |
GET | Health check + model info |
POST /process |
POST | Single file upload |
POST /process/batch |
POST | Multipart batch upload |
POST /process/batch/paths |
POST | Batch by file paths (fastest) |
POST /similarity/group |
POST | Group similar images by perceptual hash |
GET /similarity/hash |
GET | Single image hash |
GET /models |
GET | List installed Ollama models with vision detection |
GET /cache/stats |
GET | Cache metrics |
POST /cache/clear |
POST | Clear analysis cache |
The plugin will automatically slow down and retry. Reduce chunk size in Settings.
The plugin auto-detects the backend path from eagle.plugin.path. If it fails, set the path manually in Settings.
Enable similarity grouping and use smaller chunk sizes.
This is the resume feature working! Click OK to continue, Cancel to start fresh.
- Enable Similarity Grouping for photo shoots with many similar shots
- Use Adaptive Chunking to let the plugin find the optimal speed
- Resume lets you safely process large batches across multiple sessions
- Server-side batch paths is 10x faster than individual uploads for local files
- Cache avoids re-analyzing identical images
MIT License — feel free to modify and distribute.