Blender AgX in darktable (proof of concept)

That#s what I thought. Thanx for confirmation.

recover purity (the master attenuation control) is 0 → no saturation boost:

recover purity is high; individual channel attenuation reversal settings are high → large saturation boost:

recover purity is high, but the individual channel values are 0 → no saturation boost:

Same for the rotations: the effective value for each channel is the master rotation reversal * the value of the individual channel.

1 Like

You are absolutely correct. I intend the Blender-like preset to become the default – but I don’t yet know how to do that, while also allowing the primaries sliders to be reset to ‘neutral’ (no rotation, no attenuation) when double-clicking them.
Locally, I solved it by creating a copy of the Blender-like preset, and marking it to be auto-applied:

Here:
blender-base auto.dtpreset (1.2 KB)

I’m sure darktable devs can show me how to do that before this gets to master (or I can find it among the other modules).

So, I’ve considered the following:

  • make the sliders always available, as in filmic:

    That would mean yet another always visible slider.
  • same slider, but under advanced, set to some sane default (and maybe stored in darktablerc, so one could customise it)
  • should it be an absolute value, like 0.33 EV or 0.5 EV, or a percentage like 10% (so, if you auto-pick -7 EV to +4 EV, it’d set -7.7 to +4.4 EV), as in filmic?

I think our slider could just run from 0 upwards (so, ‘always’ add 1/3 EV or 10%); most of the time, we’d use the shoulder/toe controls to control the brightest highlights/white. If someone wants to reduce the value (clip more whites/black), that would be done manually, not via this slider.
Also, maybe the slider’s value would influence the values picked after the slider is set (so, if it is set to 1/3 EV, and someone sets it to 1/2 EV, nothing would change, until the pickers are used).

Or should we stay consistent with filmic?

1 Like

Oh, and I forgot to add: the toe/shoulder values are now in terms of y space below/above the pivot (used to be in terms of x space on left/right). So, 100% means the curve remains linear all the way until it hits y = 0 or y = 1. 50% means it remains linear between the pivot and halfway down to 0 or up to 1. If the pivot is at the default y = 0.46 (value = 0.18, power = 2.2), then 50% toe would mean linear between 0.23 and 0.46, the toe covering y = 0 to 0.23; while 50% shoulder would mean 50% of 1 - 0.46 = 0.54, or 0.27, so the curve would remain linear between 0.46 to 0.73, and the shoulder would span y = 0.73 to 1.

Intuitively I would say a percentage value is better. But I’m not really deep into such theoretical things. It is just a feeling. Maybe others can give some better founded suggestions. For me it would be improvement, no matter how you implement it.

By the way, I did an experiment: I was on holiday and now back at home, I decided to test AgX “in production”. I developed the whole holiday output only with AgX.

Result: It was fun and the results are absolutely convincing.

On many of the pictures, I saw just smaller advantages. But whenever it came to difficult light conditions, there was a massive step forward and AgX brought me really quick to more than pleasant renders. Especially photos, taken against the sun, were a pleasure to edit. So much control and such smooth transitions with nearly no effort.

So all in all, most of the pictures do not look better than before, but it was faster to get to that point. I would guess that with AgX I was 15-20% quicker through all my pics than usually.

Thank you @kofa and everybody involved :heart_eyes:

12 Likes

That’s great to read, @Popanz. I was just thinking yesterday when I was working on my production copy of Darktable, which is 5.0.1, that I really missed AgX with some of my photos. I would come up against a tricky one and think “I need AgX right now”. I’m very eager for it to arrive in master.

3 Likes

As I understand it, that’s going to be more than six months away. As someone who’s pretty computer illiterate, would there be many downsides for me to use a non-master build in the meantime? I only tried agx on one pic (I used it on my laptop so different install to my main desktop copy) and was impressed by the ease of use even though I had no idea what all the sliders were doing.

The big one is broken edits. A new release development build is not guaranteed to preserve your edits, and a new official release is not guaranteed to preserve edits from dev builds, so you might end up needing to use one particular build for those photos forever and ever.

(Edited for terminology clarity, thanks @rvietor)

1 Like

Well, a release usually does guarantee to preserve existing edits from previous releases. It’s the intermediate development versions where they cannot guarantee that preservation (especially for work using the modules under development). Note that even a master build may not offer any guarantees.

In this case, I’d really not use AgX for any “serious” work, as it’s not even in the main repository.

1 Like

The agx builds are always updated from master (the latest development version).

The real danger, as @europlatus said, is that if I add or remove parameters, or change the meaning of one, your edits will break. I expect fewer of those, as the code gets consolidated, but it is a risk.

1 Like

Thanks for the explanations, fellas. Useful

I have been using this version (1077) on my secondary windows darktable system to keep my primary linux system seperate. I’ve noticed that the lens correction can not seem to find my lens in the data base. Should I be expecting no lens correction? I also want to thank you for providing these windows versions so that I can explore the agx module.

So it does on one and not the other?? If so maybe the lensfun db needs updated… I haven’t done it for some time so I will before I build another version…

@Dean sorry you’re experiencing difficulties with lens correction. Unfortunately my knowledge of the code is nil and I’m only compiling the builds.

@priort had a good suggestion that perhaps the lensfun db needs rebuilding. I can check my build to see if I have similar issues. Can you tell us which lenses you’re have trouble with?

Note that the AgX POC rides on the DT development versions. Have you tried downloading a recent master build to see if the problem persists (I suspect it will).

Good luck!

I haven’t done it on Windows, but maybe try updating the lensfun database. See lensfun: Updating Lensfun's database: lensfun‑update-data

I haven’t found how one can install lensfun on Windows. Maybe the others can help.

Try this one…I updated Lensfun and then built it just now…

https://www.dropbox.com/scl/fi/p2mu1edsq79x5tk8ftbbt/darktable-5.1.0-1077-g1ce81b2a50-win64.exe?rlkey=x3iegcrb67iuclywk9dafo75z&st=k1a3bavq&dl=0

3 Likes

Yes lensfun is now working in my windows agx version. My summer travel lens is a rf 24-60 f4.5 - 6.3 so lens correction is helpful. Thanks for getting lenfun working…

1 Like

All good, I’m sure you know but as a caution any upcoming changes will break your edits so just keep that in mind if you start doing a lot of edits with agx….

1 Like