darktable icon indicating copy to clipboard operation
darktable copied to clipboard

Linked duplicates

Open torgeirholmslet opened this issue 1 year ago • 10 comments

Hi! Here is my suggestion

My problem

Often, when I am editing photos, I need several different crops for the same image. One crop for social media, one for website and maybe one for print. I also like to keep a version of the original crop in most cases. The duplicate manager allows for this workflow but any changes you make after creating the duplicates you will have to copy to all the other versions.

Solution

I would love for there to be a feature where you could link duplicates to the original image (or another duplicate). Lets say I have an original image in portrait orientation with an aspect ratio of 3:2, but I need to export it to a more compact 5:4 ratio for instagram and a 1:1 ratio for a thumbnail on my website. When I make my duplicates, darktable asks me if I want to keep syncing some of the modules. I select "all modules" but mark the Crop module as an exception. Now I crop my duplicates to my desired ratio, and I can keep editing the original while the linked duplicates are updated at the same time. I can then preview the different crops as I edit. When I am finished I simply select all the duplicates and export.

This feature could prove useful when including or excluding other modules from sync as well. For example making duplicates for different levels of color or sharpening depending on if the duplicate is used in print or on the web.

torgeirholmslet avatar Sep 24 '24 22:09 torgeirholmslet

Is there anything special about the way you create the crops? I'm thinking you could reverse the workflow and edit the original image until you are satisfied, then create the crops.

wpferguson avatar Sep 25 '24 01:09 wpferguson

in that case there also won‘t be a need to copy changes… The request isn’t that critical if it just focused on crop. But there might be further use cases that might mess up further changes made in the copy. Then there needs to be a dialog allowing to select, which modules needs to be synchronized. in that case this is same effort as copying selected history stack from the source image …

MStraeten avatar Sep 25 '24 05:09 MStraeten

Is there anything special about the way you create the crops? I'm thinking you could reverse the workflow and edit the original image until you are satisfied, then create the crops.

Yes, that is my current workflow. However this does not allow for easy previewing of the different crops while editing. Additionally in some cases I need to export and preview the files on my phone before going back and make further adjustments. Having all the crops ready with linked duplicates would make this process much quicker.

in that case there also won‘t be a need to copy changes… The request isn’t that critical if it just focused on crop. But there might be further use cases that might mess up further changes made in the copy. Then there needs to be a dialog allowing to select, which modules needs to be synchronized. in that case this is same effort as copying selected history stack from the source image …

Yes, I totally agree on there being a need for a selection dialog. The feature would be almost identical to copying the history stack only that it happens automatically after linking.

I just realised that a problem that might arise is that some adjustments in the modules are based on taking readings of the image. For example setting the white balance automatically. In a scenario with two linked duplicates with a different crop this could yield different results depending on which duplicate was selected when making the change. Histograms and waveforms would also differ, making even manual adjustments subject to errors. This could be avoided by having a workflow where you make all adjustments of linked modules on the image with the largest crop.

torgeirholmslet avatar Sep 25 '24 07:09 torgeirholmslet

However this does not allow for easy previewing of the different crops while editing

So what would happen if you made an edit, all the duplicates updated, and one of them didn't look good? How would you handle that case?

wpferguson avatar Sep 25 '24 15:09 wpferguson

In my opinion, working according to this suggestion would be extremely error-prone. It requires a high degree of knowledge of the function of individual modules and the pixel pipe in order to be able to decide which modules could be linked and which should not. And the UI would be further complicated (for a rare special case). I can't see any advantage over a (selective) copy of the history stack.

easy previewing of the different crops while editing

lighttable -> culling mode

pehar1 avatar Sep 26 '24 07:09 pehar1

This issue has been marked as stale due to inactivity for the last 60 days. It will be automatically closed in 300 days if no update occurs. Please check if the master branch has fixed it and report again or close the issue.

github-actions[bot] avatar Nov 26 '24 00:11 github-actions[bot]

The upcoming 5.0 lets you copy the settings for the most-recently changed module to all currently-selected images (default shortcut - Ctrl-X) while in the darkroom view.

ralfbrown avatar Dec 16 '24 06:12 ralfbrown

This issue has been marked as stale due to inactivity for the last 60 days. It will be automatically closed in 300 days if no update occurs. Please check if the master branch has fixed it and report again or close the issue.

github-actions[bot] avatar Feb 16 '25 00:02 github-actions[bot]

Alternatively it'd be really nice if you could have multiple crop modules per image (but only one enabled at a time) as I've also had this issue and don't want 3 duplicates of the same image I have to keep in sync or bloating my library view

louiswdavis avatar Sep 28 '25 12:09 louiswdavis

This issue has been marked as stale due to inactivity for the last 60 days. It will be automatically closed in 300 days if no update occurs. Please check if the master branch has fixed it and report again or close the issue.

github-actions[bot] avatar Nov 29 '25 00:11 github-actions[bot]