[Feature] Automatic stacking #2479
Replies: 53 comments 96 replies
|
Can you check the EXIF data of those files and let us know whether there is a matching UUID or such between them? |
|
I would also very much appreciate this and would be willing to work on it as soon as we come up with a design. All photos shot with my camera are typically JPEG+RAW. My typical workflow is that I import them and like to have the JPEG visible, but the RAW available for download. If I see particularly good photos (or ones which the camera did a poor job) I download the RAW, develop it into a JPEG and would like to upload that JPEG as the new image to show, keeping the attached RAW image. What would also be great is if I could attach profiles (XMP, PP3, ...) which are small (usually text) files containing the settings used to develop a RAW to the JPEG so that if something needs to be changed later or a new RAW development is needed, I can pick up from the development settings of the last JPEG. |
|
I would also like to be able to manually stack photos. In case you use Immich to save drawings, there are slightly different pictures that I would like to stack them. PhotoPrism didn't do a good job of this, its AI couldn't handle the drawings so it required to rename the file before uploading, which was very annoying. Tysm. |
|
I did some peeking into the EXIF data from a burst taken on an iPad and found that there is indeed a matching UUID called a I also found some documentation regarding Apple Tags here. Here's an example: 135A10E2-A933-42EF-B411-EB1FBA003C12.JPG and 2FD9EEAD-BA17-4813-9EBF-D44FFDAFA0C0.JPG Note that the My two cents is to only rely on UUIDs for matching and stacking photos - I've had issues with PhotoPrism stacking unrelated images due to similar filenames (e.g. A UUID would ensure that none of these conflicts happen, but would be limited to cameras that do write a |
|
Semi related to , which also involves handling/using EXIF Burst info. |
|
I'd also like to move my photo library to Immich but have a bunch of raw files next to jpeg files, which are currently displayed as 2 separate images. Would love to get this feature 🙏 |
|
So back in my youthful photography career, I amassed an Aperture vault of 2TB of RAW, JPG, and Photoshop files. (That was pretty good back then) Aperture grouped all these copies/versions into Stacks and made it so easy to find and manage files. I've been waiting for somesort of stacking feature for years and this is the main reason I haven't fully adopted any online solution yet. It would be amazing to have versions grouped together. If you need more sorce/EXIF data to test, I can provide some more images. So a big +1 for this feature form me. Thanks for all your hard work. It's great watching this software evolve and grow over time. |
|
A thing that has to be considered for this feature is how downloads should be handled. Or make it possible to choose from options:
|
|
Not sure if this is implied, but please also allow grouping of files that are in different directories (import library). I have my raw files in a subdirectory to the edited ones. I.e. |
|
I am really loving this stack feature since my phone save the RAW+JPEG. Would it be possible to auto-stack those photos though? I have many many months of photos to go through and stack manually and it has become a major time-consuming adventure. The photos have the same name but different extensions. abc123.dng and abc123.MP.jpg |
|
Also would love this stacked feature, I always shoot in JPG+RAF (Fujifilm RAW) so it would be nice to have all the files accessible as one inside of immich, like how Photoprism does it or Apple photos showing a RAW/JPG badge on top of the image when you view it in full size, then when you click on the information about it you can download the "original" which is the raw file |
|
and what about assigning each item a fingerprint for similarity detection (which is on the road map) and give an option to stack by similarity? Then this could be a setting and stacking could happen for different users by their own threshold. This should be additional to stacking by a burst id or some other id, detecting related pictures. |
|
This is how photoprism is doing it according their documentation. |
|
Not sure if this specifically has been mentioned here yet; I would like to add on that another photo format that would be nice to have auto stacking for would be Google Pixel Pro Res Zoom photos, which auto stack (the original and processed photo) in Google Photos. |
|
Is there any update on this one? Just curious if someone is looking at it. Or if the community has settled upon some external solution? |
|
Please, follow this discussion here (#23397 We need to talk about real sidecar images (not metadata) raw+jpeg before Automatic stacking) as RAW+JPEG is not a stack thing. |
|
For this feature, it would be very useful to have a setting that determines which of the files should be displayed. |
|
I have a similar issue #24135 with jpg and dng files from Samsung s10. That if I use immich go to upload a folder, they show up as separate files not automatically stacked as 1 image. The main thing also is that it results in 2 separate xmp files being created such as .dng.xmp and .jpg.xmp rather than .xmp like normal. Which results in duplicate info about the same file. Immich should by default use .xmp rather than the other other option. |
|
This is the EXIF for the JPG and the CR2 shot from my Cannon 80D, I can't see any UUID or alike, but I think if they're the same file name in the same folder and same photo taken time (within 2s - as CR2 can take longer to save) just one is .CR2 and the other is .JPG then that should stack, and ideally not suggest either for deletion as a duplicate of the other (I see this a lot in the immich duplicates tool). |
|
Additionally it would be great if it could auto-stack my google photos imports, for edited photos where the only link is the file name say photo.jpg and photo-edited.jpg and again in the same folder and same photo taken date/time. |
|
has there been any consensus on a direction for this? I wouldn't mind stacks to be both RAW+JPEG and also rapidly shot images. Google Photos does this, and you just need the single tumbnail with an icon indicating its a stack. if you are interested in the photo, see its a stack, you just click it to see what versions there are of it. I don't think its that serious. |
|
On the Pixel 10 Pro there can be 3 photos for created at once when zooming in more than 30 times. google photos neatly groups them: |
|
I'm really excited if this feature will be implemented! Naming of pixel: |
|
i hate to look a gift horse in the mouth, immich is great, but why has this stack feature been implemented in API for over a year now and still hasn't made any progress in the GUI? raw+jpeg is supported on just about every smartphone with a decent camera, and every actual camera body made in the last few decades. if you use raw+jpeg, which anyone serious about photography does, you are punished by immich displaying doubles of every photo you take, forcing you to either rely on third party scripts, or abandon immich entirely. please, this really needs to be addressed. |
|
Adding my grain of salt to the discussion. I also think it would be great if Immich could store RAW+JPEG files as a single pair. Here is the use-case. Some of my photos are taken on a pro camera. When I'm about to shoot truly meaningful moments, I switch RAW+JPEG. This gives me both a JPEG file, and the possibility to edit the picture later. I think it would be very convenient if these pairs were be stored at the same place, and managed as two parts of a single asset. Immich could display the JPEG, store the RAW (but not display it as a separate asset), and leave the possibility to download the RAW, delete it, or delete the whole pair. This topic has been mentioned before (e.g. here on Reddit), and some people store their JPEGs and RAWs separately. I don't want to do that, as I would prefer the benefits of having one master source of storage. This makes it easier to organize, keep the RAW and JPEG files in sync. I also don't do so much editing, so having Immich act as a storage service for the RAW files is perfect for me to see what I can do in a quick glance. I don't know how to implement this feature, but I think it would suit a lot of people who casually use a good camera. |
This comment was marked as duplicate.
This comment was marked as duplicate.
|
Has there been any indication by the dev team that RAW+JPEG stacking will eventually be implemented and whether it will then apply to existing installations (perhaps via a simple re-scan) or require setting up an entirely new database? Edit: may linking the currently still maintained fork of the immich-auto-stack script be helpful to someone... |
Summary of the auto-stacking discussion1. Existing samples and implementationsAuto-stacking is the user-facing result: related images end up in the same stack. The tricky part is that “related” means different things to different people. The requests in this thread roughly fall into six buckets:
I used AI to help summarize the samples and EXIF data shared in this thread. I also used it to review the detection logic in Majorfi/immich-stack.
2. Possible detection rulesSome signals are strong enough to establish the relationship directly:
Other signals are useful when combined:
There are also a few good ideas we can borrow from
3. I don’t think this should require a WorkflowA maintainer mentioned in this comment that auto-stacking could be implemented through Workflows. I would rather see it as a built-in Immich feature. Auto-stacking needs a consistent way to handle detection rules, confidence levels, suggestion state, dismissals, incremental processing, and backfilling existing libraries. Most users will expect to enable the feature and get sensible results without setting up a Workflow first. Workflows could later control when detection runs or which confidence level is eligible for automatic stacking. Immich would still provide the default detection layer shared by the web app, mobile apps, and future features. 4. How this relates to existing duplicate detectionImmich already has duplicate detection and manual stack operations. Duplicate detection uses image embeddings to find visually similar images, and some of those results are already good stack candidates: bursts, lightly edited photos, and repeated exports. The existing similarity pipeline could provide the first batch of stack suggestions. It could also serve as supporting evidence for later metadata-based detectors. Visual similarity still misses some important cases. JPG+DNG and RAW+JPEG pairs may fail the current threshold because of differences in RAW previews, color processing, cropping, or orientation. Two photos from separate captures may also look nearly identical. Immich already extracts 5. My planI’d like to start with the smallest useful end-to-end version: feed existing high-confidence duplicate and near-duplicate matches into a new Stack Suggestions flow. The first version would be intentionally conservative:
If the first version has a low enough false-positive rate, we could later add optional automatic stacking for high-confidence relationships. The flow would remain explicit: find candidates, classify the relationship, create a suggestion, and let the user’s settings decide which confidence levels may be stacked automatically. |






Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
The feature
Immich has become really great and has some "killer features" in contrast to other solutions like librephotos or photoprism.
Still there is one feature missing i really liked in photoprism.
It's the Photostack.
When i e.g. shoot an Image with my Sony A6500 i can configure the camera to output RAW+JPEG.
The Files will be named ABC001.ARW and ABC001.JPEG (same name except file extension).
If i edit this image on Lightroom e.g. The result is exported as ABC001-1.JPEG (another iteration as ABC001-2.JPEG, etc.).
As far as i understand immich right now, I would have the same photo (example from above) 3 times in the timeline assumed that #2156 is resolved.
Instead, i would like to display only the latest iteration e.g. (...-2.JPEG) as thumbnail and have the option to show all versions in the detailed view.
This Feature would also apply to high frequency photos. Imagine you shoot a fast scene with multple shoots per second and you end up with 30 Photos. You don't want to have each frame separately in the timeline. Instead, those images could be stacked and shown as "single image" with the option to show them all in details.
Besides, thank you for this great work and product and have a nice weekend!
Regards
Platform
All reactions