We’re proud to announce the new feature release of darktable, 3.0.0!

The github release is here: https://github.com/darktable-org/darktable/releases/tag/release-3.0.0.

As always, please don’t use the autogenerated tarball provided by github, but only our tar.xz. the checksums are:

When updating from the currently stable 2.6.x series, please bear in mind that your edits will be preserved during this process, but the new library and configuration will not be usable with 2.6.x any more, so making a backup is strongly advised.

A full rework of the GUI. The whole GUI is now fully controlled by GTK+ CSS rules . There is no more size, color, position in Gtk C code, which makes the whole GUI themable. This version comes with several themes:

New shortcuts have been introduced to quickly collapse borders, sidebars, histogram and navigation modules, allowing a new borderless editing experience.

Note that the new GUI requires Gtk+ 3.22 or higher to work properly.

The color picker on the ‘tone curve’, ‘color zones’ and ‘fill light’ modules, as well as the parametric mask controls, now allows you to select an area when enabled by using Ctrl+click on the button.

It’s now possible to associate dynamic key shortcuts to sliders, then use them with the mouse wheel or arrow keys to move the value up and down. For example, associating the E key to the exposure slider, you can press it and scroll to increase the exposure without having to open the module. You get fast heads-up access to all your favorite settings, as if you were using a dedicated multimedia console.

IMPORTANT: The ‘preview’ and ‘preview with focus detection’ actions (previously Z and Ctrl+Z respectively) are now assigned to W and Ctrl+W in order to follow the convention of using Ctrl+Z for the “undo” function ( Ctrl+Y for redo).

A new module ‘tone equalizer’ is designed to merge the features of ‘zone system’, ‘shadows and highlights’, and (local) ‘tone mapping’ modules in a scene-referred RGB space. It brings an easy and safe way to remap tones locally, performing a quick zone-based dodging and burning using Ansel Adam’s zone system logic. The module provides an interface similar to audio graphic equalizers, with 9 bands (available as fixed sliders or nodes on a spline view), allowing you to selectively push or pull the exposure for each band in the range from blacks to specular highlights. It also features an interactive cursor that allows to push or pull the exposure gains directly from the image preview by simply hovering over an area and scrolling. It uses a guided filter internally to refine the dodging and burning mask, which preserves local contrast without producing halos along edges.

A new module ‘filmic RGB’ which, like the previous ‘filmic’, is designed to replace ‘base curve’, ‘shadows and highlights’ and other global tone-mapping modules. This new version replaces the one introduced in 2.6.2; it should be easier to use, and it will reduce color casts. The old ‘filmic’ module is now deprecated and is only available on images where it was already used for editing.

The ‘color zones’ module now shows a histogram based on the chosen ‘select by’ channel, and if the color picker is in ‘select area’ mode, the range within the selected area will also be shown. By default, the spline adjustment is now similar to the curve controls, allowing you to add and delete nodes, but these nodes can still be moved with the old-style size control by selecting the ‘edit by area’ checkbox. There is also a new ‘strong’ processing option, and a new color picker which creates a curve based on selected image area.

The history stack will now always show mandatory modules which were previously hidden. They are always active as necessary for processing images, and are not removed by compressing history or by selecting one as a stating point for editing. These seven modules (some are RAW-only) have a specific icon to identify them easily:

The processing order of the pixel-pipe can now be changed by using Ctrl+Shift+drag on the module headers to arrange them relative to each other. It is VERY IMPORTANT to understand that this feature is NOT for creating a more convenient GUI layout, but for changing the actual processing of the image. DO NOT USE THIS FEATURE unless you understand the reason behind the default ordering, and have a specific reason for changing it. The default order is still the correct order for most purposes. Also note that styles will always apply the default ordering; creating a style based on modules which have had their order changed will NOT recreate this changed order when applied, and therefore may not give the expected result.

Added support for the new ‘raster mask’, a copy of a parametric mask which is stable during the whole pixel-pipe.

A quite extensive rewrite of the lighttable view (including the filmstrip in darkroom view) has been made to greatly improve the overall performance. The lighttable is now usable on 4K and 5K monitors.

A new ‘culling’ mode has been added to the lightable view. It displays a fixed number of consecutive images starting from the first selected, and allows you to pan & zoom them. The number of displayed images can be set by the user, and they can be navigated with the mouse wheel and keyboard.

A new timeline view has been introduced in the lighttable.

A new module for handling 3D RGB Lut transformations (PNG Hald-CLUT and Cube files are supported).

