Diffuse module is now in the master.....

I did some tests, unfortunatly this is where we will hit the limitation of not using a nodal interface. With nodals blocks, you could assemble image filters in a Lego way, apply the output of a channel mixer to the input of the blur, then composite the output of the blur in some arbitrary RGB/Yuv channel over the initial image. All that from combining basic blocks that individually make sense.

The color stuff doesn’t belong in a lens blur module, from an UI perspective. It comes from another framework with another mindset. If we are to allow that, I will basically need to duplicate the channel mixer inside the blur module and that will become your usual bloated module, especially since we don’t have the luxury of working in display-referred here, so you need additional middle-grey and white fulcrums everywhere if you want contrast and brightness adjustments.

2 Likes

I understand now. Thank you for your patience and time to explain it!

Even without these options, I can’t wait for the new blur to show up in master. Diffusion module I have already tested and has become a permanent part of my workflow.

3 Likes

Can you share some examples to show what you use it for and how?

What do you mean? Diffuse module?

Yep. Sorry, I clicked the wrong ‘Reply’ button, but I meant to respond to:

Beforez and afterz (no other sharpening/local contrast methods involved):

6 Likes

Thanks – I did try the sharpening / local contast / dehaze presets.
What a nice heart-shaped vectorscope all in reddish hues! :smiley:

2 Likes

@anon41087856 has already demonstrated it nicely.

I have a photo assignment tomorrow (a small event) and on Friday I could also show a pair of own examples.

1 Like

Thanks in advance. I have not tried the actual ‘diffusion’ (softening, inpainting) modes yet.

FYI - I’ve been encountering occasional crashes on DT 3.7.0+279~g5ffce60f0 when running the new diffuse module on Win 10, although the backtraces attribute the access violation to libcolorbalancergb.dll. I’ll submit a report to Github if/when I have enough information, but in the meantime I wanted to get word out in case anyone else has had similar issues.

Hi,

Just in case you are interested, I ported this to ART and did an FFT implementation which shouldn’t be hard to port back to dt if needed

5 Likes

Cool, thanks. That will be helpful. Did you reuse the GUI kernel preview too ?

not really, I went for the simplest integration GUI wise. Perhaps later…

Taking the discussion away from the topic (I believe it’s becoming a specialty of mine), I must say that this the finest grade I’ve seen from you. Sublime! Would love to see a run through of that edit in video format, but I’m quite sure other things are keeping you busy. :slightly_smiling_face:

4 Likes

How did you manage to get fftwf single functions working ? Here it fails with “unknow symbol”, but vanilla double fftw functions work.

You mean it fails at run-time? I didn’t do anything special TBH, so I don’t know… is the code online somewhere?

I narrowed down the issue to CMake… FFTW3 is not declared at all in there, while RT has it in CMake since forever, so that’s why dt doesn’t find it. Mind you… I’m not a soft engineer and never wanted to be, linking and building are stuff I don’t really understand.

1 Like

Back on track, here is a dramatic example of an old pic from a Panasonic Lumix DMC FZ28 (2008).

No sharpening:

Sharpen module:

Diffuse with 32 iterations:

Diffuse with 128 iterations (and very gentle parameters):

4 Likes

Was the diffused version based on one of the presets? I’ve had good luck with the “lens deblur:hard” with extra iterations.

Roughly, I had to adapt the hard preset.