darktable article lede image
darktable 5.6.0 released
Pascal Obry

darktable 5.6.0 released

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

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

To build from source, do not use the autogenerated tarball provided by GitHub on the release page, download our tar.xz file instead. If you’re just building for yourself without creating a package for some distribution, then using source code cloning in git is an even more convenient way.

The checksums are:

$ sha256sum darktable-5.6.0.tar.xz
157d6d3847af8afcabe78944454786f73a886e08a504b4bd6114c2065fe006e4  darktable-5.6.0.tar.xz

$ sha256sum darktable-5.6.0-x86_64.AppImage
cbad7bf4be2607e1725db156d73c799d267a79fc29a572c3136a5deb9c9be948  Darktable-5.6.0-x86_64.AppImage

$ sha256sum darktable-5.6.0-aarch64.AppImage
147943bd2eedc33c8d31eb3e6b87b591ac9ca285d00282b2655d8d19caecfca0  Darktable-5.6.0-aarch64.AppImage

$ sha256sum darktable-5.6.0-x86_64.dmg
24c83655af0d81c2f8cb78b97531a03bb6a650349b7fd49c1679080db675cbcb  darktable-5.6.0-x86_64.dmg

$ sha256sum darktable-5.6.0-arm64.dmg
49aec447e891ab481e436b4c0231fc3c8d0001aad220762ae8e765d3bda5d102  darktable-5.6.0-arm64.dmg

$ sha256sum darktable-5.6.0-win64.exe
b42989195dfff44540c0b767b407987329ca99853612304cbbf14c48d1d3f803  darktable-5.6.0-win64.exe

$ sha256sum darktable-5.6.0-woa64.exe
b7737d54d6ee007816ae0a1fad3ca3677588735e1432887a917bc55f818f5268  darktable-5.6.0-woa64.exe

When updating from the stable 5.4 series, please bear in mind that your edits will be preserved during this process, but the new library and configuration will no longer be usable with 5.4.

You are strongly advised to take a backup first.

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!

Since darktable 5.4:

  • 1561 commits to darktable+rawspeed
  • 705 pull requests handled
  • 63 issues closed

Please note that the darktable documentation is not currently complete for release 5.6 and contributions are greatly appreciated. Please see the project documentation for more information on how to contribute.

The Big Ones

The following is a summary of the main features added to darktable 5.6. Please see the user manual for more details of the individual changes (where available).

  • Added optional AI subsystem (build with -DUSE_AI=ON). AI features are disabled by default in preferences and can be enabled at runtime without restarting. When disabled, no ONNX Runtime libraries are loaded and no AI-related activity occurs. Models are downloaded from a configurable repository and managed through the AI preferences tab.

  • Added install scripts for Linux and Windows that set up GPU acceleration for the new AI features. The scripts detect the user’s GPU vendor (NVIDIA, AMD or Intel) and install the matching GPU runtime. They can be run from a local checkout or fetched and run online with a single command – see the GPU acceleration page in the user manual for details. macOS users and most Windows users do not need to run anything; GPU acceleration is already bundled.

  • Added AI object mask tool in the darkroom mask manager. Uses SAM2.1 or SegNext model for interactive object segmentation – click on an object to generate a precise mask. Supports both foreground and background prompt points with iterative refinement. The encoder runs once per image (GPU-accelerated via the AI backend when available), and the lightweight decoder produces masks interactively. Each click runs iterative refinement passes that tighten the mask, plus an optional DenseCRF refinement pass for clean, edge-aware boundaries. The generated mask can optionally be exported as a PNG for use with the external raster masks module when finer edge detail is needed than the vectorized mask provides.

  • Added neural restore module in the lighttable/darkroom sidebar covering three AI-based tasks: raw denoise, denoise, and upscale. Default models: NIND UNet (denoise), RawNIND UtNet2 (raw denoise), and RealPLKSR 2x/4x (super-resolution), all running on the ONNX backend. Additional models such as NAFNet (denoise) and BSRGAN (upscale) are available from the model repository and can be installed manually. Features include an interactive before/after split preview with area picker, a strength slider (DWT-based texture recovery for RGB denoise; linear source/denoised blend for raw denoise), batch processing with tiled inference, and automatic library re-import with image grouping and tag propagation from the source image. Raw denoise writes a DNG (CFA Bayer or LinearRaw); image denoise and upscale write a TIFF embedding the output ICC profile. GPU acceleration is inherited from the AI backend. If GPU inference fails (out of memory, unsupported operator, execution provider crash), darktable automatically retries on CPU.

  • Added colorharmonizer module that applies color harmony corrections in UCS color space, rotating hues toward a target harmony structure (complementary, split-complementary, triadic, tetradic, etc.). The saturation of target hues can be controlled, and custom-defined harmonies with an arbitrary number of anchor nodes at any angle are also supported. Options are provided to control the intensity of the effect, protect neutral colors, and apply a Gaussian filter to smooth harsh transitions. The module can be synced with the vectorscope in RYB mode, with harmony and rotation angles controllable directly from the vectorscope. Both CPU and OpenCL (GPU) implementations are provided.

  • Added support for HEIF export. User can choose lossless or lossy compression, all practically supported color depths (8/10/12 bit), all supported color subsampling options.

