darktable icon indicating copy to clipboard operation
darktable copied to clipboard

Bring back the interface of the zone-system

Open rekcodocker opened this issue 8 months ago • 9 comments

Is your feature request related to a problem? Please describe.

I found the old, discontinued zone system highly intuitive. It clearly showed how you were distributing dynamic range, and how you could take some dynamic range from a portion of the spectrum and use it somewhere else.

The Filmic does that but it's like there are only two zones (dark and light) and it's not as visual.

The Tone Equalizer seems to redistribute the dynamic range but again it is not so clear exactly what it is doing. For example, increasing the (-8 ev) changes the mid-tones. The zone-system interface was very intuitive in that respect: If you want more details in one range, you will give it up in the others.

Describe the solution you'd like I would like the user interface of the zone system, with the 8 bands, either in Filmic or in Tone Equalizer.

This is about the user interface. I am not asking about the zone system to be returned although I would not mind it.

Alternative would be some kind of display how the dynamic range is distributed.

Image

rekcodocker avatar Apr 03 '25 09:04 rekcodocker

filmic is a tonemapper - quite different use case. it's about bringing darkt and bright tones in an unlimited range into a limited range using a fixed midgrey. --> here it's more about defining the curve for this mapping, but there are further ideas: https://discuss.pixls.us/t/blender-agx-in-darktable-proof-of-concept/48697

MStraeten avatar Apr 03 '25 10:04 MStraeten

Alternative would be some kind of display how the dynamic range is distributed.

See https://darktable-org.github.io/dtdocs/en/module-reference/processing-modules/filmic-rgb/ section dynamic range mapping.

pehar1 avatar Apr 03 '25 14:04 pehar1

Tone EQ has nothing to do with the zone system and doesn't redistribute the dynamic range either. It's essentially an advanced (local contrast preserving, scene-referred) tone curve.

Donatzsky avatar Apr 04 '25 20:04 Donatzsky

It's not about getting the GUI back - I confess I also find it intuitive for usage - it would be about implementing such a tool working in scene/unbounded space. So a new module as I see it.

jenshannoschwalm avatar Apr 08 '25 08:04 jenshannoschwalm

Tone EQ has nothing to do with the zone system and doesn't redistribute the dynamic range either. It's essentially an advanced (local contrast preserving, scene-referred) tone curve.

Thanks, did not know that. I noticed that if you put a slider to the extreme it also influences the rest of the image.

rekcodocker avatar Apr 09 '25 09:04 rekcodocker

It's not about getting the GUI back - I confess I also find it intuitive for usage - it would be about implementing such a tool working in scene/unbounded space. So a new module as I see it.

So it's not just a refinement of what Filmic is doing? I heard an explanation on how it was mapping the image (scene?) onto the target and distributing the dynamic range when it's doing that.
One of the graphs even looks like the zone system, just without the fine control.

rekcodocker avatar Apr 09 '25 09:04 rekcodocker

Well it maps tones, yes.

jenshannoschwalm avatar Apr 11 '25 11:04 jenshannoschwalm

Tone EQ has nothing to do with the zone system and doesn't redistribute the dynamic range either. It's essentially an advanced (local contrast preserving, scene-referred) tone curve.

Thanks, did not know that. I noticed that if you put a slider to the extreme it also influences the rest of the image.

Actually what happens would depend on your mask and settings...for a given mask it could be that the slider does nothing at all...

todd-prior avatar Apr 15 '25 04:04 todd-prior

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 Jun 15 '25 00:06 github-actions[bot]

Sorry for reviving this old issue. I've also been wanting the zone system back, so I got to work (with some help from claude) and converted the zonemapper to scene referred. In the same process I also changed the zonemapper to use a nurbs curve for generating the zonemap, which should remove sharp edges. If someone wants to try it it's in my fork: in the feature/zonemapper_nurbs branches (one branched off master and one off 5.2.1). Currently no OpenCL processing

https://github.com/cycomanic/darktable

cycomanic avatar Oct 27 '25 08:10 cycomanic

If you think it's really good why not open a PR so we can discuss as usual?

jenshannoschwalm avatar Oct 27 '25 08:10 jenshannoschwalm

@jenshannoschwalm I'd definitely be open for that. There's still a few issues I'd like to address first (fix the opencl processing and some weirdness about moving the control points in the GUI), so it would be good to get some feedback first.

The other question I have is around backwards compatibility, my port likely subtly changes existing edits. So would it be better to create a new module or do some sort of versioning on the module?

cycomanic avatar Oct 27 '25 09:10 cycomanic

If you dont want to keep old edits it would have to be a new module.

jenshannoschwalm avatar Oct 27 '25 10:10 jenshannoschwalm