Releases: immich-app/immich
v1.132.1
v1.132.1
Hotfixes
- Reverting the opt-in delete synchronization in this release 😢. There is an issue with getting the Google PlayStore to approve the app with the new permission needed for this feature. We are exploring alternative routes to preserve this feature and will push out another update as soon as possible
- Fixes an issue where the server does not start on ARM devices
What's Changed
🐛 Bug fixes
- fix(server): bump sharp by @mertalev in #17818
- chore: reverting opt-in deletion feature by @alextran1502 in #17819
Full Changelog: v1.132.0...v1.132.1
v1.132.0
v1.132.0
Highlights
Note
We are now using Valkey's image for the Redis service in the default docker-compose.yml template. This is not a required change. If you wish to use it, you can download the docker-compose.yml
file at the bottom of the release notes and replace the redis image with the new one.
Welcome to version v1.132.0
of Immich.
This release marks an exciting milestone, inching one step closer to the stable release. The server no longer relies on TypeORM (database object-relational mapping); from this point forward, we utilize our own schema and migration management tool, integrated with Kysely. Related, the mobile app will also begin to use a new database, SQLite. Over the next few releases, we plan to roll out a new, efficient sync implementation using SQLite, which should improve startup time and reduce jankiness, especially when working with large media collections.
In addition to the two milestones mentioned above, this release also features new enhancements, bug fixes, and other notable additions. Please see the highlights below.
- Opt-in web-mobile delete action synchronization on Android
- Improve web responsive design on mobile devices
- Migrate mobile app translations to Weblate
- Improve mobile app map performance
Opt-in web-mobile delete synchronization (Android only)
This update includes a new, optional feature currently in an experimental phase. It aims to synchronize deletion actions between the Immich web interface and your connected Android device.
If you choose to enable this feature (Settings > Advanced > Sync remote deletion
), trashing, deleting, or restoring a photo or video through the Immich web interface will result in the corresponding action being taken on the file on your Android phone. This functionality is intended to prevent the need to perform the same trash action separately on both Immich and your phone.
When this feature is active, the sequence of events is as follows:
- Your photos get backed up from your phone to Immich.
- Later, you use the Immich website to trash some of those photos.
- The next time you open the Immich app on your phone, the app will find those photos you trashed on the website and move them to your phone's trash folder for you.
- If you choose to restore the asset from Immich’s trash, it will also be moved out of your phone’s trash folder.
Note: The location of the phone's trash folder varies by device. For example, Samsung devices often use the Gallery app's trash, while Google Pixel devices may use the Files app's trash.)
Improve web responsive design on mobile devices.
This release makes significant improvements to the browsing experience of the web app on mobile devices. The sidebar is now collapsible, leaving more space to view the timeline. We’ve also changed the size of the images in the timeline on mobile, with the hope of making more images visible at once.
Just as we thought we had squeezed every ounce of performance out of the timeline scrolling, a wizard in the contributor team pushed it even further. The need for speed is real! We hope you enjoy it.Mobile app translations have been migrated to Weblate.
The i18n on the mobile app, previously managed with Localizely, has now been migrated to Weblate. Anyone can help with translation without needing to obtain an invitation from us.
Along with those changes, we have made many more improvements to the quality of the server, web, and mobile app. We hope you enjoy those as well.
Support Immich
If you find the project helpful, you can support Immich by purchasing a product key at https://buy.immich.app or purchase our merchandise at https://immich.store
What's Changed
🚨 Breaking Changes
🔒 Security
- fix: various actions workflow security improvements by @bo0tzz in #17651
- feat: static analysis job for gha workflows by @bo0tzz in #17688
🚀 Features
- feat(web): expand/collapse sidebar by @ben-basten in #16768
- feat(mobile): sqlite by @shenlong-tanwen in #16861
- feat(server): Avoid face match with people born after file creation #4743 by @abhinav96 in #16918
- feat: opt-in sync of deletes and restores from web to Android by @aleksandrsovtan in #16732
- feat(server): read additional lens exif tags by @Snowknight26 in #17125
- feat: sync pictureFile with oidc if it isn't set already by @Etienne-bdt in #17397
- feat: view qr code from share modal by @jrasm91 in #17544
- feat(mobile): use Weblate for i18n (1) by @alextran1502 in #17609
- feat: user sync stream by @shenlong-tanwen in #16862
🌟 Enhancements
- feat: allow accounts with a quota of 0 GiB by @rubenhensen in #17413
- feat(web): improve individual share ux by @devsnek in #17430
- feat: use browser download manager for single file downloads by @ROODAY in #17507
- feat: show thumbhash behind load error, if possible by @midzelis in #17554
- feat: responsive: skeleton by @midzelis in #17553
- feat: responsive-web: shrink mem-lane by @midzelis in #17550
- chore(mobile): small visual fix and update by @alextran1502 in #17547
- feat(server): parse EXIF creation time for some insta360 images by @Kirens in #17564
- perf(mobile): optimize date loading with batch loading by @andreymir in #17240
- feat: responsive controlbar by @midzelis in #17601
- refactor(server): remove asset placeholder by @etnoy in #17621
- chore(server): don't check null dates by @etnoy in #17664
- feat(mobile): search on places page by @YarosMallorca in #17679
- feat(mobile): map improvements by @YarosMallorca in #17714
- feat: add album start and end dates for storage template by @exciton in #17188
- perf(mobile): remove load of thumbnails in the image provider by @EinToni in #17773
- perf(mobile): remove small thumbnail and cache generated thumbnails by @EinToni in #17792
🐛 Bug fixes
- fix(web): fix thumbnail hover link position by @Snowknight26 in #16762
- fix(web): use original image if web compatible by @mertalev in #17347
- refactor(mobile): device asset entity to use modified time by @shenlong-tanwen in #17064
- fix(mobile): bump isar maxSize by @shenlong-tanwen in #17372
- fix: reset memories on logout by @danieldietzler in #17405
- fix(web): Video memories are played at 100% volume instead of respecting user preference by @Zlendy in #17424
- fix(mobile): prevent unnecessary reload on multi user timeline by @shenlong-tanwen in #17418
- fix(mobile): video player restarting when device rotates by @Sese-Schneider in #17362
- fix(mobile): items not deselecting on back button by @YarosMallorca in #17403
- fix(mobile): use custom filter to fetch asset path entities by @shenlong-tanwen in #17344
- fix(mobile): exifInfo not updated on sync by @shenlong-tanwen in #17407
- fix(server): Exclude album assets in shared link payload by @mPyKen in #17207
- fix(mobile): hide asset description text field if user is not owner by @gaganyadav80 in #17442
- fix: broken start/end dates on album update by @danieldietzler in #17467
- fix(mobile): adds support for Internationalized Domain Name (IDN) by @gaganyadav80 in #17461
- fix: no thumbnail generated for motion assets by @alextran1502 in #17472
- fix(mobile): asset grid will infinitely scroll on iOS when select and… by @gaganyadav80 in #17469
- fix: patch-package install in docker build and better postgres patch by @bwees in #17523
- fix: test_sets_default_se...
v1.131.3
v1.131.3
Hotfixes
- Fixes an issue where the mobile app shows incorrect memories.
- Fixes an issue where the web timeline doesn't load when there is a blank locale.
- Fixes an issue where the full-size image doesn't migrate correctly.
- Fixes an issue where the select-all button doesn't reflect the correct selection state.
What's Changed
🐛 Bug fixes
- fix: strip extra metadata when transcoding by @bo0tzz in #17297
- fix(mobile): getAllByRemoteId return all assets on empty arguments value by @alextran1502 in #17263
- fix(web): date time change reactivity by @alextran1502 in #17306
- fix(web): blank locale cause blank timeline to render by @alextran1502 in #17284
- fix(web): select all button displays incorrectly by @wuzihao051119 in #17305
- fix(server): full-size images not migrated or deleted correctly by @mertalev in #17308
- fix(server): use stat instead of exifinfo for file date metadata by @mertalev in #17311
New Contributors
- @wuzihao051119 made their first contribution in #17305
Full Changelog: v1.131.2...v1.131.3
1.131.2
v1.131.2
Fixed an issue with the machine learning healthchecks always showing unhealthy
What's Changed
🐛 Bug fixes
Full Changelog: v1.131.1...v1.131.2
v1.131.1
v1.131.1
Fixes an issue with running migrations in a non-root environments.
What's Changed
🐛 Bug fixes
Full Changelog: v1.131.0...v1.131.1
v1.131.0
v1.131.0
Highlights
Welcome to release v1.131.0
of Immich. This release focuses on more bug fixes from previous performance enhancements, some new changes also managed to sneak in within the short time window that we have 😀. Please find some of the highlights below:
- New map styles and POI with a globe view
- Map performance improvements for high asset counts
- View HEIC, RAW and other image formats in full resolution in the web app
- Better support for NLLB search models
- Fixes an issue where users with an external library cannot see all assets on the mobile app
- Fixes an issue where some exclusion paths were ignored in the external library
- Fixes an issue where photos randomly appear in album view or person view on the web
New map looks & performance inprovements
The map now comes with updated stylings, which include points of interest (POIs) such as parks, hospitals, schools…etc. On the web, you can now view the map as a globe view (sorry, flat-earthers!)
The map view is now much more performant for large asset counts, no more taking 10 seconds for the map view to respond!
To see the style and poi updates, you may need to clear your browser cache or wait 30 days
Light | Dark |
---|---|
![]() |
![]() |
Globe view |
---|
![]() |
View any image in full resolution in the web app
The Immich web app could previously only display an image in original resolution if the original could be displayed by the browser (JPEG, PNG, etc.). For formats like DNG that aren’t supported by major browsers, the web app could only show the preview image.
This release adds a setting to generate “full size” previews in addition to normal size previews. This means you can zoom into these images and view them in full resolution, even when the browser doesn’t support displaying the original. If the “Display original photos” preference is enabled, it will always display the full size preview if one exists for web incompatible formats.
Note that this setting doesn’t affect the mobile app, which already supports displaying the original for formats like HEIC (albeit not for most RAW formats). It also somewhat increases storage overhead and decreases image processing speed as it’s another (large) image to generate for each relevant asset. It’s an opt-in setting for these reasons.
To take advantage of this setting, go to the Image Settings and enable Full-size Image Settings, then queue all assets for Thumbnail Generation in the Jobs page.