UI/UX Improvements

  • In the crop module, the crop aspect ratio is added to the dimensions in the crop area preview.

  • Added the ability to pin any image from the filmstrip in the second darkroom window. Images can be pinned directly from the 2nd window, via drag&drop from the filmstrip and via keyboard shortcuts. Two new actions are the added:

    • Toggle pinned state for currently developed image
    • Pin current image in second view
  • Allow switching between point/area color picker directly on canvas with a simple Ctrl+Click.

  • When moving pictures from a collection we switch to the target collection only if we did not change manually to another collection during the move and the current collection is now empty.

  • When copying pictures from a collection we switch to the target collection only if we did not change manually to another collection during the copy.

  • In Color Calibration module the calibration box is now initialized on the current bounding box. That is, if a zoom is effective the calibration box will be fully visible and won’t require to zoom out.

  • Make the slider background darker to gain some contrast making them easier to differentiate from the other labels.

  • Introduce a condensed mode for the panel’s controls widgets. This mode is off by default and can be select in miscellaneous interface preference.

  • Added a 2-up scope showing both the waveform and vectorscope. This allows for a simultaneous understanding of both the lightness and chromaticity of an image.

  • Support rendering and caching higher resolution (6K or 8K) thumbnail or full-screen preview images in lighttable view. Previously, for displays larger than a 4K, darktable would render a full-resolution preview then downscale it. These higher resolution previews also allow for less jumpy zooming in of high megapixel files.

  • Increase the resolution of the darkroom view’s preview-resolution images from 720x450 to 1440x900. This produces better data for various situations, including in scopes and the color picker.

  • Use darktable icon in desktop environment when running under Wayland on a KDE-like system. Previously the window manager would use a generic icon.

  • Use server-side decorations (SSD) for windows when the user’s window manager is capable of this, to make window decorations consistent with other applications. If SSD is not implemented (Gnome/Mutter under Wayland), use client-side decorations (CSD).

  • Added a welcome screen to help users understand and set the most relevant configuration options on the first run.

  • Added touchpad gestures to darkroom and lighttable culling layouts, including pinch zooming and two-finger panning. Smartphone-like simultaneous pinch zooming and two-finger panning are now possible on Linux and Windows. Zooming gestures are limited to 100%, additionally pressing CTRL enables zooming up to 1600%. Caution: this disables the scroll gesture for zooming on MacOS on trackpad and magic mouse. To restore the former behaviour disable touchpad gestures in preferences dialog.

  • Enabled shortcuts for some existing buttons in duplicate manager, snapshots, and AgX modules.

  • Enabled shortcuts to cycle through module groups, modules and module instances.

  • Added a configuration option to toggle the filmstrip auto-center behavior. Enabled shortcuts to toggle filmstrip auto-centering and to explicitly recenter the filmstrip on the current image.

  • The radius calculated for capture sharpening is now using only the central 60% of the image as lenses are mostly sharper here. For xtrans sensors the radius has been slightly increased as images tend to be more blurred.

  • The tone equalizer now visualizes an invalid curve (solver maths) also for old edits.

  • Add --library <path> command-line option to darktable-cli that allows specifying a library.db database file to read image processing history stacks from instead of requiring XMP sidecar files, for people who do not use XMP sidecar files.

  • Added display name to the available sort options for film rolls.

  • When creating a new workspace from the workspace dialog, settings can optionally be copied from an existing workspace as a template. The workspace-specific configuration is duplicated with paths, labels, collection history, and similar keys cleared so the new workspace keeps its own library database instead of reusing the source library. The workspace dialog allows selecting a workspace as the default for startup; if one is chosen as default, the dialog is not shown on the next launch until “allow for multiple workspaces” is enabled again in preferences (storage).

  • Use native mouse cursors throughout the UI. Cursors such as the busy spinner, hand, crosshair and resize handles now match the operating system’s look, most noticeably on macOS where the busy cursor previously appeared as an old-style wristwatch instead of the familiar spinning wheel.

  • Themes can now style expanded modules differently from collapsed ones, via a new dt_module_expanded CSS class.

