We're proud to announce the new feature release of darktable, 5.8.0!
The github release is here: https://github.com/darktable-org/darktable/releases/tag/release-5.8.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.8.0.tar.xz
darktable-5.8.0.tar.xz
$ sha256sum darktable-5.8.0-x86_64.AppImage
Darktable-5.8.0-x86_64.AppImage
$ sha256sum darktable-5.8.0-aarch64.AppImage
Darktable-5.8.0-aarch64.AppImage
$ sha256sum darktable-5.8.0-x86_64.dmg
darktable-5.8.0-x86_64.dmg
$ sha256sum darktable-5.8.0-arm64.dmg
darktable-5.8.0-arm64.dmg
$ sha256sum darktable-5.8.0-win64.exe
darktable-5.8.0-win64.exe
$ sha256sum darktable-5.8.0-woa64.exe
darktable-5.8.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.6:
- ??? commits to darktable+rawspeed
- ??? pull requests handled
- ??? issues closed
Please note that the darktable documentation is not currently complete for release 5.8 and contributions are greatly appreciated. Please see the project documentation for more information on how to contribute.
The following is a summary of the main features added to darktable 5.8. Please see the user manual for more details of the individual changes (where available).
-
A new tone mapper for analog film simulation based on the spektrafilm project by Andrea Volpato. The module models the physical photographic process from film exposure and development through optical printing and scanning, rather than applying a conventional mathematical tone curve. It reproduces the characteristic tonal and color response resulting from these stages, including the compression of highlights and shadows and the gradual color changes that occur as film reaches its exposure limits. The simulation also includes film grain, halation, and diffusion to reproduce characteristic properties of analog film and optical printing.
-
Automatic alignment of exposure brackets in "merge HDR" function, removing ghosting and softness caused by handheld or shaky-tripod brackets. Enabled by default in builds with OpenCV, and tunable under preferences > processing > HDR alignment.
-
An MCP server for darktable. The new darktable-mcp binary, a headless sibling to darktable-cli, lets an AI agent drive the raw pipeline over the Model Context Protocol: list modules and inspect their parameter schemas, develop an image through a given module stack and get back a preview or per-channel statistics, and read history, styles and metadata from the library. Parameters are addressed by name through darktable's own introspection rather than by fixed offsets, so a stack stays valid across module versions, and renders run on a throwaway duplicate so the source image is never modified.
-
Printing for Windows has been introduced. This activates the print view with feature parity for what Linux and MacOS users have had. Printing should work on all currently supported versions of Windows, leveraging the XPS Print API. On the first print the print settings dialog will open so that the user can confirm settings not exposed in the darktable UI.
-
New module saturation curve: remaps saturation and brilliance via two independent curves plotted against each pixel's own perceptually normalized saturation (darktable UCS or JzAzBz): a scene-referred alternative to colorzones' chroma-vs-chroma curve, with input normalized to the local gamut boundary.
-
New module contrast and texture. Scene-referred control over local contrast and the general contrast of the image. Useful for adjusting clarity, finer textures, and managing high dynamic range images with control over highlights and shadows. Uses edge aware and exposure invariant guided filters for its processing.
-
The code has received a large set of changes in preparation of the Gtk4 migration.
- The code for handling popover menus has been changed.
-
Checkboxes are now Bauhaus widgets and are reset to default values when e.g. a tab or a module is reset.
-
Mask nodes close or outside the image boundaries are now editable. When "edit shapes on canvas" is enabled, the node editing area is extended beyond the image borders to allow editing of these nodes.
-
In color assessment mode, when the image is zoomed in show a dashed line on the sides of the white border where the image extends beyond the current view (horizontally or vertically).
-
Added support for XMP drag&drop directly in the darkroom. Single XMPs can be used to create duplicates or replace the current edit. Multiple XMPs create one duplicate per file.
-
Lighttable footer star ratings are now individual CSS-targetable buttons (instead of a single drawing area), so spacing and sizing can be themed. The rating filter reuses the same star paoint helper.
-
In the borders (framing) module, disable frame line controls when the border settings would prevent the frame line from being visible.
-
Added an interactive editing mode allowing users to correct a color by selecting it directly on the photo with the mouse wheel, just as was already possible with the "tone equalizer" module.
-
Grey theme: The filmstrip is now slightly darker to improve visual distinction between unselected/selected images.
-
Neural restore now takes a full output path per task instead of an output folder, so the output file name and its suffix can be chosen. The extension still comes from the task.
-
Some safety checks when switching to the quick access panel were added.
-
On the color equalizer module a new collapside section with the color sliders has been added.
-
The list of color checker charts in the color calibration module now has one entry for the Datacolor SpyderCheckr 24 and one for the SpyderCheckr 48. As far as we know, there never was a separate 2018 version of these charts.
-
Added a "copy to clipboard" export storage, which places the exported images on the system clipboard.
-
The lens correction module now warns when it applies Lensfun vignetting correction to a Panasonic RW2 or Olympus ORF file shot with the camera's shading compensation on, which can overcorrect the corners.
-
Replaced quadratic XMP history writes with a linear algorithm.
-
Don't invalidate the pixelpipe cache on every commit when a raster mask is used.
-
Don't calculate unused rastermasks while exporting.
-
Speed up editing an image that uses a detail mask. Every history change used to discard the cached output of every module from demosaic onwards, so adjusting a mask or toggling the mask overlay recomputed most of the pipeline each time.
-
Reduced memory requirements of the mask feathering guided filter
-
Separated the demosaicer's crop-and-scale step into a new hidden module to improve cache efficiency and UI responsiveness.
-
Add a OpenCL code path to tone equalizer which gives around 6-20x faster processing times in comparison to CPU code path, depending on CPU & GPU.
-
Hovering over and dragging nodes of long drawn brush strokes and paths is much faster, as the mask overlay is no longer redrawn on every mouse move and long outlines are drawn with far fewer points.
-
PNG exports using a PQ output color profile now include content light level metadata (MaxCLL and MaxFALL) for HDR tone mapping.
-
A new
.dtdatasidecar next to the XMP holds per-pixel edit data such as raster masks. It is only created for images that use such data, and only when sidecar writing is enabled; most images never get one. It follows the image when it is moved, renamed, duplicated or deleted. -
HEIF exports using a PQ output color profile now include HDR10 content light level metadata (MaxCLL and MaxFALL).
-
AVIF exports using a PQ output color profile now include HDR10 content light level metadata (MaxCLL and MaxFALL) when built with libavif 1.0.0 or newer.
-
The external raster masks module imports its mask into the image's
.dtdatasidecar instead of referencing a file in a root folder. Each instance holds one imported mask. Existing edits that point at a folder keep working, and the folder chooser remains available when sidecar writing is set to "never". -
Added a new collection filter for the original image dimensions.
-
Support for Canon's Highlight Tone Priority.
-
AI models can now be installed from additional repositories. Models installed this way remember where they came from and are included in the update check.
-
Added a preference to disable automatic AI model update checks, with a manual check button for when it is off.
-
Added a compression option for the TIFF files written by neural restore denoise and upscale, matching the TIFF export module.
-
Model packages can now declare their ONNX Runtime graph optimization level, so models that misbehave under aggressive optimization no longer need workarounds in feature code.
-
Added support for DNG files providing a forward matrix. These files will have an additonal "DNG forward matrix" profile in colorin module, selectable manually. The existing "embedded matrix" profile remains the default for fresh imports and reloading defaults.
-
The highlights module will be disabled automatically when a raw image with a clean history is opended in darkroom the first time and the opposed algorithm did not find clipped photosites.
-
Panasonic RW2 files now offer embedded lens distortion correction, covering built-in and Lumix-branded lenses that lensfun has no profile for.
-
Printer (paper) profiled print jobs will remain 16 bit through the full print pipeline.
-
When installing development versions of darktable (snapshots, self compiled etc.) the Windows installer now allows to setup a custom configuration-directory and custom shortcut-name, useful for multiple parallel darktable installations.
-
Added a control in the bottom panel of the lighttable to reset the star rating of images.
-
pixelpipe dump files requested via cli switches are now written in ppm or pgm format.
-
The OpenCL configs had a bump to v7 and were simplified for user edits. For a device "XXXX" we now have 3 configs: cldevice_v7_XXXX=events:on asyncmode:off device:on unifraction: 0.250 For events, asyncmode and device it can be on/off. (enable a disabled device (marked as device:off) by editing to device:on) The unifraction is a float and can be chosen by the user in the 0.02-0.5 range cldevice_v7_XXXX_id0=headroom: 600 You can modify the headroom if "tunehead" is available cldevice_v7_XXXX_nocl= List of modules that will not process it's OpenCL code. OpenCL fast/default kernels are cached at different locations.
-
The aspect ratio chosen on the camera is now applied as a crop when the raw was left uncropped, so a frame shot at 1:1 or 16:9 opens framed as intended while the full sensor area stays available to reframe within. Read from Canon and Olympus raws.
-
Export filename patterns gained
$(CATEGORY_EACH[n,category]), which yields one path per matching tag instead of a single comma-joined value. Referencing several levels of the same category walks each tag's path, so an image tagged for several people can be exported once into each person's folder rather than into one "John,Jane" folder. -
Import filename patterns gained
$(CONFLICT[n]), a counter that is empty unless the file name is already taken, so burst shots named by capture time no longer clash. -
Added
--print-pathsand--print-paths-as-flagsto darktable and darktable-cli. These print the resolved configdir, cachedir, tmpdir, datadir, moduledir, localedir and library paths for the current install (honoring path overrides), then exit. The-as-flagsform emits a single line of--flag valuepairs ready to splice into another invocation.
-
Do not convert the pipe input in place for blending, which may result in a corrputed buffer.
-
Fixed an OpenCL bug causing Lab colorspace overlays showing as solid colors.
-
Fixed a trashing error dialog when deleting a virgin duplicate of an image while sidecar creation is set to "after edit".
-
Fixed color harmonizer's auto-detect harmony applying the hue histogram of the previously viewed image after switching images in the darkroom.
-
Entering the darkroom no longer expands one instance of a module while a different instance of it holds the focus. The instance that gets the focus is now the one that is expanded.
-
Clarified multi-image rating toasts for un-reject and for mixed upgrade/downgrade results across the selection.
-
Fix blank module instance names when going back in darkroom action history.
-
Do not override library edit history from XMP sidecar file when using darktable-cli with a library file.
-
Fixed collection module not updated properly on preset load.
-
Fixed a crash at the end of neural restore's raw denoise on certain sensor sizes, where blending the tile seams wrote past the edge of the image.
-
Fixed an empty Media Type dropdown in the Print module for Canon printers whose drivers use the
CNIJMediaTypeoption instead of the standardMediaTypeoption. -
Fixed lighttable bottom-panel star rating and color label toggles not responding on repeated clicks.
-
Fixed the feather on dense drawn path masks rendering stripes, phantom arcs and crossing lines.
-
Fixed the feather dipping inside the shape on paths with narrow spikes.
-
Fixed AI segmentation masks being offset by up to several pixels from the object they were generated for.
-
Fixed the AI raw denoise preview showing identical before and after images on 4BAYER (CYGM/RGBE) raws, which now shows a warning.
-
Fixed auto-applied denoise presets running a second time on images produced by AI raw denoise.
-
Fixed paths and nodes occasionally snapping to the top left corner during move operations.
-
Fixed crash when navigating images in the darkroom with an image pinned in the 2nd window.
-
Fixed darkroom watermark issues related to tag & metadata changes.
-
Fixed refinements to forwarded raster masks being ignored along the OpenCL path.
-
Compute JzAzBz's Az and Bz without cancellation so that results computed by the CPU and OpenCL paths do not diverge.
-
Fixed mask-only edits not causing thumbnail refreshes and XMP updates (when enabled).
-
Fixed zoom position moving around when switching between images.
-
A path that grows past the border of the image is no longer clipped.
-
Fixed broken dragging in sliders' precise-entry mode in GTK3.
-
Fixed the feather of a drawn path being lost when the shape was resized with the scroll wheel.
-
Fixed numeric error in the framing module (borders) causing the frame line to be off-center for certain border sizes.
-
Fixed a crash or hang on Windows when checking a faulty custom ONNX Runtime library.
-
The "condensed panels' controls" preference now also condenses the sliders and comboboxes themselves, instead of only shrinking their font.
-
Fixed a small memory leak each time a history stack was pasted onto the image open in darkroom.
-
Fixed Windows paths losing their backslashes in export and import patterns, which sent files to the wrong location.
-
Fixed wrong output or a crash from an export pattern containing an unclosed variable substitution, such as "$(FILE_NAME/foo".
-
Fixed corrupted output or a crash when an AI model returns more data than darktable reserved for it, affecting object masks and Lua models.
-
Fixed snapshots being applied onto the original image instead of the current image.
-
Fixed a crash when importing a style whose module order is empty. The malformed order is now ignored and the style keeps the default one.
-
Fixed automatic exposure rendering a black image when its raw histogram was unavailable, and black or inverted images when the black level was set too high for the exposure applied.
-
Fixed exposure's area mapping blowing out the image when its target lightness was set to zero. Such a target cannot be reached, so the correction is now left alone instead.
-
Fixed a possible crash when loading an image edited with a newer version of Darktable. This scenario is not supported but we should not crash. The offending modules are now reset to use the default parameters and a message is displayed to the user.
-
Fixed auto calculation of capture radius and jumping of capture radius sliders in UI.
-
Fixed small memory leaks when expanding variables, which grew with the number of images exported or imported in one run.
-
Fixed the splash screen text jumping sideways while startup messages change, most visibly on macOS.
-
Fixed camera mutex locks before the mutexes are initialized.
-
Fixed metadata tag Xmp.xmpMM.PreservedFileName not written on camera import.
-
Fixed keyboard shortcuts in the darkroom doing nothing until the center view was clicked, after a snapshot had been taken while the snapshots module was collapsed.
-
Fixed a crash on using tag floating window after editing metadata.
-
Fixed rotate and perspective sometimes not applying its automatic crop when the rotation was changed (e.g. with a shortcut) before the module had been enabled, leaving empty corners in the image.
-
Corrected the reference colors of the Datacolor SpyderCheckr Photo in the color calibration module. Existing calibrations are not updated. Profile the chart again for a more accurate calibration.
-
Fixed the color calibration module swapping the white and middle gray reference patches on the Datacolor SpyderCheckr Photo.
-
Fixed the color calibration module not using the gray patch closest to middle gray on the Datacolor SpyderCheckr 48 and Photo.
-
Fixed a thin line of pixels along the outer edge of a gradient mask that the module's effect was applied to in reverse, most visible on gradients with a sharp transition.
-
Fixed a bug in OpenCL demosaicer leading to slighly increased chroma differences compared with CPU code.
-
Fixed XMP sidecar files not being written for images whose creator, description or copyright Exif fields (e.g. Artist, Canon OwnerName) contain non-ASCII characters such as umlauts stored by the camera in a legacy encoding. These fields are now converted to UTF-8 on import. Use "refresh EXIF" on already imported images to fix them.
-
Fixed rotate and perspective occasionally computing its automatic crop from a mismatched preview size, which could leave the crop box slightly wrong until the module was adjusted again.
-
Fixed a crash on Wayland when disconnecting a monitor.
-
Fixed raw denoise on X-Trans images giving slightly different results depending on the number of CPU threads, and occasionally wrong colors near the left or right image edge.
- API version is now 9.8.0
- Extended dt_lua_snapshot_t and added a function to remove the snapshot.
- Fixed a crash when a script took more snapshots than the snapshots
module has slots. Once all slots are in use,
take_snapshot()now takes none and says so, as the take snapshot button already refused.
- N/A
- Button images are now decoded at the display's resolution and sized to the interface font, so script icons are sharp on HiDPI screens and no longer stuck at the image's own pixel size.
-
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.
- libarchive, previously only needed for AI model downloads, is now
required for the
.dtdatasidecar
- OpenCV 4 or 5 for HDR exposure-bracket auto-alignment (only the core, imgproc and flann modules plus features2d/calib3d on OpenCV 4, or features/geometry on OpenCV 5)
- N/A
- N/A
- N/A
- 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)
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
- ???