Local adjustments - improvment of GUI - improve Wavelet pyramid

You can now use new features for “Local adjustments”

Either you use a build from branch “newlocallab”, or you compile this branch, or you participate in the PULL REQUEST that I created (between newlocallab and dev)

The advances are of 2 types, the GUI and significant improvements to “local wavelet”

For the GUI
@Pandagrapher has done a remarkable job, I will give him room to detail the improvements.
Mainly you have the possibility for each RT-spot, to choose the modules of your choice, for example “Color and light” and “Local contrast”

For this to work properly, you need to “clear” the cache.
Admittedly this introduces a loss of compatibility with the old pp3, for those who used “newlocallab”, but it is difficult to do otherwise.

  • For each spot, users can now choose which local tool he wants to add or remove;
  • pp3 files are now slimmed down: for each spot, only associated local tool parameters are saved;
  • For copy/paste or save/load, using Partial Dialog, users can now select spots they want to keep;
  • Optimisation: When switching between spot, picture is no longer updated if not necessary;
  • Locallab is not anymore possible in batch mode (quite useless to maintain this code for local adjustments…);

For "Local Wavelet"
I set up something similar to the new branch “wavtm” in the process of being controlled, by a PULL REQUEST by @floessie and @heckflosse

The work on “wavtm” was developed with the active participation of @XavAL , and completely transforms the use of wavelet by systematically taking into account a modeling of the decomposed data (mean, sigma, max …) and one or two parameters “damper” and “offset”

“Local Wavelet” has some additional features, such as taking into account ‘deltaE’ transitions and scope, plus the possibility of a wavelet tone-mapping.

Do not run away from “wavelet” (Wavelet levels of main, or Wavelet local pyramid) because it seems complicated, try, try, and you will adopt it.

In particular:

  • Clarity and sharp mask
  • edge sharpness
  • blur levels
  • tone mapping
    and also
  • graduated filter local contrast
  • contrast by levels
  • levels local contrast
  • residual image

You can also in combination with the transition parameters (transition value, weakeneing transition …) act on the sensor faults.
And of courxe, if need, you can use “mask”



Hello All,

As @jdc mentionned it, in this PULL REQUEST, Locallab GUI has been significantly improved in order to simplify user interactions with.

The main improvement concerns how local tools are managed. Now, when adding a spot, no local tool is associated with:

  • Use the local tool list to add one or more:
  • Use the delete button on each local tool expander to remove it:

If you think that too many expander are opened, do not hesitate to use mouse right-click on an expander to close all the others :wink:

The second major improvement concerns copy/paste or save/load functions. Now, you can select specifically the spots you want to keep in the Partial Dialog:

Moreover, some improvements and bug fixes have been done. GUI code has also been updated to improve its maintainability and easily allow adding future functionality. Unfortunately, compatibility has been lost with old .pp3 (but normally for the last time !)



This looks a major step forward. Congratulations on all the hard work. Look forward to trying it.

Thanks a lot for this news.

Hopefully, this feature [1] would be “soon” included into the master branch in order to make it much easier to test for everyone.

Needless to say, the best would be to have some video tutorial at hand in order to increase the awareness of its capabilietis: yeah, I am “greedy” here :slight_smile:

This feature has been long in the making and it does open new avenues for editing. IMHO, when released, it might deserve a major number version for RawTherapee: 6.0 version, I mean :slight_smile:

Once again, thanks a lot for your hard work all these past years!

[1] https://github.com/Beep6581/RawTherapee/pull/5728

My fear was that only active/enabled tools were saved and everything else lost between RT restarts. But actually every tool that is added to a spot will be saved, independent of its state. (Just in case someone has the same thought).
So I can keep on fiddling with local color adjustments until my colorblind eyes hurt, but deactivate those adjustments when exporting. :+1:

1 Like

Hello all

Major Changes by @Pandagrapher

  • Tool complexity can now be changed dynamically without restarting RT;
  • Tool complexity can now be managed independently for each tool (a default choice when adding new tool can be chosen in Preferences panel);
  • Tool advice tooltips can now be shown/hidden dynamically without restarting RT (option in Preferences panel).

Now GUI from @Pandagrapher solved the squaring of the circle.
How to develop both a simple interface so as not to make the user flee, and preserve complexity.

Each user can choose the tools he wants, with the level of complexity he wants…



I appreciate the new GUI, what a nice job!
thank you!


I saw again “Rawpedia” (in french)

