What does diffuse or sharpen really do?

“Intuitive” use usually means that you are very used to the tool and know what it does through experience (working with it and perhaps studying the theory behind it).

In this case, simplified or “intuitive” ways to work with the module would have to hide part of the power of the module, and I’m not sure the full darktable interface would become simpler (as there would have to be many more “modules”.

And yes, I only use the presets, with perhaps a few extra iterations to “strenghten” the effects (not always possible without artifacts!). That said, it’s not the first time I see an interface/tool that’s hard to understand, but works in practice (through iterative use, NMR shimming for the initiated :wink: )

I think it’s a great goal to make the diffuse or sharpen module more intuitive, but not at the cost of taking away its power. That’s why I think a good starting point would be just a simple explanation of what it does. Then we can discuss whether there’s a better UI. However, I strongly conjecture that until someone can explain how the module works, we won’t have better ideas for UI that don’t hurt the module’s flexibility and power.

As a starting point, I want to look at the papers that @priort shared.

2 Likes

Did you watch Nicolas’s video (A dabble in photography) …he did a pretty good job basically showing you what is going on as you move down the module from where you set the wavelet parameters to obtain your high and low frequency images/layer much like a frequency separation. Then you do that again basically to get even finer high frequency image and these are the bases for the effect and the sliders 1-4 and then the next 4 are the steering the effect you set with those…

I think what I find hard to do is visualize assessing an image in such a way to target these adjustments … for example guiding the effect on the high frequency image using the gradient from the low frequency image… I think the manual says something like so it makes sense…

To me I think it boils down to manipulating edges and discrete particles like grain or noise and you can tweak the controls to target one or the other or both… I suppose someone breaking down a couple of images and showing how they would use the module differently to suit that might be helpful…

Yes, but it doesn’t quite match what’s in the manual. The manual says:

1st order speed (gradient)
The speed of diffusion of the low-frequency wavelet layers in the direction defined by the 1st order anisotropy setting.
2nd order speed (laplacian)
The speed of diffusion of the low-frequency wavelet layers in the direction defined by the 2nd order anisotropy setting.
3rd order speed (gradient of laplacian)
The speed of diffusion of the high-frequency wavelet layers in the direction defined by the 3rd order anisotropy setting.
4th order speed (laplacian of laplacian)
The speed of diffusion of the high-frequency wavelet layers in the direction defined by the 4th order anisotropy setting.

Whereas the video says:

So in the video, at least there’s no unit error: each operation modifies a rectangular array of pixels by a vector space multiplied by the speed, so they are all doing the same kind of thing. Of course, the exact modification isn’t specified.

I think maybe there’s some “pun” (like how Δ = ∇² because Δf = ∇⋅∇f) going on in the manual description, so there’s a sense in which the 2nd and 4th order speeds are similar to the 1st and 3rd, but it doesn’t make sense to me.

I guess that my way of looking at Intuitive with regard to d or s, would be that it not be so difficult to understand at least for me. Perhaps that puts me in the minority. Anyway, there is a reason why the presets are so often used and the sliders avoided.

1 Like

There is also a bit more elaboration in the manual in the workflow section that might support the way he presented it …Those initial description don’t really say much do they…

Came from an early thread

That’s how I implemented and use a filmic curve in my hack software…

The Duiker filmic equation has four coefficients, A, B, C, and D. Me, I just put the equation in the code and made four edit boxes, one for each of A - D. Loaded the thing in an image toolchain, then just started “rolling” the numbers around to see what they did. A seems to do main contrast, D reduces contrast in a “different” way, B drives down the shadows, etc.

Four years later, I still don’t know what A, B, C, and D specifically do, but I can spin them up/down with aplomb to do what I need…

4 Likes

Yep, I kind of agree with both sides of the discussion.
I’m not a mathematical sort of person (unfortunately) so my only advice is to experimentally try as many different ‘versions’ of DorS settings as you can, until you start to grasp what… does what.

Start with some presets perhaps, but start from scratch too. It’s not really that hard once one starts getting the hang of it.
Of course, having said that I’ll probably discover something tomorrow that turns my perceived approach upside down… still.

And you do need sufficient system grunt that you don’t have to wait 30 sec after touching each slider… that makes it even harder!

Of the various dictionary definitions, I think we’re mainly using it in sense 3 below:

in·tu·i·tive

(ĭn-to͞o′ĭ-tĭv, -tyo͞o′-)

adj.

1. Of, relating to, or arising from intuition: “The greatest scientific thinkers are those who rely on sudden intuitive flashes to solve problems” (Andrew Weil).

2. Possessing or demonstrating intuition: an intuitive thinker.

3. Easily understood and simple to use: a web browser with an intuitive interface.

I think a key concept for an interface being intuitive is that you can usually work it out by yourself fairly quickly (assuming you are fairly tech literate), and when you have figured it out, it makes sense to you (“yes, that makes sense” as opposed to “that was a stroke of luck, how the hell was I supposed to know how to do that?!”).

I know that the dev behind this particular module actually hated the word “intuitive” because something can be intuitive to one person but not to someone else. It was therefore meaningless, he argued. However, I always disagreed because I don’t think we can say something is intuitive if just one or a very select few can understand something. It has to be intuitive to a majority of people if the product is destined for more than just an elite few.

4 Likes

This is generically independent from DoS but still applies.

I think the term or concept of “intuitive” is often given artificially high value in the context of computing, particularly with respect to users’ reactions. To be clear, I’ve never grokked what DoS does beyond playing with the presets a little. It’s all moslty-opaque “math-greek” to me. And I’m sure I would benefit from a more immediately understandable UI (if indeed that even can exist).

But implicitly assuming the inherent superiority of ‘intuitive’ is IMO risky. What makes something ‘intuitive’ in this context is the ability of the user to more easily relate something unfamiliar to another experience they’ve had and by that association, learn the new.

Trouble is, what if said user has no applicable past experience? In that case, what are the chances they’ll ‘intuitively’ make the best operational choices? IOW, if you’ve never done X before, it’s all ‘unintuitive’, so you have no context to direct your understanding of X, nor how it should be presented. Then you have to just suck it up and learn. In particular you may have to learn (through study and rote practice) something that’s fairly unfamiliar.

Think for a moment about times you’ve come across a new <something> (computer or non-computer) and had to figure it out. What are the chances you ‘intuitively’ took the optimum path? Almost nil, I suspect.

Trouble is, DoS is commonly-unfamliar enough that the very people who would benefit most from an optimally ‘intuitive’ UI are the ones who have no context to determine what that ‘intuitive’ UI should be. That’s certainly true for me.

I know – More questions and no answers. :slight_smile:

1 Like

I can agree to much of what you say.
I do accept that without the necessary reference frame, nothing will be intuitive. It depends on cultural norms, personal experience and learning. (With decades of computer experience and high level of general knowledge, I was still lost the first time I was presented with an Apple UI …)

However, if one want to lower the threshold for new users to become acquainted with something, I think there are a couple aspects of design that is important:

a) That designers think a lot of new users and how they encounter the “something” (- and then test if their presumptions in this respect are in line with reality). That’s of course a challenge as new users’ background may vary quite a lot. One thing is for certain, though: New users don’t have any knowledge about the inner workings, and they neither think along the lines of the inner workings so structuring things in accordance with, or referring to, inner workings, is likely an effective way to increase barriers to use. Users come for a use purpose, and they think about that purpose.