Many improvements to the ‘denoise (profiled)’ module. The degree of shadow denoising can be controlled, including the correction of color casts (mainly improves high-ISO images). “Auto” modes which infer some parameters from the profile are available, allowing users to create presets which are adaptive to various ISO values. The default values of the sliders are also adapted dynamically on module activation, giving a good trade-off between noise smoothing and detail preservation. The non-local means mode has 2 new options: one to coarse-grain denoising, and one to control the amount of fine detail to preserve. The controls now have soft boundaries, which means that users can use the keyboard to enter values outside the range of the sliders if they need to.

Along with selecting the ‘soft proof’ color profile, users can now select an additional profile for the color space of the histogram, color picker and overexposed checker. When gamut or softproof checks are active the histogram and color picker use the softproof profile, otherwise they use the new histogram profile (which is always used for overexposure checking).

A new setting for ‘working profile’ has been added to the input color profile module. This color space will be used by RGB modules between the input and output color profile modules.

A new color picker has been added to the parametric masking controls which adjusts the range sliders based on the selected area from the image. Click the picker button to adjust the input image slider, Ctrl+click the button to adjust the output image slider.

The ‘picasa’ target storage in the export module has been completely rewritten to support the new Google Photo API, and renamed ‘google photos’. It is again possible to create albums directly from the export module.

A new single-line image information display can be positioned at the top (left, right, or center) or bottom (center) of the darkroom view to replace the information previously overlaid on the histogram. The specific information shown can be configured in preferences.

The ‘tagging’ module is faster, and can now display hierarchical tags in a tree view. Tags can now be designated as ‘private’ (not exported by default), ‘synonym’ (to help search engines), and ‘category’ (not exported, for organizing the tag library). The metadata exported with images can now be configured in the ‘export selected’ module, allowing you to choose which main types are exported, as well as define values for specific tags based on formulas.

Many code optimizations for CPU and SSE paths. The tone equalizer module introduces a new optimization paradigm (GCC target clones), aimed toward users of pre-built Linux packages. The image-processing code will be cloned for several CPU generations (SSE2, SSE3, SSE4, AVX, AVX2) at compilation time, and the best-suited version of the code will be chosen by the system at run time. This experiment is to be generalized to other modules if proven successful, and will allow users of pre-built packages to get the same performance as if the program was specifically compiled for their computer. It needs GCC 9 compiler and does not yet work on Windows due to the lack of support of target clones on the OS side.

A new preference to expand/collapse a darkroom module when it is activated/deactivated.

The ‘collect images’ module has a new single-click option featuring range selection for date-time and numeric values.

The orientation of drawn masks using the ‘gradient’ shape is now clearly displayed with an arrow.

The ‘graduated density’ module has better accuracy when computing the rotation to avoid sporadic flipping of the gradient.

Make sure the OpenCL kernel code is recompiled when the driver version is updated.

Add color pickers for ‘split toning’, ‘graduated density’ and ‘watermark’ modules.

The color picker positions are kept during editing within a module.

The map view can zoom on the images of the selected collection.

The slideshow will now start at the selected images if any, and supports changing the delay between images. It will also now be more responsive when manually moving backward and forward through the images.

A new ‘basic adjustments’ module has been added. It allows to adjust the black level, exposure, highlight compression, contrast, middle grey, brightness and saturation. It also has an auto feature based on Rawtherapee’s auto levels that can work on the entire image or a user selected area.

A new ‘rgb curve’ module has been added. It has modes for linked and independent RGB channels. The curves and histogram can be displayed using the working profile or can be scaled to be 50% grey. A secondary color picker will add 4 nodes to the curve based on the area selected in the image: min, average, middle, and max.

A new ‘rgb levels’ module has been added. It has linked and independent channels, preserve colors option and is native RGB.

A new search box has been added to the module groups in the darkroom view, with configuration options to show only the module groups, only the search box, or both. Modules are searched for by (localized) name, and when displaying only the search box, the active modules are shown when the box is empty. A shortcut can be set for focusing the box.

A preview window has been added to the darkroom that displays the edited image on a separate window.

A new option ‘skip’ is added to the ‘on conflict’ setting on the export module which skips the exporting to existing destination files.

Allow to switch between clone/heal and blur/color modes in ‘retouch’ module after creating a shape using Ctrl+click on corresponding mode icon.

An accels window ( H ) has been added to summarize all available shortcuts and mouse actions available in the current context.

A zoom & pan feature has been added to lighttable full preview.