| darktable | |
|---|---|
darktable 4.4.2 in darkroom view with the color balance module expanded and its mask shown as yellow area | |
| Original author | Johannes Hanika[1] |
| Initial release | April 2009[2] |
| Stable release | 5.4.0[3] |
| Repository | github.com/darktable-org/darktable |
| Written in | C and GTK |
| Operating system | FreeBSD Linux macOS Solaris Windows |
| Platform | x86-64, ARM64 |
| Size | 8.72 MiB (source (tar.gz)) 108 MiB (Windows) 91 MiB (macOS) |
| Available in | 18 languages[4][5] |
| Type | Photo post-production |
| License | GPL-3.0-or-later[6] |
| Website | www.darktable.org |
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,[7] 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, Solaris and Windows and is released under the GPL-3.0-or-later software license.[6]
Features
[edit]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 ICC profiles, GPU acceleration (based on OpenCL), and supports most common image formats.
- Scene-Referred workflow
- Non-destructive editing with XMP Sidecar files
- Works fully in 32-bit float color precision
- Full implementation of color management
- Supports RAW, JPG, 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
[edit]Darktable has built-in ICC profile support for sRGB, Adobe RGB, XYZ and linear RGB color spaces.[9]
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 curves 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 curve 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. [10]
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 curve, 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. [11]
Masks
[edit]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.[12]
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. [13] 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. [14] Masks can also be blended with different logic operators, (exclusive, inclusive, etc.) [15] and blend modes (addition, multiply, average, etc.) [16]
Importing and exporting
[edit]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, PPM, PFM and EXR images.[17] Images can be exported to Wikimedia Commons using an external plugin.[18]
Scripting
[edit]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.[19]
Scopes
[edit]Darktable offers multiple scopes to give the user clear information about the picture they are currently editing.
- Histogram
- Waveform
- RGB parade
- Identical to waveform monitor, but the RGB channels get shown side-by-side instead of overlaid.
- Vectorscope
User interface
[edit]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.[20]
Lighttable
[edit]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
[edit]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
[edit]The third mode allows tethering through gPhoto to cameras which offer suitable support.[21]
Map
[edit]The fourth mode can display maps from different online sources and geotags images by drag-and-drop. It also uses maps to show images already geotagged by a camera.
Modules and workflow
[edit]As of December 2019,[update] darktable includes 67 image adjustment modules, which it divides into 5 groups.[17] 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. [22] 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, input color profile, output color profile.
Example workflow
[edit]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.
- demosaic
- 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
[edit]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)
[edit]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
[edit]The color group includes modules, which manipulate color either aesthetically or correctively.
- color balance rgb
- color calibration
- rgb primaries
- color equaliser
Correction group
[edit]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
[edit]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
[edit]Google Summer of Code
[edit]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.[23][24]
Distribution
[edit]Darktable is released under the GPL-3.0-or-later as free software.[25] 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,[26] with packages in IPS format available from the maintainer.[27]
Localization
[edit]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.[28]
| ver. | en | En | sq | af | ca | cs | da | de | es | eo | fi | fr | it | ja | he | hu | nl | nb | pt-BR | pl | sl | sk | ru | uk | tr | zh-CN | zh-TW |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 3.0.0[29] | Yes | No | No | No | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | No | Yes | No | No | No | No |
| 3.0.2[30] | Yes | No | No | No | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | No | Yes | No | No | No | No |
| 3.2.1[31] | Yes | No | No | No | No | No | No | Yes | Yes | No | No | Yes | Yes | No | Yes | No | No | No | Yes | Yes | Yes | No | No | No | No | No | No |
| 3.4.0[32] | Yes | No | No | Yes | No | Yes | No | Yes | Yes | No | Yes | Yes | Yes | No | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
| 3.4.1[33] | Yes | No | No | Yes | No | Yes | No | Yes | Yes | No | Yes | Yes | Yes | No | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | No | No | No | No |
| 3.6.0[34] | Yes | No | No | Yes | No | No | No | Yes | Yes | Yes | No | Yes | Yes | No | Yes | Yes | Yes | No | Yes | No | Yes | No | Yes | Yes | No | No | No |
| 3.6.1[35] | Yes | No | No | Yes | No | No | No | Yes | Yes | Yes | No | Yes | Yes | No | Yes | Yes | Yes | No | Yes | No | Yes | No | Yes | Yes | No | No | No |
| 3.8.0[36] | Yes | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | No | No | Yes | No | Yes | No |
| 3.8.1[37] | Yes | No | No | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | No | No | Yes | No | Yes | No |
| 4.0.0[38] | Yes | No | No | No | No | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | No | Yes | No | Yes | Yes | No | Yes | No |
| 4.0.1[39] | Yes | No | No | No | No | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | Yes | No | Yes | No | Yes | Yes | Yes | Yes | Yes |
| 4.2.0[40] | Yes | No | Yes | No | No | No | No | Yes | Yes | No | Yes | Yes | Yes | Yes | No | Yes | Yes | No | Yes | Yes | Yes | No | Yes | Yes | Yes | No | Yes |
| 4.2.1[41] | Yes | No | Yes | No | No | No | No | Yes | Yes | No | Yes | Yes | Yes | Yes | No | Yes | Yes | No | Yes | Yes | Yes | No | Yes | Yes | Yes | No | Yes |
| 4.4.0[28] | Yes | Yes | Yes | No | No | No | No | Yes | Yes | No | No | Yes | No | Yes | No | Yes | No | No | Yes | Yes | Yes | No | No | Yes | No | Yes | Yes |
| 4.4.1[42] | Yes | Yes | Yes | No | No | No | No | Yes | Yes | No | Yes | Yes | No | Yes | Yes | Yes | No | No | Yes | Yes | Yes | No | Yes | Yes | No | Yes | Yes |
| 4.4.2[43] | Yes | Yes | Yes | No | No | No | No | Yes | Yes | No | Yes | Yes | No | Yes | Yes | Yes | No | No | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes |
| 4.6.0[44] | Yes | Yes | Yes | No | No | Yes | No | Yes | Yes | No | Yes | Yes | Yes | Yes | No | Yes | Yes | No | Yes | Yes | Yes | No | Yes | Yes | No | Yes | Yes |
| 5.2.0[45] | Yes | Yes | Yes | No | No | Yes | No | Yes | Yes | No | Yes | Yes | Yes | Yes | No | Yes | Yes | No | Yes | No | Yes | No | Yes | Yes | No | Yes | Yes |
All 18 locales available in Darktable 5.2.0, including "en@truecase"
See also
[edit]References
[edit]- ^ "contact". Darktable.org. Archived from the original on 2012-03-21. Retrieved March 16, 2012.
- ^ "Darktable main repository". Darktable.org. Archived from the original on 2017-01-19. Retrieved August 23, 2012.
- ^ "release 5.4.0". 21 December 2025. Retrieved 22 December 2025.
- ^ "darktable 4.4.2 released". darktable.org. 22 July 2023. Archived from the original on July 31, 2023. Retrieved August 18, 2023.
}: CS1 maint: bot: original URL status unknown (link) - ^ "LINGUAS". darktable.org. Retrieved February 4, 2016.
- ^ a b "about". Darktable.org. Archived from the original on 2012-03-07. Retrieved March 15, 2012.
- ^ "Welche Programme nutzen Sie für die Fotobearbeitung?". DER STANDARD (in Austrian German). Retrieved 2025-07-30.
- ^ "features". darktable. 2017-06-13. Retrieved 2026-01-20.
- ^ "3.2.10. Color management | usermanual | darktable". Archived from the original on 2018-01-14. Retrieved 2018-01-13.
- ^ "darktable's color pipeline". darktable user manual. Retrieved 2026-01-19.
- ^ "color calibration". darktable user manual. Retrieved 2026-01-19.
- ^ Willis, Nathan. "Darktable 1.4". Archived from the original on 2014-05-02. Retrieved April 30, 2014.
- ^ "drawn masks". darktable user manual. Retrieved 2026-01-19.
- ^ "parametric masks". darktable user manual. Retrieved 2026-01-19.
- ^ "combining drawn & parametric masks". darktable user manual. Retrieved 2026-01-19.
- ^ "blend modes". darktable user manual. Retrieved 2026-01-19.
- ^ a b "features". Darktable.org. Archived from the original on 2013-04-17. Retrieved March 15, 2012.
- ^ "DtMediaWiki". Retrieved October 14, 2018.
- ^ "Darktable user manual chapter 7". Darktable.org. Archived from the original on 2017-11-17. Retrieved April 30, 2014.
- ^ Schroder, Carla. "A RAW Feast on the Linux Darktable (Photo Editor)". Archived from the original on May 7, 2012. Retrieved April 28, 2012.
- ^ Schroder, Carla. "How to Remote Control Your Camera with Darktable on Linux". Archived from the original on May 2, 2014. Retrieved April 30, 2014.
- ^ "the anatomy of a processing module". darktable user manual. Retrieved 2026-01-20.
- ^ "Who's New in Google Summer of Code: Part 7". Google Open Source Blog. Archived from the original on 2011-07-29. Retrieved 2012-03-15.
- ^ "Glade Removal Complete, Moving on to Keyboard Accelerators". 6 June 2011. Archived from the original on 2013-03-30. Retrieved 2012-03-17.
- ^ "GNU General Public License". Free Software Foundation. June 2007. Archived from the original on 2012-12-17. Retrieved August 23, 2012.
- ^ "Darktable and Solaris: It Just Works™ .... and there are some nifty benefits too". 7 May 2012. Archived from the original on 2012-09-15. Retrieved August 23, 2012.
- ^ "www.jmcpdotcom.com/Packages". Archived from the original on 2013-12-22. Retrieved 2012-07-25.
- ^ a b Obry, Pascal (2023-06-21). "darktable 4.4.0 released". darktable. Retrieved 2023-09-02.
- ^ Obry, Pascal (2019-12-24). "darktable 3.0.0 released". darktable. Retrieved 2024-01-26.
- ^ Obry, Pascal (2020-04-17). "darktable 3.0.2 released". darktable. Retrieved 2023-09-02.
- ^ Obry, Pascal (2020-08-10). "darktable 3.2.1 released". darktable. Retrieved 2023-09-02.
- ^ Obry, Pascal (2020-12-24). "darktable 3.4.0 released". darktable. Retrieved 2023-09-02.
- ^ Obry, Pascal (2021-02-06). "darktable 3.4.1 released". darktable. Retrieved 2023-09-02.
- ^ Obry, Pascal (2021-07-03). "darktable 3.6.0 released". darktable. Retrieved 2023-09-02.
- ^ Obry, Pascal (2021-09-15). "darktable 3.6.1 released". darktable. Retrieved 2023-09-02.
- ^ Obry, Pascal (2021-12-24). "darktable 3.8.0 released". darktable. Retrieved 2023-09-02.
- ^ Obry, Pascal (2022-02-11). "darktable 3.8.1 released". darktable. Retrieved 2023-09-02.
- ^ Obry, Pascal (2022-07-02). "darktable 4.0.0 released". darktable. Retrieved 2023-09-02.
- ^ Obry, Pascal (2022-09-17). "darktable 4.0.1 released". darktable. Retrieved 2023-09-02.
- ^ Obry, Pascal (2022-12-21). "darktable 4.2.0 released". darktable. Retrieved 2023-09-02.
- ^ Obry, Pascal (2023-02-21). "darktable 4.2.1 released". darktable. Retrieved 2023-09-02.
- ^ Obry, Pascal (2023-07-01). "darktable 4.4.1 released". darktable. Retrieved 2023-09-02.
- ^ Obry, Pascal (2023-07-22). "darktable 4.4.2 released". darktable. Retrieved 2023-09-02.
- ^ Obry, Pascal (2023-12-21). "darktable 4.6.0 released". darktable. Retrieved 2024-01-03.
- ^ Obry, Pascal (2025-06-21). "darktable 5.2.0 released". darktable. Retrieved 2025-12-18.
Bibliography
[edit]- Вейч, Ник (2010). "Darktable". Linux Format, русская редакция (in Russian). 130 (4). Saint Petersburg, Russia: 97. ISSN 1062-9424.
External links
[edit]