b) To overflow new users with many things of little relevance for the most common use purposes is also a winner.

c) Barriers are also raised to the extent that new users have to relate to new terms describing the “something” or its way of functioning/use, and such terminology relates to the inner workings that new users don’t know, or comes from specialists’ language use. An example of this is in my mind the term “power” in Color Balance RGB, which may be precise from a mathematical thinking, but has to be translated to “mid tones” to be intuitively understood by a large group of user.

(What may be good for a beginner must, however, be balanced with what will be effective ways of operation for a more experienced user.)

The general nature of DoS combined with its many use purposes, makes it hard to find use related substitutes for general terms which at the outset are mathematical of nature. It also makes it hard to design one UI that shines for the many different use purposes.

And that’s why I’m wondering whether some more specialized mini front ends within a (modified) QAP frame could be an alternative, (post 36). (I will intuitively believe that amending the module’s visible UI based upon selection of preset is not a viable alternative …)

I asked for this in the issue

but was answered with handwaving. At this point I am not convinced that anyone understands what this modules does (I would love to be shown otherwise).

For the purposes of documenting this module, I would separate the theory from the implementation.

Eg if it is in fact solving a PDE, theory would be this PDE. Then contributors could add a non-technical introduction to its building blocks for interested users (not more than the equations and one or two paragraphs).

