ImageGenius Changes:
move to using seperate immich baseimage
immich Changes:
v1.90.0
Important
Announcement (Breaking changes next release)
Continuing the effort of reducing Immich's footprint, we would like to announce another planned change. Starting from the next release (not this release), we will be removing the Typesense container and changing the database image. Below are the changes that must be made in your docker-compose.yml file.
immich-server:
[...]
depends_on:
- redis
- database
- - typesense
restart: always
immich-microservices:
[...]
depends_on:
- redis
- database
- - typesense
restart: always
- typesense:
- container_name: immich_typesense
- image: typesense/typesense:0.24.1@sha256:9bcff2b829f12074426ca044b56160ca9d777a0c488303469143dd9f8259d4dd
- environment:
- - TYPESENSE_API_KEY=${TYPESENSE_API_KEY}
- - TYPESENSE_DATA_DIR=/data
- # remove this to get debug messages
- - GLOG_minloglevel=1
- volumes:
- - tsdata:/data
- restart: always
[...]
database:
container_name: immich_postgres
- image: postgres:14-alpine@sha256:6a0e35296341e676fe6bd8d236c72afffe2dfe3d7eb9c2405c0f3fc04500cd07
+ image: tensorchord/pgvecto-rs:pg14-v0.1.11
env_file:
- .env
environment:
volumes:
pgdata:
model-cache:
- tsdata:
Note
Note: If you are running your database with a non-superuser role for Immich, you must enable the pgvecto.rs extension manually. You can do this by connecting to the immich
database as a superuser and running:
CREATE EXTENSION vectors;
Search Background
It turns out that synchronizing data between Postgres and Typesense is quite complicated. It accounts for at least an additional 1000 lines of code and, while very feature-filled, has become a burden to maintain. Also, there have been some serious memory and performance issues with Typesense, especially with large photo collections. It is lightning fast, but at the expense of large indexes that must be read from disk into memory on each restart. There have been reports of this process taking up to 30 minutes!
We effectively remove an entire class of bugs and issues by removing the need to synchronize data. Furthermore, search queries can more easily be combined with the existing database schema, like libraries, partner sharing, albums, etc. After merging #3605, we hope to be able to make significant progress around the search implementation and feature set.
In short, some of the benefits of this change include the following:
- One less container to run, deploy, and manage
- Better memory/system resource usage
- Decreased memory usage
- Faster Encode CLIP and Recognize Faces jobs
- Faster startup time
- Significantly less code to maintain, test, debug
- Improved developer workflow when adding search-related functionality
- Ability to integrate smart search into end-to-end testing for improved testing coverage and stability
- Ability to integrate CLIP search with other (metadata) criteria in the future
- Ability to add customizable index settings for even lower memory usage and higher performance, such as on-disk indices and quantization
Highlights
Welcome to release v1.90.0
of Immich. In this release, we introduce the first implementation of asset metadata editing, which includes date, time, and location. This release also contains many improvements and bug fixes. I hope you enjoy this release. Please read the following highlights below:
- Edit metadata.
- Reassign person faces.
- Better handling of iCloud assets.
Edit metadata
This release introduces the first implementation of editing assets.
Web
chrome_R8eIwyUEBR.mp4
Mobile App
Bottom Sheet | Edit Date Time | Edit Location | Manual Location |
---|---|---|---|
Map Picker | Bottom sheet | Asset without location |
---|---|---|
Note
Metadata edits only apply to non-external/read-only assets.
You can now edit a photo or video's date, time, hours, timezone, and GPS information. The edited info is written to a companion sidecar file and saved in the exact library location as the original photo or video.
Please note that downloading an asset does not include the sidecar file or edited information yet.
Thanks, @YFrendo, and @jrasm91 for the valuable implementation of this feature. Thanks @shenlong-tanwen for a quick implementation on the mobile app for feature parity
Reassign person's faces
In this continuous enhancement, @martabal has implemented a mechanism to change facial data in a photo from one person to another. There is a bounding box around the person's face in the photo hovered on the face in the detail panel.
Re-assigning faces
2023-11-10.20-05-34.mp4
Hovering thumbnails
2023-11-13.11-42-12.mp4
Better handling of iCloud assets
This is the first attempt to improve the backup process for iCloud’s users. We also added a toggle to ignore backing up assets from iCloud; you can find the option in a new Backup Options page on the mobile app.
And as always, bugs are fixed, and many other improvements also come with this release.
Please consider supporting the project.
Support
If you find the project helpful, you can support Immich via the following channels.
- Monthly donation via GitHub Sponsors
- One-time donation via GitHub Sponsors
- Librepay
- buymeacoffee
- Bitcoin: 1FvEp6P6NM8EZEkpGUFAN2LqJ1gxusNxZX
It is a great way to let me know that you want me to continue developing and working on this project for years to come.
Changelogs
Mobile
- feat(mobile): edit date time & location by @shenlong-tanwen in immich-app/immich#5461
- feat(mobile): unify asset grid multiselect actions by @fyfrey in immich-app/immich#5407
- feat(mobile): handle backup iCloud asset by @alextran1502 in immich-app/immich#5508
- fix(mobile): clear album provider on logout by @fyfrey in immich-app/immich#5477
- fix(mobile): the new album icon has a different height from the existing album cover by @Skyquek in immich-app/immich#5422
- fix(mobile): use zoomedpagetransition for galleryvieweroute by @shenlong-tanwen in immich-app/immich#5495
- fix(mobile): notify mobile app when live photos are linked by @shenlong-tanwen in immich-app/immich#5504
- fix(mobile): allow editing asset dates in the future by @shenlong-tanwen in immich-app/immich#5522
Web
- feat(web): re-assign person faces (2) by @martabal in immich-app/immich#4949
- feat(web): add clear failed jobs button by @8gb in immich-app/immich#5423
- feat(web): Edit metadata by @YFrendo in immich-app/immich#5066
- feat(web): allow showing hidden people in image asset details view by @brokeh in immich-app/immich#5420
- feat(web): UI/UX improvement for date time edit form by @alextran1502 in immich-app/immich#5505
- fix(web): whitespace in person name by @martabal in immich-app/immich#5401
- fix(web): disable metadata edit if user is not owner by @martabal in immich-app/immich#5415
- fix(web): status box rendering by @danielktaylor in immich-app/immich#5410
- fix(web): new album title fix by @waclaw66 in immich-app/immich#5467
- fix(web): keep url query parameters when swapping people by @martabal in immich-app/immich#5468
- fix(web): stick action bar on search by @martabal in immich-app/immich#5459
- fix(web): runtime issue by @jrasm91 in immich-app/immich#5493
- fix(web): delete modal z-index by @danielktaylor in immich-app/immich#5416
- fix(web): background when re-assigning faces by @martabal in immich-app/immich#5512
- fix(web): align all edit buttons and not correctly rounded buttons on detail-panel by @martabal in immich-app/immich#5524
- chore(web): toggle hide face in context menu by @alextran1502 in immich-app/immich#5440
- chore(deps): update web by @renovate in immich-app/immich#5502
- refactor(web): asset viewer actions by @jrasm91 in immich-app/immich#5488
Server
- fix(server): immich command by @jrasm91 in immich-app/immich#5408
- fix(server): video orientation by @martabal in immich-app/immich#5455
- fix(server): send upload_success notification only for non hidden assets by @shenlong-tanwen in immich-app/immich#5471
- fix(server): Return correct asset count in album by @mPyKen in immich-app/immich#5465
- fix(server): not awaiting
sendFile
by @jameskeane in immich-app/immich#5515 - chore(server): sql versioning by @jrasm91 in immich-app/immich#5346
- chore(server): Check asset permissions in bulk by @adamantike in immich-app/immich#5329
Documentations
- docs: correct wording and grammar in README_de_DE.md by @traktuner in immich-app/immich#5447
- docs: update docs to use docker compose by @danieldietzler in immich-app/immich#5446
Dependencies
- chore(deps): bump actions/setup-java from 3 to 4 by @dependabot in immich-app/immich#5405
- chore(deps): update python:3.11-bookworm docker digest to c56b0c6 by @renovate in immich-app/immich#5387
- chore(deps): update python:3.11-slim-bookworm docker digest to 23f5220 by @renovate in immich-app/immich#5388
- chore(deps): update dependency @types/node to v20.10.1 by @renovate in immich-app/immich#5427
- chore(deps): update postgres:14-alpine docker digest to 5491670 by @renovate in immich-app/immich#5429
- chore(deps): update redis:6.2-alpine docker digest to 60e49e2 by @renovate in immich-app/immich#5430
- chore(deps): update base-image to v20231130 (major) by @renovate in immich-app/immich#5431
- chore(deps): base image min age by @jrasm91 in immich-app/immich#5433
- chore(deps): update python:3.11-bookworm docker digest to 47c1829 by @renovate in immich-app/immich#5434
- chore(deps): update python:3.11-slim-bookworm docker digest to 8f82989 by @renovate in immich-app/immich#5435
- chore(deps): update python:3.11-bookworm docker digest to ba7a7ac by @renovate in immich-app/immich#5438
- chore(deps): update base-image to v20231201 (major) by @renovate in immich-app/immich#5452
- chore(deps): update postgres:14-alpine docker digest to 6a0e352 by @renovate in immich-app/immich#5451
- chore(deps): update python:3.11-slim-bookworm docker digest to cc75851 by @renovate in immich-app/immich#5462
- chore(deps): update mambaorg/micromamba:bookworm-slim docker digest to e296d47 by @renovate in immich-app/immich#5487
- chore(deps): update postgres docker digest to 6dfee32 by @renovate in immich-app/immich#5492
- chore(deps): update dependency vite to v4.5.1 [security] by @renovate in immich-app/immich#5513
- chore(deps): ignore openapi pubspec by @shenlong-tanwen in immich-app/immich#5521
- chore(deps): bump actions/setup-python from 4 to 5 by @dependabot in immich-app/immich#5528
- chore: make running local dev instance on Windows work regardless of git config by @brokeh in immich-app/immich#5419
New Contributors
- @brokeh made their first contribution in immich-app/immich#5419
- @danielktaylor made their first contribution in immich-app/immich#5410
- @traktuner made their first contribution in immich-app/immich#5447
- @Skyquek made their first contribution in immich-app/immich#5422
- @8gb made their first contribution in immich-app/immich#5423
- @jameskeane made their first contribution in immich-app/immich#5515
Full Changelog: immich-app/immich@v1.89.0...v1.90.0