34
I Use This!
Very High Activity

News

Analyzed about 8 hours ago. based on code collected 1 day ago.
Posted almost 5 years ago by phw
The lut3d module is introduced in dt-2.7 and is designed to apply a 3D LUT (LookUp Table) to an image. 3D LUT A 3D LUT is a tridimensional table which allows to transform any RGB value into another RGB value. The most common applications of LUTs are ... [More] film simulation and color grading. But they can be used for any other technical transforms like LOG to REC.709, which are used in video edition for example. The module accepts cube files, haldclut files and compressed LUT files. Cube files Cube files are used by video editors and colorists. They are text files with the cube extension. You can find such files through these links: free-film-luts-for-editors-dits-and-colorists print-film-emulation-luts-for-download Haldclut files Haldclut files are used in Rawtherapee and PhotoFlow. The are usually coded as a png image. Smaller than cube files, they are also more accurate (see LUT dimension below). Here are some places to find them: http://rawtherapee.com/shared/HaldCLUT.zip http://gmic.eu/color_presets/index.shtml https://freshluts.com/ Compressed LUT files Compressed LUT files have been created by the G’MIC team (see Pixls.us - CLUT compression). They are also png files but actually 100 times smaller than haldclut files. Decompression time is mitigated using cache files (which can be shared with G’MIC). This small size allows dt to save the image transformation in its database and/or in the image xmp file. See below some useful G’MIC scripts to created your compressed LUT library. Note: except for compressed LUT, due to the size of the LUT file, LUT data are not saved with the parameters of the image. Instead the file path (inside the root folder) is saved. Then you need to backup properly the LUT files (+ folders) you have used. CAUTION: dt understands Compressed LUT file only if G’MIC library is installed on your machine. The module itself Before using the module you must define the folder where you have stored the LUTs you like. This folder can have sub-folders. This is done selecting the correct 3D lut root folder in Configuration/Core options/Miscellaneous. Lut3d has three parameters: LUT file application color space interpolation LUT file The different types of source file are described above. The important point to remember is the difference between compressed and not compressed files. If compressed, the LUT itself is saved (compressed) with the parameters of the image, and in the xmp file if activated as well. Otherwise the parameters only hold the file name and path (relative to 3D lut root folder). As a consequence the module cannot recalculate the image without original LUT file. Color space Each 3D LUT is built to be applied on a given color space. The module lut3d lets you select the appropriated one. Usually cube files are built for REC.709 and haldclut for sRGB. Note: The color space selection is effective when lut3d module is placed between input color profile and output color profile modules. Otherwise the selected color profile is ignored, and the LUT is applied on the current profile in the pipeline. Interpolation The interpolation method defines the way to calculate colors which are not exactly on a node of the RGB cube (described by the LUT). There are three interpolation methods available: tetrahedral (the default one), trilinear and pyramid. Usually you don’t see the difference between the interpolation method except sometimes with small size LUTs. Cube dimension: The RGB cube is characterized by its dimensions. It’s always below 256. The larger it is, the more accurate the transform is. It seems that above 48x48x48 one cannot see the difference any more. Usually haldclut cubes (64x64x64 is common) are larger than cube cubes (33x33x33 is common). G’MIC commands. G’MIC offers some useful commands to manipulate LUT files. To be able to run these commands you must have G’MIC installed on your machine. See https://gmic.eu/. Cube to Haldclut Be careful, as an haldclut file is an image, the square of the image width must be equal to the cube of the cube size. The below command first resizes the input cube and then transforms the result into a flat image. gmic -input_cube .cube -r 64,64,64,3,3 -r 512,512,1,3,-1 -o .png Compression Compression is a process which takes time. The compression commands are different for color or black & white transforms. Color to color haldclut: gmic -i .png -compress_clut 8,2,2048 split c,2 append x permute yxzc -o .png Color to black & white haldclut: gmic -i .png -compress_clut 8,2,2048 split c -r[3] 100%,100%,100%,3,1 append c split c,2 append x permute yxzc -o .png Color to color cube: gmic -input_cube .cube -compress_clut 8,2,2048 split c,2 append x permute yxzc -o .png About this article This article is licensed under the terms of the Attribution 2.0 Generic (CC BY 2.0), or, at your option, the Creative Commons BY-NC-SA 3.0 License. Contributors: phweyland, rabauke. [Less]
Posted almost 5 years ago by phw
The lut3d module is introduced in dt-2.7 and is designed to apply a 3D LUT (LookUp Table) to an image. 3D LUT A 3D LUT is a tridimensional table which allows to transform any RGB value into another RGB value. The most common applications of LUTs are ... [More] film simulation and color grading. But they can be used for any other technical transforms like LOG to REC.709, which are used in video edition for example. The module accepts cube files, haldclut files and compressed LUT files. Cube files Cube files are used by video editors and colorists. They are text files with the cube extension. You can find such files through these links: free-film-luts-for-editors-dits-and-colorists print-film-emulation-luts-for-download Haldclut files Haldclut files are used in Rawtherapee and PhotoFlow. The are usually coded as a png image. Smaller than cube files, they are also more accurate (see LUT dimension below). Here are some places to find them: http://rawtherapee.com/shared/HaldCLUT.zip http://gmic.eu/color_presets/index.shtml https://freshluts.com/ Compressed LUT files Compressed LUT files have been created by the G’MIC team (see Pixls.us - CLUT compression). They are also png files but actually 100 times smaller than haldclut files. Decompression time is mitigated using cache files (which can be shared with G’MIC). This small size allows dt to save the image transformation in its database and/or in the image xmp file. See below some useful G’MIC scripts to created your compressed LUT library. Note: except for compressed LUT, due to the size of the LUT file, LUT data are not saved with the parameters of the image. Instead the file path (inside the root folder) is saved. Then you need to backup properly the LUT files (+ folders) you have used. CAUTION: dt understands Compressed LUT file only if G’MIC library is installed on your machine. The module itself Before using the module you must define the folder where you have stored the LUTs you like. This folder can have sub-folders. This is done selecting the correct 3D lut root folder in Configuration/Core options/Miscellaneous. Lut3d has three parameters: LUT file application color space interpolation LUT file The different types of source file are described above. The important point to remember is the difference between compressed and not compressed files. If compressed, the LUT itself is saved (compressed) with the parameters of the image, and in the xmp file if activated as well. Otherwise the parameters only hold the file name and path (relative to 3D lut root folder). As a consequence the module cannot recalculate the image without original LUT file. Color space Each 3D LUT is built to be applied on a given color space. The module lut3d lets you select the appropriated one. Usually cube files are built for REC.709 and haldclut for sRGB. Note: The color space selection is effective when lut3d module is placed between input color profile and output color profile modules. Otherwise the selected color profile is ignored, and the LUT is applied on the current profile in the pipeline. Interpolation The interpolation method defines the way to calculate colors which are not exactly on a node of the RGB cube (described by the LUT). There are three interpolation methods available: tetrahedral (the default one), trilinear and pyramid. Usually you don’t see the difference between the interpolation method except sometimes with small size LUTs. Cube dimension: The RGB cube is characterized by its dimensions. It’s always below 256. The larger it is, the more accurate the transform is. It seems that above 48x48x48 one cannot see the difference any more. Usually haldclut cubes (64x64x64 is common) are larger than cube cubes (33x33x33 is common). G’MIC commands. G’MIC offers some useful commands to manipulate LUT files. To be able to run these commands you must have G’MIC installed on your machine. See https://gmic.eu/. Cube to Haldclut Be careful, as an haldclut file is an image, the square of the image width must be equal to the cube of the cube size. The below command first resizes the input cube and then transforms the result into a flat image. gmic -input_cube .cube -r 64,64,64,3,3 -r 512,512,1,3,-1 -o .png Compression Compression is a process which takes time. The compression commands are different for color or black & white transforms. Color to color haldclut: gmic -i .png -compress_clut 8,2,2048 split c,2 append x permute yxzc -o .png Color to black & white haldclut: gmic -i .png -compress_clut 8,2,2048 split c -r[3] 100%,100%,100%,3,1 append c split c,2 append x permute yxzc -o .png Color to color cube: gmic -input_cube .cube -compress_clut 8,2,2048 split c,2 append x permute yxzc -o .png About this article This article is licensed under the terms of the Attribution 2.0 Generic (CC BY 2.0), or, at your option, the Creative Commons BY-NC-SA 3.0 License. Contributors: phweyland, rabauke. [Less]
Posted about 5 years ago by Pascal Obry
we’re proud to announce the second bugfix release for the 2.6 series of darktable, 2.6.2! the github release is here: https://github.com/darktable-org/darktable/releases/tag/release-2.6.2. as always, please don’t use the autogenerated tarball ... [More] provided by github, but only our tar.xz. the checksums are: $ sha256sum darktable-2.6.2.tar.xz 9cb9efbb09a40375ff05cef89343235a621c58339539e44985470a029a7ffb45 darktable-2.6.2.tar.xz $ sha256sum darktable-2.6.2.dmg 8cd945744e56a85c35f982a96be42332a57dc383ec228fcc1d21eb57c068f27c darktable-2.6.2.dmg $ sha256sum darktable-2.6.2-win64.exe eee5f4c1f0f6c5f8d5a16d66da1afb92ebde06101e6a84706785df504c8865cd darktable-2.6.2-win64.exe when updating from the currently stable 2.6.x series, please bear in mind that your edits will be preserved during this process, but it will not be possible to downgrade from 2.6 to 2.4.x any more. Important note: to make sure that darktable can keep on supporting the raw file format for your camera, please read this post on how/what raw samples you can contribute to ensure that we have the full raw sample set for your camera under CC0 license! and the changelog as compared to 2.6.1 can be found below. New Features Update colorbalance french translation Bugfixes Fix SSE bug in filmic introduced in #2025 Fix issue when looking for input color profile (backward compatibility) Add missing Czech translation file Fix possible halo issue in local contrast module. Fix contextual help link to point to new HTML manual for 2.6 series. Changed Dependencies None. Camera support, compared to 2.6.1 Base Support DSC-RX100M6 Phase One P30 (fixed) Olympus OM-D E-M10 (enhanced) Nikon D7500 (enhanced) White Balance Presets Nikon D500 Olympus E-PL8 Noise Profiles Sony SLT-A35 Nikon Z6 Translations Catalan Czech Dutch Finnish French German Norwegian bokmål Polish Russian Slovenian Spanish [Less]
Posted about 5 years ago by Pascal Obry
we’re proud to announce the second bugfix release for the 2.6 series of darktable, 2.6.2! the github release is here: https://github.com/darktable-org/darktable/releases/tag/release-2.6.2. as always, please don’t use the autogenerated tarball ... [More] provided by github, but only our tar.xz. the checksums are: $ sha256sum darktable-2.6.2.tar.xz 9cb9efbb09a40375ff05cef89343235a621c58339539e44985470a029a7ffb45 darktable-2.6.2.tar.xz $ sha256sum darktable-2.6.2.dmg 8cd945744e56a85c35f982a96be42332a57dc383ec228fcc1d21eb57c068f27c darktable-2.6.2.dmg $ sha256sum darktable-2.6.2-win64.exe eee5f4c1f0f6c5f8d5a16d66da1afb92ebde06101e6a84706785df504c8865cd darktable-2.6.2-win64.exe when updating from the currently stable 2.6.x series, please bear in mind that your edits will be preserved during this process, but it will not be possible to downgrade from 2.6 to 2.4.x any more. Important note: to make sure that darktable can keep on supporting the raw file format for your camera, please read this post on how/what raw samples you can contribute to ensure that we have the full raw sample set for your camera under CC0 license! and the changelog as compared to 2.6.1 can be found below. New Features Update colorbalance french translation Bugfixes Fix SSE bug in filmic introduced in #2025 Fix issue when looking for input color profile (backward compatibility) Add missing Czech translation file Fix possible halo issue in local contrast module. Fix contextual help link to point to new HTML manual for 2.6 series. Changed Dependencies None. Camera support, compared to 2.6.1 Base Support DSC-RX100M6 Phase One P30 (fixed) Olympus OM-D E-M10 (enhanced) Nikon D7500 (enhanced) White Balance Presets Nikon D500 Olympus E-PL8 Noise Profiles Sony SLT-A35 Nikon Z6 Translations Catalan Czech Dutch Finnish French German Norwegian bokmål Polish Russian Slovenian Spanish [Less]
Posted about 5 years ago by Pascal Obry
we’re proud to announce the first bugfix release for the 2.6 series of darktable, 2.6.1! the github release is here: https://github.com/darktable-org/darktable/releases/tag/release-2.6.1. as always, please don’t use the autogenerated tarball provided ... [More] by github, but only our tar.xz. the checksums are: $ sha256sum darktable-2.6.1.tar.xz 63c53332eecff946e41c1b6551d51bc0a2515572532f470b7b570b60805c3026 darktable-2.6.1.tar.xz $ sha256sum darktable-2.6.1.dmg dec8ebd36b9747a84ffad119ca1fa92a197297dc7d54e9a03035da99a76f66e8 darktable-2.6.1.dmg $ sha256sum darktable-2.6.1-win64.exe c0b31a3ac4f02151f4fc0ee4e8e39dc1e5c8ef409b2f23eee440affba9cd73f6 darktable-2.6.1-win64.exe when updating from the currently stable 2.6.x series, please bear in mind that your edits will be preserved during this process, but it will not be possible to downgrade from 2.6 to 2.4.x any more. Important note: to make sure that darktable can keep on supporting the raw file format for your camera, please read this post on how/what raw samples you can contribute to ensure that we have the full raw sample set for your camera under CC0 license! and the changelog as compared to 2.6.0 can be found below. New Features export module to piwigo color balance enhancements color contrast enhancements filmic enhancements (better auto-tuner) add contextual help for filmic module middle-click can be used to open the presets menu (this is consistent with the fact that middle-click can be used to create a new instance from a preset) again, better CSS customization for lighttable, filmstrip and duplicates module presets can now be imported/exported all zoom levels can now be reached with a ctrl-scroll the slideshow view will adjust automatically when darktable window is resized add support for tiff CIELAB/ICCLAB 8/16 bits add hierarchical view for styles (separated with |) forms opacity is displayed in hint messages add a color picker in the watermark module Bugfixes fix collect module filters fix retouch module, mask areas are properly taking into account the source and destination fix navigation from darkroom when groups are present and collapsed fix a rare issue where masks could “jump” to some random location keep reference point (mouse position) when zooming above 200% title and description filters are now properly working minor UI fixes to gain some spaces in darktable modules fix masks detection over the mouse in some complex cases Changed Dependencies None. Camera support, compared to 2.6.0 Base Support DSC-RX100M6 Phase One P30 (fixed) Olympus OM-D E-M10 (enhanced) Nikon D7500 (enhanced) White Balance Presets Nikon D500 Olympus E-PL8 Noise Profiles Sony SLT-A35 Nikon Z6 Translations Catalan Czech Dutch Finnish French German Norwegian bokmål Polish Russian Slovenian Spanish [Less]
Posted about 5 years ago by Pascal Obry
we’re proud to announce the first bugfix release for the 2.6 series of darktable, 2.6.1! the github release is here: https://github.com/darktable-org/darktable/releases/tag/release-2.6.1. as always, please don’t use the autogenerated tarball provided ... [More] by github, but only our tar.xz. the checksums are: $ sha256sum darktable-2.6.1.tar.xz 63c53332eecff946e41c1b6551d51bc0a2515572532f470b7b570b60805c3026 darktable-2.6.1.tar.xz $ sha256sum darktable-2.6.1.dmg dec8ebd36b9747a84ffad119ca1fa92a197297dc7d54e9a03035da99a76f66e8 darktable-2.6.1.dmg $ sha256sum darktable-2.6.1-win64.exe c0b31a3ac4f02151f4fc0ee4e8e39dc1e5c8ef409b2f23eee440affba9cd73f6 darktable-2.6.1-win64.exe when updating from the currently stable 2.6.x series, please bear in mind that your edits will be preserved during this process, but it will not be possible to downgrade from 2.6 to 2.4.x any more. Important note: to make sure that darktable can keep on supporting the raw file format for your camera, please read this post on how/what raw samples you can contribute to ensure that we have the full raw sample set for your camera under CC0 license! and the changelog as compared to 2.6.0 can be found below. New Features export module to piwigo color balance enhancements color contrast enhancements filmic enhancements (better auto-tuner) add contextual help for filmic module middle-click can be used to open the presets menu (this is consistent with the fact that middle-click can be used to create a new instance from a preset) again, better CSS customization for lighttable, filmstrip and duplicates module presets can now be imported/exported all zoom levels can now be reached with a ctrl-scroll the slideshow view will adjust automatically when darktable window is resized add support for tiff CIELAB/ICCLAB 8/16 bits add hierarchical view for styles (separated with |) forms opacity is displayed in hint messages add a color picker in the watermark module Bugfixes fix collect module filters fix retouch module, mask areas are properly taking into account the source and destination fix navigation from darkroom when groups are present and collapsed fix a rare issue where masks could “jump” to some random location keep reference point (mouse position) when zooming above 200% title and description filters are now properly working minor UI fixes to gain some spaces in darktable modules fix masks detection over the mouse in some complex cases Changed Dependencies None. Camera support, compared to 2.6.0 Base Support DSC-RX100M6 Phase One P30 (fixed) Olympus OM-D E-M10 (enhanced) Nikon D7500 (enhanced) White Balance Presets Nikon D500 Olympus E-PL8 Noise Profiles Sony SLT-A35 Nikon Z6 Translations Catalan Czech Dutch Finnish French German Norwegian bokmål Polish Russian Slovenian Spanish [Less]
Posted over 5 years ago by Pascal Obry
we’re proud to announce the new feature release of darktable, 2.6.0! the github release is here: https://github.com/darktable-org/darktable/releases/tag/release-2.6.0. this year, we have a full blog article for this release here: ... [More] https://www.darktable.org/2018/12/darktable-26/. as always, please don’t use the autogenerated tarball provided by github, but only our tar.xz. the checksums are: $ sha256sum darktable-2.6.0.tar.xz 483d7d8e4ac532d89efc2f24e169f7a7da2d3ef0c599602b658d67a040670478 darktable-2.6.0.tar.xz $ sha256sum darktable-2.6.0.dmg 47d6f1d9ae64394663ffd804692d6b6d6722b312712e938f103cb43f58625c42 darktable-2.6.0.dmg when updating from the currently stable 2.4.x series, please bear in mind that your edits will be preserved during this process, but it will not be possible to downgrade from 2.6 to 2.4.x any more. Important note: to make sure that darktable can keep on supporting the raw file format for your camera, please read this post on how/what raw samples you can contribute to ensure that we have the full raw sample set for your camera under CC0 license! Over 1600 commits to darktable+rawspeed since 2.4 260+ pull requests handled 250+ issues closed Updated user manual is coming soon™ The Big Ones new module retouch allowing changes based on image frequency layers new module filmic which can replace the base curve and shadows and highlights new module to handle duplicates in the darkroom with possibility to add a title, create standard or virgin duplicate, delete duplicate and quickly compare with a duplicate new logarithm controls for the tone-curve new mode for the unbreak profile module add mask preview to adjust size, hardness before placing them make it possible to change the cropped area in the perspective correction module the mask blur has been complemented with a guided-filter to fine tune it (this works on RGB and Lab color space). color balance module has two new modes based on ProPhotoRGB and HSL Experimental support for PPC64le architecture (OpenCL support needs to be disabled, -DUSE_OPENCL=OFF) New Features And Changes search from the map view is now fixed visual rework of the lighttable (color label, image kind, local copy) an option make it possible to display some image information directly on the thumb add optional scrollbars on lighttable, or lighttable and darkroom allow each masks of the clone module to have the opacity adjusted lightroom import module supports the creator, rights, title, description and publisher information. enhance TurboPrint support by displaying the dialogue with all possible options (print cancellation will be fixed in TurboPrint 2.47) new sort filter based on the image’s aspect new sort filter based on the image’s shutter speed new sort filter based on the image’s group new sort filter based on a personalized sorting order (drag&drop on the lighttable view) collection based on the local copy status group image number displayed on the collection module new zoom level at 50%; 400%, 800% and 1600% better support for monochrome RAW add contextual help pointing to the darktable’s manual better copy/paste support for multiple instances add support for renaming the module instances add frequency based adjustment for the RAW denoise module add frequency based adjustment for the denoise profile module all widgets should be themable via CSS now add support for configuring the modules layout different way to select hierarchical tags in the collection module (only the actual parent tag, all children or the parent and children) better handling of grouped images by allowing setting stars, color label for the whole group. make it possible to apply a preset to a new module instance using the middle click new script to migrate collection from Capture One Pro Bug fixes Fix the color pickers behavior in all modules Fix liquify tools switching Many more bugs got fixed Lua No changes Changed Dependencies CMake 3.4 is now required In order to compile darktable you now need at least gcc-5.0+/clang-3.9+ Minimal clang version was bumped from 3.4+ to 3.9+ Packagers are advised to pass -DRAWSPEED_ENABLE_LTO=ON to CMake to enable partial LTO. RawSpeed changes GoPro ‘.GPR’ raws are now supported via new, fast ‘VC-5’ parallel decompressor Panasonic’s new raw compression (‘.RW2’, GH5s, G9 cameras) is now supported via new fast, parallel ‘Panasonic V5’ decompressor Panasonic’s old (also ‘.RW2’) raw decompressor got rewritten, re-parallelized Phase One (‘.IIQ’) decompressor got parallelized Nikon NEF ‘lossy after split’ raw support was recovered Phase One (‘.IIQ’) Quadrant Correction is now supported Olympus High-Res (uncompressed) raw support Lot’s and lot’s and lot’s of maintenance, sanitization, cleanups, small rewrites/refactoring. NOTE: Canon ‘.CR3’ raws are NOT supported as of yet. Camera support, compared to 2.4.0 Base Support Canon EOS 1500D Canon EOS 2000D Canon EOS Rebel T7 Canon EOS 3000D Canon EOS 4000D Canon EOS Rebel T100 Canon EOS 5D Mark IV (sRaw1, sRaw2) Canon EOS 5DS (sRaw1, sRaw2) Canon EOS 5DS R (sRaw1, sRaw2) Canon PowerShot G1 X Mark III Fujifilm X-A5 Fujifilm X-H1 (compressed) Fujifilm X-T100 Fujifilm X-T3 (compressed) GoPro FUSION (dng) GoPro HERO5 Black (dng) GoPro HERO6 Black (dng) GoPro HERO7 Black (dng) Hasselblad CFV-50 Hasselblad H5D-40 Hasselblad H5D-50c Kodak DCS Pro 14nx Kodak DCS520C Kodak DCS760C Kodak EOS DCS 3 Nikon COOLPIX P1000 (12bit-uncompressed) Nikon D2Xs (12bit-compressed, 12bit-uncompressed) Nikon D3500 (12bit-compressed) Nikon Z 6 (except uncompressed raws) Nikon Z 7 (except 14-bit uncompressed raw) Olympus E-PL8 Olympus E-PL9 Olympus SH-2 Panasonic DC-FZ80 (4:3) Panasonic DC-G9 (4:3) Panasonic DC-GF9 (4:3) Panasonic DC-GX800 (4:3) Panasonic DC-GX850 (4:3) Panasonic DC-GH5S (4:3, 3:2, 16:9, 1:1) Panasonic DC-GX9 (4:3) Panasonic DC-LX100M2 (4:3, 1:1, 16:9, 3:2) Panasonic DC-TZ200 (3:2) Panasonic DC-TZ202 (3:2) Panasonic DMC-FZ2000 (3:2) Panasonic DMC-FZ2500 (3:2) Panasonic DMC-FZ35 (3:2, 16:9) Panasonic DMC-FZ38 (3:2, 16:9) Panasonic DMC-GX7MK2 (4:3) Panasonic DMC-ZS100 (3:2) Paralenz Dive Camera (chdk) Pentax 645Z Pentax K-1 Mark II Pentax KP Phase One P65+ Sjcam SJ6 LEGEND (chdk-b, chdk-c) Sony DSC-HX99 Sony DSC-RX0 Sony DSC-RX100M5A Sony DSC-RX10M4 Sony DSC-RX1RM2 Sony ILCE-7M3 White Balance Presets Canon EOS M100 Fujifilm X-T3 Leaf Credo 40 Nikon D3400 Nikon D5600 Nikon D7500 Nikon D850 Nikon Z 6 Olympus E-M10 Mark III Olympus E-M1MarkII Panasonic DC-G9 Panasonic DC-GX9 Panasonic DMC-FZ300 Sony DSC-RX0 Sony DSC-RX100M5 Sony DSC-RX100M5A Sony DSC-RX10M3 Sony DSC-RX10M4 Sony DSC-RX1RM2 Sony ILCE-6500 Sony ILCE-7M3 Sony ILCE-7RM3 Noise Profiles Canon EOS 200D Canon EOS Kiss X9 Canon EOS Rebel SL2 Canon EOS 750D Canon EOS Kiss X8i Canon EOS Rebel T6i Canon EOS 760D Canon EOS 8000D Canon EOS Rebel T6s Canon EOS 77D Canon EOS 9000D Canon EOS 800D Canon EOS Kiss X9i Canon EOS Rebel T7i Canon EOS M100 Canon EOS M6 Canon PowerShot G1 X Mark II Canon PowerShot G1 X Mark III Canon PowerShot G9 X Fujifilm X-A5 Fujifilm X-E3 Fujifilm X-T3 Fujifilm X100F Nikon 1 AW1 Nikon 1 J3 Nikon COOLPIX B700 Nikon D5600 Nikon D7500 Nikon D850 Olympus E-M10 Mark III Olympus TG-5 Panasonic DC-G9 Panasonic DC-GX9 Panasonic DMC-FZ35 Panasonic DMC-FZ38 Panasonic DMC-GF6 Panasonic DMC-LX10 Panasonic DMC-LX15 Panasonic DMC-LX9 Panasonic DMC-TZ70 Panasonic DMC-TZ71 Panasonic DMC-ZS50 Pentax K-01 Pentax KP Samsung NX1 Sony DSC-RX100M4 Sony DSC-RX10M3 Sony ILCE-7M3 Translations Catalan Dutch Finnish French German Hungarian Japanese Norwegian Bokmål Portuguese Russian Slovenian [Less]
Posted over 5 years ago by Pascal Obry
we’re proud to announce the new feature release of darktable, 2.6.0! the github release is here: https://github.com/darktable-org/darktable/releases/tag/release-2.6.0. this year, we have a full blog article for this release here: ... [More] https://www.darktable.org/2018/12/darktable-26/. as always, please don’t use the autogenerated tarball provided by github, but only our tar.xz. the checksums are: $ sha256sum darktable-2.6.0.tar.xz 483d7d8e4ac532d89efc2f24e169f7a7da2d3ef0c599602b658d67a040670478 darktable-2.6.0.tar.xz $ sha256sum darktable-2.6.0.dmg 47d6f1d9ae64394663ffd804692d6b6d6722b312712e938f103cb43f58625c42 darktable-2.6.0.dmg when updating from the currently stable 2.4.x series, please bear in mind that your edits will be preserved during this process, but it will not be possible to downgrade from 2.6 to 2.4.x any more. Important note: to make sure that darktable can keep on supporting the raw file format for your camera, please read this post on how/what raw samples you can contribute to ensure that we have the full raw sample set for your camera under CC0 license! Over 1600 commits to darktable+rawspeed since 2.4 260+ pull requests handled 250+ issues closed Updated user manual is coming soon™ The Big Ones new module retouch allowing changes based on image frequency layers new module filmic which can replace the base curve and shadows and highlights new module to handle duplicates in the darkroom with possibility to add a title, create standard or virgin duplicate, delete duplicate and quickly compare with a duplicate new logarithm controls for the tone-curve new mode for the unbreak profile module add mask preview to adjust size, hardness before placing them make it possible to change the cropped area in the perspective correction module the mask blur has been complemented with a guided-filter to fine tune it (this works on RGB and Lab color space). color balance module has two new modes based on ProPhotoRGB and HSL Experimental support for PPC64le architecture (OpenCL support needs to be disabled, -DUSE_OPENCL=OFF) New Features And Changes search from the map view is now fixed visual rework of the lighttable (color label, image kind, local copy) an option make it possible to display some image information directly on the thumb add optional scrollbars on lighttable, or lighttable and darkroom allow each masks of the clone module to have the opacity adjusted lightroom import module supports the creator, rights, title, description and publisher information. enhance TurboPrint support by displaying the dialogue with all possible options (print cancellation will be fixed in TurboPrint 2.47) new sort filter based on the image’s aspect new sort filter based on the image’s shutter speed new sort filter based on the image’s group new sort filter based on a personalized sorting order (drag&drop on the lighttable view) collection based on the local copy status group image number displayed on the collection module new zoom level at 50%; 400%, 800% and 1600% better support for monochrome RAW add contextual help pointing to the darktable’s manual better copy/paste support for multiple instances add support for renaming the module instances add frequency based adjustment for the RAW denoise module add frequency based adjustment for the denoise profile module all widgets should be themable via CSS now add support for configuring the modules layout different way to select hierarchical tags in the collection module (only the actual parent tag, all children or the parent and children) better handling of grouped images by allowing setting stars, color label for the whole group. make it possible to apply a preset to a new module instance using the middle click new script to migrate collection from Capture One Pro Bug fixes Fix the color pickers behavior in all modules Fix liquify tools switching Many more bugs got fixed Lua No changes Changed Dependencies CMake 3.4 is now required In order to compile darktable you now need at least gcc-5.0+/clang-3.9+ Minimal clang version was bumped from 3.4+ to 3.9+ Packagers are advised to pass -DRAWSPEED_ENABLE_LTO=ON to CMake to enable partial LTO. RawSpeed changes GoPro ‘.GPR’ raws are now supported via new, fast ‘VC-5’ parallel decompressor Panasonic’s new raw compression (‘.RW2’, GH5s, G9 cameras) is now supported via new fast, parallel ‘Panasonic V5’ decompressor Panasonic’s old (also ‘.RW2’) raw decompressor got rewritten, re-parallelized Phase One (‘.IIQ’) decompressor got parallelized Nikon NEF ‘lossy after split’ raw support was recovered Phase One (‘.IIQ’) Quadrant Correction is now supported Olympus High-Res (uncompressed) raw support Lot’s and lot’s and lot’s of maintenance, sanitization, cleanups, small rewrites/refactoring. NOTE: Canon ‘.CR3’ raws are NOT supported as of yet. Camera support, compared to 2.4.0 Base Support Canon EOS 1500D Canon EOS 2000D Canon EOS Rebel T7 Canon EOS 3000D Canon EOS 4000D Canon EOS Rebel T100 Canon EOS 5D Mark IV (sRaw1, sRaw2) Canon EOS 5DS (sRaw1, sRaw2) Canon EOS 5DS R (sRaw1, sRaw2) Canon PowerShot G1 X Mark III Fujifilm X-A5 Fujifilm X-H1 (compressed) Fujifilm X-T100 Fujifilm X-T3 (compressed) GoPro FUSION (dng) GoPro HERO5 Black (dng) GoPro HERO6 Black (dng) GoPro HERO7 Black (dng) Hasselblad CFV-50 Hasselblad H5D-40 Hasselblad H5D-50c Kodak DCS Pro 14nx Kodak DCS520C Kodak DCS760C Kodak EOS DCS 3 Nikon COOLPIX P1000 (12bit-uncompressed) Nikon D2Xs (12bit-compressed, 12bit-uncompressed) Nikon D3500 (12bit-compressed) Nikon Z 6 (except uncompressed raws) Nikon Z 7 (except 14-bit uncompressed raw) Olympus E-PL8 Olympus E-PL9 Olympus SH-2 Panasonic DC-FZ80 (4:3) Panasonic DC-G9 (4:3) Panasonic DC-GF9 (4:3) Panasonic DC-GX800 (4:3) Panasonic DC-GX850 (4:3) Panasonic DC-GH5S (4:3, 3:2, 16:9, 1:1) Panasonic DC-GX9 (4:3) Panasonic DC-LX100M2 (4:3, 1:1, 16:9, 3:2) Panasonic DC-TZ200 (3:2) Panasonic DC-TZ202 (3:2) Panasonic DMC-FZ2000 (3:2) Panasonic DMC-FZ2500 (3:2) Panasonic DMC-FZ35 (3:2, 16:9) Panasonic DMC-FZ38 (3:2, 16:9) Panasonic DMC-GX7MK2 (4:3) Panasonic DMC-ZS100 (3:2) Paralenz Dive Camera (chdk) Pentax 645Z Pentax K-1 Mark II Pentax KP Phase One P65+ Sjcam SJ6 LEGEND (chdk-b, chdk-c) Sony DSC-HX99 Sony DSC-RX0 Sony DSC-RX100M5A Sony DSC-RX10M4 Sony DSC-RX1RM2 Sony ILCE-7M3 White Balance Presets Canon EOS M100 Fujifilm X-T3 Leaf Credo 40 Nikon D3400 Nikon D5600 Nikon D7500 Nikon D850 Nikon Z 6 Olympus E-M10 Mark III Olympus E-M1MarkII Panasonic DC-G9 Panasonic DC-GX9 Panasonic DMC-FZ300 Sony DSC-RX0 Sony DSC-RX100M5 Sony DSC-RX100M5A Sony DSC-RX10M3 Sony DSC-RX10M4 Sony DSC-RX1RM2 Sony ILCE-6500 Sony ILCE-7M3 Sony ILCE-7RM3 Noise Profiles Canon EOS 200D Canon EOS Kiss X9 Canon EOS Rebel SL2 Canon EOS 750D Canon EOS Kiss X8i Canon EOS Rebel T6i Canon EOS 760D Canon EOS 8000D Canon EOS Rebel T6s Canon EOS 77D Canon EOS 9000D Canon EOS 800D Canon EOS Kiss X9i Canon EOS Rebel T7i Canon EOS M100 Canon EOS M6 Canon PowerShot G1 X Mark II Canon PowerShot G1 X Mark III Canon PowerShot G9 X Fujifilm X-A5 Fujifilm X-E3 Fujifilm X-T3 Fujifilm X100F Nikon 1 AW1 Nikon 1 J3 Nikon COOLPIX B700 Nikon D5600 Nikon D7500 Nikon D850 Olympus E-M10 Mark III Olympus TG-5 Panasonic DC-G9 Panasonic DC-GX9 Panasonic DMC-FZ35 Panasonic DMC-FZ38 Panasonic DMC-GF6 Panasonic DMC-LX10 Panasonic DMC-LX15 Panasonic DMC-LX9 Panasonic DMC-TZ70 Panasonic DMC-TZ71 Panasonic DMC-ZS50 Pentax K-01 Pentax KP Samsung NX1 Sony DSC-RX100M4 Sony DSC-RX10M3 Sony ILCE-7M3 Translations Catalan Dutch Finnish French German Hungarian Japanese Norwegian Bokmål Portuguese Russian Slovenian [Less]
Posted over 5 years ago by moy
Following the tradition, darktable 2.6 was released for Christmas. 2018 has been a year of renewal for darktable, with many major features introduced by recent contributors. The announcement and release notes for this new release can be found here: ... [More] https://www.darktable.org/2018/12/darktable-260-released/. Among the new major features: A new retouch module, similar to the spot removal module with smart cloning (“heal”) and ability to act on each level of detail individually. A new filmic module, able to manage most aspects of the tone of an image in a single module. A complete rework of the color balance module, which can now be seen as a color-aware variant of levels, and can do most adjustments automatically thanks to new color picker buttons. The ability to guide the blurring of the blend mask, to select an object precisely with minimal effort. As with all darktable major release, this version changes the database format so it is not possible to downgrade to previous versions after launching darktable 2.6: don’t forget to make a backup of your database (~/.config/darktable/ directory) before doing so. Major features A new module: retouch While darktable is primarily focused on raw development, recent versions introduced features like liquify, traditionally available only in pixel-oriented editors like GIMP. One more important step in this direction is done with the new retouch module, which essentially supersedes spot removal, together with frequency-splitting editing for fine retouch. Improvements compared to spot removal The interface has a lot more buttons than spot removal, but everything you could do with the later is also possible in a similar way with retouch. Just like with spot removal, you may select a shape (circle, ellipse, path, or brush, which wasn’t available with spot removal) and click on a part of the image you want to hide. The module will clone another part of the image to hide it. Drag instead of clicking to choose the source of the clone, or adjust the controls after the fact. Many details will make your life easier than before: Seamless cloning, better results with less efforts By default, the clone uses a “seamless cloning” algorithm (borrowed from GIMP’s “heal” tool), which adapts the source to the context where it is cloned. You don’t need to clone exactly the right piece of image. Let’s take a common example: a small defect in a not-completely-uniform sky: A bad attempt to fix this with the clone tool would give: The piece of sky copied to mask the defect is a bit darker than the place where it’s copied. It’s not obvious while the controls are displayed on the image, but the final image is really bad: The same retouch with the new “heal” tool () gives this: This time, the final image is indistinguishable from a real sky without defect: Even when cloning pieces of images of totally different colors, the “heal” tool behaves surprisingly well. Let’s push the module a bit: The white patch is cloned to the blue shirt, the blue shirt to the red one, and the red one to the white one. Each time, the local contrast is kept, but the overall color and luma of the patch is adapted to fit the destination. The basic “clone” tool () is still available for the rare cases where you would want it. Fill and blur, when you don’t have anything to clone In addition to the “clone” and “heal” tools (which work only when you have a piece of image to duplicate on the spot to remove), retouch provides a “fill” tool () (fill a shape with a color) and a “blur” tool () (apply a blur to soften a part of the image tools). These tools are most useful for split-frequency editing, see below. One activation, multiple strokes: continuous add Tools can be activated once for multiple strokes. Just use Control-click on one of the point, line, ellipse or path tool (instead of a normal click), and the tool will remain active until you explicitly deactivate it. This is very convenient when fixing many spots on the same image, compared to the previous flow where one had to re-click the tool’s button for each stroke. Source patch visualization For “clone” and “heal” tools, each stroke consists in a source and a destination. With a simple click, one sets the destination and by default darktable picks an arbitrary location for the source. One can already set both source and destination with a simple mouse action by dragging from destination to source. Retouch introduces a more advanced mechanism: While moving the mouse over the image, the future destination is marked with its shape, and the source is marked with a small cross: To select a source, use Shift-click on the image. The cross is placed at the mouse location and won’t move until you select the destination, with a simple click. This is interesting combined with the permanent activation of the tool mentioned above: the source for multiple strokes will be located at the same place, relative to the destination. A variant: use Control-Shift-Click instead of Shift-Click. This also sets the source location, but this time it will remain fixed in absolute coordinate instead of relative to the destination. Split-frequency editing A common issue with photo retouching, typically for portrait, is that you want to hide spots, and sometimes reduce local contrast to make the skin appear softer, but keep the skin’s texture. A brutal blur would make the skin overly soft and will give at best an “obviously post-processed” look. Let’s take this image as an example (taken from the pixls.us PlayRaw contest “Hillbilly portrait”): A common technique for this kind of retouching is to split the image into several images corresponding to different levels of details, and then combine the images together. This is what GIMP’s wavelet decompose plugin does, for example. After splitting, one gets a blurry image corresponding to the coarse details, and one or several images containing details only. In our example, we get scales of details: And the so-called “residual” image, i.e. the image where all other levels of details have been removed: This kind of transformation is used internally by the equalizer module, which allows you to increase or decrease the importance of each level of detail in the image. While equalizer works globally on the image, retouch allows you to select the level of detail and the portion of image you want to work with. In the retouch module, this corresponds to the “wavelet decompose” part of the GUI: This part shows one rectangle per scale (fine-grained on the left, coarse-grained on the right). The dark rectangle on the left corresponds to the full image, and the white one on the right to the residual image. By default, darktable always shows the final image, but you can visualize the details scales and residual image by clicking the “display wavelet scales () button. The currently selected image appears with a red rectangle. Move the bottom slider to change the number of details scales to use. Depending on the zoom level, some details scale may be finer than your screen resolution, hence unusable. The grey line above the scales shows which scales are visible at the current zoom level. When viewing the details scales, contrast may be too weak or too strong so the module proposes a levels adjustment (which apply only on the on-screen preview, but does not impact the final image): Each of the tools presented above (heal, clone, fill, blur) is usable on any of these scales. Think of them as layers obtained from the source image, and re-combined together after retouching to obtain the final image. This is where “fill” and “blur” tools make most sense: “fill” defaults to an erase mode where the fill color is black, which corresponds to remove the details when used on details scales. One can also pick a color and fill with this color (most useful on the residual image scale). Using “blur” directly on the image usually results in clearly visible post-processing, but using it selectively on scales results in very subtle effects. Example 1: spot reduction instead of spot removal Let’s focus on the spot below the glasses. If we want to completely remove it, it’s pretty easy to do so with the “heal” tool. Now, what happens if we decide that we want to keep it, but reduce it to avoid drawing the attention. We can just remove it from the coarse detail scale (scale 6 in our example). The spot is not visible on the residual image, so removing it from the details scale is sufficient. The “heal” tool allows us to do that cleanly, but when dealing with the details scale, the “fill” and “blur” tools can also give good results. Here’s the result on scale 6 (before on the left, after on the right): The final image will be transformed as follows: Now, we may decide that the healing we did on scale 6 should also be applied on scale 5. We can redo the same thing manually, but we can also use the top slider, called “merge scale”, to automatically replicate shapes to multiple scales. Any shape created on the right hand side of this slider will be replicated on all finer scales up to the merge slider (except if the slider is completely set to 0, which means deactivate the merging). By setting the slider to 5, we apply our healing to both scales 5 and 6, and get the following: If we move the slider further to the left, the spot disappears progressively. Using the same principle, we can remove marks on the skin while preserving the hair of the beard: (Just one “heal” shape on scale 7, propagated to scale 5 using the merge slider) Example 2: playing with the skin’s texture If we want to change the texture of the skin on the cheek, we can apply a blur on a shape like this: and get the following before/after result: Obviously, this kind of retouching should be done with great care: when pushed too far, one gets an overly artificial look. When unsure, you can always get back to your retouch and use blending with an opacity lower than 100%, or change the opacity or blur radius of each shape individually. Example 3: having fun with the residual image Just for fun (do not reproduce at home, ugly images to be expected!), we can get a tattoo effect by using the clone tool on the residual image: While not really elegant, this example illustrates the “split-frequency” principle: we’ve kept the fine details from the cheek, and cloned the coarse ones in the residual image. New module: filmic The filmic module was designed to reproduce the good properties of analog film, while giving you the easy controls of digital photography. It can be used on any image as a replacement for the base curve module, and is particularly adapted for images with a high dynamic range, i.e. a large difference between brightest and darkest areas. Let’s take an example of such image (taken from the pixls.us PlayRaw contest “Backlit”): A common approach to deal with high dynamic range images is to compress the global contrast while retaining the local one. darktable has several modules able to do this: tone mapping, global tonemap, shadows and highlights, and since darktable 2.2 the exposure fusion mode in the base curve module. This contrast compression works to some extend, but results in artificial look when pushed too far. What you typically want to avoid is this (using tone mapping, contrast compression set to the maximum): The filmic module shows that another approach is possible, and usually gives more natural results. It considers pixels individually, without trying to distinguish between local and global contrast. If filmic compresses the contrast too much, it is still possible to recover local contrast with the excellent local contrast module for example. filmic is meant to be used without the base curve module (activated by default in darktable). The base curve comes very early in the pipeline and yields a contrasty image where highlights are often blown out. Recovering details lost by the base curve is difficult. On the other hand, just disabling the base curve usually results in fade images, lacking contrast and saturation. Other contrast enhancement techniques must be used to compensate for this. filmic comes later than base curve in the pipeline, and gives more control to exploit the dynamic range of the output image properly. The first thing filmic does is to apply a logarithmic curve to the image, so that the “stops” (powers of two in luminance in a linear space) are spread evenly on the histogram. A source of inspiration behind filmic is analog film. One difference between analog film and digital sensors is the way they react to overexposure. Digital sensors have a clipping threshold above which everything is considered white: they can’t distinguish between pixels slightly above the threshold and pixels grossly overexposed. Analog film respond differently: contrast is reduced progressively as the image is overexposed, without this threshold effect. This allows analog films to render a scene with a high dynamic range on a medium with a lower dynamic range, while keeping contrast and saturation in the midtones. Similar effect can be obtained in the digital world by applying an S-shaped curve to the image, as long as the highlights are not clipped. With the tone curve module, one can draw a curve like this one: The second thing filmic does is to apply such curve, but instead of providing the curve manually, the curve is computed automatically from a set of parameters. This makes it easy to balance shadows, highlights and midtones. Example image Let’s process our image with this module. Before applying filmic, we first need to disable the base curve module, and then to adjust the exposure. No pixel should be overexposed nor underexposed. In our case, we need to reduce the exposure to avoid overexposing the sky: For the automatic setting to work best, it is also advised to use the “AMaZE” mode in the demosaic module. Activating a noise reduction module coming before filmic in the pipeline (e.g. denoise (profiled)) may help, too. Logarithmic shaper The first thing displayed in the filmic module is an overview of the curve applied to the image. The curve is not editable directly, the point of the module being to compute the curve from the sliders below. To get a good starting point, filmic provides an “auto tune levels” picker. By default, it considers the whole image, and sets the three sliders above based on average luminance, brightest area and darkest area: At this point, the histogram should fill-in the full range, but no pixel should be under or overexposed. If it is not the case, you can fix it with the “safety factor” slider: pushing it to the right compresses the dynamic range (so the histogram should appear centered, with empty parts at the left and right), and conversely, pushing it to the left extends it so shadows and highlights will start clipping. The black cursor can be set by guessing the dynamic range of the image (on a contrasty enough image, this is the dynamic range of the camera, i.e. around 14 EV on a high-end camera or around 10 EV for an average compact camera). The black cursor can be set to the value of the white one minus the dynamic range. Alternatively, one can move the cursor to let the histogram fill its horizontal axis. In our case, the auto-tuner did its job properly, so we’ll keep the sliders as they are. The histogram is spread over the dynamic range of the target image. No pixel are overexposed: Now comes the magic: the “middle grey luminance” picker allows us to chose which part of the image will be considered as middle grey (50% luminance). For example, if we set it on the cheek of the dog, we get this: If we select the nose of the dog, which is much darker, we get this brighter image: Note that we’ve selected an area which is almost the darkest part of the image, so we’re really putting filmic to the test and shouldn’t hope for a great result. Still, the nose is properly exposed and the rest of the image is as good as it can be given the constraints. On the other hand, if we select a bright area in the sky, the overall exposure is lowered to get proper exposure on the sky: For all these images, the black and white points are kept, no over or underexposure. In the end, picking the grass behind the dog is probably the best option here, but it’s a matter of taste: Using the full image with the “middle grey luminance” slider is also a safe choice; this is what “auto tune levels” does. S-shaped curve Let’s now move to the second part of the module: the S-shaped curve. Basically, it will increase the contrast in the midtones (the “contrast” slider) and compress shadows and/or highlights. You may not have noticed it, but filmic has already been doing so since we activated it, as the “contrast” slider is set to 1.5 by default. If we disable the S-shaped curve (setting “contrast” to 1), we get a duller image: On the other hand, we can add more contrast than done by default: Of course, at some point increasing the contrast will result in loosing information in shadows and/or highlights. The curve at the top of the module allows you to see what information is lost: ideally the curve should not touch the top or bottom of the frame. If you get this curve, texture is lost in the blacks: In other words, either you’ve destroyed your shadows, or you are purposely clipping to get deeper blacks. The sliders below “contrast” allow you to fine-tune the curve: “latitude” gives the range of the image considered as midtone, in which contrast will be increased. “balance shadows-highlight” allows giving more room either to shadows or to highlights. The “intent” drop-down controls the interpolation between points of the curve. The default usually provides good results but can also go really wrong (e.g. produce a non-monotonic curve) when you push the parameters to their extreme. Try other modes when this happens. Increasing contrast often results in an increase of saturation in the shadows, and increase in the highlights, which can result in out-of-gamut colors. The “saturation” slider allows decreasing the saturation in the extreme shadows and highlights to avoid this. On the other hand, in highlights, darktable usually has to chose between preserving the luminance and the chrominance. By default, it preserves the luminance but the checkbox allows doing the opposite. When preserving the chrominance, resulting images are often perceptually over-saturated, and will need some extra-care later in the pipeline (e.g. set the output saturation in color balance to 75%). There’s a hidden section “destination/display”, useless for most users. Expect ugly images if you use it without reading the manual and knowing what you’re doing! Final touch and local contrast The contrast has been compressed in the sky, but we still see some texture there. If we want to increase local contrast in the sky, the local contrast module with a parametric mask on the brightest part of the image gives this: It is also possible to disable the effect of filmic using masks, e.g. excluding the highlights to avoid contrast compression there. Some feathering of the mask will usually be needed to avoid sharp edges or halos. More documentation This section gave you an overview of what’s possible with the filmic module. Obviously, you should read the darktable manual for more details. For more information (more technical details, comparison with other techniques, examples on real-life images, …), you may also read the article “Filmic, darktable and the quest of the HDR tone mapping“, by Aurélien Pierre, the creator of the module. Duplicate manager in darkroom darktable allows you to maintain several history stacks for the same image. In lighttable, using the “duplicate” button in the selected image module, one gets a duplicate of the image: the RAW file is not copied, but darktable keeps two distinct history stacks for this file. darktable 2.6 makes it easier to work with duplicates, with a new module on the left sidebar of the darkroom: First, obviously, this module being in darkroom, it allows you to deal with duplicates without leaving the darkroom. Second improvement, a short comment can now be associated to each image. Suppose we want to compare our image developed with filmic with a development using exposure fusion in the base curve one. We can start with basic exposure adjustment and keep this version for further development: Then, clicking the “create duplicate of the image with same history stack” button () yields a second duplicate on which we can apply our filmic-based processing: To get another version, we select the first one (double-click) and create another duplicate: To compare the images, a single long click on any duplicate shows this version of the image with a “fit to screen” zoom level. You may have to keep the mouse pressed until the image is re-computed to get the overview the first time, but the operation is immediate afterwards so you may click and release several times to get an instant before/after comparison. Notice that the thumbnails are only updated when you leave an image, so the thumbnail for the image being edited is usually not up to date. Revamp of the color balance module The color balance has been considerably improved. Although its name contains “color”, it is actually a much more general module. It can adjust levels pretty much like the levels module, and can now also tweak the contrast with a curve somewhat similar to the S-shaped curve of filmic. Obviously, you can also still adjust the colors to add or remove a color cast in the shadows, highlight and midtones separately. The module gains two modes to work in ProPhotoRGB mode. Also, you now have the choice between the old RGBL (Red, Green, Blue, Luma) sliders, and HSL (Hue, Saturation, Luma). Let’s play with the module on an image with multiple white balances. This is the original image, with only the basic modules activated, and base curve disabled: The snow is obviously white in the real scene, but the snow exposed to the sun reflects the sun’s light, while the one in the shadow reflects the sky’s light, much bluer. The color picker module in the left sidebar of the darkroom allows visualizing and quantifying these color casts: (The negative value for the ‘b’ channel represents the blue color) The color balance module now has color pickers to neutralize the colors. On this image, the global optimizer works rather well. After one click on “neutralize colors”, the blue cast in the shadows is reduced: Looking more carefully at the patches selected by the picker, notice that the ‘b’ value is now much closer to 0: If the global optimizer guesses wrong, it is possible to specify color patches for highlights, shadows and mid-tones (preferably in this order) separately with the corresponding color pickers, and if needed re-launch the “neutralize colors” (called “neutralize colors from patches” once you have selected these patches). Similarly, the tones can be adjusted similarly to the levels module, either with the global “optimize luma” or with individual pickers. The “master” section at the top allows adjusting the global contrast and saturation. “contrast fulcrum” and “contrast” apply a curve, centered around the fulcrum, and with a slope given by the contrast. In other words, with a positive contrast, parts of the image below the fulcrum will be darkened and parts above it will have their luminance increased: For sure, color grading is still the main intended use of color balance. For example, to get and old-style look with blue, faded shadows we can use the “shadows: lift/offset” section: set the factor to a positive value (so that the blacks aren’t fully dark), the hue to a blue color, and use the saturation slider to control the intensity of the coloring effect. This can lead to pictures like this one (image taken from a RAW edit of the Week contest): In this example, the cursors have been pushed a bit far to get a clear effect, but the module can also produce more subtle effects, especially when combined with parametric masks. See for example the “orange and teal” presets added to the module in this version for example (first image before, second image after application): Edge-aware bluring for blend masks The “blend” feature of darktable allows selecting a part of the image, called the mask, and applying the transformation of a module selectively to this part. After creating a mask (drawn, parametric), one can soften the edges of this mask with a blurring. darktable 2.6 gives more control on the way mask blurring is performed. To understand how it works, let’s look at the two main kinds of blurring. The common one is “gaussian blur”, and gives roughly the same effect as an incorrectly focused photo. In gaussian blur, the value (luma and chroma) of each pixel is spread uniformly to the neighboring pixels. The influence of a pixel decreases with the distance. In darktable, Gaussian blurring is available in the low-pass module: Another very useful kind of blurring is the bilateral filter, sometimes called “surface blurring” (because of the name of the corresponding tool in Photoshop), or edge-aware blurring. In this mode, the value of each pixel is spread to the neighboring pixels, but the influence of a pixel is also reduced when the pixels have different values. For example: A similar blurring algorithm can be applied to the mask, but this time the mask is blurred, and the image being processed serves as a blur guide. This allows doing a very rough approximation of a mask, and refining precisely with the sliders. Suppose we want to improve the color of the sky. In the color zones module, we can select the sky approximately with a drawn mask: Obviously, a Gaussian blur on this mask (i.e. the only available with darktable 2.4) only makes things worse: However, pushing the “feathering radius” slider, the mask automatically adjusts to the sky, without spreading to the mountains. The feathering reduced the opacity of the mask a little, but we can compensate this with the “mask opacity” slider. And voilà: Note that by pushing the “feathering radius” and “mask opacity” sliders, one gets a tool similar to the “magic wand” selection of GIMP, often requested by darktable users: select a few pixels inside an area to select, and let the tool select surrounding similar pixels. For example, a brush stroke inside the house: And now with feathering: Lighttable and map improvements Searching for a location from the map view was fixed: The look of the lighttable has been improved. The background text showing the image format was often unreadable because it was hidden by the picture. The state of the local copy is now displayed in the top right corner. In darktable 2.6: Previously, the same configuration was displayed like this It is possible to display the image’s metadata as a thumbnail overlay in lighttable and filmstrips: Once active, the informations are shown when hovering the mouse over the thumbnail: One can now sort images by aspect ratio (possibly after cropping within darktable): It is also possible to specify the order manually, by selecting “custom sort” and then drag-and-dropping the images to reorder them: Collections can be filtered by aspect ratio, shutter speed (exposure) and state of local copy: This allows in particular selecting by orientation: only portrait images (aspect ratio < 1) or landscape (aspect ratio > 1) or square (aspect ratio = 1). When selecting a filter to collect images, the number of images corresponding to each filter is displayed. In the example below, 13 images were taken at 1/2000 and 27 at 1/1600: It is now possible to have scrollbars in lighttable and darkroom. They are disabled by default in darkroom, but can be activated if needed from the configuration (at the bottom of the “GUI options” tab): The scrollbars appear around the central part of the interface: In lighttable, the scrollbars are the only way to move quickly within a very large collection of images. In darkroom mode, moving can be done without scrollbars by dragging the mouse on the image or by using the preview at the top left of the window, so the scrollbars are much less needed. Support for groups of images has been improved. Groups of images can be created by selecting images and clicking “group” in the selected image[s] module. Once done, the “G” button at the top of the lighttable allows switching between the “collapsed” mode where only the group head is displayed, and “expanded” mode. In collapsed mode, actions like rating (stars) and color labels are now applied to the whole group. Also, it is now possible to sort by group so that groups are kept together. The group representative is shown first, and other than grouping the order is the same as sorting by “id” (identifier). The print module has been improved: one can now choose the type of paper, and when using TurboPrint, the complete TurboPrint dialog is displayed before printing. The collect images in lighttable now has 3 modes to deal with hierarchical tags. When selecting a tag with isn’t a node leaf (i.e. a tag that has subtags), say, the “parent” tag: A normal double-click selects only the images tagged with this particular tag. The search string is set to “parent”. A control-double-click selects only the children, e.g. images tagged with “parent|child” but not “parent” only. The search string is set to “parent|%”, where “%” is a wildcard meaning “any string”. A shift-double-click selects images tagged with the tag itself or any of its subtags. The search string is set to “parent%”. Other important features Finer control on noise for profiled denoise and raw denoise New curves have been introduced to give finer control for the “wavelet” mode of profiled denoise as well as the raw denoise module. These curves allow controlling the strength of denoising frequency by frequency. In other words, you can adapt the strength of the denoising to the noise coarseness. The “all” curve allow to change the strength for all channels at the same time, while “R”, “G” and “B” curves allow changing the strength separately for red, green, and blue channels. It was already possible to denoise red, green and blue channels selectively using the “RGB red/green/blue channel” blend modes, but the new module can do this with a single instance and no blending. Let’s see an example of what can be done with the “all” curves first. First, zoom into the image to be at a 100% zoom level. At smaller zoom levels the result is an approximation, which is not always accurate. Let’s activate the denoise profiled, in wavelet mode. A strength between 0.150 and 0.3 is usually a good starting point. Here, to better see the influence of the curve, we use a strength of 0.5. Here is the image we obtain with a flat curve: Now, by lowering the strength on a specific frequency, we can obtain very different results. Here is what we obtain when lowering the strength on a quite coarse frequency: The result is not pleasing to the eyes because coarse grain noise are very disturbing. Here, we reduced the denoising strength too much. Let’s try the same test on the finest frequency: Here, we obtain an image which is much less disturbing than the last one: the fine grain noise is less distrurbing than the coarse grain one. This image is even arguably more natural than the one with a flat curve. By playing with the different frequencies, on can get better trade-offs between smoothing and detail preservation. In addition, new presets are now available for the denoise (profiled) module that exploits this curve: one for chroma noise (false colors), where the denoising is increased for fine details, as the color should not change much from one pixel to another. one for luma noise (false luminance), where the denoising is reduced on finest details and some coarse scales. It aims at providing a nice trade-off between noise and smoothing for pictures that are not too noisy (forget about extended ISO values for instance. For such pictures we have to use less automatic strategies). The chroma preset should be used on the first instance, and the luma preset on the second instance. For images that are more complicated, or if you want to get an even better trade-off, you can use the RGB curves. Indeed, the sensors usually capture R, G, and B values. Depending on the lighting on the scene, the channels can exhibit different noise characteristics: one of the channel may be more (or even much more) noisy than the other one channel may have coarser noise than another You can try to get a better denoising trade-off by denoising the channels separately, using the RGB curves and an instance of channel mixer used to visualize the channels: Once RGB channels have been denoised, you can use another instance in color blend mode to remove remaining color problems. Note that denoising RGB channels individually should be done before using an instance in color blend mode, as doing this will mix the channels and change the characteristics of noise. These explanations were all using the denoise (profiled) module as an example, but you can follow the same steps with the raw denoise module. Also note that the tip of denoising RGB channels separately while visualizing the channels using the channel mixer is also useful to set the parameters of the denoise bilateral module. A new “log” mode for unbreak input profile Similarly to the logarithmic shaper in the filmic module, the unbreak input profile module is now equipped with a logarithmic mode, with the same sliders and pickers. The difference is that unbreak input profile comes before the application of the input profile, while filmic comes later in the pipeline. Using the log mode of unbreak input profile usually results in a pale image, lacking contrast. For example, on the Mairi Troisieme image, we may get this: Getting a fade image is indeed the point: the logarithmic mode in unbreak input profile is meant to be used in conjunction with another module later in the pipeline to give more pep to the image (for example the color balance module, especially with the new features in this version). The advantage of this flow is that most of the pipeline, in particular the application of the input color profile, is done on an image that fills in the histogram properly, and without extreme values. In other words, we distinguish a technical part of the edit and an artistic part. Back to our image, the color balance module allows for example this: Note that in this workflow, it is mandatory to work in the same order as the pipeline does: trying to adjust the settings of unbreak input profile after tuning the levels and contrast with color balance is doomed to failure. In practice, the filmic module can do more or less the same, but has the advantage of having everything in a single module for a quicker edit. Ability to adjust the opacity of each stoke in spot removal The spot removal module benefited from some of the cool features of retouch. For example, it is now possible to set the opacity of the shapes individually (control+scroll). Improvement of monochrome RAW files support While it is possible to turn any RAW image into monochrome, some cameras have no color filters in front of their sensors, and produce monochrome RAW files. Previous versions of darktable allowed disabling the demosaic module for monochrome RAW. This version improves the treatment of these images further by disabling chromatic aberration correction, turn off the white balance module (if only to avoid spurious error messages), and re-enable normal processing such as auto-exposure which was disabled in previous versions. Improvement of multiple modules instance support Ability to rename module instances When using multiple instances of the same module for different purposes, it is often hard to remember which instance serves which purpose. darktable now allows giving a name to each instance to simplify this. For example, if you use two instances of denoise profile, one for chrominance noise, and one for luminance noise, you may set the name of the first one as “chroma”, and the name of the second one as “luma”. The steps for setting the name of the chroma instance are described bellow: first, click on the “multiple instances action” button click on “rename” enter the name press “enter” on your keyboard Giving a name to a module instance is not only a convenient way to remember which one does what. Read on. Copy-paste improvement One of the strength of darktable is, thanks to its non-destructive nature, the ability to replay the history of one image on another one. A history can be saved as a style, or copied from one image to another (using control-c/control-v in lighttable or darkroom, or using the history stack module in lighttable). One difficulty, though, is to decide what should happen when copy-pasting a history containing one module to a target image where the module is already used. By default, darktable overrides the existing module with the one copy-pasted. However, when the same module is used for different purpose in the source and target images, this behavior is not satisfactory. The behavior in darktable 2.6 is that when modules in the source and target images have different names, then both instances are kept. If they have the same name, then the copy-pasted one overrides the existing one. One click to apply a preset in a new instance Working with multiple instance of the same module is getting easier and easier. A common use-case is to create an instance for a given preset, for example the denoise (profiled) is often used with one instance to deal with luma noise, and another for chroma. With previous versions, this was done in several steps: 1) create a new instance, 2) apply the preset (4 clicks). It is now possible in a single step: open the “presets” menu, and use the middle button of the mouse instead of the left button to select the entry: Note that the version after 2.6 will allow a middle click to open the preset menu, so that both clicks can be done with the same button. Ratio-preserving crop in the perspective correction module The perspective correction module now allows a semi-automatic cropping preserving the original image’s format: Just drag the mouse over the image to select the portion to crop: The area is adjusted automatically to avoid including black parts in the target image. This avoids having to switch to the crop and rotate module. Usability improvements Contextual help darktable is a complex beast to master, and reading the manual for the feature you’re trying to use is often a good idea, even if you already read the full manual once. This version introduces a contextual help to help users: a “?” button is available on the top-right of the interface, next to the “preferences” button: Once clicked, the mouse turns into a question mark when hovering any element of the interface for which help is available: One click opens your browser on the corresponding section of the documentation. Module organization into tabs The distribution of modules into groups, or tabs (“basic group”, “tone group”, “color group”, “correction group” and “effects group”) is now customizable. The original distribution in darktable follows a thematic categorization, but some users prefer grouping by stages in the workflow. For example, demosaic is currently categorized in the color group because it deals with colors, but it comes very early in the pipe hence may impact almost all other modules, hence it makes sense to categorize it in the basic group. A re-categorization was proposed, but discussions between developers couldn’t reach a consensus, since changing the groups may disturb old-timers used to the legacy layout. The trade-off in darktable 2.6 is to have a customizable layout. You may change the layout manually by editing the .config/darktable/darktablerc file, or use one of the scripts provided in the source distribution of darktable: tools/iop-layout.sh to adopt the new layout, and tools/iop-layout-legacy.sh to revert to the legacy layout. Edit these scripts if needed to create your custom layout. These scripts are meant for advanced users who know how to execute a script, and may or may not work on Windows. If a consensus is reached on the best possible layout, it may be adopted in future releases of darktable so that all users can benefit from it. Note that this change only affects the GUI. Changing the distribution of modules in different groups does not affect the order in which modules are applied, which is still a fix order (from bottom to top in the GUI). Tone curve The user-interface of the tone curve has been improved in several ways. First, you can now use a log scale on the x axis, y axis, or both: This makes it easier to manipulate points close to 0, i.e. finely tweak the part of the curve affecting shadows. It is also possible to chose the algorithm used for interpolation, i.e. for computing the curve itself based on the control points edited by the user. There were already several algorithms available, but hidden to the user. For example, selecting the preset “contrast - high (linear)” was picking a cubic spline for you. For very smooth curves, the interpolation algorithm doesn’t change much on the result, but for curves using points close to each other it may make a dramatic change. For example, let’s look at the same set of control points with different interpolations. The cubic spline gives a very smooth curve, but may give a non-monotonic result, i.e. a contrast inversion on the resulting image: The centripetal spline reduces the potential for non-monotonicity: The monotonic spline, used by default, may be less smooth but avoids non-monotonicity by construction: More user-interface customizability through CSS More widgets are themable through CSS. In particular, some widgets hardcoded a light foreground and black background so it was not possible to make a clean white background theme. It is now possible to get a white background theme with, for example, the following CSS (in a file named darktable.css in darktable’s configuration directory, ~/.config/darktable/ on unix-based systems): /* White theme for darktable */ /* * Adapt the path below to the one of darktable 2.6's * darktable.css if needed. */ @import '/usr/share/darktable/darktable.css'; @define-color bg_color #eee; @define-color plugin_bg_color #aaa; @define-color fg_color #333; @define-color base_color #444; @define-color text_color #333; @define-color selected_bg_color #eee; @define-color selected_fg_color #666; @define-color tooltip_bg_color #ddd; @define-color tooltip_fg_color #eee; @define-color really_dark_bg_color #eee; @define-color darkroom_bg_color #fff; @define-color darkroom_preview_bg_color shade(@darkroom_bg_color, .8); @define-color lighttable_bg_color @darkroom_bg_color; @define-color lighttable_preview_bg_color shade(@lighttable_bg_color, .8); tooltip { border-radius: 0pt; } #iop-plugin-ui { border: 1pt solid #aaa; } The GUI will then have this aspect: Note that with such setup, images will look darker, hence the aspect of the GUI may push the user to over-expose the images. A white background is interesting for people working on images meant to be displayed on white background, though. To avoid being influenced towards over- or under-exposing pictures, a grey theme like the following is much more advisable: /* Grey theme for darktable */ /* * Adapt the path below to the one of darktable 2.6's * darktable.css if needed. */ @import '/usr/share/darktable/darktable.css'; @define-color bg_color #7F7F7F; @define-color plugin_bg_color #333; @define-color fg_color #eee; @define-color base_color #444; @define-color text_color #eee; @define-color selected_bg_color #666; @define-color selected_fg_color #eee; @define-color tooltip_bg_color #BEBEBE; @define-color tooltip_fg_color #111; @define-color really_dark_bg_color #595959; @define-color darkroom_bg_color #777777; @define-color darkroom_preview_bg_color shade(@darkroom_bg_color, .8); @define-color lighttable_bg_color @darkroom_bg_color; @define-color lighttable_preview_bg_color shade(@lighttable_bg_color, .8); tooltip { border-radius: 0pt; } #iop-plugin-ui { border: 1pt solid #707070; } Note that the thumbnails in the lighttable still use hardcoded grey colors, but they will be customizable in a future version too. Other improvements 50%, 400%, 800% and 1600% zoom level are available in darkroom mode. While most operations provided by darktable are meant to improve the overall image tone and colors, it is sometimes interesting to get a precise pixel-level view of a small part of the image. The highest zoom factor previously available (200%) was not always sufficient, especially on high-dpi screens. Note that these zoom levels are available from the menu in the preview area, but not with mouse wheel. All masks are previewed and can be adjusted before being drawn. This also applies to the liquify module’s shapes. The color picker’s behavior has been reworked. For example the picker in the exposure module wasn’t disabled when the module was disabled. This is becoming more important as more and more modules use a color picker (filmic, unbreak input profile, color balance). Import/export to other software The Adobe Lightroom importer was improved (“creator”, “rights”, “title”, “description” metadata are copied from Lightroom to darktable). A new script is provided to import collections from Capture One Pro (tools/migrate_capture_one_pro.sql in the source code of darktable). About this article This article is licensed under the terms of the Attribution 2.0 Generic (CC BY 2.0), or, at your option, the Creative Commons BY-NC-SA 3.0 License. Contributors: jpg54, Matthieu Moy, Nilvus, rawfiner. [Less]
Posted over 5 years ago by moy
In other languages: Français, Italiano. Following the tradition, darktable 2.6 was released for Christmas. 2018 has been a year of renewal for darktable, with many major features introduced by recent contributors. The announcement and release notes ... [More] for this new release can be found here: https://www.darktable.org/2018/12/darktable-260-released/. Among the new major features: A new retouch module, similar to the spot removal module with smart cloning (“heal”) and ability to act on each level of detail individually. A new filmic module, able to manage most aspects of the tone of an image in a single module. A complete rework of the color balance module, which can now be seen as a color-aware variant of levels, and can do most adjustments automatically thanks to new color picker buttons. The ability to guide the blurring of the blend mask, to select an object precisely with minimal effort. As with all darktable major release, this version changes the database format so it is not possible to downgrade to previous versions after launching darktable 2.6: don’t forget to make a backup of your database (~/.config/darktable/ directory) before doing so. Major features A new module: retouch While darktable is primarily focused on raw development, recent versions introduced features like liquify, traditionally available only in pixel-oriented editors like GIMP. One more important step in this direction is done with the new retouch module, which essentially supersedes spot removal, together with frequency-splitting editing for fine retouch. Improvements compared to spot removal The interface has a lot more buttons than spot removal, but everything you could do with the later is also possible in a similar way with retouch. Just like with spot removal, you may select a shape (circle, ellipse, path, or brush, which wasn’t available with spot removal) and click on a part of the image you want to hide. The module will clone another part of the image to hide it. Drag instead of clicking to choose the source of the clone, or adjust the controls after the fact. Many details will make your life easier than before: Seamless cloning, better results with less efforts By default, the clone uses a “seamless cloning” algorithm (borrowed from GIMP’s “heal” tool), which adapts the source to the context where it is cloned. You don’t need to clone exactly the right piece of image. Let’s take a common example: a small defect in a not-completely-uniform sky: A bad attempt to fix this with the clone tool would give: The piece of sky copied to mask the defect is a bit darker than the place where it’s copied. It’s not obvious while the controls are displayed on the image, but the final image is really bad: The same retouch with the new “heal” tool () gives this: This time, the final image is indistinguishable from a real sky without defect: Even when cloning pieces of images of totally different colors, the “heal” tool behaves surprisingly well. Let’s push the module a bit: The white patch is cloned to the blue shirt, the blue shirt to the red one, and the red one to the white one. Each time, the local contrast is kept, but the overall color and luma of the patch is adapted to fit the destination. The basic “clone” tool () is still available for the rare cases where you would want it. Fill and blur, when you don’t have anything to clone In addition to the “clone” and “heal” tools (which work only when you have a piece of image to duplicate on the spot to remove), retouch provides a “fill” tool () (fill a shape with a color) and a “blur” tool () (apply a blur to soften a part of the image tools). These tools are most useful for split-frequency editing, see below. One activation, multiple strokes: continuous add Tools can be activated once for multiple strokes. Just use Control-click on one of the point, line, ellipse or path tool (instead of a normal click), and the tool will remain active until you explicitly deactivate it. This is very convenient when fixing many spots on the same image, compared to the previous flow where one had to re-click the tool’s button for each stroke. Source patch visualization For “clone” and “heal” tools, each stroke consists in a source and a destination. With a simple click, one sets the destination and by default darktable picks an arbitrary location for the source. One can already set both source and destination with a simple mouse action by dragging from destination to source. Retouch introduces a more advanced mechanism: While moving the mouse over the image, the future destination is marked with its shape, and the source is marked with a small cross: To select a source, use Shift-click on the image. The cross is placed at the mouse location and won’t move until you select the destination, with a simple click. This is interesting combined with the permanent activation of the tool mentioned above: the source for multiple strokes will be located at the same place, relative to the destination. A variant: use Control-Shift-Click instead of Shift-Click. This also sets the source location, but this time it will remain fixed in absolute coordinate instead of relative to the destination. Split-frequency editing A common issue with photo retouching, typically for portrait, is that you want to hide spots, and sometimes reduce local contrast to make the skin appear softer, but keep the skin’s texture. A brutal blur would make the skin overly soft and will give at best an “obviously post-processed” look. Let’s take this image as an example (taken from the pixls.us PlayRaw contest “Hillbilly portrait”): A common technique for this kind of retouching is to split the image into several images corresponding to different levels of details, and then combine the images together. This is what GIMP’s wavelet decompose plugin does, for example. After splitting, one gets a blurry image corresponding to the coarse details, and one or several images containing details only. In our example, we get scales of details: And the so-called “residual” image, i.e. the image where all other levels of details have been removed: This kind of transformation is used internally by the equalizer module, which allows you to increase or decrease the importance of each level of detail in the image. While equalizer works globally on the image, retouch allows you to select the level of detail and the portion of image you want to work with. In the retouch module, this corresponds to the “wavelet decompose” part of the GUI: This part shows one rectangle per scale (fine-grained on the left, coarse-grained on the right). The dark rectangle on the left corresponds to the full image, and the white one on the right to the residual image. By default, darktable always shows the final image, but you can visualize the details scales and residual image by clicking the “display wavelet scales () button. The currently selected image appears with a red rectangle. Move the bottom slider to change the number of details scales to use. Depending on the zoom level, some details scale may be finer than your screen resolution, hence unusable. The grey line above the scales shows which scales are visible at the current zoom level. When viewing the details scales, contrast may be too weak or too strong so the module proposes a levels adjustment (which apply only on the on-screen preview, but does not impact the final image): Each of the tools presented above (heal, clone, fill, blur) is usable on any of these scales. Think of them as layers obtained from the source image, and re-combined together after retouching to obtain the final image. This is where “fill” and “blur” tools make most sense: “fill” defaults to an erase mode where the fill color is black, which corresponds to remove the details when used on details scales. One can also pick a color and fill with this color (most useful on the residual image scale). Using “blur” directly on the image usually results in clearly visible post-processing, but using it selectively on scales results in very subtle effects. Example 1: spot reduction instead of spot removal Let’s focus on the spot below the glasses. If we want to completely remove it, it’s pretty easy to do so with the “heal” tool. Now, what happens if we decide that we want to keep it, but reduce it to avoid drawing the attention. We can just remove it from the coarse detail scale (scale 6 in our example). The spot is not visible on the residual image, so removing it from the details scale is sufficient. The “heal” tool allows us to do that cleanly, but when dealing with the details scale, the “fill” and “blur” tools can also give good results. Here’s the result on scale 6 (before on the left, after on the right): The final image will be transformed as follows: Now, we may decide that the healing we did on scale 6 should also be applied on scale 5. We can redo the same thing manually, but we can also use the top slider, called “merge scale”, to automatically replicate shapes to multiple scales. Any shape created on the right hand side of this slider will be replicated on all finer scales up to the merge slider (except if the slider is completely set to 0, which means deactivate the merging). By setting the slider to 5, we apply our healing to both scales 5 and 6, and get the following: If we move the slider further to the left, the spot disappears progressively. Using the same principle, we can remove marks on the skin while preserving the hair of the beard: (Just one “heal” shape on scale 7, propagated to scale 5 using the merge slider) Example 2: playing with the skin’s texture If we want to change the texture of the skin on the cheek, we can apply a blur on a shape like this: and get the following before/after result: Obviously, this kind of retouching should be done with great care: when pushed too far, one gets an overly artificial look. When unsure, you can always get back to your retouch and use blending with an opacity lower than 100%, or change the opacity or blur radius of each shape individually. Example 3: having fun with the residual image Just for fun (do not reproduce at home, ugly images to be expected!), we can get a tattoo effect by using the clone tool on the residual image: While not really elegant, this example illustrates the “split-frequency” principle: we’ve kept the fine details from the cheek, and cloned the coarse ones in the residual image. New module: filmic The filmic module was designed to reproduce the good properties of analog film, while giving you the easy controls of digital photography. It can be used on any image as a replacement for the base curve module, and is particularly adapted for images with a high dynamic range, i.e. a large difference between brightest and darkest areas. Let’s take an example of such image (taken from the pixls.us PlayRaw contest “Backlit”): A common approach to deal with high dynamic range images is to compress the global contrast while retaining the local one. darktable has several modules able to do this: tone mapping, global tonemap, shadows and highlights, and since darktable 2.2 the exposure fusion mode in the base curve module. This contrast compression works to some extend, but results in artificial look when pushed too far. What you typically want to avoid is this (using tone mapping, contrast compression set to the maximum): The filmic module shows that another approach is possible, and usually gives more natural results. It considers pixels individually, without trying to distinguish between local and global contrast. If filmic compresses the contrast too much, it is still possible to recover local contrast with the excellent local contrast module for example. filmic is meant to be used without the base curve module (activated by default in darktable). The base curve comes very early in the pipeline and yields a contrasty image where highlights are often blown out. Recovering details lost by the base curve is difficult. On the other hand, just disabling the base curve usually results in fade images, lacking contrast and saturation. Other contrast enhancement techniques must be used to compensate for this. filmic comes later than base curve in the pipeline, and gives more control to exploit the dynamic range of the output image properly. The first thing filmic does is to apply a logarithmic curve to the image, so that the “stops” (powers of two in luminance in a linear space) are spread evenly on the histogram. A source of inspiration behind filmic is analog film. One difference between analog film and digital sensors is the way they react to overexposure. Digital sensors have a clipping threshold above which everything is considered white: they can’t distinguish between pixels slightly above the threshold and pixels grossly overexposed. Analog film respond differently: contrast is reduced progressively as the image is overexposed, without this threshold effect. This allows analog films to render a scene with a high dynamic range on a medium with a lower dynamic range, while keeping contrast and saturation in the midtones. Similar effect can be obtained in the digital world by applying an S-shaped curve to the image, as long as the highlights are not clipped. With the tone curve module, one can draw a curve like this one: The second thing filmic does is to apply such curve, but instead of providing the curve manually, the curve is computed automatically from a set of parameters. This makes it easy to balance shadows, highlights and midtones. Example image Let’s process our image with this module. Before applying filmic, we first need to disable the base curve module, and then to adjust the exposure. No pixel should be overexposed nor underexposed. In our case, we need to reduce the exposure to avoid overexposing the sky: For the automatic setting to work best, it is also advised to use the “AMaZE” mode in the demosaic module. Activating a noise reduction module coming before filmic in the pipeline (e.g. denoise (profiled)) may help, too. Logarithmic shaper The first thing displayed in the filmic module is an overview of the curve applied to the image. The curve is not editable directly, the point of the module being to compute the curve from the sliders below. To get a good starting point, filmic provides an “auto tune levels” picker. By default, it considers the whole image, and sets the three sliders above based on average luminance, brightest area and darkest area: At this point, the histogram should fill-in the full range, but no pixel should be under or overexposed. If it is not the case, you can fix it with the “safety factor” slider: pushing it to the right compresses the dynamic range (so the histogram should appear centered, with empty parts at the left and right), and conversely, pushing it to the left extends it so shadows and highlights will start clipping. The black cursor can be set by guessing the dynamic range of the image (on a contrasty enough image, this is the dynamic range of the camera, i.e. around 14 EV on a high-end camera or around 10 EV for an average compact camera). The black cursor can be set to the value of the white one minus the dynamic range. Alternatively, one can move the cursor to let the histogram fill its horizontal axis. In our case, the auto-tuner did its job properly, so we’ll keep the sliders as they are. The histogram is spread over the dynamic range of the target image. No pixel are overexposed: Now comes the magic: the “middle grey luminance” picker allows us to chose which part of the image will be considered as middle grey (50% luminance). For example, if we set it on the cheek of the dog, we get this: If we select the nose of the dog, which is much darker, we get this brighter image: Note that we’ve selected an area which is almost the darkest part of the image, so we’re really putting filmic to the test and shouldn’t hope for a great result. Still, the nose is properly exposed and the rest of the image is as good as it can be given the constraints. On the other hand, if we select a bright area in the sky, the overall exposure is lowered to get proper exposure on the sky: For all these images, the black and white points are kept, no over or underexposure. In the end, picking the grass behind the dog is probably the best option here, but it’s a matter of taste: Using the full image with the “middle grey luminance” slider is also a safe choice; this is what “auto tune levels” does. S-shaped curve Let’s now move to the second part of the module: the S-shaped curve. Basically, it will increase the contrast in the midtones (the “contrast” slider) and compress shadows and/or highlights. You may not have noticed it, but filmic has already been doing so since we activated it, as the “contrast” slider is set to 1.5 by default. If we disable the S-shaped curve (setting “contrast” to 1), we get a duller image: On the other hand, we can add more contrast than done by default: Of course, at some point increasing the contrast will result in loosing information in shadows and/or highlights. The curve at the top of the module allows you to see what information is lost: ideally the curve should not touch the top or bottom of the frame. If you get this curve, texture is lost in the blacks: In other words, either you’ve destroyed your shadows, or you are purposely clipping to get deeper blacks. The sliders below “contrast” allow you to fine-tune the curve: “latitude” gives the range of the image considered as midtone, in which contrast will be increased. “balance shadows-highlight” allows giving more room either to shadows or to highlights. The “intent” drop-down controls the interpolation between points of the curve. The default usually provides good results but can also go really wrong (e.g. produce a non-monotonic curve) when you push the parameters to their extreme. Try other modes when this happens. Increasing contrast often results in an increase of saturation in the shadows, and increase in the highlights, which can result in out-of-gamut colors. The “saturation” slider allows decreasing the saturation in the extreme shadows and highlights to avoid this. On the other hand, in highlights, darktable usually has to chose between preserving the luminance and the chrominance. By default, it preserves the luminance but the checkbox allows doing the opposite. When preserving the chrominance, resulting images are often perceptually over-saturated, and will need some extra-care later in the pipeline (e.g. set the output saturation in color balance to 75%). There’s a hidden section “destination/display”, useless for most users. Expect ugly images if you use it without reading the manual and knowing what you’re doing! Final touch and local contrast The contrast has been compressed in the sky, but we still see some texture there. If we want to increase local contrast in the sky, the local contrast module with a parametric mask on the brightest part of the image gives this: It is also possible to disable the effect of filmic using masks, e.g. excluding the highlights to avoid contrast compression there. Some feathering of the mask will usually be needed to avoid sharp edges or halos. More documentation This section gave you an overview of what’s possible with the filmic module. Obviously, you should read the darktable manual for more details. For more information (more technical details, comparison with other techniques, examples on real-life images, …), you may also read the article “Filmic, darktable and the quest of the HDR tone mapping“, by Aurélien Pierre, the creator of the module. Duplicate manager in darkroom darktable allows you to maintain several history stacks for the same image. In lighttable, using the “duplicate” button in the selected image module, one gets a duplicate of the image: the RAW file is not copied, but darktable keeps two distinct history stacks for this file. darktable 2.6 makes it easier to work with duplicates, with a new module on the left sidebar of the darkroom: First, obviously, this module being in darkroom, it allows you to deal with duplicates without leaving the darkroom. Second improvement, a short comment can now be associated to each image. Suppose we want to compare our image developed with filmic with a development using exposure fusion in the base curve one. We can start with basic exposure adjustment and keep this version for further development: Then, clicking the “create duplicate of the image with same history stack” button () yields a second duplicate on which we can apply our filmic-based processing: To get another version, we select the first one (double-click) and create another duplicate: To compare the images, a single long click on any duplicate shows this version of the image with a “fit to screen” zoom level. You may have to keep the mouse pressed until the image is re-computed to get the overview the first time, but the operation is immediate afterwards so you may click and release several times to get an instant before/after comparison. Notice that the thumbnails are only updated when you leave an image, so the thumbnail for the image being edited is usually not up to date. Revamp of the color balance module The color balance has been considerably improved. Although its name contains “color”, it is actually a much more general module. It can adjust levels pretty much like the levels module, and can now also tweak the contrast with a curve somewhat similar to the S-shaped curve of filmic. Obviously, you can also still adjust the colors to add or remove a color cast in the shadows, highlight and midtones separately. The module gains two modes to work in ProPhotoRGB mode. Also, you now have the choice between the old RGBL (Red, Green, Blue, Luma) sliders, and HSL (Hue, Saturation, Luma). Let’s play with the module on an image with multiple white balances. This is the original image, with only the basic modules activated, and base curve disabled: The snow is obviously white in the real scene, but the snow exposed to the sun reflects the sun’s light, while the one in the shadow reflects the sky’s light, much bluer. The color picker module in the left sidebar of the darkroom allows visualizing and quantifying these color casts: (The negative value for the ‘b’ channel represents the blue color) The color balance module now has color pickers to neutralize the colors. On this image, the global optimizer works rather well. After one click on “neutralize colors”, the blue cast in the shadows is reduced: Looking more carefully at the patches selected by the picker, notice that the ‘b’ value is now much closer to 0: If the global optimizer guesses wrong, it is possible to specify color patches for highlights, shadows and mid-tones (preferably in this order) separately with the corresponding color pickers, and if needed re-launch the “neutralize colors” (called “neutralize colors from patches” once you have selected these patches). Similarly, the tones can be adjusted similarly to the levels module, either with the global “optimize luma” or with individual pickers. The “master” section at the top allows adjusting the global contrast and saturation. “contrast fulcrum” and “contrast” apply a curve, centered around the fulcrum, and with a slope given by the contrast. In other words, with a positive contrast, parts of the image below the fulcrum will be darkened and parts above it will have their luminance increased: For sure, color grading is still the main intended use of color balance. For example, to get and old-style look with blue, faded shadows we can use the “shadows: lift/offset” section: set the factor to a positive value (so that the blacks aren’t fully dark), the hue to a blue color, and use the saturation slider to control the intensity of the coloring effect. This can lead to pictures like this one (image taken from a RAW edit of the Week contest): In this example, the cursors have been pushed a bit far to get a clear effect, but the module can also produce more subtle effects, especially when combined with parametric masks. See for example the “orange and teal” presets added to the module in this version for example (first image before, second image after application): Edge-aware bluring for blend masks The “blend” feature of darktable allows selecting a part of the image, called the mask, and applying the transformation of a module selectively to this part. After creating a mask (drawn, parametric), one can soften the edges of this mask with a blurring. darktable 2.6 gives more control on the way mask blurring is performed. To understand how it works, let’s look at the two main kinds of blurring. The common one is “gaussian blur”, and gives roughly the same effect as an incorrectly focused photo. In gaussian blur, the value (luma and chroma) of each pixel is spread uniformly to the neighboring pixels. The influence of a pixel decreases with the distance. In darktable, Gaussian blurring is available in the low-pass module: Another very useful kind of blurring is the bilateral filter, sometimes called “surface blurring” (because of the name of the corresponding tool in Photoshop), or edge-aware blurring. In this mode, the value of each pixel is spread to the neighboring pixels, but the influence of a pixel is also reduced when the pixels have different values. For example: A similar blurring algorithm can be applied to the mask, but this time the mask is blurred, and the image being processed serves as a blur guide. This allows doing a very rough approximation of a mask, and refining precisely with the sliders. Suppose we want to improve the color of the sky. In the color zones module, we can select the sky approximately with a drawn mask: Obviously, a Gaussian blur on this mask (i.e. the only available with darktable 2.4) only makes things worse: However, pushing the “feathering radius” slider, the mask automatically adjusts to the sky, without spreading to the mountains. The feathering reduced the opacity of the mask a little, but we can compensate this with the “mask opacity” slider. And voilà: Note that by pushing the “feathering radius” and “mask opacity” sliders, one gets a tool similar to the “magic wand” selection of GIMP, often requested by darktable users: select a few pixels inside an area to select, and let the tool select surrounding similar pixels. For example, a brush stroke inside the house: And now with feathering: Lighttable and map improvements Searching for a location from the map view was fixed: The look of the lighttable has been improved. The background text showing the image format was often unreadable because it was hidden by the picture. The state of the local copy is now displayed in the top right corner. In darktable 2.6: Previously, the same configuration was displayed like this It is possible to display the image’s metadata as a thumbnail overlay in lighttable and filmstrips: Once active, the informations are shown when hovering the mouse over the thumbnail: One can now sort images by aspect ratio (possibly after cropping within darktable): It is also possible to specify the order manually, by selecting “custom sort” and then drag-and-dropping the images to reorder them: Collections can be filtered by aspect ratio, shutter speed (exposure) and state of local copy: This allows in particular selecting by orientation: only portrait images (aspect ratio < 1) or landscape (aspect ratio > 1) or square (aspect ratio = 1). When selecting a filter to collect images, the number of images corresponding to each filter is displayed. In the example below, 13 images were taken at 1/2000 and 27 at 1/1600: It is now possible to have scrollbars in lighttable and darkroom. They are disabled by default in darkroom, but can be activated if needed from the configuration (at the bottom of the “GUI options” tab): The scrollbars appear around the central part of the interface: In lighttable, the scrollbars are the only way to move quickly within a very large collection of images. In darkroom mode, moving can be done without scrollbars by dragging the mouse on the image or by using the preview at the top left of the window, so the scrollbars are much less needed. Support for groups of images has been improved. Groups of images can be created by selecting images and clicking “group” in the selected image[s] module. Once done, the “G” button at the top of the lighttable allows switching between the “collapsed” mode where only the group head is displayed, and “expanded” mode. In collapsed mode, actions like rating (stars) and color labels are now applied to the whole group. Also, it is now possible to sort by group so that groups are kept together. The group representative is shown first, and other than grouping the order is the same as sorting by “id” (identifier). The print module has been improved: one can now choose the type of paper, and when using TurboPrint, the complete TurboPrint dialog is displayed before printing. The collect images in lighttable now has 3 modes to deal with hierarchical tags. When selecting a tag which isn’t a node leaf (i.e. a tag that has subtags), say, the “parent” tag: A normal double-click selects only the images tagged with this particular tag. The search string is set to “parent”. A control-double-click selects only the children, e.g. images tagged with “parent|child” but not “parent” only. The search string is set to “parent|%”, where “%” is a wildcard meaning “any string”. A shift-double-click selects images tagged with the tag itself or any of its subtags. The search string is set to “parent%”. Other important features Finer control on noise for profiled denoise and raw denoise New curves have been introduced to give finer control for the “wavelet” mode of profiled denoise as well as the raw denoise module. These curves allow controlling the strength of denoising frequency by frequency. In other words, you can adapt the strength of the denoising to the noise coarseness. The “all” curve allow to change the strength for all channels at the same time, while “R”, “G” and “B” curves allow changing the strength separately for red, green, and blue channels. It was already possible to denoise red, green and blue channels selectively using the “RGB red/green/blue channel” blend modes, but the new module can do this with a single instance and no blending. Let’s see an example of what can be done with the “all” curves first. First, zoom into the image to be at a 100% zoom level. At smaller zoom levels the result is an approximation, which is not always accurate. Let’s activate the denoise profiled, in wavelet mode. A strength between 0.150 and 0.3 is usually a good starting point. Here, to better see the influence of the curve, we use a strength of 0.5. Here is the image we obtain with a flat curve: Now, by lowering the strength on a specific frequency, we can obtain very different results. Here is what we obtain when lowering the strength on a quite coarse frequency: The result is not pleasing to the eyes because coarse grain noise are very disturbing. Here, we reduced the denoising strength too much. Let’s try the same test on the finest frequency: Here, we obtain an image which is much less disturbing than the last one: the fine grain noise is less distrurbing than the coarse grain one. This image is even arguably more natural than the one with a flat curve. By playing with the different frequencies, on can get better trade-offs between smoothing and detail preservation. In addition, new presets are now available for the denoise (profiled) module that exploits this curve: one for chroma noise (false colors), where the denoising is increased for fine details, as the color should not change much from one pixel to another. one for luma noise (false luminance), where the denoising is reduced on finest details and some coarse scales. It aims at providing a nice trade-off between noise and smoothing for pictures that are not too noisy (forget about extended ISO values for instance. For such pictures we have to use less automatic strategies). The chroma preset should be used on the first instance, and the luma preset on the second instance. For images that are more complicated, or if you want to get an even better trade-off, you can use the RGB curves. Indeed, the sensors usually capture R, G, and B values. Depending on the lighting on the scene, the channels can exhibit different noise characteristics: one of the channel may be more (or even much more) noisy than the other one channel may have coarser noise than another You can try to get a better denoising trade-off by denoising the channels separately, using the RGB curves and an instance of channel mixer used to visualize the channels: Once RGB channels have been denoised, you can use another instance in color blend mode to remove remaining color problems. Note that denoising RGB channels individually should be done before using an instance in color blend mode, as doing this will mix the channels and change the characteristics of noise. These explanations were all using the denoise (profiled) module as an example, but you can follow the same steps with the raw denoise module. Also note that the tip of denoising RGB channels separately while visualizing the channels using the channel mixer is also useful to set the parameters of the denoise bilateral module. A new “log” mode for unbreak input profile Similarly to the logarithmic shaper in the filmic module, the unbreak input profile module is now equipped with a logarithmic mode, with the same sliders and pickers. The difference is that unbreak input profile comes before the application of the input profile, while filmic comes later in the pipeline. Using the log mode of unbreak input profile usually results in a pale image, lacking contrast. For example, on the Mairi Troisieme image, we may get this: Getting a fade image is indeed the point: the logarithmic mode in unbreak input profile is meant to be used in conjunction with another module later in the pipeline to give more pep to the image (for example the color balance module, especially with the new features in this version). The advantage of this flow is that most of the pipeline, in particular the application of the input color profile, is done on an image that fills in the histogram properly, and without extreme values. In other words, we distinguish a technical part of the edit and an artistic part. Back to our image, the color balance module allows for example this: Note that in this workflow, it is mandatory to work in the same order as the pipeline does: trying to adjust the settings of unbreak input profile after tuning the levels and contrast with color balance is doomed to failure. In practice, the filmic module can do more or less the same, but has the advantage of having everything in a single module for a quicker edit. Ability to adjust the opacity of each stoke in spot removal The spot removal module benefited from some of the cool features of retouch. For example, it is now possible to set the opacity of the shapes individually (control+scroll). Improvement of monochrome RAW files support While it is possible to turn any RAW image into monochrome, some cameras have no color filters in front of their sensors, and produce monochrome RAW files. Previous versions of darktable allowed disabling the demosaic module for monochrome RAW. This version improves the treatment of these images further by disabling chromatic aberration correction, turn off the white balance module (if only to avoid spurious error messages), and re-enable normal processing such as auto-exposure which was disabled in previous versions. Improvement of multiple modules instance support Ability to rename module instances When using multiple instances of the same module for different purposes, it is often hard to remember which instance serves which purpose. darktable now allows giving a name to each instance to simplify this. For example, if you use two instances of denoise profile, one for chrominance noise, and one for luminance noise, you may set the name of the first one as “chroma”, and the name of the second one as “luma”. The steps for setting the name of the chroma instance are described bellow: first, click on the “multiple instances action” button click on “rename” enter the name press “enter” on your keyboard Giving a name to a module instance is not only a convenient way to remember which one does what. Read on. Copy-paste improvement One of the strength of darktable is, thanks to its non-destructive nature, the ability to replay the history of one image on another one. A history can be saved as a style, or copied from one image to another (using control-c/control-v in lighttable or darkroom, or using the history stack module in lighttable). One difficulty, though, is to decide what should happen when copy-pasting a history containing one module to a target image where the module is already used. By default, darktable overrides the existing module with the one copy-pasted. However, when the same module is used for different purpose in the source and target images, this behavior is not satisfactory. The behavior in darktable 2.6 is that when modules in the source and target images have different names, then both instances are kept. If they have the same name, then the copy-pasted one overrides the existing one. One click to apply a preset in a new instance Working with multiple instance of the same module is getting easier and easier. A common use-case is to create an instance for a given preset, for example the denoise (profiled) is often used with one instance to deal with luma noise, and another for chroma. With previous versions, this was done in several steps: 1) create a new instance, 2) apply the preset (4 clicks). It is now possible in a single step: open the “presets” menu, and use the middle button of the mouse instead of the left button to select the entry: Note that the version after 2.6 will allow a middle click to open the preset menu, so that both clicks can be done with the same button. Ratio-preserving crop in the perspective correction module The perspective correction module now allows a semi-automatic cropping preserving the original image’s format: Just drag the mouse over the image to select the portion to crop: The area is adjusted automatically to avoid including black parts in the target image. This avoids having to switch to the crop and rotate module. Usability improvements Contextual help darktable is a complex beast to master, and reading the manual for the feature you’re trying to use is often a good idea, even if you already read the full manual once. This version introduces a contextual help to help users: a “?” button is available on the top-right of the interface, next to the “preferences” button: Once clicked, the mouse turns into a question mark when hovering any element of the interface for which help is available: One click opens your browser on the corresponding section of the documentation. Module organization into tabs The distribution of modules into groups, or tabs (“basic group”, “tone group”, “color group”, “correction group” and “effects group”) is now customizable. The original distribution in darktable follows a thematic categorization, but some users prefer grouping by stages in the workflow. For example, demosaic is currently categorized in the color group because it deals with colors, but it comes very early in the pipe hence may impact almost all other modules, hence it makes sense to categorize it in the basic group. A re-categorization was proposed, but discussions between developers couldn’t reach a consensus, since changing the groups may disturb old-timers used to the legacy layout. The trade-off in darktable 2.6 is to have a customizable layout. You may change the layout manually by editing the .config/darktable/darktablerc file, or use one of the scripts provided in the source distribution of darktable: tools/iop-layout.sh to adopt the new layout, and tools/iop-layout-legacy.sh to revert to the legacy layout. Edit these scripts if needed to create your custom layout. These scripts are meant for advanced users who know how to execute a script, and may or may not work on Windows. If a consensus is reached on the best possible layout, it may be adopted in future releases of darktable so that all users can benefit from it. Note that this change only affects the GUI. Changing the distribution of modules in different groups does not affect the order in which modules are applied, which is still a fix order (from bottom to top in the GUI). Tone curve The user-interface of the tone curve has been improved in several ways. First, you can now use a log scale on the x axis, y axis, or both: This makes it easier to manipulate points close to 0, i.e. finely tweak the part of the curve affecting shadows. It is also possible to chose the algorithm used for interpolation, i.e. for computing the curve itself based on the control points edited by the user. There were already several algorithms available, but hidden to the user. For example, selecting the preset “contrast - high (linear)” was picking a cubic spline for you. For very smooth curves, the interpolation algorithm doesn’t change much on the result, but for curves using points close to each other it may make a dramatic change. For example, let’s look at the same set of control points with different interpolations. The cubic spline gives a very smooth curve, but may give a non-monotonic result, i.e. a contrast inversion on the resulting image: The centripetal spline reduces the potential for non-monotonicity: The monotonic spline, used by default, may be less smooth but avoids non-monotonicity by construction: More user-interface customizability through CSS More widgets are themable through CSS. In particular, some widgets hardcoded a light foreground and black background so it was not possible to make a clean white background theme. It is now possible to get a white background theme with, for example, the following CSS (in a file named darktable.css in darktable’s configuration directory, ~/.config/darktable/ on unix-based systems): /* White theme for darktable */ /* * Adapt the path below to the one of darktable 2.6's * darktable.css if needed. */ @import '/usr/share/darktable/darktable.css'; @define-color bg_color #eee; @define-color plugin_bg_color #aaa; @define-color fg_color #333; @define-color base_color #444; @define-color text_color #333; @define-color selected_bg_color #eee; @define-color selected_fg_color #666; @define-color tooltip_bg_color #ddd; @define-color tooltip_fg_color #eee; @define-color really_dark_bg_color #eee; @define-color darkroom_bg_color #fff; @define-color darkroom_preview_bg_color shade(@darkroom_bg_color, .8); @define-color lighttable_bg_color @darkroom_bg_color; @define-color lighttable_preview_bg_color shade(@lighttable_bg_color, .8); tooltip { border-radius: 0pt; } #iop-plugin-ui { border: 1pt solid #aaa; } The GUI will then have this aspect: Note that with such setup, images will look darker, hence the aspect of the GUI may push the user to over-expose the images. A white background is interesting for people working on images meant to be displayed on white background, though. To avoid being influenced towards over- or under-exposing pictures, a grey theme like the following is much more advisable: /* Grey theme for darktable */ /* * Adapt the path below to the one of darktable 2.6's * darktable.css if needed. */ @import '/usr/share/darktable/darktable.css'; @define-color bg_color #7F7F7F; @define-color plugin_bg_color #333; @define-color fg_color #eee; @define-color base_color #444; @define-color text_color #eee; @define-color selected_bg_color #666; @define-color selected_fg_color #eee; @define-color tooltip_bg_color #BEBEBE; @define-color tooltip_fg_color #111; @define-color really_dark_bg_color #595959; @define-color darkroom_bg_color #777777; @define-color darkroom_preview_bg_color shade(@darkroom_bg_color, .8); @define-color lighttable_bg_color @darkroom_bg_color; @define-color lighttable_preview_bg_color shade(@lighttable_bg_color, .8); tooltip { border-radius: 0pt; } #iop-plugin-ui { border: 1pt solid #707070; } Note that the thumbnails in the lighttable still use hardcoded grey colors, but they will be customizable in a future version too. Other improvements 50%, 400%, 800% and 1600% zoom level are available in darkroom mode. While most operations provided by darktable are meant to improve the overall image tone and colors, it is sometimes interesting to get a precise pixel-level view of a small part of the image. The highest zoom factor previously available (200%) was not always sufficient, especially on high-dpi screens. Note that these zoom levels are available from the menu in the preview area, but not with mouse wheel. All masks are previewed and can be adjusted before being drawn. This also applies to the liquify module’s shapes. The color picker’s behavior has been reworked. For example the picker in the exposure module wasn’t disabled when the module was disabled. This is becoming more important as more and more modules use a color picker (filmic, unbreak input profile, color balance). Import/export to other software The Adobe Lightroom importer was improved (“creator”, “rights”, “title”, “description” metadata are copied from Lightroom to darktable). A new script is provided to import collections from Capture One Pro (tools/migrate_capture_one_pro.sql in the source code of darktable). About this article This article is licensed under the terms of the Attribution 2.0 Generic (CC BY 2.0), or, at your option, the Creative Commons BY-NC-SA 3.0 License. Contributors: jpg54, Matthieu Moy, Nilvus, rawfiner. [Less]