Especially the part on the differences “Expert / Normal”

Also, I change some labels and tooltip


Bravo, @Pandagrapher for a great job on the GUI. One thing I have noticed is that the sliders in the Shadows_Highlight_Tone Equalizer module don’t seem to have any effect (I have switched the module on). I am using build RawTherapee_newlocallab_5.8-1912-ge6252e1_20200511.AppImage on Ubuntu 18.04
Another minor remark concerns the tool tips for the Shape Selection sliders. The 3 tips are in the reverse order of the sliders.

1 Like


Thank you for testing

You are true, with the new GUI, I made a mistake and “inverse” methods between ShadowsHightlights and Tone equalizer

Well seen for the tooltip

I commit a change soon :slight_smile:
Thank you very much


1 Like

I also have a question that we have touched on previously regarding the Preview Selection deltaE. The original request was to be able to toggle the preview for this mask from the Settings panel rather than have to go into a mask menu. I agree that this would have made things far too complicated with the previous interface but I am wondering whether the solution would be simply to add a Basic mode in addition to the Normal and Expert modes. In the Basic mode, the Masks modules would be hidden and a tick box provided in the Settings panel to be able to view the deltaE mask. If such a Basic mode were to be introduced, I imagine that some of the finer controls could also be hidden in the Settings and Tools modules to make it even easier for newcomers. I have always been impressed by the simplicity of the Nik filters and the recent DxO implementation of U Points in PhotoLab and it would seem to me that a Basic mode would provide something similar from a user point of view and probably be sufficient for 80% of local edits. What do you think?

Thank you for your hard work, the local adjustments are awesome and I just start playing with them!

One question - please forgive me if it’s stupid: Now that this tab is likely to be merged within the main dev branch, is it planned to make the “RTspots-masking” system available to all the filters? I mean, instead of having this dedicated tab for local adjustments with custom filters, which, for some, are like the main ones but not quite the same, can we imagine one of these 2 options:

  • Use a “layer” system with the power of this masking features. It could also expose more standard parametric masking features (like in ART, or like some filters already have). On one layer, one could use every filter. (This is the Way Capture One works for example)
  • Merge this spot-masking tool with the existing filters masking features, and enable them for all the filters. (This is the Darktable-way).

Both solutions would allow:

  1. To use powerful masking features for all filters
  2. To make all filters available at the same level - for example I would like to have the tone equalizer available in the “Exposure” tab, not hidden as a filter we can add in a “Local” tab.

Hope my proposal make sense, please forgive me if this topic has already been addressed elsewhere!


We will do a modification, “add a button” in settings that allows to preview deltaE

But if we add a new “level of complexity”, we add complexity…
Now “mask and modifications” are in an expander “closed”
We think, it is the best solution to keep “mask” as they are.

I am not sure to all understand (my bad english)

For me, as I designed this tool 4 years ago, Mask are not the main tool, as in CNX2 and DxO
I add mask because i was asked to do it and in 90% of cases it is not useful (it adds complexity)

Currently it is impossible (with the actual code of course) to do what you want…in plein image (if I understand your message - it is always possible…but much work) :slight_smile:

But, all the mask in “Local adjustments” can be used with almost (except one or two) the “Local tools”… and you can use “Local adjustments” for plein image.
But you cannot use only one mask for all the tools, with the code as now.
ART is very different from “Local adjustments”, you can compare the result, but not the algorithms.

I don’t understand “To make all filters available at the same level - for example I would like to have the tone equalizer available in the “Exposure” tab, not hidden as a filter we can add in a “Local” tab.”


@jdc I am french so my english may be as bad as yours :wink:
I was suggesting that all the “local tools” could be extracted from this “Local” tab and be placed with other “regular” filters. For example, the Tone Equalizer would be in the “Exposure” tab.
Then, the spot masking feature could be added to ALL the tools, including the regular ones. My 2 proposals to do so were:

  1. To have the ability to create a mask for every tool, like this is possible for the Color toning tool for example, but with the Spots masking merged. This is what I called “the Darktable way”,
  2. To implement a layering system, with the ability to create masked layers, using again the spots masking power but also some parametric abilities - that would be up to the user to choose. And why not brush to draw masks… :wink:

I don’t know if it is possible at all with the code!

Donc exprime toi en français, ce sera mieux

