Darktable (stylized as darktable) is a free and open-source photography application and raw developer. Rather than being a raster graphics editor like Adobe Photoshop or GIMP, it comprises a subset of image editing operations specifically aimed at non-destructive raw image post-production. It is primarily focused on improving a photographer's workflow by facilitating the handling of large numbers of images. It is freely available in versions tailored for most major Linux distributions, macOS, Oracle Solaris and Windows and is released under the GPL-3.0-or-later software license.
Features
Darktable involves the concept of non-destructive editing, similar to that of some other raw manipulation software. Rather than being immediately applied to raster data of the image, the program keeps the original image data until final rendering at the exporting stage — while parameter adjustments made by a user display in real-time. The program features built-in
, GPU acceleration (based on OpenCL), and supports most common image formats.
Main features
-
Scene-Referred workflow
-
Non-destructive editing with XMP Sidecar file
-
Works fully in 32-bit float color precision
-
Full implementation of color management
-
Supports RAW, JPEG, RGBE, PFM and more
-
Modular architecture
-
Organize images and search by parameters
-
Translated into 19 languages
-
Support for controlling cameras through darktable and directly saving to the PC (tethered capture)
-
Find similar photos
-
Support for geographical coordinates labels with display of photo locations on map
-
An integrated mover for executing Lua scripts, optionally linked to hotkeys or specific events, such as when importing new images
Scene referred editing and color
Darktable has built-in
ICC profile support for
sRGB, Adobe RGB, XYZ and linear RGB color spaces.
Since version 2.6, darktable uses a “scene-referred” color workflow to get consistent results throughout varied lighting conditions and even across cameras and lenses.
Due to evolution, the human vision system makes significant adjustments of how a scene is perceived. Raw images from cameras have none of these corrections and therefore significant processing needs to be applied to make photos aesthetically appealing and meet the expectations of audiences. Other raw editors may use a so-called “display-referred” workflow to give photographers a decent looking template to start working from, meaning they already apply significant transformations, such as Gamma correction Gamma correction or LUTs to the image and the photographer can only make their own adjustments on top of the standard transformations. This is problematic, as the image has lost its linearity, this makes the edits of the photographer fundamentally unpredictable. Since a Gamma correction Gamma correction acts the most on the extremes of the image, that being bright highlights and deep shadows, these areas especially will be difficult to control, as the different transformations will be multiplied over each other.
Darktable gives the photographer full control over the entire processing pipeline and by default, preserves linearity until the last step. This means that all adjustments happen in the correct scene-linear color space and only in the last step, a tone-mapping program applies a parametric Gamma correction Gamma correction, which again is under the user’s control. As all transformations are linear, the user can control the output more easily. Furthermore, the workflow itself is inspired by the color science of cinema, meaning it divides the workflow into primary/corrective and secondary/aesthetic color grading. The first modules in the standard pipeline are purely about color correction and getting a properly looking image, all cameras and lens combinations until this point will be matched very closely. After the image has been corrected (no tint, correctly exposed, etc.), on top of this correct image, the photographer makes their aesthetic adjustments. As all aesthetic effects are made on top of a similar “template”, these effects will have approximately the same look, even if lenses and cameras produce different, initial raw data.
Masks
Support for drawn masks was added in Darktable version 1.4, allowing application of effects to manually specified areas of an image. There are five mask types available: brush, circle, ellipse, Bézier path, and gradient; all are resizable, allow fade-out radius for smooth blending and can have their opacity controlled. An arbitrary number of masks can be created and are collected into a "mask manager" on the left hand side of the darkroom UI.
Over multiple versions, masks have been refined and now additionally to being drawn, they can be controlled parametrically, or imported from external images. If a module warps the image, such as lens correction or perspective correction, said warping operations will be automatically applied to masks as well, meaning that for example a gradient tracking the horizon will be rendered correctly, even after significant perspective corrections are applied. Parametric masks can be created by selecting any given R, G, B, and/or Lightness, Chroma and Hue value. They can be combined with drawn masks, such that the parameters are only evaluated in a certain area of the image. Masks can also be blended with different logic operators, (exclusive, inclusive, etc.) and blend modes (addition, multiply, average, etc.)
Importing and exporting
Raw image formats,
JPEG, HDR and PFM images can be imported from disk or camera, and exported to disk, Picasa Web Albums, email, and to a simple HTML-based web gallery as JPEG, PNG,
JPEG XL, TIFF,
WebP,
Netpbm format, PFM and
OpenEXR images.
Images can be exported to Wikimedia Commons using an external plugin.
Scripting
Darktable can be controlled by scripts written in Lua version 5.2. Lua can be used to define actions which Darktable should perform whenever a specified event is triggered. One example might be calling an external application during file export in order to apply additional processing steps outside of Darktable.
Scopes
Darktable offers multiple scopes to give the user clear information about the picture they are currently editing.
User interface
Darktable has two main modes: "lighttable" and "darkroom". Each represents a step in the image development process. Two more modes are tethering and a map view. Upon launching,
lighttable opens by default, where image collections are listed. All panels in all modes can be minimized to save screen real estate.
Lighttable
The left panel is for importing images, displaying
Exif information, and filtering. Rating and categorizing buttons are at the top, while the right-side panel features various modules such as a metadata editor and a tag editor. A module used to export images is located at the bottom-right.
Darkroom
The second mode, "darkroom", displays the image at center, with four panels around it; most tools appear on the right side. The left panel displays a pannable preview of the current image, an undo history stack, a color picker, and Exif information. A filmstrip with other images is displayed at the bottom, and can be sorted and filtered using lists from the upper panel. The latter also gives access to the preferences configuration. Darktable's configuration allows custom keyboard shortcuts and personalized defaults.
Tethering
The third mode allows tethering through
gPhoto to cameras which offer suitable support.
Map
The fourth mode can display maps from different online sources and
Geotagging images by drag-and-drop. It also uses maps to show images already geotagged by a camera.
Modules and workflow
darktable includes 67 image adjustment modules, which it divides into 5 groups. By default, only the modules relevant and compatible with the current workflow are displayed. Modules receive input from the module below them, then process them and pipe the output into the module above them. The changes the user makes are updated in real time. There are only four mandatory modules, as these are technically necessary to make an image, that can be loaded and displayed by other non-raw editing programs: raw black/white point, [[demosaic|Demosaicing]], input [[color profile|ICC profile]], output [[color profile|ICC profile]].
Example workflow
An example workflow will look like this, it starts from the bottom and stops at the top:
-
Tone-mapping program (filmic rgb, sigmoid, agx)
-
Used for ensuring that all details, from deep shadows and bright highlights can be displayed and likening the image to human vision. After this module, it is a regular display-referred image.
-
color balance rgb
-
Used for aesthetically changing tones and contrast.
-
contrast equaliser
-
Adding local contrast or definition for edges.
-
rgb primaries
-
Used for changing how the color of the image looks.
-
color calibration
-
Neutralizes the image, such that aesthetic transformations stay consistent between light sources and cameras/lenses. Up to and including this module, the user has done exclusively primary/corrective color grading. After and excluding this module, the user will do exclusively secondary/aesthetic color grading.
-
input color profile
-
Assigns a standard color profile. Before this module, Darktable works with the embedded color profile of the raw file, or a generic raw color profile.
-
diffuse or sharpen (Preset: sharpen demosaicing|AA filter)
-
As demosaicing is a type of diffusion, in this example the user chooses to sharpen the image by using this module, as it features a general formula for simulating physical diffusion processes and therefore can reverse or exacerbate them.
-
exposure
-
Sets the exposure of the image.
-
orientation
-
Sets the orientation of the image.
-
lens correction
-
Uses either embedded metadata from the raw file, or the lensfun database for correcting distortion, transverse chromatic aberrations and vignetting.
-
denoise (profiled)
-
This module maximizes the signal-to-noise ratio of the image. By default, it uses wavelets and a noise profile of the sensor for this operation.
-
Demosaicing
-
As every “color” camera only records a big matrix of separate Red, Green and Blue pixels, this “mosaic” pattern will be turned into meaningful color information by this module.
-
highlight reconstruction
-
As sensors can only record a certain range of tones, highlight reconstruction can be used to recover details that are too bright to be recorded. The user can choose different statistical methods for achieving this.
-
white balance
-
In the default scene-referred workflow, white balance is only used to assign a D65 white point to the image, this makes the demosaicing process more accurate. The image will be neutralised later, with the color calibration module.
-
raw black/white point
-
Values below the black level will be ignored, values above the white point are handled by the highlight reconstruction module.
Basic group
The basic group includes modules which are required at minimum to make a presentable image, such as exposure, contrast, cropping, etc.
-
local contrast
-
tone-mapping program (filmic rgb, agx, sigmoid)
-
crop
-
tone equaliser
-
exposure
-
orientation
-
rotate and perspective
-
highlight reconstruction
Tone group (display-referred, hidden)
Modules related to contrast and lighting include:
fill light for modifying the exposure based on pixel lightness; levels to set black; tone curve;
zone system; filmic; local contrast; global
tone mapping and tone mapping.
Color group
The color group includes modules, which manipulate color either aesthetically or correctively.
-
color balance rgb
-
color calibration
-
rgb primaries
-
color equaliser
Correction group
The correction group hosts modules for correcting problems with the capture itself.
-
sharpen
-
astrophoto denoise
-
retouch
-
liquify
-
haze removal
-
chromatic aberrations
-
lens correction
-
denoise (profiled)
-
hot pixels
-
raw chromatic aberrations
-
external raster masks
Effect group
In this group, modules that are used for special effects are located.
-
watermark
-
framing
-
vignetting
-
grain
-
contrast equaliser
-
blurs
-
censorise
-
diffuse or sharpen
-
graduated density
-
composite
-
enlarge canvas
Development
Google Summer of Code
In 2011, the Darktable team participated in the Google Summer of Code (GSoC). The main goals were to remove
libglade dependency from Darktable and to make room for more modularity. The input system for handling shortcuts was also rewritten and incorporated into version 0.9.
Distribution
Darktable is released under the GPL-3.0-or-later as
free software.
The current version of Darktable works on
Linux,
macOS and Windows. Many Linux distributions include Darktable in their default repositories, including
Debian, Fedora,
openSUSE,
Arch Linux, and
Gentoo Linux.
Darktable also runs on Solaris 11, with packages in IPS format available from the maintainer.
Localization
Darktable is available in multiple languages, but the availability of various locales has varied across Darktable releases. Darktable is notable for using all-lowercase literals in every language by default. Since version 4.4.0, a new locale called "en@truecase" allows users to apply conventional casing to English.
See also
Bibliography
External links