Performance Improvements

  • Increased performance for OpenCL guided filter by internal tiling.

  • Increased performance of blurs module for both CPU and OpenCL code paths for large radii, which made it possible to increase Gaussian blur’s maximum radius from 128px to 256px.

  • Increased performance of overlay (composite) module and added OpenCL code path.

  • Avoid superfluous pixelpipe runs for faster darkroom processing and when selecting history entries.

  • Improvements to mask distort efficiency via incremental caching and reduced malloc/free cycles.

Other Changes

  • Added 2 apertures, f/0.95 and f/1.2, to the aperture section of the presets dialogue.

  • Added Canon Automatic Lighting Optimizer support for CR3-format images.

  • Added PNG support (8/16-bit) for external raster masks.

  • Removed Neo Intel and pocl OpenCL drivers from blacklist, the AMD-APP driver has been added as not supported by AMD for 10yrs.

  • RustiCL is the preferred OpenCL driver instead ROCm on AMD systems.

  • In the styles module, a new option has been added to hide the preview in the tooltip. Additionally, a module preference now allows you to change the preview size, with two options available: default and large.

  • Improved debugging option –dump-diff-pipe for those of you interested in OpenCL code and debugging.

  • Added the possibility to vectorize the bitmap displayed in the External Raster Mask module. The vectorized mask is added into the Mask Manager module as a path object ready to be used as any other masks.

  • Remove the (unbound by default) keyboard shortcut to cycle through each histogram mode, and within each mode to cycle through its options. This was a relic of when there were fewer scopes and they were not accessible by shortcuts.

  • Increased the limit on the number of offset days in geotagging module to correct an incorrect camera timestamps from 99 to 9999 days.

  • Added a new collection filter for image duplicates.

  • The masks in restricted edit mode are now displayed on-canvas as dashed lines to ensure proper feedback.

  • Several improvements to AgX:

    • Default hue preservation is now 60% in most presets, reducing strong hue shifts in bright highlights.
    • Default contrast has been increased and toe/shoulder power tuned to more closely match sigmoid’s defaults.
    • Added sigmoid-like presets that closely match sigmoid’s tone curve.
    • Removed the punchy presets (except for the blender-like variant, whose parameters still follow Blender’s settings).
    • Improved the toe/shoulder warning tooltips for clarity.
    • The scene-referred preset is no longer applied exclusively to HDR images.
    • Primaries selection is now visible even when “disable adjustments” is checked.
  • For non-raw images with gamma corrected data we do the initial scaling in linear mode for less artifacts.

  • Added a new option to filter images by capture month in collections and collection filters.

  • Exif tags which are added to the metadata editor are now read from the image file on import. For already imported images this can be performed by an Exif refresh.

  • The active preset name is now displayed in the header of suitable library modules (import, export). This can be turned off in the “miscellaneous” section in the preferences (“automatically update module name”).

  • A new log history viewer has been added to the bottom toolbar, providing a persistent record of all dt_control_log messages (e.g., export progress, library updates, warnings). Click the speech-bubble icon in the center-bottom-right area to open a scrollable popover showing all logged messages with timestamps, automatically deduplicating consecutive identical entries.

  • The OpenCL preferences interface and the internal handling and detection of OpenCL devices and drivers got an overhaul. Users can switch on “OpenCL fast mode” in preferences leading to slightly more differences compared to CPU output for sligtly more performance. The per-device conf settings got an update, see the docs for reference. Support of atomic OpenCL code and OpenCL 3.x is autodetected.

  • Added two HTJ2K compression options to EXR export. Since they are supported starting with libopenexr 3.4, these options will only be present in darktable if it is linked against a library version 3.4 or later.