@jdc @Pandagrapher I agree that it isn’t a good idea to add complexity. My suggestion was to try and avoid that by suggesting a Basic mode in the preferences window (default complexity for local adjustments). This basic mode would simply:

  1. hide all mask dialogues to avoid having confusing mask-activation buttons in several places
  2. Add a button in Local Adjustments>Settings to allow the user to preview the deltaE mask (this button would disappear in Normal and Expert Modes).
    However I appreciate that it may not be as simple as that :slight_smile:

Allons-y en français alors, désolé pour les autres :wink:
Je proposais donc (sans connaître la faisabilité…) d’extraire les modules de retouche locale de ce tab spécifique, et de les rendre disponible de manière globale. Par exemple, le Tone Equalizer serait dans l’onglet Exposition au lieu d’être un module uniquement “retouche local”.
Ensuite, ces modules, mais pourquoi pas tous les autres modules, auraient une option pour agir uniquement sur un masque, comme c’est le cas dans Darktable. Et dans la configuration de ce masque, on retrouverait la possibilité de faire un masque “RT-spot”, mais aussi un masque paramétrique standard, et pourquoi pas aussi une brosse pour dessiner un masque à la main.
De cette manière, tous les modules pourraient être utilisés avec ou sans masque, et pourraient tous bénéficier du masking RT-spot.

Une autre manière de faire, pompée sur Capture One, serait d’implémenter un système de layers. Un layer pourrait être “masqué”, encore une fois sans limite (RT spot, paramétric, brosse), et sur un layer on utilise tous les filtres que l’on veut.

J’espère que je suis clair et que je ne dis pas de bêtise !

Je pense que ce n’est pas possible “facilement”…on peut toujours :slight_smile:

Par contre, il est assez facile de rendre les RT-spot locaux devenir globaux, sur toute l’image.

  1. Pour n’importe quel RT-spot, tu positionnes les délimiteurs au delà du “preview”

  2. Ensuite selon les souhaits, si tu souhaites ou non un transition, tu règles transition sur 100 (pas de transition)

  3. Ensuite tu règles scope sur ce que tu veux, par défaut la correction s’appliquera aux couleurs choisies, si tu règles scope au maxi (100), toutes les couleurs son traitées à l’identique

Et bien sûr tu peux te servir des masques…

@Pandagrapher doit avoir dans sa banque de modifications (?), une option GUI, qui permettrait 1) et 2) en automatique. Mais ce n’est pas pour tout de suite.

La brosse, c’est une autre affaire…


@jdc Merci pour ta réponse, ainsi que les explications. Je vais continuer à creuser ça, c’est tellement utile que c’est pour ça que j’imaginerais bien étendre ça à tous les modules. C’était aussi pour harmoniser un peu, car aujourd’hui même dans les modules standards, certains ont des possibilités de masquage, d’autres non. Ca serait sympa d’avoir un système de masques uniforme sur tout le soft. C’était aussi pour merger certains modules de retouche locale avec leur “équivalent” global.

En tout cas je comprends très bien que ce puisse être compliqué, et j’ai beaucoup d’admiration pour tous ceux qui passez du temps à faire des outils si puissants !

Rajouter des masques aux 2 ou 3 modules qui n’en n’ont pas est bien sûr possible et peut faire partie des travaux à faire, pour “après”. Mais sache que c’est un travail important (pas complexe), mais volumineux… Beaucoup de temps à passer

Mais - rappel - dans les masque conçus par moi même et @Pandagrapher - ils sont obligatoirement dédiés à un module.
Il y a une exception “Blur” et “denoise” qui partagent un masque en commun, mais c’est complexe. Autre exceptions les masques pour Retinex…très complexes, car incorporés au code de Retinex, qui est lui même bigrement complexe.

Nous avons imaginé ce système qui est différent des autres (ART, PS, etc.), 1) parce qu’il fallait l’adapter aux corrections locales avec le RT-spot, 2) parce que le système est récursif…
Mais tu peux mettre autant de “masques” (ou autant de Spot) que tu veux, il suffit de “dupliquer” le Spot… et de mettre le centre quasiment au même endroit.
Chaque masque peut aussi interagir avec les autres, c’est pour cela qu’on voit apparaître un ordre.

Mais, rappel, pour moi concepteur des algorithmes RT-spot (comme d’ailleurs dans les produits Nik Software),le masque n’est pas du tout l’outil principal. L’idée de Nik que j’ai reprise, c’est “UPoint” “You point” et cela fait le travail…Bien sûr cela a des limites, mais si tu as compris le système, avec les “excluding Spot”, on résout 95% des cas…

1 Like