github LibrePhotos/librephotos 1.5.1
1.5.1 - Faces in the right place, upgrade step fixed on SQLite

3 hours ago

This point release finishes a step of the 1.4.0 upgrade that kept failing on SQLite, puts faces from turned photos on the face, and stops LibrePhotos from asking about the same faces again on every run.

Who should update: Everyone. Update first if you use SQLite (the single container image or the Windows app) and Read shutter speeds again kept failing on the Finish the upgrade card, or if you import face tags from other apps.

After you update:

  • Nothing to do for faces. The next face run asks once more about face tags it could not match before. Those it still cannot match are kept as person tags and no longer count as failures. The Processing status card under Account menu > Library lists them, with Try again. See Processing status.
  • Admins, if Read shutter speeds again had stopped: go to Account menu > Admin Area and click Retry next to Read shutter speeds again on the Finish the upgrade card. It is done when the row says so. If you skip it, some photos keep a wrong shutter speed. See Read shutter speeds again.
  • Admins, optional: the Finish the upgrade card may list Move faces tagged on a turned picture. Click Start to move faces that were imported a quarter turn away from the face onto it, next to the unnamed copy LibrePhotos found there. Your photos are not changed. If you skip it, those faces stay where they are; Not now hides the row. See Repair Turned Faces.

Upstream:

🚀 Backend: Faces From Turned Photos Land on the Face

Some apps turn a photo's pixels when they export it but keep the face tags they wrote for the picture before the turn. LibrePhotos placed those tags 90 degrees away from the face, so a named face sat in an empty spot while the face itself showed up again as an unnamed one. A scan now checks the tag's recorded picture size against the photo: when the two are a quarter turn apart, it tries both turns and moves the tag only when exactly one of them lands on a face the face model found. Faces already imported this way are fixed by the optional Repair Turned Faces task on the Finish the upgrade card, or with manage.py repair_turned_faces --dry-run to see first what it would do. Thanks to koen-bosmans for the detailed analysis (#2887, #2899, #2903).

🚀 Backend: Face Tags Without a Match Stop Failing

A face tag the face model finds no face in is kept as a person tag without recognition data, so it is never grouped with a stranger. Until now, Generate Face Embeddings asked the face model about each of them again on every run, counted them as failures and marked the job failed with no error listed. Each face now remembers which face model could not match it and is skipped until the model changes or you click Try again on the Processing status card, which lists them apart. Finished jobs also keep the errors they recorded instead of losing them at the end (#2888, #2904).

  • 🔨 Backend: Read shutter speeds again reads the photos in batches, so it no longer stops with "database is locked" on SQLite libraries with more than a few thousand affected photos. Reported by Numbliercat (#2890, #2896) (Implemented by lalmachado)
  • 🔨 Backend: A Docker container that sees the host's GPU but has no driver for it now runs the models on the CPU instead of Mesa's much slower software Vulkan renderer, and the log names the GPU only once a model really runs on it (#2900)
  • 🔨 Frontend: The Finish the upgrade card says what the last run of a task left, with a link to its job, instead of "Not started yet". Reported by dotanm (#2902)
  • 🔨 LibrePhotos: Dependency updates for the backend, the web app and Node.js 24.22.2

Full changelog: 1.5.0...1.5.1


If you are interested in how I develop this application, you can watch me develop features live on my channel


Sponsoring development:

My work is sponsored by 2 awesome people!

If you like the work I do, then you can support me via GitHub sponsors or via PayPal

Read this release on the docs site: https://docs.librephotos.com/blog/1-5-1

Don't miss a new librephotos release

NewReleases is sending notifications on new releases.