Bug Fixes

  • Properly apply the iop-order when applying a style at export time. This also fixes the style preview when flying over styles in the style module.

  • Drawn mask fixes:

    • Masks do not shift position when crop is toggled on/off.
    • Pixel-perfect node hovering and editing up to maximum (16x) magnification.
    • Fix Bezier handle misassignment in vectorized masks causing distorted curves on complex shapes (AI object masks and external raster masks).
  • If a tag category is marked as private, all tags and subcategories under it are also treated as private.

  • Fix occasional geolocation assignment errors in darktable’s locations module involving polygon-shaped locations

  • Prefetch correctly sized thumbnails when user has display scaling enabled.

  • Honor the default configuration preference “never” for “use raw instead of jpeg from size”: for unaltered images, always generate thumbnails/previews from embedded JPEGs rather than processing the raw file. If you prefer the prior behavior, which processed the raw file rather than upscale the embedded JPEG for higher resolution thumbnails/previews, use the new configuration option “auto”.

  • In Quick Access Panel, “go to full version…” now reliably scrolls to the correct module.

  • In filmstrip, keyboard shortcuts for rating/color labels/reject now apply to the thumbnail under the cursor (including overlay elements) instead of the currently opened image.

  • Fix for usage of incorrect color profiles on secondary monitors on Windows.

  • Various fixes for visibly wrong colors after chaning a profile in colorin or colorout.

  • Fixed unexpected localization of user’s defined preset name and properly localize the module name displayed in the preset dialog.

  • Fixed a possible transient display of the crawler dialog while the splash screen is active.

  • Fixed improper mask mode displayed in the mask manager menu.

  • Fixed an issue where while creating a mask from mask manager and still in creation mode the mask was not following the mouse when moving over the darkroom. It was then not possible to place the mask at the right position.

  • Fixed an issue of style migration. A style created before a new module is introduced and integrating a specific module order was not properly handled. We now properly migrate the embedded module order to ensure all modules are described.

  • Fixed an occasional bug that dragging exposure change regions in histogram, waveform, or RGB parade scopes would adjust in the opposite of the expected direction. This occurred when the user had not yet selected a module group containing the exposure module.

  • Fixed a bug which showed an extraneous toast message in the center view when dragging in the vectorscope.

  • Fixed a wrong WB when reloading defaults after changing manually the WB. This was due to a missing reset letting the Color Calibration module starting with a wrong WB.

  • Avoid speckles when creating drawn masks using the vectorize option in the Raster File module.

  • Fixed spurious export size is reduced because of memory restrictions issue.

  • Fixed darktable on startup failing to delete left over database lockfiles for non default workspaces.

  • Fixed a rare bug which appeared when scale-pixels module was moved above the tone-mapper while applying a shift in “rotate and perspective” module.

  • Fixed white and middle-grey patches being swapped for Datacolor SpyderCheckr 48 in the Color Calibration module.

  • Fixed tone curve masks affecting areas outside of a drawn mask.

  • Fixed subtle errors in Markesteijn and VNG demosaicers.

  • All RAW space modules including demosaic allow positioning of main darkroom window with a precision of one pixel.

  • When all midi devices are disabled portmidi won’t be initialized.

  • Fixed a bug that lead to ignored or stuck shortcuts

  • Various stability fixes for OpenCL and CPU pixelpipe processing. Less differences between CPU and OpenCL processing.

  • Ensure that the counter used to disable GUI loop is handled atomically. In some very rare cases the GUI could freeze due to unbalanced setting of the counter.

  • Fixed collection range selection not working if the collection is in descending sort order.

  • Fix use-after-free bug in tagging code which caused an instant crash

  • Fixed scroll direction in rotate and perspective module: scrolling up/down now increases/decreases the selection circle size, matching how resizing drawn masks works.

