darktable 3.2: containment effect!

I love the detailed explanations provided here, thanks so much!

My 2 cents, for what its worth. (Unfortunately I can’t contribute code, but I can at least contribute ideas.) A module currently can be adjusted in 3 different areas: Active Modules, Favourites, and Group. It feels a little messy to me. I think it could be simplified to just Active Modules. (With all the other modules found via search, or via the ‘More Modules’ section underneath. To make them easy to find, they could be grouped by category - much like how an OS start button has a list of applications, grouped by category). The other thing that gets messy is having multiple modules open at once and large scrolling bars. If all the other current tabs (like Favourites and Groups) were removed, they could be replaced by a Properties tab and Masking tab. So the Active Modules tab shows only the power button, module name and icons. Adjustments would be made in the Properties tab, and masking adjustments in the Masking tab. To me, that would be much simpler and neater.

Also, is there a way to click on the module and drag it to a different position in the pipeline? My current method is clicking the little squares and selecting ‘Move Up’ or ‘Move Down’ which is fine, but a click and drag would be much easier. I think I’ve seen it done on a tutorial, but don’t know how.

Great work by all involved for this brilliant software!

This is really impressive!

Thank you all for you hard work!

I would be against removing favourites and groups as I use them all the time to just see the modules I use 90% of the time. I wouldn’t want to use search or more modules for these.

Plus using groups instils discipline into my workflow by moving from left to right through the groups.

I do agree with you about large scrolling bars being a bit messy, particularly in the colour balance module.

1 Like

There is a setting in the preferences allowing you to have only the active module open.

Ctrl-shift-click and drag.

2 Likes

Yes, I’m sure lots of people use it differently, which makes it tricky. With my suggestion, it should still be easy for one to access their favourites, perhaps with a load favourites button easily accessible. With groups, instead of moving left to right through the tabs, you could simply move top to bottom as they appear in the more modules list (grouped by category, so it is not just one long list like it is now). It would only take 2 clicks (more modules, module) - which is the same it currently takes (module group, module) - and only slightly more mouse movement. However its good to hear how you use it, devs no doubt need to take all use cases into account to make their decision, and if most people do it your way then a change might not be preferable.

1 Like

About your 2 cents on module reorganization, it would be better to discuss that on the PR where already some people discuss about it: regroup modules in 3 tabs : technical, grading and effects by aurelienpierre · Pull Request #5322 · darktable-org/darktable · GitHub

About moving module in pipeline, 2 ways: by clicking on multiple instances icon and menu or with Shit+Ctrl+drag&drop. You could read a more detailed thing about features like that introduced in 3.0 there: darktable 3.0 | darktable

1 Like

Being colour blind I just love the new RGB parade histogram option.

It’s always been a struggle to set the correct white balance, even using a colour picker etc.

The parade view makes it so much easier.

4 Likes

I am trying to replicate the part in the article about negadoctor and fail to do so as some steps are not described in the article or I simply misunderstand them. They could be about the white balance or any other previous step to be taken before using negadoctor. In my case this results in colors that look pretty good but the shadows (and true blacks) lifted so far that the images fall apart and the image overall become noisy and too bright. Workflow-wise, I make a linear scan with a semi-professional scanner at 16bit, load the image, open negadoctor and select an unexposed part of negative’s frame as color base. Next, I try to find a good balance with the dmax and scan exposure setting but not always with sucess. I also experimented with the corrections tab. Is there a detailed documentation somewhere? Otherwise, negadoctor looks great! I am using negfix8 so far.

We have a draft document here:
https://elstoc.github.io/dtdocs/module-reference/processing-modules/negadoctor/

Is this helpful at all, or do you think it needs improvement somewhere?

2 Likes

That was fast, thanks a lot! The documentation is pretty good. It also contains this key sentence ‘It is likely at this point that your image will still look too dark, but you can correct this later.’. In my case the image pretty bright and noisy in the shadows at this point already. Not sure why this is the case. I tried several images. I guess, I will experiment more and also adjust the exposure settings afterwards but this will risk bringing down the overall exposure too much and hence I will end up playing around with changing the shadows and highlights. I will also compare the results with negfix8 for those cases where negfix8 fails. Any ideas why negadoctor tends to lift the shadows so much (also leading to color noise in darker areas)? Maybe it is the way I scan (which is adjusted to the negfix8 workflow). Thanks again.

Okay, I found an interesting ‘effect’. Depending on how I draw the rectangle using the color picker for the film base will lead to very dark (sometimes almost black) or very light images even if I pick almost the same area but just draw the rectangle differently.

You need to draw the rectangle around an unexposed portion of the film, such as the little strip between the images. This lets negadoctor understand what a piece if film looks like that hasn’t been exposed to the light (Dmin). If you include any region that was exposed to light, this will mess up the calibration.

The other thing is to make sure you don’t have any tone curves enabled (no base curve, no filmic, etc.)

1 Like

Yes, of course, I am using the unexposed part between the frames. Depending on how I draw the rectangle, the results differ widely in the (more or less) same area. Thanks again for your help!

So I dug out some old negatives of a trip to Paris back in the 1990s, and thought I’d give it a whirl. It’s amazing seeing images I took so long ago burst to life on the screen!

Anyway, what I think is happening is that you are zoomed in more than 100%, and in the top example you have sliced off a very thin region that may be too thin to contain any pixels, and so when the empty region is averaged out, the Dmin sliders all get set to zero. It is better to take a larger region if possible, so you are doing an average over a greater number of pixels. The bottom example has a wider strip that is picking up pixels, and the Dmin sliders are set to something sensible.

1 Like

I think it’s a great first draft. But I have a suggestion for improvement:

