darktable icon indicating copy to clipboard operation
darktable copied to clipboard

Improvements to the selective copy and style creation flow

Open CritLoren opened this issue 1 month ago • 4 comments

Is your feature request related to a problem? Please describe. I'm trying to quickly copy edits to files among multiple files in the same series, and create styles, but every time I open the selective copy window or the create style window it's confusing and generally a chore to use, it would be much easier if the windows reflected the "Active modules" tab within darkroom rather than the history itself, as I'd reckon most of us look at the list of modules more than the history stack of the file, but here are some specific issues:

  1. Modules appear in a different order from the order within the actual file;
  2. Disabled modules are visible;
  3. Modules that are likely very image-specific such as white balance, color calibration get copied as raw values even when unchanged from their automatic setting;
  4. I've seen base modules I've disabled before sometimes show up in the list as both the modified version on the file and the base module, it makes sense when it's a mirror of the history of the file, but it can be very confusing when looking at multiple entries with the same name;
  5. It is quite confusing how you can have both include and reset toggled on at the same time, but also separately. I feel like "reset" should auto-check "include", and unchecking include should auto-uncheck "reset", because I'm not sure what resetting a module without including would do when looking at the UI as is;
  6. "Cancel" and "OK" are definitive actions that close the pop-up, "Select all" and "Select none" are not, yet they are all in line with each other, given equal weight.

Describe the solution you'd like

  • When copying automatic modules like white balance and color calibration when they've not been overwritten, copy the automatic behaviour, not the raw value that the module ended up at on that specific image. I appreciate this might end up becoming unintuitive in itself, but I have to constantly remind myself to always reset the colour calibration and white balance when copying the history or saving styles;
  • Sort the modules in based on the 'module order' module instead of the history order, feel free to make this a drop down in settings to set user preference and default it to whichever feels more sensible;
  • Separate/hide disabled modules from the active modules on the photo - the goal is to copy the history to a different image, copying disabled modules isn't really a generally useful feature, though removing it outright would also not be ideal, but with the presence of a "Select all" button.

Here is a mockup I made as an example, where I have added a pre-selected toggle to copy module order, and a pre-unselected toggle to show disabled modules, and with the select buttons moved right under the table, rather than being part of the window confirmation/cancellation form: Image

Additional context I have been learning darktable for the past few months, but before this I've edited in Capture One, and before that in Lightroom, so I've gotten used to copying styles between images for batch processing, making small alterations where needed, so copying edits from one file to another has become a core of my workflow. I appreciate that my suggestions above would change the selective copy of the history stack to become a different feature really that achieves a similar goal, but to me there's no other way to achieve this easy copy of edits across images that I've grown used to, and tbh it has been quite confusing even when creating a new style when that is not even under the history stack section that it actually references the history stack, as the history stack feature is a less reliable reference to me mentally compared to the module order (you can achieve the same edit if you jumble the history order, but not if you jumble the module order).

Thank you.

CritLoren avatar Dec 06 '25 23:12 CritLoren

Please take this as a friendly reminder. Dt has its workflow and usage of history and module layout described in the manual. Some of your ideas simply dont match.

Also dt doesnt try at all to mimic how things work in other software.

jenshannoschwalm avatar Dec 07 '25 13:12 jenshannoschwalm

This isn't about copying other software, on the contrary. The module-based approach of darktable is unique compared to other linear photo editing apps (with its ability to re-order the modules around to achieve different effects), so why does darktable use the same linear reference as those, instead of the more darktable-specific and darktable user familiar concept of the pixelpipe and module order? Sure, the history stack is useful and copying that 1:1 might in theory lead to a more accurate copy, but do people edit photos via the image's history stack, or via modules? Even the documentation refers to the pixelpipe as the main way to look at the processing order of modules on an image, while the history stack is the full history of module changes, so my question is, for someone who is trying to replicate an edit from one image to another that they've achieved through trial and error, are they looking to copy the entire trial and error journey every time to each image, or just the final order of modules to achieve the same result?

Also, even with that disputed, there are still points 2, 3, 5, and 6 from my feedback that would need addressing.

CritLoren avatar Dec 07 '25 14:12 CritLoren

Just have a look at 2 and 3 for now.

For (2) - of course we want disabled modules to be shown and included in the history. We have modules-on per default, even maybe as auto applied presets so disabling such a module is a step in history and as such should be shown and included in history. For (3) - of course and this has been discussed here and elsewhere several times. You are aware of selective-copy?

Sure, the history stack is useful and copying that 1:1 might in theory lead to a more accurate copy, but do people edit photos via the image's history stack, or via modules? Even the documentation refers to the pixelpipe ...

I simply don't get right now what you are after ...

jenshannoschwalm avatar Dec 07 '25 15:12 jenshannoschwalm

Disabled modules are visible;

They are not disabled, they are just a step in history.

Let's say that I develop an image and I want to copy the steps to other images, but I want one watermark on some and a different watermark on others. I apply one watermark, then I apply another watermark to my "source" image so now I have 2 history stack entries. I do a selective copy and select the active watermark module then paste it to a set of selected images. I do another selective copy and chose the "disabled" watermark and then apply it to a different set of images.

Modules that are likely very image-specific

That's why there is include and reset


darktable will always favor flexibility and power over simplicity and ease

wpferguson avatar Dec 07 '25 17:12 wpferguson