Lua

API Version

  • API version is now 9.7.0

New Features

  • The lua-scripts are now included in the darktable release, making them available for all users. If the lua-scripts are already installed, they will be used instead of the included ones. The luarc file in the user configuration directory is no longer required, but it can still be used for special requirements.

    If the user does not want the scripts, then can be disabled in the Lua options section of the preferences.

  • Lua now has a global variable, darktable_gui_safe, that gets set when it is safe to install a lib. This is needed because of a startup race condition that indicates the view is lighttable before it is initialized.

  • Image metadata fields added using the Metadata Editor module are accessible as a dt_lua_image_t field with the same name as the title assigned in Metadata Editor. Trying to access a dt_lua_image_t metadata field that does not exist is a fatal error. The added metadata field is populated when the image is imported or with the image exif data is refreshed.

  • darktable.metadata.exists() has been added to the API to check if the dt_lua_image_t metadata field exists before trying to access it.

  • Added Lua AI API (darktable.ai) for scripting AI model inference. Provides tensor creation and model loading with GPU provider selection. Image I/O covers loading from a file or directly from the darktable library (with the full edit pipeline applied), raw CFA sensor data access, and DNG output with EXIF preservation. Enables custom AI workflows beyond the built-in modules – e.g. classification or experimental denoise/upscale models from community repositories.

Bug Fixes

  • force cache write after mipmap generation

New Scripts

  • contrib/select_non_existing - adds a button to the selection module to select images in the lighttable that dont have corresponding files on disk

  • contrib/selected_image_visible - adds a shortcut and an action button to make the currently selected image in lighttable visible.

  • contrib/toggle_group_view - add a shortcut and an action button to toggle between a group selected in lighttable and a view containing only the grouped images with the group expanded.

  • official/use_paired_jpg_as_mipmap - for images that don’t have a full size embedded JPG preview the JPG from a RAW+JPG pair can be copied to the mipmap cache and used as the full resolution mipmap to speed up cache generation. This is useful for Canon EOS R series cameras that don’t embed full size previews.

  • official/select_duplicates - add a shortcut and a selection button to select duplicate images

  • official/recent_bookmarks - add recently edited images to the system recently used files for quick access

  • official/select_raw_non_raw - add selection buttons to select raw or non-raw images from the lighttable

  • official/scheduler - a simple FIFO scheduler for cooperative multitasking

  • official/group_persistence - add functional tags containing group information to image groups so that they can be rebuilt if the database is lost.

  • official/select_unaltered - add a selection button to select images that have been imported but not opened in darkroom.

  • official/selection2collection - create a temporary collection from a selection. The collection is automatically forgotten when darktable exits. The user may change this in the Lua options preferences.

  • official/extract_burst_roll_images - add a selection button to select Canon burst roll images and an action button to extract the embedded images and group them with the burst roll image. Requires dnglab.

  • official/auto_straighten - automatically straighten an image loaded into darkroom using them embedded pitch and roll data. Requires exiftool

  • examples/ai_denoise - an example script demonstrating how to use the new Lua AI API to denoise a non-raw image

  • examples/ai_raw_denoise - an example script demonstrating how to use the new Lua AI API to denoise a raw image.

Other Lua changes

  • the Lua options in preferences have been reworked so that there are global preferences and preferences for each script that registers them

  • scripts_installer has been removed since the scripts are now bundled with the darktable release.

