Releases: gibbonsr4/ai-keywords-lightroom
Release list
v1.2.2 — Gemini 3.1 Flash-Lite GA ID, dedupe moondream dropdown
Patch release. Two small but real fixes.
Gemini 3.1 Flash-Lite ID change (required before 2026-05-25)
Google graduated Gemini 3.1 Flash-Lite from preview to GA in April 2026 and dropped the -preview suffix:
| Before | After |
|---|---|
gemini-3.1-flash-lite-preview |
gemini-3.1-flash-lite |
The preview ID will start returning errors after May 25, 2026. Anyone running 1.2.0 / 1.2.1 with Flash-Lite selected as their Gemini model needs to upgrade to 1.2.2 before that date or manually re-select the model after upgrade. Same underlying model architecture — no behavior change beyond the ID swap.
Other Gemini 3 entries (3 Flash, 3.1 Pro) remain preview-tier; expect them to graduate eventually with similar EOL notices.
Dropdown dedup
The Ollama model dropdown in Settings used to show moondream twice — once as "Moondream 2 ✓" via the suggested list, and once as "moondream:latest ✓" via the unlisted-installs pass. Cause: the suggested-list entry has a bare value (moondream, no tag), and the unlisted-installs pass uses tag form (moondream:latest) as its lookup key. Different keys meant the :latest form fell through and got appended as a duplicate.
Fix: when a suggested match is via a bare value, mark its :latest form covered too so the unlisted-installs pass skips it.
Install
- Download
AIKeywords-1.2.2.lrplugin.zipbelow. Unzip. - Lightroom → File → Plug-in Manager. Remove your existing 1.2.x entry, add the new folder. Or reload in place.
- Settings → Gemini tab: if you had Flash-Lite selected and saw "model not found," pick it again from the dropdown to save the new ID.
Apple M5 + Ollama note
If you're on an Apple M5 Mac, Ollama 0.20+ has a Metal compatibility bug that crashes most local models. Not specific to this plugin. Workarounds: try OLLAMA_USE_MLX=1 if you have 32+ GB unified memory, downgrade to Ollama 0.18.0, or use cloud providers until upstream ships a fix.
Full commit log: v1.2.1...v1.2.2
v1.2.1 — Ollama Settings button self-refreshes
Patch release. One UX fix in the Ollama Settings pane.
Fix
The Ollama action button in Settings (Download Ollama / Start Ollama / Refresh) now re-reads state on every click and self-updates after a download install.
Previously: clicking Download Ollama, installing Ollama outside the plugin, and returning to Settings left the button stuck on "Download Ollama." Users had to close and reopen Settings to see the updated label. Clicking again launched Ollama correctly but the stale label was confusing.
Now:
- Every button click re-samples Ollama state first, so the action is driven by current reality — not a label set when Settings opened.
- After Download Ollama clicks, the plugin polls every 2 s for up to 3 minutes watching for installation to complete. When detected, the button label self-updates from "Download Ollama" → "Start Ollama" with no manual step.
- If the 3-minute poll times out, status text guides the user to click Download Ollama again or reopen Settings.
- Closing Settings mid-poll cancels the wait (LR's async-task teardown).
No other changes
Same model lineup and prompts as 1.2.0. If you're already running 1.2.0 and haven't hit the button-label staleness, there's nothing else to gain from upgrading.
Install
- Download
AIKeywords-1.2.1.lrplugin.zipbelow. Unzip. - Lightroom → File → Plug-in Manager. If 1.2.0 is already installed, remove it and add the new folder. Otherwise add as new.
- See First-run setup in the README if this is a fresh install.
Full commit log: v1.2.0...v1.2.1
v1.2.0 — Model refresh, prompt rewrite, security + UX hardening
First major release after a full code review + model lineup refresh.
Highlights
- April 2026 model refresh. Claude Opus 4.7, GPT-5.4 (Nano/Mini/Standard), Gemini 3 family (3.1 Flash-Lite, 3 Flash, 3.1 Pro) plus Gemini 2.5 Pro kept as a landmark-recognition legacy option. Ollama list updated to Qwen3-VL 4B/8B, Gemma 4 (E4B, 31B), MiniCPM-V 4.5 8B alongside the battle-tested Qwen2.5-VL 7B (still the default).
- Prompt rewrite. Restructured base prompt with a post-CONTEXT landmark directive that actively reasons from visual cues + metadata before identifying specific places/landmarks. Compact variant for Claude Haiku to limit over-prompting.
- Provider code deduplicated. Single
M.queryAPI(spec)transport for all four providers; ~100 LOC removed; HTTP status surfacing; tighter temp-file hygiene. - Compare Models UX. Per-image cost estimates, photo thumbnail in the results header, wrapping shared-keyword footer, phase-aware progress caption, cleaner Done/Compare Again buttons.
- Parent-keyword stranding fixed. New
findOrCreateUnderParentwalksparent:getChildren()first so keywords reliably land under the configured parent instead of being left at root. - Security hardening. curl config URL escaping, strict Ollama healthcheck (no more false-positive "running" on captive portals), prompt-injection fencing for folder/GPS metadata, GPS values redacted from logs, tmpCfg cleanup on every error path.
- Cancellation. Mid-run cancel now aborts within one photo rather than running to completion.
- Keychain auto-migration. Pre-1.1 plaintext API keys are migrated into the macOS Keychain on first read, no user action required.
New defaults on fresh install
| Provider | Default model |
|---|---|
| Ollama | qwen2.5vl:7b |
| Claude | claude-sonnet-4-6 |
| OpenAI | gpt-5.4-mini |
| Gemini | gemini-3.1-pro-preview |
Install
- Download
AIKeywords-1.2.0.lrplugin.zipbelow. Unzip. - Lightroom → File → Plug-in Manager → Add. Select the unzipped
AIKeywords.lrpluginfolder. - Follow the First-run setup in the README for Ollama (install + first model) or cloud API (key acquisition + setup) — whichever path you want to use. Takes 2–5 minutes either way.
Requirements
- macOS (Apple Silicon recommended)
- Lightroom Classic 6+
- For Ollama: Ollama installed; 1–15 GB disk per model
- For cloud: an API key from Anthropic, OpenAI, or Google AI Studio
Known caveats
- Ollama performance varies widely by model. Typical per-image on recent Apple Silicon with 16–24 GB: Qwen2.5-VL 7B 15–30 s, Gemma 4 E4B 25–45 s, MiniCPM-V 4.5 8B 20–40 s. Qwen3-VL 8B is currently much slower than its size suggests (60–180 s) due to an Ollama Metal-kernel optimization gap — prefer Qwen2.5-VL 7B until fixed. See README Performance section for a full table.
- Gemini 3.x model IDs are preview-tier. Google may rotate them without notice. If you see an HTTP 404 "model not found," open Settings and pick a different Gemini model. Gemini 2.5 Pro is kept as a stable fallback but is scheduled for eventual phase-out by Google.
- Haiku 4.5 can hallucinate confidently on unusual architecture (it misidentified a Dominican Republic resort as a Mayan ruin in testing). Sonnet 4.6 is the safer Claude default.
Full commit log: 49aa6a6...v1.2.0