- New "Smart Recategorize" panel: analyzes existing journal descriptions (no vision re-run, no images touched) to propose a richer category list when one bucket dominates the library, then reclassifies every tagged photo into it using a fast local text-only model pass in batches of 25. Verified end-to-end on the real library: correctly split "Objects & Stuff" (35% of 15k photos) into specific categories like Electronics & Hardware, Cannabis Cultivation, Minerals & Crystals, Tools & Workshop based on what's actually in the descriptions. - New ollama_generate_text() for text-only local model calls (the existing ollama_generate always sent an "images" key, unsuitable for pure text classification). - FIX: write_metadata only ever appended category/photon-tagged keywords (+=) to the list-type XMP/IPTC tags, so retagging a photo left every category it ever had stacked in its metadata, and even rewriting with the same category duplicated "photon-tagged" each time. Found via a live test while building this feature (which recategorizes at library scale). Now strips old values before adding, making every write idempotent regardless of how many times a photo is retagged. Wired through all four write sites (pipeline, write_single, redo_single, bulk_recategorize). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
116 KiB
116 KiB