Notes

  • When exporting to AVIF, EXR, JPEG XL, or XCF, selecting specific metadata (e.g. geo-tag or creator) is not currently possible. For AVIF, EXR, JPEG XL, and XCF formats, darktable will not include any metadata fields unless the user selects all of the checkboxes in the export module’s preference options.

  • Starting with release 5.4, macOS versions older than 14.0 are no longer supported on Apple Silicon Macs, nor older than macOS 15 on Intel Macs.

Changed Dependencies

Mandatory

  • potrace 1.16 is a new requirement

Optional

  • ONNX Runtime 1.18+ for AI features

  • libarchive for AI model extraction

Camera support, compared to 5.4

Base Support

  • Canon EOS Hi
  • Fujifilm X-T30 III (compressed)
  • Hasselblad H4D-40
  • Hasselblad H6D-100c
  • Hasselblad X2D II 100C
  • Leica M Monochrom (DNG)
  • Nikon Coolpix B700 (12bit-uncompressed)
  • Nikon Coolpix P1000 (12bit-uncompressed)
  • Nikon Coolpix P1100 (12bit-uncompressed)
  • Nikon Coolpix P950 (12bit-uncompressed)
  • Nikon D2X (12bit-compressed)
  • Nikon E5000 (12bit-uncompressed)
  • Panasonic DC-GF90 (4:3)
  • Panasonic DC-TZ92 (4:3)
  • Panasonic DC-TZ93 (4:3)
  • Panasonic DC-TZ96D (4:3)
  • Panasonic DC-ZS80D (4:3)
  • Ricoh GR IV HDF (DNG)
  • Ricoh GR IV Monochrome (DNG)
  • Sony ILCE-7M5
  • Sony ILME-FX2

White Balance Presets

  • Canon EOS 90D
  • Nikon Coolpix P1100
  • Nikon D2Hs
  • Nikon Df
  • Nikon Z f
  • Ricoh GR IV
  • Ricoh GR IV HDF
  • Sony ILCE-1M2
  • Sony ILCE-7CR
  • Sony ILCE-9M2

Noise Profiles

  • Canon EOS 3000D
  • Canon EOS 4000D
  • Canon EOS Rebel T100
  • Fujifilm X-T30 II
  • Leica M9
  • Nikon Coolpix P1100
  • Nikon Df
  • Nikon Z50_2
  • Nikon Z5_2
  • Panasonic DC-S5M2
  • Pentax K-500
  • Ricoh GR IV
  • Ricoh GR IV HDF
  • Sony ILCE-7M5

Missing Compression Mode Support

  • Apple ProRAW DNGs
  • CinemaDNG lossless (Blackmagic, some DJI, etc.) and lossy (Blackmagic)
  • DNG 1.7 using JPEG XL (Adobe enhanced, Samsung Expert RAW)
  • Fujifilm lossy RAFs
  • Nikon high efficiency NEFs
  • Phase One other than IIQ L
  • Sony ARW 4.0/5.0 downsized lossless (“M” for full-frame, “S” for full-frame & APS-C)
  • Sony ARW 6.0 compressed and compressed (HQ)

Suspended Support

Support for the following cameras is suspended because no samples are available on https://raw.pixls.us:

  • Creo/Leaf Aptus 22(LF3779)/Hasselblad H1
  • Fujifilm IS-1
  • Kodak EasyShare Z980
  • Leaf Aptus-II 5(LI300059)/Mamiya 645 AFD
  • Leaf Credo 60
  • Leaf Credo 80
  • Olympus SP320
  • Phase One IQ250
  • ST Micro STV680

Translations

  • Czech
  • German
  • European Spanish
  • Finnish
  • French
  • Hungarian
  • Japanese
  • Norwegian Bokmål
  • Dutch
  • Polish
  • Brazilian Portuguese
  • Russian
  • Slovenian
  • Albanian
  • Swedish
  • Ukrainian
  • Chinese (Simplified)
  • Chinese (Traditional)
Filed under: Announcement Darktable Release
These are comments from the old website, archived as static HTML