Better multilingual searching with NLLB models
The NLLB model family performs the best for most languages excluding English, but Immich didn’t use them optimally. This release lets them perform at their best and brings a new tradeoff for searching: NLLB models give the best results for most languages, in exchange for the model interpreting a user’s searches as being in the user’s UI language.
If your users mainly search in a single non-English language, then these models are definitely worth a look. Each user can search in a different language since it’s based on the user’s UI language, applying to both the web app and mobile app (the latter must be updated to 1.131.0 or later for it to apply). If you’d like the flexibility for the same user to search in different languages, or if your users mainly search in English, then other models will work better for those usages.
See the documentation for more info on how to pick and change the search model.
Support Immich
If you find the project helpful, you can support Immich by purchasing a product key at https://buy.immich.app or purchase our merchandise at https://immich.store
What's Changed
🌟 Enhancements
- feat: use my.immich.app for externalDomain fallback by @bo0tzz in #17209
- feat: improve performance for GET /api/album & /api/album/:id by @PathToLife in #17124
- feat(server): consider
JpgFromRaw2
tag for embedded previews by @mertalev in #17123 - feat(web): increase album collapse click area by @PathToLife in #17213
- feat(ml): better multilingual search with nllb models by @mertalev in #13567
- feat: original-sized previews for non-web-friendly images by @eligao in #14446
🐛 Bug fixes
- fix(web): don't show newly uploaded asset in inapplicable views by @alextran1502 in #17184
- fix(web): form reactivity by @alextran1502 in #17183
- fix(mobile): prefer remote orientation by @shenlong-tanwen in #17177
- fix(mobile): pause background video play by @YarosMallorca in #17032
- fix: update renderlist after asset deleted by @Saschl in #16786
- fix: MAX_PARAMETERS_EXCEEDED error during person cleanup job by @hwang3419 in #17222
- fix(server): double extension when filename has uppercase extension by @alextran1502 in #17226
- fix(server): multiple exclusion patterns by @etnoy in #17221
- fix(server): don't sync null date assets by @etnoy in #17247
- fix(server): Postgres error pretty printing by @bwees in #17204
📚 Documentation
- docs: evaluate models on xtd-10 and flickr30k by @mertalev in #17159
- docs: Update folder support for app in README.md by @Mraedis in #17191
- docs: minor typo by @mertalev in #17258
- docs: separate upgrading page by @bo0tzz in #17257
🌐 Translations
- chore(web): update translations by @weblate in #17115
- chore: add language requests from weblate by @danieldietzler in #17236
New Contributors
- @PathToLife made their first contribution in #17124
- @hwang3419 made their first contribution in #17222
- @bwees made their first contribution in #17204
Full Changelog: v1.130.3...v1.131.0
v1.130.3
v1.130.3
A few more bug fixes regarding usability.
Hotfixes
- Fixes a bug where using the mouse on a touch device cannot open an asset.
- Fixes a bug where the oauth login flow cannot complete
- Fixes a bug where some albums don't show up on the mobile app
- Fixes a bug of navigating between albums does not update the page view
What's Changed
🐛 Bug fixes
- fix: broken album page by @jrasm91 in #17149
- fix(server): album count does not account for assets without exif by @alextran1502 in #17150
- fix: bug with svelte gestures by @midzelis in #17154
- fix(web): better touch device detection by @alextran1502 in #17144
- fix(mobile): oauth-mobile-first-login by @shenlong-tanwen in #17173
📚 Documentation
Full Changelog: v1.130.2...v1.130.3
v1.130.2
v1.130.2
Hotfixes
- Fixes a bug where ordering in a date group is incorrect when the album's view order is toggled
- Fixes a bug where library scan makes all assets disappear on the timeline until the next scan interval
What's Changed
🐛 Bug fixes
- fix(web): albums display order again by @alextran1502 in #17117
- fix(web): default search to context by @alextran1502 in #17118
- fix(web): prevent combo box dropdowns from staying open when clicking on labels by @Snowknight26 in #17119
- fix(server): check asset against multiple import paths by @etnoy in #17128
Full Changelog: v1.130.1...v1.130.2
v1.130.1
v1.130.1
Hotfixes
- Fixes a bug where asset navigation skips several date groups on the web
- Fixes a bug where album sorting option doesn't work on the web
What's Changed
🐛 Bug fixes
- fix(web): asset navigation by @alextran1502 in #17104
- fix(web): albums display order by @alextran1502 in #17106
🌐 Translations
Full Changelog: https://github.com/immich-app/immich/compare/v1.130.0...
v1.130.0
v1.130.0
Highlights
Welcome to release v1.130.0
of Immich. After almost three weeks of brewing, we are happy to bring you the new version, which is packed with features, performance enhancements, and UX improvements to boost the app's experience; we hope you will like it. Please take a look at some of the highlights below.
- Folder view in the mobile app
- Better person naming interface on the web
- External library scan performance
- Faster performance and lower memory footprint for the timeline on the web
- Remember the text search mode
- Machine learning improvements
- Jump-to-timeline enhancement
Folder view in the mobile app
You can now use the folder view in the mobile app. It can be accessed from the Library
page under the quick links section. We hope this helps users with the browsing experience of a large external library.
Better people naming interface
On the web, the naming interface has been redesigned to allow users to quickly add and edit a person’s name without clicking through several buttons and prompts.
External library scan performance
The external library scan code has been rewritten from the ground up. It uses every trick in the book to improve performance, including moving logic to SQL, reducing filesystem calls, and batching asset imports. You can expect a 10x to 100x performance gain when scanning external libraries.
Some numbers:
- An initial library scan with 19k assets: 1m40s down to 9 seconds
- An initial library scan with 500k assets now takes 1m58s.
- An initial library scan with >5M assets now takes 6m50s. This library size was virtually impossible before.
- Idle rescan with 22k assets, i.e., scanning a library that has not changed: 1m22s now down to below 10 seconds
This change also increases the reliability of library scans. Note that this performance gain only relates to the library scan itself — sidecar discovery, metadata extraction, and thumbnail generation still take the same time.
Possible breaking change: If you use creative exclusion patterns for your libraries, please check if these are still respected and report any issues to us.
Web timeline improvements
The timeline has been “virtually” rewritten to be significantly faster while using much less memory. Scrolling, scrubbing, and resizing the window are all snappier than ever. The web experience on a mobile device has also been improved with more responsive scrubbing and smaller thumbnails to fit more assets on the screen.
ROCm and RKNPU acceleration for machine learning
Machine learning can now be configured to use AMD GPUs and Rockchip NPUs, making Smart Search and Face Detection jobs much faster than on the CPU. See the documentation on how to set it up!
Note: the ROCm image is massive at over 30GiB uncompressed, so please make sure you have enough disk space for it.
Remember the text search option.
The search input now remembers and displays the last choice from the three available text search modes: context, file name, and description.
Jump-to-timeline enhancement
We added a button to quickly locate a photo on the timeline from all the detail viewers (not from the main timeline) in the mobile app.

