Problems with setting up a style in 4.8

Every since I downloaded 4.8 I’m having a problem with styles. I set up a style the same way I always have. When the style is applied to other images, it duplicates the white balance, which then requires me to reset white balance on every image. But that’s not all, it also triples the exposure module. It takes the original scene-referred default and adds two more exposure modules, both are manual, and both boost the exposure. I then have to go back and deactivate the modules.

The only work-around I’ve found is to go back into the style and edit it to rest the WB and turn the additional modules off.

One time it added two additional watermarks as well, both the DT standard.

Can anyone shed some light? I’ve looked through my presets and can’t find anything to turn off or change.

Can you share the style here? You can export styles from the lighttable view.

Here’s a simple one I created as a test. I’ve also included the module DT view so you can see what it’s doing.

muskrat .dtstyle (10.0 KB)

To me it looks like all that you’re describing is in your style. Open it in the style editor and deactivate any modules you don’t want.

You’re missing the entire point. The extra modules show up on their own after I create the style. I don’t add 3 exposure modules to the style, I have one, and three show up when the style is applied. Of course I can deactivate the modules, that’s what I’ve been doing, but why this extra step? This never happened until 4.8.

Can you share a screenshot of the style editor?

The style file does contain 3 copies of the exposure module…

Yesterday, I found that I have this same problem with the exposure module. I must check and see if white balance module is affected.

The only reason I need exposure in a style is to uncheck the compensation for camera exposure compensation: I seldom use it but when I do it is because I want it! And this is for my basic-starting-point style that I apply to every pic.

I also have the problem that I can’t overwrite an existing style, which is somewhat necessary when setting up and testing. I’m sure I used to get an “exists, overwrite?” dialogue?

I updated from 4.7 to 4.8 a couple of days ago.

@TWARD A deeper look at the style file shows indeed three instances of the exposure module, all three marked enabled.

There’s also an instance of the “temperature” module, marked “enabled”.

Finally, there’s a instance of the crop module, I’m not sure that’s really what you want in a re-usable style.

But, seeing all that, I get the impression that your style does exactly what you tell it to do (as opposed to what you want it to do)

Did you perhaps create your style based on module instances with manually assigned names? If yes, then that’s the reason they are appended: the new history entry, which you add via the style, belongs to a different module instance.

  • When you open an image for the first time, exposure is activated with values from the scene-referred default preset; since there is no manually assigned name, but the params match a preset, the instance will be shown with the name of the matching preset scene-referred defaults (but not recorded as a manually assigned name, which is important!):
  • applying that style on the same image in append mode
  • produces this history stack (note entries 9 and 12):
  • however, the pipeline still has only 1 instance:

Let’s change the exposure params. Starting from an image with history discarded:

  • changing the params removes the name (params no longer match the preset - the displayed name is removed):
  • creating the style
  • applying it to another instance with the same name:
  • again, only a single instance (the default instance had no manually assigned name, the one in the preset has no manually assigned name → the values from the preset were applied to the existing name):

However, let’s assign a name to the instance before creating the style:

Let’s apply the style to a pristine history stack:

The stack looks much like before (exposure entries at positions 9 and 12), but now they are different instances – because one has the default name, the other the manually assigned name!

If you create a 2nd etc. instance of the module, it will be automatically assigned a name based on the sequence number.

See also:

1 Like

I’m not sure if it is too late at night or not late enough! But I am going to have to think harder than usual to get my head around that. But you have laid it out clearly and logically, and I’m sure I can! Thank you.

Initially, though, did I create any additional exposure module, named or numbered? no I did not. I often end up with two or three or more, some presets, others made anew, in the final edit, but none of my presets are automatic.

I’ll work through your answer. and revisit my experience. Come to think of it, I now remember a recent thread on wanting to change the default behaviour on this one. And I need to double to check that it doesn’t happen if I don’t change the default exposure module with a preset.


Edit: What’s shown below does not indicate any serious issue (the scene referred default name being repeated is annoying, but otherwise darktable behaves OK so far, I think). The comment OK. There may be a bug. was a left-over from before I went deeper.

I’ve opened a picture (it’s a TIFF file, but that should not matter). I’ve enabled the existing (but disabled) exposure instance, and then added 2 more. I’ve set their params to apply 1, 2 and 3 EV (to make them easy to identify). I then tried to create a style. Look:

On the left, the stack shows 6 exposure instances: the original one (5), and two that I created (6 and 7). I then changed the first instance (the one I activated in step 5); since its parameters were no longer the default, its displayed name changed from the name of the preset (scene referred default) to nothing (there was no manually assigned name). This gave us the instance at position 8.
I then changed the exposure value of the 1st instance I created in step 6, and that resulted in step 9, with an assigned name ‘1’ (I didn’t assign it, it’s just added by darktable). Finally, I changed the instance created in step 7, and that created step 10.

On the right, we see there are 3 instances in the pipeline.

In the create new style dialogue, I can pick items from the history stack, so I have 6 options.

