251130-b3068414c
gildas-lormeau/SingleFile251130-b3068414cDec 1, 2025by lastzero
AI Summary
This major update introduces a Batch Edit dialog for metadata editing, an upgraded face recognition pipeline with a new CNN engine, and direct integration with Ollama and OpenAI for AI-generated captions and labels.
Key Highlights
- Batch Edit dialog allows editing metadata of multiple pictures at once.
- Upgraded face recognition pipeline delivers more accurate face matches.
- Direct integration with Ollama and OpenAI for AI-generated captions and labels.
- Support for custom TensorFlow models and new scheduling options for vision models.
New Features
- Batch edit dialog for multiple picture metadata editing
- Cover image selection for people
- Support for custom TensorFlow image classification models
- Direct Ollama integration for captions and labels
- OpenAI Responses API integration
- New CNN engine for face detection and embedding
- Background scheduling options for vision models
- 2FA activation without recovery code copy
- Browser capability check warning
- API metrics endpoint reporting file system and account usage
- Config option to disable frontend
- CLI command `vision reset`
- Ubuntu 25.10 and ExifTool v13.25 upgrade
Full Release Notes
This [major update](https://docs.photoprism.app/release-notes/#november-30-2025) introduces the long-awaited [Batch Edit](https://docs.photoprism.app/user-guide/organize/batch-edit/) dialog, which allows you to [edit the metadata of multiple pictures](https://docs.photoprism.app/user-guide/organize/batch-edit/) in one go. On the AI side, an [upgraded face recognition pipeline](https://docs.photoprism.app/user-guide/ai/face-recognition/) delivers more and better matches. PhotoPrism now integrates directly with [Ollama](https://docs.photoprism.app/user-guide/ai/using-ollama/) and [OpenAI](https://docs.photoprism.app/user-guide/ai/using-openai/) to generate [captions and labels](https://docs.photoprism.app/user-guide/ai/). Support for [custom TensorFlow models](https://docs.photoprism.app/developer-guide/vision/tensorflow/custom-models/), [refined configuration](https://docs.photoprism.app/user-guide/ai/#visionyml-reference), and [new scheduling options](https://docs.photoprism.app/user-guide/ai/#run-modes) offer further flexibility. You'll also notice many performance and usability enhancements, such as the ability to [change the cover image for a person](https://docs.photoprism.app/user-guide/organize/people/#change-cover-for-a-person), as well as updated dependencies and new translations. As always, a big thank you to [everyone who contributed](https://docs.photoprism.app/developer-guide/) and [helped with testing](https://github.com/photoprism/photoprism/issues?q=is%3Aissue%20state%3Aopen%20label%3Aplease-test)! We hope you enjoy the new release as much as we do. 🌈💎✨ #### Upgrade Notes - To benefit from the [facial recognition improvements](https://docs.photoprism.app/user-guide/ai/face-recognition/), we recommend running `photoprism faces audit --fix` and `photoprism faces index` [in a terminal](https://docs.photoprism.app/getting-started/docker-compose/#opening-a-terminal) to resolve any inconsistencies before detecting and matching additional faces. If you want the new engine to re-detect all faces for a clean state, you can do so by executing the commands `photoprism faces reset -f` and then `photoprism faces index` (after that, all detected faces must be reassigned). A [complete rescan](https://docs.photoprism.app/user-guide/library/originals/#when-should-complete-rescan-be-selected) will also detect additional faces, but takes longer since more indexing tasks are performed. - PhotoPrism now [supports multiple AI engines](https://docs.photoprism.app/user-guide/ai/#model-engines), so the `PHOTOPRISM_DISABLE_TENSORFLOW` option [has been deprecated](https://github.com/photoprism/photoprism/issues/5310). You can still disable individual AI features using the [`PHOTOPRISM_DISABLE_*` feature flags](https://docs.photoprism.app/getting-started/config-options/#feature-flags) and/or a [custom `vision.yml`](https://docs.photoprism.app/user-guide/ai/#visionyml-reference) configuration. #### What's new? - AI: [Support for custom TensorFlow image classification models](https://github.com/photoprism/photoprism/pull/5011) by @raystlin - AI: [Direct Ollama integration for generating captions](https://github.com/photoprism/photoprism/issues/5123) and [labels](https://github.com/photoprism/photoprism/issues/5232) by @lastzero - AI: [Generate Captions & Labels using the OpenAI Responses API](https://github.com/photoprism/photoprism/issues/5322) by @lastzero - AI: [Improved face detection and embedding pipeline with a new CNN engine](https://github.com/photoprism/photoprism/issues/5167) - AI: [Improved model configuration and `photoprism vision run` command](https://github.com/photoprism/photoprism/commit/4bc9cd6ca23bb65072b766ae16b7966b4e7b3e36) - AI: [Added scheduling options for running vision models in the background](https://github.com/photoprism/photoprism/issues/5234) - UX: [Added a batch edit dialog to edit multiple pictures at once](https://github.com/photoprism/photoprism/issues/271) by @AsikNasik - UX: [Added a menu to select a cover image for people](https://github.com/photoprism/photoprism/issues/4151) by @omerdduran - UX: ["Add to Album" dialog allows selection of multiple albums](https://github.com/photoprism/photoprism/pull/5177) by @omerdduran - UX: [Improved people name editing and focus management](https://github.com/photoprism/photoprism/pull/5307) by @omerdduran - UX: [Improved window scroll position restoration when navigating](https://github.com/photoprism/photoprism/issues/5211) - UX: [Disabled autofocus on mobile devices to prevent keyboard from opening](https://github.com/photoprism/photoprism/issues/5213) - UX: [Added a browser capability check displaying a warning if unsupported](https://github.com/photoprism/photoprism/issues/5047) - UX: [Improved memory and event management in Viewer](https://github.com/photoprism/photoprism/issues/5260) and [Places](https://github.com/photoprism/photoprism/issues/5259) - Auth: [2FA can be activated, even if the recovery code cannot be copied](https://github.com/photoprism/photoprism/issues/5106) - Search: [Added escaping for `|` and `&` in filters](https://github.com/photoprism/photoprism/pull/5188) by @keif888 - Search: [Improved Boolean value parsing in filters](https://github.com/photoprism/photoprism/pull/5191) by @keif888 - Index: [Selecting "Complete Rescan" refreshes the detected media types](https://github.com/photoprism/photoprism/issues/5096) - Index: [Underlying errors are logged when file type detection fails](https://github.com/photoprism/photoprism/issues/5149) - Index: [Improved error logging when PDF documents cannot be indexed](https://github.com/photoprism/photoprism/issues/5166) - Index: [Fixed in-memory photo and file lookup tables to prevent file rescans](https://github.com/photoprism/photoprism/issues/5235) - Thumbs: [Embedding of ICC profiles based on InteropIndex](https://github.com/photoprism/photoprism/pull/5178) by @akdor1154 - Videos: [Fixed issues with non-keyframes when extracting still images](https://github.com/photoprism/photoprism/issues/5189) - Intel QSV: [`libvpl2` will be installed when `PHOTOPRISM_INIT` includes "intel"](https://github.com/photoprism/photoprism/discussions/5098) - API: [Added a force flag to the `DELETE /api/v1/albums/UID` endpoint](https://github.com/photoprism/photoprism/issues/5122) - API: [Corrected handling of CORS preflight requests](https://github.com/photoprism/photoprism/issues/5133) by @techmatt101 - API: [Configured service key can be used for Vision API authentication](https://github.com/photoprism/photoprism/issues/5299) - API: [`/api/v1/metrics` endpoint reports file system and account usage](https://github.com/photoprism/photoprism/issues/5355) - Config: [`PHOTOPRISM_DISABLE_FRONTEND` disables the web user interface](https://github.com/photoprism/photoprism/issues/5111) - CLI: [Added `--json` output format flag to `photoprism show` commands](https://github.com/photoprism/photoprism/issues/5220) - CLI: [Added `vision reset` command to regenerate captions and labels](https://github.com/photoprism/photoprism/issues/5233) - CLI: [Improved `photoprism dl` command to support additional flags](https://github.com/photoprism/photoprism/issues/5261) - Setup: [Added `ollama` service to `compose.yaml` configuration examples](https://dl.photoprism.app/docker/) - PWA: [Replaced "@lcdp/offline-plugin" with "workbox-webpack-plugin"](https://github.com/photoprism/photoprism/issues/5274) - Docker: [Upgraded to Ubuntu 25.10](https://github.com/photoprism/photoprism/issues/5276), incl. [ExifTool v13.25](https://github.com/exiftool/exiftool/blob/master/Changes) and [libheif v1.20.2](https://github.com/strukturag/libheif/releases/tag/v1.20.2) - Docker: [Preinstalled `libmagic-mgc` package for file type detection](https://github.com/photoprism/photoprism/issues/5149) - Docker: [Improved `cmd.sh` script to terminate child processes](https://github.com/photoprism/photoprism/pull/5172) by @keif888 - Security: [Upgraded Go to v1.25.4, which includes fixes and improvements](https://github.com/golang/go/issues?q=milestone%3AGo1.25.4) - Translations: [Updated Spanish and Vietnamese](https://docs.photoprism.app/developer-guide/translations-weblate/) #### Screenshots ##### Batch Edit Quickly and easily update the metadata, albums, and labels of multiple pictures:  Entries that are assigned to all selected pictures are listed first. Each entry is shown as a small chip. If a label or album is assigned to only some of the selected pictures, its chip is shown as *partially assigned*.  ##### Usability Enhancements Browse related pictures or set a cover image for a person:  Add pictures to multiple albums in one step:  ##### Ollama AI Model Integration Use advanced LLMs like the recently released Qwen3-VL to generate captions and labels for your pictures: <img width="1180" height="820" alt="ski-captions" src="https://github.com/user-attachments/assets/3787cf19-ce4c-49eb-bff2-f06f9656a311" /> <img width="1180" height="780" alt="ski-labels" src="https://github.com/user-attachments/assets/49ceb6fa-8e96-4024-a873-35f4f54521bc" /> #### Translations Missing [user interface translations](https://translate.photoprism.app/projects/photoprism/) have been generated with the help of DeepL and Google Translate. Native speakers are [welcome to help us improve them](https://docs.photoprism.app/developer-guide/translations-weblate/) where needed. [Learn more ›](https://docs.photoprism.app/developer-guide/translations-weblate/) #### Installation Packages The packages attached to this release are intended for experienced users and maintainers of third-party integrations only, as they [require manual configuration](https://dl.photoprism.app/pkg/linux/README.html#configuration) and [do not include tested system dependencies](https://dl.photoprism.app/pkg/linux/README.html#dependencies). Since we are unable to [provide support](https://www.photoprism.app/kb/getting-support) for custom installations, we recommend [using one of our Docker images](https://docs.photoprism.app/getting-started/docker-compose/) to run PhotoPrism on a private server or NAS device. [Learn more ›](https://dl.photoprism.app/pkg/linux/README.html)