New search models
Smart search can be even smarter now with a series of new models:
ViT-B-16-SigLIP2__webli
ViT-B-32-SigLIP2-256__webli
ViT-L-16-SigLIP2-256__webli
ViT-L-16-SigLIP2-384__webli
ViT-L-16-SigLIP2-512__webli
ViT-SO400M-14-SigLIP2__webli
ViT-SO400M-14-SigLIP2-378__webli
ViT-SO400M-16-SigLIP2-256__webli
ViT-SO400M-16-SigLIP2-384__webli
ViT-SO400M-16-SigLIP2-512__webli
ViT-gopt-16-SigLIP2-256__webli
ViT-gopt-16-SigLIP2-384__webli
Not sure which model is right for you? We added tables showcasing each model’s estimated memory usage, speed, and quality by language so you can make a more informed decision, along with more detailed steps on how to use them. Check it out here!
Support Immich
If you find the project helpful, you can support Immich by purchasing a product key at https://buy.immich.app or purchase our merchandise at https://immich.store
What's Changed
🚀 Features
- feat(mobile): Folder View for mobile by @arnolicious in #15047
- feat(mobile): locate in timeline by @YarosMallorca in #16722
- feat(ml): ML on Rockchip NPUs by @yoni13 in #15241
- feat(ml): rocm by @mertalev in #16613
- feat: timeline performance by @midzelis in #16446
- feat(web): make asset grid row height responsive by @midzelis in #16970
- feat: mobile-web improvements - scrubber by @midzelis in #16856
- feat(web): support long-press selection on mobile web by @midzelis in #16906
🌟 Enhancements
- feat(mobile): Navigate back on memories by @YarosMallorca in #16545
- feat: enable PMTiles protocol support by @savely-krasovsky in #16629
- feat(web): allow horizontal scrolling in memory lane by @lukashass in #16647
- refactor(server): group async calls in metadata extraction by @mertalev in #16450
- feat(server): library refresh go brrr by @etnoy in #14456
- feat(server): normalize extensions in storage template by @mmomjian in #16667
- refactor: stream asset ids for library queue jobs by @jrasm91 in #16666
- refactor(server): use constant for external library batch size by @etnoy in #16685
- feat(mobile): search on people page by @YarosMallorca in #16696
- feat: log before running migrations by @bo0tzz in #16703
- feat(mobile): person age on photo properties by @YarosMallorca in #16728
- feat(server): read Android and Sony video camera make/model by @Snowknight26 in #16678
- feat(web): remember search context by @AdamT20054 in #16614
- feat(web): show birthdate on person page by @YarosMallorca in #16772
- feat(web): Show full date when hovering over photos date groups by @Snowknight26 in #16561
- feat(web): exposed a job to manually trigger database backup procedures by @l0ll098 in #16622
- feat(web): better person naming interface by @alextran1502 in #16631
- feat(web): Add keyboard shortcut selection on grid by @knechtandreas in #16713
- feat: better library rename UX by @jrasm91 in #16837
- fix(mobile): change share icons for consistency by @YarosMallorca in #16904
- feat(server): version command for immich-admin #9611 by @abhinav96 in #16924
- fix(mobile): Make icons consistent (all outlined) by @ferraridamiano in #17028
🐛 Bug fixes
- fix(web): hide scroll right button when scrolled to the right in memory lane by @lukashass in #16656
- fix(mobile): remain on albums tab after album deletion by @YarosMallorca in #16698
- fix(mobile): fix notification icon not displaying properly by @YarosMallorca in #16710
- fix(web): Update people-card favorite position by @viki53 in #16746
- fix(server): adjust type of person.birthDate by @ngc7293 in #16628
- fix(server): set the dev server restart policy of the dev server container to match the other containers by @NicholasFlamy in #16753
- fix(server): set unit test timezone to UTC by @etnoy in #16805
- fix(docs): logo not loading dark theme variant in production by @NicholasFlamy in #16820
- fix(web): update search results when searching from info panel by @Snowknight26 in #16729
- fix(web): fixed formatting of video length by @YarosMallorca in #16829
- fix: immich ui toggles and switches ...