In the XMP sidecar, we have the following exposure entries (the numbers are in ‘programmer style’, they start from 0, so are one less than in the displayed history stack) – slightly formatted, params omitted (multi_name_hand_edited = "0" mean the name was not manually assigned; multi_name is the name shown to the right of the module type, whether empty, based on the name of a preset matching the params, or manually assigned; multi_priority is the ordinal within modules of the same type):

  • num=“0”, operation=“colorin”, enabled=“1”, multi_name=“”, multi_name_hand_edited=“0”, multi_priority=“0”
  • num=“1”, operation=“colorout”, enabled=“1”, multi_name=“”, multi_name_hand_edited=“0”, multi_priority=“0”
  • num=“2”, operation=“gamma”, enabled=“1”, multi_name=“”, multi_name_hand_edited=“0”, multi_priority=“0”
  • num=“3”, operation=“flip”, enabled=“1”, multi_name=“auto”, multi_name_hand_edited=“0”, multi_priority=“0”
  • num=“4”, operation=“exposure”, enabled=“1”, multi_name=“scene-referred default”, multi_name_hand_edited=“0”, multi_priority=“0”
  • num=“5”, operation=“exposure”, , enabled=“1”, multi_name=“scene-referred default”, multi_name_hand_edited=“0”, multi_priority=“1”
  • num=“6”, operation=“exposure”, enabled=“1”, multi_name=“scene-referred default”, multi_name_hand_edited=“0”, multi_priority=“2”
  • num=“7”, operation=“exposure”, enabled=“1”, multi_name=“”, multi_name_hand_edited=“0”, multi_priority=“0”
  • num=“8”, operation=“exposure”, enabled=“1”, multi_name=“1”, multi_name_hand_edited=“0”, multi_priority=“1”
  • num=“9”, operation=“exposure”, enabled=“1”, multi_name=“2”, multi_name_hand_edited=“0”, multi_priority=“2”

We can see that the last one, num="9", operation="exposure", enabled="1", multi_name="2", multi_name_hand_edited="0", multi_priority="2" overrides the initial version of the same module, num="6", operation="exposure", enabled="1", multi_name="scene-referred default", multi_name_hand_edited="0", multi_priority="2".

Tomorrow or later I’ll try to look into an exported style to see what’s in there. Maybe it will help understand / better explain the behaviour.

1 Like

Super! I haven’t had a chance to look again tonight, and tomorrow I must set about the 120 pics I took today.

By the way: as it is system-preset created, should there ever be more than one exposure module called “scene-referred default?”

Well, thanks, you’ve just described the problem fully. I’ve been using DT since 2019, and styles for the last 3 years. I am NOT telling it to add the extra modules, and DT is enabling them by itself. This is the reason I posted to begin with.

As for the crop module, how exactly do you know what I’m shooting? I find a preset crop module helpful for what I shoot, which can be repetitive. It’s faster to make a slight move and/or change the size a bit than it is to start the module from scratch for every photo.

If all you have to offer is criticism and trying to find fault, then feel free to extract yourself from the conversation.

Thanks for your help!

I never create a style with more than one active exposure. I do have a couple of presets for exposure, one for dodge and one for burn using the cumulative mode as a brush, but those are never activated as part of a style. If I need them, I would activate a new instance after the individual image file is opened, so after the style was created and applied.

It sounds like your testing uncovered the same problem, and it’s also been observed by Thad. I’ll pick another photo and take screen shots of before and after. Do you still need the sidecar, or have your efforts satisfied that? Let me know what else I can do to help!

I think its a bug in that creating a new instance of exposure names each one as scene-referred default… they are not they are new instances and added correctly with 0 EV …but I think this has the potential to mess things up…

The new instances should be autonumbered or I think you can set it to prompt you…

Maybe for now that would be best…have it prompt you and then when you name them the history stack will keep track correctly??

@kofa has worked through this with you so I will just follow but we can fill out a bug report…

So, here’s the latest effort, with a new twist.

First shot is my standard modules before doing anything

Next shot is the module list after processing

Next shot is the style after having been created
create style

This is the style after having been applied

And lastly, the modules from a photo after the style was applied

Note that while this time it didn’t create new exposure modules, it converted the scene-referred exposure module to manual in the module list, but it still says scene referred in the style. (I did not do that).

The White Balance problem persists as well.

Not sure what all that means. At this point, I know only that it’s not working correctly, and it never did this in previous versions. The only work-around I’ve been able to come up with is to

  • Create the style
  • Apply it to one photo
  • Edit the style to remove and reset the duplicated and incorrect modules
  • Apply the edited style to the remaining photos

This seems to work and will get me by for the time being. I am of the hope this can be corrected sooner rather than later, as I use batch processing with a style an awful lot during racing season. Hopefully the bug report will get some attention.

Thanks for your help!

I think you are creating the style incorrectly. You do not need to include all the modules. Include only the ones that are different from default. More so, don’t include the white balance one since you will be “saving” the as shot parameters from that image and then applying them to another image when you use the style.

There is still a problem… so it seems to me that any module that starts out being named default scene referred…keeps that name if you create a new instance…

The parameters are correct for example if you create a new instance of color calibration from the default one…its is also called scene-referred yet it is in bypass mode… same for exposure it is added as a 0EV with with the same name. A new instance name should be unique and incremented the way it is done when you are not using a named instance , at least I think so…

So further to that…I created an new instance of CC from the initial scene-referred instance… then I renamed it to new name… Then I created a third instance from that one… it was then also named scene-referred default and it is not its in bypass and showing that incorrect name…even though it was now created from a renamed instance…


Using duplicate instead of new instance seems to at least shed the name…gives a second instance of CC using the CAT with the appropriate warning but no name created…