Tone Equalizer proposal

Another module… Not sure it is a good solution if we can fix the current one. It is always tempting to create something new, but remember a module will live in dt forever and so will require maintenance. So a new module is only a good solution to solve a problem that is not already possible with current module, not because of some UI itches.

6 Likes

Question 1: What’s broken? Apart from mask slider placement, I’m still not convinced there’s anything wrong with Tone Equalizer

2 Likes

That’s what I was wondering as well. Hard to come up with a good solution if you don’t know the problem (or even if there’s a problem…).

And if it’s a matter of slider placement in the UI, does that have any influence on compatibility with previous versions? (I would think not, but well…)

1 Like

A guy was thrown out of the maths class at 15 dreams…

Of being able to control the shape(s) of the curves in TE with something like the handles that we have to adjust drawn-shape paths in masks.

Just a passing fantasy from a guy who knows little or no maths beyond basic sums and often gets them wrong.

I’m absolutely fine with being told that this is stupid, not actually useful, impractical, impossible, whatever.

@JovianSettler explains the broken part here: Tone Equalizer proposal

Not sure if I understood correctly but he proposed to change the order between correct exposure & contrast and guided filter to have the mask more controlled and keep the blurring when exposure and contrast has been compensated.

And also included the “auto align” feature, for me personally, sounds really. nice :slight_smile:

1 Like

I think he actually put too much in one proposal. I can see how one might want to correct everything in one go, but it might have been better to split the changes in smaller bites:

  • operations order
  • auto align
  • presets
  • GUI (where not needed for the other changes)

But he’d still have to show the usefulness of each of the changes…

2 Likes

That would mean 25 control points (9 nodes, with two handles on each inner node, and one on each of the nodes)… Or you use less nodes, which means less extremes (basically, you can have at most one local minimum or maximum per node).

I re-read your initial presentation and it sounds like you kept the old method of mask calculation if the legacy sliders are used is that correct?? So maybe just in the way @kofa has been experimenting with what sliders to add/keep if you can mock up the module to be two tabs and put the simple sliders in the second tab much as AP has updated it in Ansel and then move the mask controls to the graph (advance tab) with a legacy(current method) option…if,if you can include this in a way to be able to use the current method and yours so that testing and comparison would be easy then you could refine and finalize the details later based on much wider testing and feedback to confirm any potential improvements or pitfalls etc…

1 Like

“Broken” is the wrong word. The module clearly isn’t broken, but I think it’s abundantly clear from many discussions about this module over the years that many users aren’t happy with the usability of it.

Off the top of my head, these seem to be the main complaints:

  • UI: having the mask controls separate from the mask graph is inconvenient. Ongoing debate about what to do with the Simple sliders. Some love them, some hate them.
  • Aligning the mask: Having to set the mask exp compensation every time. Changes to exposure after setting TE means needing to go back and adjust mask compensation in TE. Lack of mask automation in general annoys some users.
  • Curve: The curve is quick to oscillate after small changes, especially with the Simple sliders. This can cause unintentional reversals that can lead to frustration.
  • Lack of fine control: In the Advanced tab, moving one node always moves several nodes. Not always easy to know where black/white points and tonal ranges start and end because the graph shows the mask. It’s often hard to pinpoint precise tonal ranges (in the way that the Zone System module did).

I’m just trying to summarize here based on discussions on this forum and Github over the years. It’s not meant to be an exhaustive or necessarily accurate overview of what people want.

None of the above means that the module is broken. Users can all just learn to work within its limits. But because this is the only dedicated dodge/burn module with a contrast-retaining guided filter, and was touted as the replacement to the Zone System module, it has a lot of “responsibility” to be the ideal module.

4 Likes

Yeah that’s about what I got from the conversation. For me, really, only the first is a problem and it’s easily worked-around. The second maybe is an issue, but mostly I fix exposure before I enable TE.

1 Like

I find the first 3 to be minor annoyances. I’d say my biggest issue is number 4: lack of fine control. I sometimes want to get really precise with my tonal ranges, and it’s just so fiddly with the Tone Equalizer. The workaround is to use Exposure and parametric masks, but if you want to target several ranges, you need multiple instances, as many as 8 maybe, and that’s really cumbersome, not to mention issues with local contrast.

I quite like the Tone Equalizer, but to be honest, I miss the UI and functionality of the Zone System module. It had its problems, especially around local contrast, but the way it split the image into 8 zones, which you could then modify individually, was awesome. I particularly liked the way they were highlighted yellow when you hovered over them, so you could see which part you were modifying.

I would be in favour of resurrecting that module or adapting something like RGB Curves to retain local contrast IN ADDITION to keeping Tone Equalizer.

3 Likes

This.

3 Likes

Most complaints I’ve seen about TE deal with the switching back and forth between the masking and advanced tabs. I believe that most people are happy with what the module does and the results it produces.

Changing the UI to keep the focus on just one tab would probably be welcome (though you can accomplish it today using shortcuts).

However, changing the internals to use different calculations probably wouldn’t be acceptable unless the same results between the new calculations and the old could be demonstrated. If not, then old edits would be broken, since the saved settings would be applied but the processing would be different.

2 Likes

I’m always unsure if I read the mask correctly, so suggestions that have come up in previous threads about rather using false colors than the mask in shades of gray has sounded as a good idea.
So do this.

3 Likes

I’d expect DT has a mechanism for dealing with changes to modules and honouring old edits. For example Filmic has several versions.

But that does require provisions in the code, naïvely changing the internals does not do the required version management…
If you change the interface (e.g add a parameter), a older edit would fail on the input, so it would be noticed quickly. Just changing the internals would stay hidden longer…

the mechanism is quite simple: coding

If someone changes something within an existing module, the it comes with the duty to implement conversions (the result before and after must be identical) or support several algorithms that are used depending on an user selection (of course the gui must support all variants).
Since tone equalizer with its ability to operate directly on the image is quite complex, that‘s a non trivial task.

This is more often a problem for me when I am copy/pasting an edit to other pics. Everything else, for better or worse, just works, but TE and it’s masking don’t. Maybe it’s unreasonable to expect that they should? How would an auto-aligned mask work with copy-paste?

(IIRC (always a big if!) it says in the manual that TE should be given a correctly exposed and colour-balanced image)

1 Like

It’s very hard to automate anything with respect to image properties, without manually clicking on a picker. I have the auto pickers mapped to a keyboard shortcut

2 Likes

And also data? Do you put something like a version number in the module data that goes in the xmp and database? So when rendering the image, the module knows which processing to apply.