Skip to content

Releases: siculo/photometoria

v0.3.1 - Bug fix

Choose a tag to compare

@siculo siculo released this 17 May 07:58

Bug Fix

Plugin: server not configured after selecting a recent host

When selecting a server from the recent hosts combo box in the Plugin Manager, the display string (in the form host:port - serverName) was being saved as-is to the preferences. This caused the host validation to fail in the Add Photos, Remove Photos, and Manage Tasks dialogs with a "Server not configured" error.

The host is now normalized before saving, and defensively extracted on read in all three dialogs to transparently recover from existing broken preferences.

Affected files: PluginInfoProvider.lua, AddPhotosDialog.lua, RemovePhotosDialog.lua, TaskDialog.lua


Full changelog: v0.3.0...v0.3.1

v0.3.0 - Multi-language support, stability, and plugin UX

Choose a tag to compare

@siculo siculo released this 20 Apr 05:45

We're releasing Photometoria v0.3.0, a broad stabilization and improvement release spanning both the API and the Lightroom plugin.

This milestone delivers multi-language tag generation, a more robust provider and catalog model, significant plugin UX improvements, and a set of targeted bug fixes and storage resilience enhancements.

What's included:

Multi-language tag generation (API + Plugin):

  • Language parameter for tag generation — the API now accepts a target language per job (#66)
  • Language selection in the New Job dialog (#67)
  • Tag output switched from plain text to structured JSON for reliable parsing (#87)
  • Validated against llava and qwen3-vl models across multiple languages (#65, #64, #88)

Provider and catalog model (API):

  • Explicit provider required in job creation request — no more implicit fallback (#104)
  • Provider name stored on the job for traceability (#103)
  • New GET /api/catalogs endpoint to list available catalogs (#83)
  • Tasks now associated with catalog identity to prevent cross-library mixing (#57)
  • Configurable server name exposed on the info endpoint (#69)
  • num_ctx (context window size) now configurable per Ollama model (#105)

Plugin UX improvements:

  • Job creation on a subset of task photos — use the current Lightroom selection (#114)
  • "Remove Photos" command added to the plugin (#113)
  • Job timestamps and estimated time remaining shown in the plugin UI (#71)
  • Option to remove existing keywords before applying AI-generated tags (#70)
  • Recent hosts list in server connection preferences (#60)
  • Last used model pre-selected when opening the New Job dialog (#79)
  • Last active task updated when switching from the task popup (#81)

Bug fixes:

  • Orphaned jobs no longer remain in memory after task deletion (#68)
  • Photo store in-memory state correctly cleared on task deletion (#98)
  • Job creation now returns HTTP 201 instead of 200 (#61)

Storage resilience (API):

  • Filesystem consistency checks on startup (#17)
  • Improved filesystem storage resilience (#24)
  • Input validation added across API endpoints (#13)
  • Effective configuration logged in human-readable format at startup (#74)

API cleanup:

  • Deprecated GET /version and GET /api/models endpoints removed (#32)
  • Re-uploading a photo replaces the existing entry instead of creating a duplicate (#58)

Next up (v0.4.0): TBD — see the issue tracker for planned work.

Feedback welcome.

v0.2.0 - Lightroom Plugin

Choose a tag to compare

@siculo siculo released this 14 Mar 23:12

We're releasing Photometoria v0.2.0, which delivers a full-featured Lightroom Classic plugin.

This milestone brings Photometoria from a standalone API into the photographer's actual workflow: photos can now be selected, uploaded, analyzed, and tagged entirely from within Lightroom Classic.

What's included:

Plugin (Lua):

  • Task management — create, delete, rename, edit context
  • Photo workflow — select, validate, export and upload photos to tasks
  • Job lifecycle — start AI analysis, monitor real-time progress, cancel, retry, delete
  • Keyword application — apply AI-generated tags as Lightroom keywords with confirmation dialog
  • Show Photos — navigate to task photos in the Library module
  • Progress indicators and job status icons in the UI

API enhancements (Rust):

  • GET /api/info — server capabilities and status
  • GET /api/providers and GET /api/models — provider and model discovery
  • name field on tasks for user-friendly identification
  • client_id on photos for client-side reconciliation
  • Task endpoints now expose their associated jobs
  • Photo summaries in task photo listing

Next up (v0.3.0): TBD — see the issue tracker for planned work.

Feedback welcome.

v0.1.0 - API Functional Completion

Pre-release

Choose a tag to compare

@siculo siculo released this 12 Feb 15:56

We're releasing the first functional version of the Photometoria REST API.

This milestone marks the completion of the core API layer: photos can now be uploaded, analyzed by a local AI model via Ollama, and the generated tags retrieved — all through a clean REST interface.

What's included:

  • Full job lifecycle: create, monitor, cancel, retry, delete
  • Worker pool with GPU-aware model switching
  • Ollama integration with per-model prompt templates
  • GET /api/models to list available vision models
  • Delete guards to prevent accidental data loss during active jobs

Next up (v0.2.0): Work on the Lightroom Classic plugin begins.

This is an early release — the API is functional but not yet stable. Feedback welcome.