-
-
Notifications
You must be signed in to change notification settings - Fork 5k
Description
I have searched the existing issues, both open and closed, to make sure this is not a duplicate report.
- Yes
The bug
Description:
Thumbnail format: WebP
Wide gamut option: Enabled
I noticed that HEIF HDR images (BT.2020 / SMPTE ST 2084 PQ) exported from Photomator generate flat/desaturated thumbnails in Immich.
However:
• The original file renders correctly in Safari (HDR “blink” effect visible).
• iPhone-native HEIF HDR images generate correct thumbnails.
• JXL HDR images also generate correct thumbnails.
• Only Photomator-exported HEIF HDR files are affected.
The issue appears to be limited to thumbnail generation. When opening the asset, the full-resolution image displays correctly in HDR.
Technical Details:
Both the iPhone HEIF HDR files and the Photomator HEIF HDR files report:
• Color primaries: BT.2020
• Transfer function: SMPTE ST 2084 (PQ)
• HDR format: HDR10
The difference seems to occur during Immich thumbnail generation (likely ffmpeg tone mapping or metadata interpretation).
Additional Notes
• Existing older HEIF HDR images (generated previously) still have correct thumbnails.
• JXL HDR thumbnails are generated correctly.
• The issue started after updating Immich approximately two weeks ago.
Please let me know if sample files or ffprobe output would help.
The OS that Immich Server is running on
Deployment: Docker (Ubuntu 24.04 host)
Version of Immich Server
v2.5.6
Version of Immich Mobile App
iOS 2.5.6 build 246
Platform with the issue
- Server
- Web
- Mobile
Device make and model
Apple MacBook Pro M1 - Safari, iPhone 15 ProMax
Your docker-compose.yml content
ervices:
immich-server:
image: ghcr.io/immich-app/immich-server:release
restart: always
ports:
- "2283:2283"
environment:
- DB_USERNAME=${DB_USERNAME}
- DB_PASSWORD=${DB_PASSWORD}
- DB_DATABASE_NAME=${DB_DATABASE_NAME}
- DB_HOST=database
- REDIS_HOST=redis
- UPLOAD_LOCATION=${UPLOAD_LOCATION}
- IMMICH_SERVER_URL=${IMMICH_SERVER_URL}
- TZ=${TZ}
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /srv/immich/model-cache:/usr/src/app/model-cache
depends_on:
- database
- redis
- immich-machine-learning
logging:
driver: json-file
options:
max-size: "50m"
max-file: "3"
immich-machine-learning:
image: ghcr.io/immich-app/immich-machine-learning:release
restart: always
environment:
- TZ=${TZ}
volumes:
- /srv/immich/model-cache:/cache
logging:
driver: json-file
options:
max-size: "50m"
max-file: "3"
database:
# CHANGED: pgvecto.rs -> VectorChord (Postgres 16)
image: ghcr.io/immich-app/postgres:16-vectorchord0.3.0-pgvectors0.2.0
restart: always
environment:
- POSTGRES_USER=${DB_USERNAME}
- POSTGRES_PASSWORD=${DB_PASSWORD}
- POSTGRES_DB=${DB_DATABASE_NAME}
- TZ=${TZ}
volumes:
- /srv/immich/postgres:/var/lib/postgresql/data
logging:
driver: json-file
options:
max-size: "50m"
max-file: "3"
redis:
image: redis:7
restart: always
environment:
- TZ=${TZ}
command: ["redis-server","--appendonly","yes"]
volumes:
- /srv/immich/redis:/data
logging:
driver: json-file
options:
max-size: "50m"
max-file: "3"
networks:
default:
name: immich_defaultYour .env content
# ========================
# Immich .env
# ========================
# Upload-Ordner auf der Synology (NFS-Mount)
UPLOAD_LOCATION=/mnt/redacted
# Datenbank
DB_USERNAME=immich
DB_PASSWORD=<redacted>
DB_DATABASE_NAME=immich
# Zeitzone
TZ=Europe/Berlin
# Interne API-URL (Immich-Server hört extern auf 2283)
IMMICH_SERVER_URL=https://immich.example.tldReproduction steps
...
Relevant log output
Additional information
No response
Metadata
Metadata
Assignees
Labels
Type
Projects
Status