It would be helpful if explicit instructions were included for the parts of the image to sample when using the eye droppers. It is already clear for the colour of the film base, D-max, shadows color cast, and paper black sliders. It is not so clear for the scan exposure bias, highlights white balance and print exposure adjustment sliders.

For the scan exposure bias slider, it currently says “Again, you can use the eye dropper to allow Negadoctor to automatically calculate any needed offset.” Are we to assume we should be sampling the whole image minus the unexposed part?
For the highlights white balance slider, it currently says “For highlight color casts, select the eye dropper and click and drag a rectangle across the brightest area of your image.” Does it matter if the brightest part of the image has a colour cast? Should we be aiming for a neutral white, or just any bright part (bearing in mind that the brightest part could be green, blue, yellow, etc.)?
For the print exposure adjustment slider, there is currently no guidance for how to use the eye dropper. Do we assume we should be sampling the whole image minus the unexposed part?

The only other issue I have is that I don’t fully understand the real-world differences between paper black, scan exposure bias, paper grade and print exposure adjustment. The manual does a fairly decent job of explaining what their purpose is and what they are trying to achieve, but when actually using the tool, it appears as though they are all applying slightly different tone curves and that there’s some duplication. I often find that after going through the last tab, the image looks hardly any different from after completing the first two tabs. Not sure if that’s really something the manual can expand upon.

Thanks for the feedback, we’ll see what we can do about some of those points.

@David_LaCivita
The installer didn’t run because it detected that you already had a lua directory installed. You can move the lua directory to lua.old, then start darktable and it the installer will run. It will copy your luarc to luarc.old and install a new one that starts script_manager

When using the color pickers, you really need to watch out for dust and scratches. These will capture a lot of light during the scanning process and will make any measurement wrong.

Default settings aim at recovering details in shadows. Just change the print black value.

If your inverted image is bright, it means your negative is scanned underexposed, which also explains the grain. Check your scanner settings and expose as much as possible below clipping. Your scan histogram, before enabling negadoctor, should span as wide as possible without clipping (scanning is about getting details, not about getting a pretty tone rendition). Then, the look and tone rendition is something to care about when adjusting sliders.

  • Scan exposure bias should be sampled on low-lights or on the whole picture (it takes the min RGB of the selected zone) and double-checked by ensuring the left part of the histogram doesn’t clip,
  • Highlight white balance can be sampled on the whole image (it takes the average of the selected zone) or on grey objects for a more accurate detection (if you have any).
  • Print exposure can be sampled anywhere (it only takes the max of the selected region) or on highlights, and double-checked by ensuring the right part of the histogram doesn’t clip.

But, again, watch out for dust and scratches, and select zones around them.

Yes, that bad. Unless it has many different colour casts, in which case the average should be neutral grey, as per the “grey-world” assumption.

Scan exposure bias is technical and ensures a proper zero-ing of RGB values for the next operation. It aims at spreading the histogram properly between 0 and 1 early, providing normalization and robustness to the following operations. Use that first.

Paper black, paper grade and print exposure are exactly a slope/offset/power, as in color balance : they bake a creative tone curve to enforce your contrast intent after the inversion, at the end of the module. The equation is out = (RGB × exposure + black)^{grade}.

In case of a doubt, set the controls in the order of the GUI (tabs from left to right, top to bottom) and ensure the result looks good after each tab/step. The controls are layed out in the GUI in the very order they are applied in the pixel filter, so you can’t go wrong if you follow that path.

2 Likes

Many thanks for the explanation.
I always follow the order in which the sliders appear. Sometimes the image looks good after the first two tabs of film properties and corrections. Then, when I do the print properties tab, the various color pickers make the image go brighter, then darker, then brighter again, and I end up with an image ostensibly the same as after the corrections tab. I realize that there probably are differences, but it “feels” as though I’m just doing extra steps for little gain. The differences may be more obvious with a high quality photo, of course - a lot of my negs are old and poor quality.

In terms of ensuring the image looks good after each step, this is really useful information. I had previously thought that subsequent sliders would correct issues, but from what you say, I should adjust each slider to make it look good before moving on to the next slider. For example, if paper black blows the highlights with the color picker, I should dial it down before moving on to paper grade and print exposure adjustment (which often fixes the blown issue). Is that right?

And finally, what if, after doing all the steps, I have tonal/exposure edits I still want to make, either out of necessity or for creative reasons (e.g. more/less contrast, lifting shadows, etc.)? Should I use the sliders in negadoctor for this (which might mean going back to earlier in the negadoctor workflow), or is it best then to move on to eg. color balance, tone equalizer, etc.?

By the way, I love the module, so consider me a very happy user.

1 Like

My bad. Each step == each tab.

In the first tab, Dmax will set white and scan exposure bias will set black. Once both are done, the image should look reasonably contrasted with no clipping.

In the last tab, paper black will set black and print exposure will set white. Once both are done, again, the image should look reasonably contrasted with no clipping (although you can accept a slight highlights clipping, see after). Then, the grade is the cherry on top, to manage the overall contrast, and the paper gloss helps bringing back the highlights.

Negadoctor is designed to help you achieve a virtual print, so it gives you everything an enlarger and paper have to offer. But then, feel free to stack whatever works on top to achieve the look you want. However, if you go back in negadoctor’s settings, only perform minor fine-tuning, otherwise you will end-up in a nightmare. The creative part is mostly the print tab for tones and contrast, and the corrections tab for colors. The first tab is technical and should better not be touched once set.

Also, you will need to move tone EQ after negadoctor in the pipe, because it is not meant to work on negatives.

Cool :slight_smile:

2 Likes