The implementation itself would be irrelevant for the purposes of the documentation; there are a gazillion ways to solve PDEs and it is a highly technical field.

3 Likes

Would it somehow be possible to see the four domains, similar to the wavelet visualization in retouch?

1 Like

IIRC, the comments were supportive of documenting the theory behind the DoS module, but they felt very strongly against placing that inside the user manual.

Well I did some playing around and it may not be what you need but if you blend the module in difference mode and look at the sliders one at a time and use snapshots to compare you can see that if the direction sliders are not on zero then you can show the difference between the speeds and visualize what areas are impacted and you can sometimes nicely see what the threshold sliders do…When the direction sliders are zero ie equal contribution of both then the 1 and 2nd and 3rd and 4th seem very similar such that 50% of both is the same as 100% of either of the two and 100% in either direction cancels out the difference image… so to see the difference at least on a couple of the objects I was looking at you really needed to have a non zero direction…

It may not be a slick visualization but you can get somewhat of an idea as to what is going on…

3 Likes

mmmm… sort of but not exactly. You shouldn’t modify its connotations just because the word itself touches so many raw nerves in the dt forums.

Having “intuition” about something doesn’t refer to the ability to use something because you use it extensively or spend hours studying about it… that’s something else entirely. Rather it refers to the ability to relatively quickly figure out how to use something based on generalized knowledge that one already has of how reasonably similar tools work… without having to first refer to specific instructions or spend hours and hours twiddling with it to see how to use its basic functions.

Just admit it, dt is simply NOT INTUITIVE in any sense of the word and jumping on people who say that because they are having so much trouble learning dt is just being mean and condescending.

Still need to watch AP’s explanation, but that A Dapple in Photography video was really good. Boris’ synthetic demonstration was also very helpful. Think I have a pretty good conceptual understanding now, and will try to put something together to explain it.

Trying to understand it from the angle of maths is probably not very productive. As AP explains in this GitHub issue “It’s a turducken of maths”, so while certainly interesting, it’s unlikely to be useful. What is needed are some good synthetic visualisations.

In terms of UI, I’m not convinced it’s possible to meaningfully improve it without losing the power. Apart from a wavelet scale visualisation similar to the retouch module, at most some better labels and tooltips. And creating a bunch of new modules, that use DS behind the scenes, seems counterproductive (from both a UX and understanding point of view) and technically fraught. That said, some sort of simplified interface could be valuable, and I have some ideas about that.

2 Likes

Agreed. Not a criticism nor complaint, but true I think.

Of course dt is not intuitive. It’s too different from most other editing applications. That said, I didn’t find the GIMP all that intuitive to use, either, when I started using that… Parts of it were easy enough to understand, but the more advanced features, less so. And I expect that the same is true for anyone starting with Lightroom as their first image editing application.

That doesn’t mean that requiring an “intuitive” interface for something is justified, if it means forcing the tool to hide most of its possibilities (or worse, make it resemble something it is not).

My objection to the (over)use of “intuitive” related to GUIs is that it often looks like a shorthand for “I can’t be bothered to learn something new”. Or there’s a problem with the ergonomics of the interface, which is a different matter.

2 Likes

Exactly.

For the past couple of decades – at a minimum – there’s been a pervasive expectation (fueled by Apple, Microsoft and the like) that anyone should be able to fire up any app and immediately go to work without having to “learn” anything. That’s a supporting plank in their platform of “user empowerment” but it’s actually is bad for us all. We end up painting ourselves into a corner where every app looks and works like every other app because none of them are allowed to commit the cardinal sin of actually requiring the user to learn something new.

Think of any of the the “killer apps”, e.g., 1-2-3. Other than it’s semi-unknown spiritual forebear (VisiCalc, etc.) in the normal user’s experience it was totally new as far as software was concerned. But it opened a vast new area, despite requiring learning.

1 Like