Monday, June 29, 2015

Version 0.1.5 released

Yet another PhotoFlow version is out!

The new 0.1.5 release brings two brand new tools:

- the Volume tool, which allows to apply some local contrast enhancement and modulate the strength of the effect separately in the shadows, mid-tones and highlights. This is a realization of the idea discussed by +Patrick David on his blog:

- the Brightness/Contrast/Saturation/Hue Adjustment tool, which includes three curves that allow to modulate the effects according to the hue, the saturation and/or the lightness of the input pixels. By default the curves are disabled and all adjustments are applied globally. This tool allows to do things like "boost the saturation and the contrast of dull green colors in the mid-tones". The screenshot gives an example of an hue adjustment that selectively turns the red colors into green, using the  curve shown in the image.

The image used in the screenshot above is by +andrew mcmillan:

Here is the complete changelog:

- Added new "Brightness/Contrast/Saturation/Hue Adjustment" tool, which replaces the previous "Hue/Saturation Adjustment"
- Added "Volume" tool (similar to "Clarity", i.e. local contrast targeting the mid-tones), inspired by
- LibRAW is now compiled as a separate library (like in darktable)
- Updated G'MIC code to version

Updated Windows and OSX installers are available from the usual downloads page.

Sunday, June 21, 2015

Version 0.1.4 released

Version 0.1.4 of PhotoFlow is out!

This is another bugfix release that corrects an issue preventing the proper rendering of "clone" layers in certain situations. The problem has been introduced by the changes in the layer visibility logic in 0.1.3.

Updated Windows and OSX installers are available from the usual downloads page.

Friday, June 19, 2015

Experimental "Volume" tool

I've been recently working on a new tool, inspired by this post in Pat David's blog: Clarity in GIMP.

The post describes a method to imitate the "Clarity" effect in Lightroom, by applying a UnSharp Mask (USM) filter at high radius restricted to the mid-tones of the image.

So I took this idea and tried to implement it in a flexible way in PhotoFlow. In order not to re-use the same terminology as Lightroom, the filter is called "Volume" (as it is intended to give some "volume" to your image...).

In the current version, a local contrast enhancement filter (USM for the moment) is strength-modulated with a smooth curve applied to the luminosity channel of the input pixel data. The screenshot below shows the graphical interface of the filter with the default parameter values. The five vertical sliders in the bottom allow to control the strength of the effect in various luminosity ranges. The example below corresponds to a possible selection of the mid-tones.

More specifically, the 5 sliders correspond to input values of 0% (blacks), 25% (shadows), 50% (mid-tones), 75% (highlights) and 100% (whites). For example, the default configuration show above is equivalent to this smooth tone curve:

The filter is still in an experimental form, but works already without issues and therefore it will most likely be included in the next release for user testing and feedback.

In future, a simple extension (which is already foreseen in the code and GUI) will be to add other local contrast enhancement filters, in addition to large-radius USM. Here are some possible choices:
  • Surface blur (or "bilateral smoothing")
  • G'MIC Local Normalization
  • G'MIC Local Variance Normalization

Thursday, June 18, 2015

Version 0.1.3 released

Version 0.1.3 of PhotoFlow is out!

This is a bugfix release that brings improvements in the program stability, in particular  in the handling of cloned layers. It also fixes some issues with the visualization of RAW files at zoom levels below 100%.

Here is the complete changelog:

Version 0.1.3
  • Fixed opacity blending of "Color" mode in RGB and Lab colorspaces 
  • Fixed opacity blending of "Luminosity" mode in Lab colorspace
  • Fixed filling of layer list of clone tool: for clone layers inserted in layer masks, the parent layer was incorrectly included in the list, leading to a possible unresolvable circular dependency between the clone layer and its source. Now the parent layer is not included anymore in the list of possible clone sources.
  • Original "visible" flag of layers renamed to "enabled", and added a new "visible" flag to indicate if a given layer is either directly hidden or indirectly hidden because some of its parents are hidden. The "enabled" flag now indicates if the layer is directly hidden.
  • Removed fatal assertion on the validity of the output image from layer extra inputs. Now if the image is invalid a NULL pointer is simply added to the list of extra inputs, without causing a program crash. Nevertheless, a notification mechanism should be introduced to inform the user of the abnormal situation.
  • Fixed corruption of RAW image metadata at zoom levels below 100%
  • Fixed bug in the image preview at program startup
  • Fixed several clang compilation warnings
Version 0.1.2
  • Added "invert" parameter to gradient tool (to reverse the direction of the gradient
  • Fixed bug that prevented correct loading of presets with multiple layers into a layer mask
  • Fixed locale support (only tested with french translations under Linux)
  • pfconv: output file is now overwritten in place by exiftool
Updated Windows and OSX installers are available from the usual downloads page.

Thursday, June 11, 2015

New interface and new tutorial coming soon...

So I've been recently working on a new layout of the layers list and the tools controls, with the hope to make the interface more intuitive and improve the overall usability.

This new interface puts the controls of the various filters (sliders, curves, etc...) directly in the main window, instead of using separate dialogs. The idea is to reserve an area below the layer list, where the controls of all the selected layers are shown sequentially (in the same order as the layers).

Each group of controls belonging to the same filter has a sort of "tool" bar, where one finds buttons to toggle the visibility of the layer, activate/deactivate the layer mask, activate/deactivate the preview of the current settings, and to reset all the controls to their default values. The tool bar also contains an editable field with the layer name, and an expander button that shows or hides the rest of the controls.

Here is a preview of the new interface (with two layers selected):

As you can see, there is still a lot of work to do, but the interface is I think quite clean and intuitive. Would you have any suggestion, do not hesitate to drop a comment!

A new tutorial under construction

Meanwhile I've been also busy putting together a rater long tutorial on panorama editing with Hugin and PhotoFlow. It is almost completely written now, and should soon appear on! Keep an eye on this blog, the google+ community or directly the forum, as we'll certainly drop a message when it will be finally online!