Gallery vs. Immich — Feature Comparison (Photos and Personal Video)
Audit date: 2026-11-06
Immich is a self-hosted photo and video backup application, built as a Google Photos replacement. It covers personal photo and video libraries only.
This document compares only the photo and personal-video part of Gallery: albums, timeline, map, sharing, and the photo viewer. It leaves out Gallery’s cinema, music, audiobook, podcast, book, and YouTube-import features, because Immich does not target them. For those, see the Plex and Jellyfin comparisons.
Table of Contents#
- Feature Comparison
- Gallery Ahead of Immich
- Immich Ahead of Gallery (Gaps)
- Unplanned Work
- Summary Verdict
Feature Comparison#
Quick reference for every feature in this document. The table has three groups: features where the two products are on par, features where Gallery leads, and features where Immich leads. The sections after the table explain the last two groups in detail. ⚠️ means partial support.
| Feature | Gallery | Immich |
|---|---|---|
| On par | ||
| Albums of photos and videos | ✅ | ✅ |
| Chronological timeline | ✅ | ✅ |
| Map of geotagged photos | ✅ (with clustering) | ✅ |
| Common formats (JPEG, PNG, GIF, WebP, TIFF, BMP) | ✅ | ✅ |
| HEIC / HEIF | ✅ | ✅ |
| AVIF and JPEG XL | ✅ | ✅ |
| RAW formats (DNG, CR2, CR3, NEF, ARW, RAF, ORF, RW2, and more) | ✅ (embedded preview, then libraw) | ✅ |
| EXIF orientation applied to thumbnails | ✅ | ✅ |
| EXIF, maker-note, and embedded XMP metadata | ✅ (exiftool) | ✅ (exiftool) |
XMP sidecar files (.xmp) read on scan |
✅ (managed albums only) | ✅ |
| Apple Live Photos (photo + clip pairs) | ✅ (web, mobile, and TV) | ✅ |
| Google / Samsung motion photos (embedded video) | ✅ | ✅ |
| 360° panoramas (equirectangular, GPano) | ✅ (web and mobile viewer) | ✅ |
| External / folder-backed libraries | ✅ (managed albums, read only) | ✅ (external libraries) |
| Scheduled scans and real-time file watching | ✅ | ✅ |
| Upload from web and mobile | ✅ | ✅ |
| Exact-duplicate rejection on upload (content hash) | ✅ | ✅ |
| Favorites | ✅ (likes) | ✅ |
| Tags | ✅ | ✅ (hierarchical) |
| Star rating shown from the file | ✅ (read only) | ✅ |
| Edit date, time zone, location, and description per item | ✅ | ✅ |
| Slideshow | ✅ (web and mobile) | ✅ |
| Shared albums with other users | ✅ | ✅ |
| Public share links with password and expiry | ✅ | ✅ |
| Download originals | ✅ | ✅ |
| Hide albums from your own view | ✅ (per user) | ⚠️ Per-asset archive instead |
| Multi-user with admin dashboard | ✅ | ✅ |
| OIDC / SSO sign-in | ✅ | ✅ |
| API keys | ✅ | ✅ |
| Mobile app (iOS / Android) | ✅ (Expo React Native) | ✅ (Flutter) |
| Chromecast | ⚠️ Experimental (custom receiver; Google Cast SDK in the mobile app) | ✅ |
| TV app | ⚠️ In development (gallery-tv, tvOS + Android TV; no official release yet). Albums, Live Photos, and slideshows already work there. |
⚠️ Community apps only |
| Dark / light mode | ✅ | ✅ |
| Face detection and people browsing | ✅ Opt-in (off by default, face_recognition flag) |
✅ |
| Semantic search (“dog on the beach”) | ✅ (CLIP, off by default, smart_search flag) |
✅ (CLIP) |
| Text in photos (OCR) search | ✅ (off by default, ocr_search flag) |
✅ |
| Memories (“on this day”, trips, people) | ✅ Curated, on Home (web, mobile, TV) | ✅ |
| Editable star ratings | ✅ Read from the file on import, then editable in the item editor (web, mobile). Edits stay in the database. Advanced search filters by minimum rating. | ✅ |
| Per-user storage quotas | ✅ Charged to the album owner. Admins set a server default and per-user overrides (or unlimited) on the Storage page. Managed albums do not count. | ✅ |
| Gallery ahead (see details) | ||
| Per-album roles (Manager / Editor / Contributor / Viewer / Scanner) | ✅ | ⚠️ Editor / viewer per shared album |
| Fine-grained RBAC (100+ permissions) | ✅ | ❌ (admin or user) |
| User groups | ✅ Albums, libraries, and playlists can be shared with a group | ❌ |
| Share links with usage caps (resettable), per-item links, and revocation | ✅ | ⚠️ Album or selection links; password and expiry only |
| Per-item and per-album download restrictions | ✅ | ⚠️ Per share link only |
| AI titles, descriptions, and tags with a review queue | ✅ (Ollama, LM Studio, OpenAI, Anthropic, Gemini, and more) | ❌ |
| Adaptive bitrate video (HLS / DASH, 8K → 240p) | ✅ | ❌ (one transcode target) |
| Hardware-accelerated transcoding with HDR preserve or tone-map | ✅ | ⚠️ Hardware transcoding; SDR tone-map only |
| Video subtitles | ✅ | ❌ |
| Scrub preview thumbnails for video | ✅ | ❌ |
| Offline downloads in the mobile app (with optional H.265 transcode) | ✅ | ❌ |
| Playlists that mix photos and videos across albums | ✅ | ❌ |
| Watch Together (synchronized video viewing) | ✅ | ❌ |
| Self-hosted MFA and passwordless login (passkeys, TOTP, email OTP) | ✅ | ❌ (password or OIDC) |
| Admin-enforced sign-in policy | ✅ | ⚠️ Can disable password login |
| Audit log and login history | ✅ | ❌ |
| Time-of-day access windows per user or group | ✅ | ❌ |
| PIN-locked and hidden albums (any album, each on its own or combined) | ✅ | ⚠️ One locked folder; per-asset archive |
| Source files never modified (edits stay in the database) | ✅ | ⚠️ Writes XMP sidecars on edit |
| Immich ahead (see details) | ||
| Automatic background backup from phones | ❌ | ✅ |
| Search by camera, lens, place, or date taken | ⚠️ Advanced search (web, mobile): camera model, lens, date taken, and city. No camera make, state, or country | ✅ |
| Places / reverse geocoding on the server | ⚠️ Search by city name only (offline GeoNames data). Mobile details panel uses the platform map service | ✅ |
| Near-duplicate detection and cleanup | ❌ | ✅ |
| Trash with retention period | ❌ | ✅ |
| Multi-select of items with bulk edit (date, location, tags, album) | ❌ | ✅ |
| Basic photo editing (rotate, crop) | ❌ | ✅ |
| Storage template for uploads | ❌ | ✅ |
| Push / email notifications for shared albums | ❌ | ✅ |
| Home-screen widgets | ❌ | ✅ |
| Stacks (burst, RAW + JPEG) | ❌ (not planned) | ✅ |
| Unplanned (see details) | ||
| Partner sharing (whole library) | ❌ (share an album with a group instead) | ✅ |
| Google Takeout import and bulk CLI upload | ❌ (no official tool) | ✅ (official CLI; community Takeout tool) |
Gallery Ahead of Immich#
Features where Gallery provides photo and video capabilities Immich does not.
| Feature | Notes |
|---|---|
| Per-album roles | Each album grants Manager, Editor, Contributor, Viewer, or Scanner to individual users or to whole groups. Immich shared albums distinguish only editors and viewers. |
| Fine-grained RBAC and groups | 100+ discrete server permissions, plus user groups for server roles, album, library, playlist and AI-account sharing, and time-of-day policies. Immich has only admin and regular users, and no group concept. |
| Richer share links | Links point at an album or a single item. Each link can have a password, an expiry date, and a usage cap that the owner can reset, and links can be revoked without deletion. Every share-link change goes into the audit log. |
| Download restrictions | Album owners can block original downloads for viewers, and override that per item. Immich controls downloads only per share link. |
| AI titles, descriptions, and tags | Generate metadata from image content for one item or a whole album. Results go into a job queue where the user accepts or rejects each suggestion. AI accounts are per user and shareable: self-hosted (Ollama, LM Studio) or cloud (OpenAI, Anthropic, Gemini, and more). Immich uses CLIP for search, but does not write titles or descriptions. |
| Adaptive video streaming | Personal videos stream as HLS/DASH with a quality ladder from 8K down to 240p, with hardware encoders and HDR preserve or tone-map. Immich transcodes each video to a single target, so a slow connection gets the same stream as a fast one. |
| Video subtitles and scrub previews | Embedded and sidecar subtitles (SRT, VTT, ASS, SSA, TTML), and trickplay thumbnails while scrubbing. Neither exists in Immich. |
| Offline downloads on mobile | Queue an album or single items for offline viewing on the phone, optionally as a smaller H.265 encode made on the server. |
| Playlists | Ordered playlists that mix photos and videos from any album, with their own sharing permissions. Immich has albums only. |
| Watch Together | Synchronized viewing of a video with other users, with host control and host transfer. |
| Account security | Passkeys (WebAuthn), TOTP with recovery codes, and email OTP, with an admin policy that allows or requires each method and per-user MFA bypasses. Immich relies on passwords or an OIDC provider for MFA. |
| Audit log, login history, and time windows | Admin audit trail for sharing, permission, and deletion changes; a per-login event trail (successes and failures); and allowed hours and weekdays per user or group. |
| Locked and hidden albums | Any album can be locked behind the user’s own PIN, hidden from the user’s own view, or both. Each works on its own. Items in a locked album stay out of the timeline, search, memories and people until the user unlocks it (web, mobile; TV asks for the PIN). The lock is a privacy filter, not encryption, and never blocks admins. Immich has one locked folder, plus per-asset archive. |
| Read-only source files | Gallery never writes to source files or XMP sidecars. Edits stay in the Gallery database, so managed albums can live on read-only mounts. Immich writes sidecars when users edit metadata. |
Immich Ahead of Gallery (Gaps)#
Features Immich provides that Gallery currently lacks.
High Priority Gaps#
| Gap | Notes |
|---|---|
| Automatic mobile backup | Immich’s core feature: the mobile app uploads new photos and videos in the background, per selected device album. Gallery’s mobile app uploads only photos the user picks by hand (Live Photo pairs included). Without this, Gallery is not a phone-backup replacement. |
| Metadata search filters | Immich filters by camera make and model, lens, city/state/country, and date taken. Gallery’s advanced search (web and mobile) filters by camera model, lens, date taken, and city. It stores no camera make, and it has no state or country filter, because GPS is not reverse geocoded per photo. The city filter resolves the typed name in the offline GeoNames data (the same data Memories uses) and matches photos within 25 km, so it needs that data downloaded. Simple search and the TV app do not have these filters. |
| Trash | Immich moves deleted items to a trash with a set retention period. Gallery deletes at once, with no undo. |
| Item multi-select and bulk edit | Immich lets users select many photos, then change date, location, tags, favorite, or album in one step. Gallery’s bulk actions work on whole albums (delete, scan, download to the device). Items are edited one at a time. |
Medium Priority Gaps#
| Gap | Notes |
|---|---|
| Near-duplicate detection | Immich finds visually similar photos with ML and offers a review screen. Gallery rejects only byte-identical uploads. |
| Places and reverse geocoding | Immich turns GPS into city, state, and country offline on the server, then offers a Places browser and place search. Gallery’s map shows the points, and the mobile details panel looks up an address from the platform’s map service. Advanced search can find photos near a typed city, but there is no per-photo place name, no state or country search, and no Places browser. |
| Basic photo editing | Immich supports rotate and crop. Gallery can edit metadata only. |
Low Priority Gaps#
| Gap | Notes |
|---|---|
| Storage template | Immich lets admins set the folder and file-name pattern for uploads (for example by year, month, or camera). Gallery uses its own storage layout. |
| Notifications | Immich sends in-app and email notifications for shared-album activity. Gallery sends email for account events only. |
| Home-screen widgets | Immich has iOS and Android widgets for memories and random photos. Gallery’s only widget is the iOS download Live Activity. |
| Stable casting | Immich’s Google Cast support is stable. Gallery’s is experimental. |
Not planned (by design)#
See also Unplanned Work for partner sharing and bulk import.
| Difference | Notes |
|---|---|
| Stacks | Immich can group burst shots or RAW + JPEG pairs under one cover photo. In Gallery, each file is its own item, and a RAW + JPEG pair shows as two items. A stack design exists in plans/photo-format-support.md, but it is not scheduled. |
| Metadata write-back | Gallery never writes edits to source files or XMP sidecars. This keeps managed source folders safe on read-only mounts. The cost: edits made in Gallery do not travel with the files to other tools. |
Previously listed, now closed#
| Former gap | Status |
|---|---|
| RAW photo support | 29 RAW extensions decode through the embedded preview first, then libraw. Thumbnails and the lightbox work on web, mobile, and TV. |
| HEIC / RAW thumbnail generation | HEIC (all brands) and RAW now render to WebP on the server, with EXIF orientation applied. |
| Live Photos and motion photos | Apple pairs match by content identifier, with a file-name fallback. Google and Samsung embedded videos are extracted. Playback works on web, mobile, and TV. |
| XMP metadata | Embedded XMP is read for every item. Sidecar .xmp files are read in managed albums, and a change to a sidecar updates the item on the next scan. |
| 360° panoramas | Equirectangular photos (including partial GPano crops) open in an interactive viewer on web and mobile, and show a badge in the grid. |
| AVIF and JPEG XL | Both decode natively. |
| Face detection and people | Local ML groups faces into people with naming, merging, and browsing. Off by default (face_recognition flag) because face vectors are biometric data. Per-user nicknames, hidden people, and covers; a person shows only through photos the viewer can see. Remaining gaps: no search by person, no face boxes over video. See Face Recognition. |
| OCR search | Text in photos is indexed with a local model. Off by default (ocr_search flag). |
| Semantic search | CLIP natural-language search, with up to 8 sampled frames per video. Off by default (smart_search flag). |
| Archive and locked folder | Any album can be PIN-locked or hidden. See Gallery Ahead. |
| Editable star ratings | Read from the file, then editable in the item editor (web, mobile) and filterable in advanced search. |
Unplanned Work#
Features Immich provides that Gallery does not plan to build. These are not gaps to close later.
| Feature | Notes |
|---|---|
| Partner sharing | Immich lets one user share their whole library with a partner, whose items then appear in the partner’s timeline. This does not fit Gallery’s role-based access model, where access is granted per album, library, or playlist to users and groups. Gallery will not add a whole-library mode. Alternative: share an album with a group, so a “Family” group is added once instead of each member. Group members get the role the album grants the group. Normal users can add only groups they belong to, and owners and admins can add any group. The web app edits group grants on albums, libraries and playlists. The mobile app edits them on albums. |
| Google Takeout import and bulk CLI upload | Immich has an official CLI uploader (@immich/cli). For Google Takeout, Immich’s docs recommend the community-maintained immich-go tool, which reads Google’s JSON sidecars. Gallery has no Takeout importer and no command-line uploader, and the project does not plan to maintain an official one. Gallery can scan a folder into a managed album. A community tool built on the Gallery API is possible. |
Summary Verdict#
Immich is a phone-backup and AI-organization tool. Its strengths are automatic mobile backup and on-device-style intelligence: faces, semantic and OCR search, places, duplicates, and memories. Its library-management features (trash, archive, bulk edit) are also deeper.
Gallery is a curated, permission-controlled library. On formats it is now at parity with Immich: RAW, HEIC, AVIF, JPEG XL, Live Photos, motion photos, 360° panoramas, and XMP. Its strengths are who-sees-what (per-album roles, flexible share links, download restrictions, audit trail), account security, and video playback quality. Also, Gallery never modifies source files.
Choose Immich for photos when:
- Automatic background backup from phones is the main requirement.
- Finding photos by person, scene, text, or place matters more than curation.
- Library cleanup (duplicates, trash, bulk edit) is a regular task.
Choose Gallery for photos when:
- The library is curated into albums and shared with different people at different access levels.
- Source folders must stay untouched, or live on read-only mounts.
- Personal videos need adaptive streaming, subtitles, or offline viewing on mobile.
- Account security and an audit trail are required.
The two work well side by side. Immich can be the backup and discovery layer, and Gallery can mount the same folders as read-only managed albums for curated sharing. Gallery’s biggest gap for a photo-first user is automatic mobile backup, followed by trash and item bulk edit. Text-in-photos search exists but is off by default, semantic search is opt-in, and face recognition is opt-in.