I am back to PhF business after a short break, and I would like to share with you some recent thoughts about how the processing workflow can be improved, but also collect suggestion that are currently scattered among several threads and difficult to track/remember.
First of all, some ideas about how the input to the various tools is currently handled, and how this can be improved/simplified.
At the beginning of PhF development, each module could only take the input from the closest underlying non-hidden layer. IN order to provide more flexibility I introduced the clone layer tool, which allowed to insert a copy of a layer anywhere in the pipeline. In addition, the clone tool allowed to select a specific channel from the copied layer.
However, in the current version each module allows to directly select the input layer, and therefore the clone layer tool is not strictly needed anymore:
Hence, I propose to keep the clone layer tool but rename it as channel selector, because that is now it’s main purpose.
Another issue with the current workflow is the lack of a “default input” for mask layers. For example, if one opens an empty layer mask and adds a curves layer, nothing happens. This is simply because the mask is initially empty, and therefore the curves tool receives a NULL image and returns a NULL image.
This is at best highly non-intuitive, and needs to be fixed. My idea would be that in such case the curves tool would get the input from the previous non-mask layer, converted to RGB luminance and encoded with the Lab L curve (so that mid-gray corresponds to 0.5).
As an example, consider this layer arrangement:
layer2 takes its input from
layer1. Now suppose one adds a curves tool to the initially empty mask of
layer2. In my proposed scenario, the curves tool would in this case receive the output of
layer1, converted to L- encoded luminance.
Does this make sense to you?
More generally, I want to introduce the concept of “default” input for a given tool. For non-mask layers, the “default” input corresponds to the closest non-hidden underlying layer.
For mask layers, the “default” input corresponds to the closest non-hidden underlying layer in the mask or, if the layer is the first one in the mask, to the solution shown above…
By the way, here is a preview of the new tools interface I am working on, where the handling of the input and blend are grouped into a different tab:
The discussion is open for suggestions!!!