Path to this page:
Subject: CVS commit: pkgsrc/graphics/darktable
From: Dan Cirnat
Date: 2021-11-30 14:00:15
Message id: 20211130130015.D6934FAEC@cvs.NetBSD.org
Log Message:
darktable: Update graphics/darktable to 3.6.1
# 3.6.1
Bug Fixes
Fix module expand on quick access panel when enabling/disabling module.
Fix a possible crash in color calibration module.
Fix an inconsistency between the CPU & GPU path in color calibration module.
Fix possible issue in OpenCL Bradford non-linear code in color
calibration which leads to wrong color rendering.
Fix Windows paths handling and encoding.
Fix possible issue in exiv2 when trying to write empty strings.
Fix by-scale button in export module.
Fix crash when renaming a drawn mask.
Minor UI fix in duplicate module.
Fix possible wrong rendering of the color picker
tooltip. (workaround for a possible Gtk issue).
Fix filename variable used when importing new pictures.
Fix noise profile for RICOH GR III.
Fix some memory leaks.
Camera support, compared to 3.6
Base Support
Leica C-Lux (3:2)
Nikon D6 (14bit-compressed, 14bit-uncompressed, 12bit-compressed, \
12bit-uncompressed)
Nikon Z fc (14bit-compressed, 12bit-compressed)
Sony ILCE-7RM3A
Sony ILCE-7RM4A
Noise Profiles
Ricoh GR III
# 3.6.0
The Big Ones
Full rework of the import module. The new module allows you to see
thumbnails of your images before import and makes it easier to handle
multiple import tasks. The same dialog is now used for importing
from disk, card or camera.
When importing "in-place", images that are already present in darktable
are flagged and can be automatically excluded from the import.
Importing from a local drive won't use gphoto and so should work more
reliably on Windows.
A vector-scope is added to complement the current histogram,
waveform and parade views.
A new default demosaic algorithm (RCD) has been introduced, which should provide
better quality than the current default (PPG) without the long run-times
of AMaZE. the order of the demosaic algorithms has also been adjusted for \
clarity.
Support for "dual demosaic" has also been added, allowing you to \
combine
"RCD + VNG4" and "AMaZE + VNG4" for bayer sensors, for \
xtrans sensors there is
"Markesteijn 3-pass + VNG". This allows you to use an algorithm \
better resolving
fine detail and another one delivering smoother output depending on local \
image content.
You can now create an opacity mask based on the sharpness of the image. This uses
a similar algorithm to that used in dual demosaic.
Drawn shapes are drawn on the original RAW image and then distorted through
the pixelpipe. This previously led to, for example, circles becoming ellipses
(due to lens distortion) after being placed on the image. All drawn shapes can
now be pre-visualized and moved prior to placement, with full deformation
applied. This makes the editing of masks easier fully WYSIWYG.
A new Color Balance RGB module has been added. This can be used as a one \
stop module
for all color grading work.
A new censorize module has been added. This allows you to hide parts of the \
image by adding
a blur/pixelization.
A new crop module has been added. This new module has been added late in the
pixelpipe and makes it possible to use cropped parts of the image for source \
spots
in the retouch module, for example.
A new section has been added to the color calibration module to allow you to \
calibrate
colors using a color checker chart.
The map module has been enhanced in a number of ways:
When importing a GPX the trace can be displayed.
Location can be set using polygons and directly created from information
reported by Open Street Map. As a reminder, all locations
create tags automatically for images placed into the area.
The basic adjustments module has been replaced with the quick access panel, which
can be used to group controls from multiple different modules in one place. \
Currently,
only non-graphical controls (sliders, comboboxes etc.) can be used.
Other New Features And Changes
The various lighttable modes can now be accessed via clear and descriptive icons
at the bottom of the screen. These should be easier to use than the existing \
drop-down
selection.
The export module is now also accessible on the left-hand panel of the
darkroom view.
The mix control in the contrast equalizer module is now retained as
module parameter. This means that no data is lost when using this slider and
you can always change the mix later with full precision.
The following modules have been deprecated:
The basic adjustments module has been replaced by the new quick access panel.
The vibrance module has been replaced by the vibrance control in the new \
color
balance rgb module.
The spot removal module has been replaced by the retouch module (use
this module in "clone" mode to replicate the spot removal \
functionality)
The defringe module has been replaced by a new "chromatic \
aberrations" module.
The old module has been renamed to "raw chromatic aberrations".
The RAW chromatic aberration module has been enhanced to support
multiple iterations and an option to help avoid color shifting has
been added (not activated by default).
Scene-referred workflow is now the default, though this can still be changed in
preferences.
The ESC key can be used to exit the slideshow view.
You can now Ctrl-Click on the module groups preset button to
access the manage dialog directly.
Many aspects of the GUI have been reworked or tweaked for a better user
experience (combo-box alignment, padding, histogram icons, etc.).
The color of scope views (histogram, parade, waveform) has been reworked \
using CSS.
The integrated help system now points to the new user manual which is
up-to-date for this release. Also for development builds of darktable these \
links will
go to the development version of the manual. So more links have been
added, for example, for the lighttable layout and the timeline.
As a reminder, the new documentation is available in the following location
(viewable online or in pdf and epub formats):
https://www.darktable.org/usermanual/3.6/en/
Many graphs in processing modules can now be resized with Ctrl+Scroll.
(Filmic RGB, RGB levels, levels, lowlight, colorzones, rawdenoise,
denoise profile, contrast equalizer).
A new color preservation method ("norm-preserving colorfulness") has
been added to the color calibration module.
A simplified and more precise message has been added to notify the user
when their database(s) are locked by another process.
A rational function has been added to toe/shoulder controls in Filmic RGB.
A new preference for advanced users can now be used to disable the
module warning messages. Use at your own risk.
Preliminary work toward full support for CR3 has begun. darktable's exif
support can now read CR3 files if the proper exiv2 library version
is found.
A new color science with norm preservation under de-saturation has been
added to Filmic RGB and a new scaled euclidean norm is supported.
Some changes have been made to make liquify faster when editing
nodes. Also smaller deformation stamps are now supported.
The style of module sub-sections has been tweaked so that they stand out more.
It is now possible to more easily manage overlapping masks. For example, it is
possible to change an ellipse's control points when they lie within a
larger circle or path shape.
Easier handling of the mask controls - do not require high precision
as mouse collision detection has been reworked.
The preferences, "manage module groups" and import dialogs will \
remember and
restore their size after closing. Their default size is designed to support
smaller screens and it is recommended that you resize them as appropriate.
A huge number of internal optimizations have been made throughout the code.
For example: soften, tone equalizer, drawn masks, color picker, color space \
conversions.
It is impossible to list them all
Many speed improvements have been made for the standard CPU code path by \
tuning the
OpenMP code. There are some huge gains with the new code in some
modules. We have then removed some hand-coded SSE routines as they are not
faster and are hard to maintain.
The prompt that appears when exporting in overwrite mode is now optional and \
controlled
by a security preference.
An icon has now been added to module headers to indicate whether a module \
uses a mask.
This allows you to quickly see which modules use a mask and to \
enable/disable the mask
preview by clicking on it.
A message is now shown when a camera is plugged and darktable is not able
to connect to it. The general cause is that the camera is mounted by
the OS and so is exclusively locked.
The grey darkroom loading screen is now optional. This can lead to on-screen \
artifacts
but can also be useful to quickly compare versions of an image.
Module group presets can now be auto-applied based on the image being edited.
This make it possible to create groups specifically to develop color,
monochrome, RAW or Jpeg images, for example.
Different interpolation algorithms are advised for warping and scaling modules.
A new preference has been added to allow you to select these algorithms \
independently.
RGB scene blending mode is now used for the denoise (profiled) presets.
Parametric masks are now handled better when being reset. Some parametric masks
may need to be inverted in order to be considered as a no-operation.
The GUI of the blending section has been rewored to be more compact.
Distortion is no longer computed for shapes that are outside of the current
view.
Better values are reported on toast messages when changing masks' size
and feather.
Undo has been enhanced to support duplicates. That is, the creation of
duplicates can be undone using Ctrl+Z (undo).
In the darkroom, undo now restores the mask display status along with
the module changes.
Non-matrix-based color profiles have been filtered out of the histogram profile
menu.
The timeline/filmstrip keyboard shortcut has been changed to Ctrl-B.
This is more consistent with Ctrl+Shift+B (used to toggle the bottom
panel) and avoids a conflict with sticky preview shortcut.
Some preferences have been moved to a sub-menu in the module preset
menu. This makes the global preferences lighter. This has been
done for the import, export, metadata and "collect images" modules.
Jpeg-2000 files are now decoded faster (using multiple threads).
The lighttable has been enhanced to use the embedded Jpeg preview
depending on the size of the thumbnails being displayed.
Setting such a preference to use embedded preview for small thumbnails may \
speed-up
the handling of large collections during import, for example.
Added support for removing multiple styles at once.
Added support for import/export of presets on mass.
Added collect filter presets to display images based on aspect ratio
and import date.
The variables $(EXIF_xxx) can now be used while importing pictures.
Graduated density module's control is fixed when using down-sampling.
Color zone saturation has been adjusted to avoid misleading visual illusions.
Modules can now be removed from a group by right-clicking on the group icon.
Many improvements have been made to the TIFF export module.
In the lighttable, when several images are selected, the image information module
now displays the information only if every image share the same data. If data are
different, a <various values> text is displayed.
In the export module, the last visited Piwigo album is now remembered \
between sessions.
Bug Fixes
Fix ellipse and gradient rotation angle when distortion modules are
activated. This is a GUI issue only when adding and editing shapes.
Fix white-balance from old edits where the white-balance module was
left at default values in darktable 2.6.x. For those edits we
need to recover the legacy values and not the new ones from 3.x.
Use smooth zooming to avoid thumbnails flickering.
Fix entering of exponent expression in sliders for keyboard where ^
is a dead key (this is the case in the German and French layout for
example).
The import should be a bit faster for large collections by limiting
the GUI update.
Fix various AVIF issues (set YUV range, proper use of color
primaries, set codecName, etc.)
Fix demosaic border handling and have fewer differences between the
CPU & GPU code path.
Fix use of sources in spot and retouch when distortion is used. The
source area was not always correctly distorted and was actually
giving different results depending on whether distorting modules
were present in the pipe.
In the default watermark simple-text we now preserve the spaces.
Properly check for CLUT in all ICC intents before extracting matrix.
Properly use the inverse-transform routine provided by lensfun instead
of an adhoc iterative routine in the lens correction module. This makes the code
cleaner and probably more precise.
Hide borders by default in slideshow view.
Ensure that duplicates are given the same time-stamp as the source image.
Fix creation of duplicates when the workflow default has been
changed since the base image was created. That is, an image
created with the display-referred workflow must be fully identical
when duplicated, even if the workflow default has been changed to
scene-referred.
Properly group focal lengths in the collect images filters.
Better naming of the RAW prepare module controls.
Fix live-view display scaling on large screens (especially for HiDPI
ones).
Fix migration of legacy parameters for denoise (profiled). A
copy/paste error was copying the shadow parameter as the new bias.
Fix possible loss of masks where a module is disabled just before
switching to another module.
A new module instance can now be created by right-clicking on
the multi-instance menu or on a preset. This replaces middle-click,
which is not available on all mice.
Fix zoom in the lighttable full preview to keep the mouse position.
Recover forms from legacy spot in version 1.
Fix reset in the export module so that it resets all module parameters
to their default values.
Fix HDR DNG white balance setting.
Import Lightroom metadata only if there is not already a darktable XMP for
the corresponding image.
Fix color profile handling in the overexposed module.
Fix style undo in overwrite mode.
Fix possible issue with CUPS printer margins computation when
computer is not using the English locale.
Notes
The database upgrade can be slow.
This new version modifies quite a lot the database structure by adding
foreign keys and cascade support. This will avoid dangling data in the
database and will enforce a better consistency.
Lua
API changed to 6.2.0
Password storage and retrieval - added darktable.password.save() and \
darktable.password.get() to save and retrieve passwords using the darktable \
password storage back end.
Widget naming - widgets now have a name field, making it possible to style \
them using CSS
darktable.gui.libs.visibility is fixed so that setting a lib to hidden \
(false) removes it from the user interface.
Preferences - added darktable.preferences.destroy() to remove a preference. \
Added darktable.preferences.get_keys() to return a sorted table of all of the \
preferences for both darktable and lua.
Get image from database by image id - added darktable.database.get_image() \
to retrieve an image by the image ID
darktable.gui.libs.metadata_view.destroy_info() - function added to remove \
field added by darktable.gui.libs.metadata_view.register_info() from the image \
information display. Thanks @phweyland
API change to 6.2.1 - SCRIPT BREAKING CHANGE
Event naming - add a name field to darktable.register_event() so that \
multiple events of the same type can differentiated and the desired one selected \
and accessed.
Event destruction - added darktable.destroy_event() to remove an event.
API change to 6.2.2 - SCRIPT BREAKING CHANGE
Add selection-changed to the lua events so that scripts can respond when the \
selection changes
Selection naming - add a name field to \
darktable.gui.libs.select.register_selection() so that the selection can be \
selected and manipulated after creation
Selection destruction - add darktable.gui.libs.select.destroy_selection() to \
remove an selection button from the user interface.
Selection sensitivity - add \
darktable.gui.libs.select.set_selection_sensitive() to set selection button \
sensitivity
API change to 6.2.3 - SCRIPT BREAKING CHANGE
Action naming - add a name field to \
darktable.gui.libs.image.register_action() so that the action can be selected \
and manipulated after creation
Action destruction - add darktable.gui.libs.image.destroy_action() to remove \
a lua created action button from the user interface.
Action sensitivity - add darktable.gui.libs.image.set_action_sensitive() to \
set action button sensitivity
Bugfix - Changed text_view widget to wrap lines when the text exceeds the \
width of the widget
Storage removal - add darktable.destroy_storage() to remove a storage from \
the exporter
Widget visibility - add visible member to widgets for visibility control
Change API to 7.0.0 for darktable 3.6.0 due to all of the breaking changes \
this development cycle
Changed Dependencies
RawSpeed changes
Camera support, compared to 3.4.1
Base Support
Fujifilm GFX100S (compressed)
Fujifilm X-E4 (compressed)
Fujifilm X-S10 (compressed)
Leica D-Lux 7 (4:3, 1:1, 16:9, 3:2)
Nikon Z 6_2 (14bit-compressed, 14bit-uncompressed, 12bit-compressed, \
12bit-uncompressed)
Nikon Z 7_2 (14bit-compressed, 14bit-uncompressed, 12bit-compressed, \
12bit-uncompressed)
Panasonic DC-G100 (4:3)
Panasonic DC-G110 (4:3)
Panasonic DC-GF10 (4:3)
Panasonic GF90 (4:3)
Pentax K-3 Mark III
Ricoh GR III (dng)
Sony ILCE-1
Sony ILCE-7SM3
Sony ILCE-QX1
White Balance Presets
Fujifilm GFX100S
Fujifilm X-E4
Nikon D780
Panasonic DC-FZ10002
Panasonic DMC-G8
Panasonic DMC-G80
Panasonic DMC-G81
Panasonic DMC-G85
Ricoh GR III
Samsung GX20
Noise Profiles
Canon PowerShot S110
Nikon COOLPIX P950
Nikon Z 7_2
Olympus E-M10 Mark IV
Pentax K-3 Mark III
Samsung GX10
Samsung GX20
Sony ILCE-1
Sony ILCE-7C
Custom Color matrices
Samsung GX20
Translations
Afrikaans
German
Esperanto
European Spanish
French
Hebrew
Hungarian
Italian
Dutch
Brazilian Portuguese
Russian
Slovenian
Ukrainian
# 3.4.1
New Features And Changes
Faster thumbnail generation during import.
Some minor CSS improvements.
Bug fixes
Fix color correction RGB handling and saturation normalization.
Fix smooth scrolling on MacOS.
Fix Lr metadata import, this is done only if no other XMP present.
Fix metadata export which must be done only if the corresponding
setting is activated.
Fix combo-box popup scrolling.
Properly restore collection hinter messages when needed.
Fix stars display in overlay.
Fix black point setting when dragging the histogram.
Fix help links for technical group module.
Properly discriminate cameras with the same prefix in collect module.
Fix bold rendering on Windows (for selected presets for example).
Fix support of Windows PATH to configuration and libraries when the
path name contains non ASCII characters.
Properly hide the selected tag tick when a tag is not selected anymore.
Fix search on collect module for multiple filename separated with coma.
Fix size of clipping handle when preview down-sampling is activated.
Fix metadata comment reading from exif.
Fix a case where the thumbnail could be out of synchronization with
the darkroom edit.
Never show filmstrip cursor on selected image on other views.
Skip possible null dates on the collect module which could then
crash darktable.
Fix waveform histogram rendering on MacOS.
Fix some memory leaks.
Notes
Lua
Changed Dependencies
RawSpeed changes
Camera support, compared to 3.4.0
White Balance Presets
Fujifilm X-Pro3
Fujifilm X100V
Olympus E-M10 Mark IV
Noise Profiles
Canon EOS 1500D
Canon EOS 2000D
Canon EOS Rebel T7
Canon EOS-1D X Mark II
Fujifilm X-Pro3
Fujifilm XF10
Nikon Z 5
Panasonic DC-S1R
Pentax K-1 Mark II
Sony DSC-RX10M4
Translations
Afrikaans
Czech
German
European Spanish
Finnish
French
Hebrew
Hungarian
Italian
Polish
Brazilian Portuguese
Russian
Slovak
Slovenian
# 3.4.0
The Big Ones
The user manual is made available at the same time as the
release. Note that this user manual is also the last version as a
new project has taken over the lead on this. The goal is to have
an up-to-date user manual by using a simpler format
to write text for contributors. Feedback or contributions for the
new format are welcome at https://github.com/darktable-org/dtdocs.
Current manual (multilingual):
https://darktable.gitlab.io/doc/
New manual (English only):
https://www.darktable.org/usermanual/en/
The tethering view has been reworked and is now more stable.
The histogram is back on the tethering view (it was disabled in 3.2
due to lack of time)
A new module grouping feature has been introduced. This makes the "more \
modules" module
(at the bottom right of the darkroom) obsolete and this module has therefore \
been removed.
The module grouping feature allows users to create their own groups
of modules. A number of pre-defined module groups are included as presets
(default, minimal, scene-referred, display-referred,
all modules) as well as a new default module group tab layout (technical / \
grading / effects),
which beter organizes the modules according to their purpose.
Module masking is now enhanced for use with scene-referred workflows. A new \
masking implementation
has been added, with fully unbounded blending modes, which allows parametric \
masking
either in linear RGB or in JzCzHz color spaces. A boost factor slider has been
introduced in the masking GUI so that users may set thresholding parameters \
above 100%
to mask pixels in HDR images.
JzCzHz is derived from JzAzBz, which is a perceptual color space developed
for HDR and published in 2017, with better properties than CIE Lab from 1976,
allowing near-perfect hue linearity, for a robust hue/saturation masking.
A JzCzHz hue mask will produce the same output whether it is used
before input color profile, after output color profile, or anywhere in-between,
providing an important consistency improvement over HSL masking.
A new color calibration module has been added as a full-featured hub for \
color correction.
It was first intended as a scene-referred (unbounded) rewrite of the old \
channel mixer,
allowing corrections of the color space, both for creative and corrective \
purposes.
Because channel mixing is how white balancing and chromatic adaptation
are implemented, color calibration also introduces robust chromatic \
adaptation transforms,
Bradford (from ICC v4) and CAT16 (from CIECAM 2016), improving the color \
rendition
of the white-balanced final image. The module provides a library of all standard
CIE illuminants and two machine-learning illuminant detection algorithms, using
different assumptions, for when no neutral colors can be sampled from the image,
along with the traditional color-picker for manual sampling of neutral colors.
Color calibration internally implements gamut-mapping and gamut-clipping,
which attempts to preserve the hue and luminance of pixels while avoiding \
imaginary and
out-of-gamut colors at the beginning of the pipeline, to improve the \
robustness of
color-grading modules inside the pipeline. This is made necessary because
white balancing will only push input out-of-gamut colors farther away,
and will noticeably help dealing with artifical colored lights (LED, stage \
lighting, etc.).
A new workflow setting "chromatic adaptation defaults", in \
processing preferences,
allows users to choose to keep using the white balance module
to perform the chromatic adaptation for new edits ("legacy" \
worflow, the default)
or to use the new color calibration instead ("modern" workflow).
The modern workflow still uses the usual white balance module, although
with different default settings, because input color profiles and
demosaicing need at least a rough white balancing early in the pipe.
Map view has evolved. Images close to each other are now grouped and a count of
grouped images is displayed on the bottom-left corner. This provides better \
performance
when many images need to be shown on the map. Mouse-scrolling over a group's \
thumb scrolls through
the images of the group. Groups containing selected images are highlighted \
with a white border.
The image count is displayed as a white number if all images of the group \
are exactly at the
same place, and in yellow otherwise.
Movement of images within the map has also been improved. Click to drag the \
visible image,
Shift-Click to drag the full group. A new "locations" module \
allows you to define location
areas (using elliptical or rectangular shapes). These locations are saved as \
collections visible under "
geotagging" in the collect module.
New Features And Changes
Some parts of the GUI have been reworked in this version to complete
the overhaul done in previous 3.2 release to ensure seamless
integration (color, spacing). A good example is the combo-boxes.
A focus-peaking button has been added in the lighttable and darkroom views which
complements the existing keyboard shortcut. Focus-peaking helps to visualize the
depth of field in an image by materializing the sharp edges.
Better visual feedback is provided when changing module order with drag&drop.
The wavelet algorithm has improved performance.
A new tooltip has been added to items in the darkroom history stack module \
showing
a list of the individual parameter changes at each step. This can
especially help to track down unintended adjustments in modules with
many tabs, such as filmic rgb or the parametric blending
settings. This feature was based on the under-the-hood introspection
enhancements delivered in 3.2.
Processing modules now have a new tooltip, accessible by hovering over their \
header, containing
a summary of what they do, how they work, in which color space they operate,
if they expect linear, non-linear, display-referred, or scene-referred
input and what kind of output they produce. This will help users to
build consistent pipelines when reordering modules, by exposing the
assumptions upon which each module is built, and provides an in-app
documentation summary accessible offline.
Processing modules have been updated with alias names and keyword lists \
which are used in the module group
search. As a result, a module search can be performed using the exact names,
synonyms (e.g. "dehaze" for "haze removal") or features. \
For example searching for "saturation"
will return all modules that can perform saturation adjustments.
Importing pictures from memory cards no longer uses the gPhoto API. This
should now be more stable on Windows.
Many changes have been made to modules to allow for narrower panels.
The bilateral filter (used in local contrast, for example) has been enhanced \
for better performance.
The reset button in the history module can now be used to delete the history \
stack.
Ctrl+Clicking on the 'compress history stack' will truncate the history \
without compressing it.
The export module has new options to specify the maximum output pixel \
dimensions using a
scale factor or print size (cm or inch) and DPI.
The Filmic RGB module has new graph views to help first time users.
These views include a default base curve view in linear and logarithmic scales,
consistent with the base curve module, and
a zone-system view which shows the dynamic range mapping between scene
and display grey scales. All the views have optional legends, which can be
toggled on for new users, and off for experienced users seeking more
GUI real-estate.
Changing the pixel workflow preference (none, display-referred,
scene-referred) no longer requires a restart.
The pixel-pipe cache can be fine-tuned for better performance.
The white balance module can now show colored sliders with two available
modes: 'illuminant color' or 'effect emulation'.
More compact combo-box displays have been added to some modules.
In the collect module, the collection properties drop-down is now grouped
making it easier to find the property you wish to filter on.
Read support for 16-bit (half) float TIFFs has been added.
The channel mixer has been deprecated (now replaced with the new color \
calibration module)
The global color picker has been reworked and now comes with an enhanced
GUI. The colors can now be displayed in LCh or HSL.
Any user-amended preferences (those which differ from their default values) \
are now
indicated with a small bullet.
A new preference has been added to allow you to hide built-in presets.
All modules with a list (styles, image information etc.) can be
resized with a Ctrl+Scroll action.
The history copy has been changed to include only safe
modules. Modules like "raw white/black point" and "scale \
pixels" are
no longer copied, for example. To copy such modules, use the
"copy parts..." button. Note that the unsafe modules
are not selected by default in the resulting dialog.
A new exposure independent guided filter has been introduced in the
tone equalizer module. This solves the algorithmic drawback of the
regular guided filter (edge-aware surface blurring), that tends to
over-smooth low-lights and under-smooth highlights. These filters
are used by the tone equalizer to apply contrast compression globally
on the image while not reducing the percieved acutance for local details.
Greyscale support has been added for the AVIF format.
The "screen DPI overwrite" and "speed/quality trade-off for
drawing images" preferences have been combined into a single new \
performance mode for
slow computers. In this mode the thumbs are computed with a lower DPI
and use a faster drawing algorithm.
All values in the saved preferences are checked to detect possible
data corruptions. Preferences having a min or max are validated to
ensure that they are in the appropriate range. Any preferences detected with
possible data corruption are automatically reset to their default values.
Support for AVIF >= 0.8.2 (no support for older versions).
In order to guard against overwriting styles when exporting them,
a dialog is shown to allow the user to confirm or abort the action.
Output channel sliders for parametric masking are now hidden by default.
The over-exposure warning display has been improved. As of darktable 3.2.1,
it showed pixels for which any RGB channel value was below 0.1% or above \
98%, assuming they
would clip in the final export, which is wrong. This mode triggered a lot of
false-positives that needlessly alarmed users who took them very seriously, \
but also
showed over-saturation and over-exposure issues altogether. This comes with \
4 possible modes:
"any RGB channel" is the same as the previous "over \
exposure" warning.
"luminance only" shows by default pixels darker than -12.67 EV \
(sRGB black point
in 8 bits integers encoding) or brighter than 99%
"saturation only" shows any pixel which is too saturated for its \
current luminance,
meaning it is out of gamut.
"full gamut" shows a combination of the 3 previous modes for an \
overall control check.
These modes allow the user to take appropriate measures: exposure \
adjustments to fix luminance
clipping or saturation adjustments to fix gamut clipping.
A new preset has been added to the denoise (profiled) module to remove only \
chrominance
noise using wavelets mode.
Many modules have been reworked to get better performance on CPU by
reordering and improving the OpenMP code. The modules are Liquify,
Shadows and Highlights, Filmic RGB reconstruction, RAW Denoise, Borders, \
High Pass.
The histogram has been improved for performance espcecially the log view.
Bug fixes
Fix orientation in the clipping module after having selected the freehand \
aspect ratio.
Fix compilation issue with AVIF format support.
Fix multiple small memory leaks.
Fix daylight saving time in $(EXIF_HOUR) variable.
Fix timestamp display on Windows (use UTF-8 format for timestamps).
Fix many issues on the zoomable lighttable view introduced in 3.2
with the lighttable rewrite.
Fix possible flickering while displaying thumbnails on the lighttable.
Fix liquify module interaction with nodes, line and curves when
zooming and/or down-sampling is activated.
Fix some issues with lighttable display (thumbnails) when using
HiDPI monitor.
Fix styles undo/redo in the darkroom.
Notes
The code base has been significantly simplified and refactored,
which will make future code maintenance easier.
Many more tests have been added to track regressions in image filter
outputs and ensure backwards compatibility of edits. The testsuite
counts now 77 tests and covers all the modules currently supported.
Lua
API changed to 6.1.0
Button labels can now be ellipsized
Stack widgets can now shrink and grow as panel width changes.
A Lua Scripts Installer module now runs at startup offering to
install the lua scripts unless they are already installed or the
module has been disabled by the user. The module uses the git
executable to install the scripts so it must be present on the
user's system in order for this to work.
darktble uses Lua 5.3. Lua 5.4 has been released and is now the
default Lua for some distributions. Please install the Lua 5.3
library package if your distribution is using Lua 5.4 as the
default. If you compile darktable, then you may also set
DONT_USE_INTERNAL_LUA to OFF in the DefineOptions.cmake file
to use the internal Lua.
Changed Dependencies
Due to the current GMIC version windows users may have to rename two libraries
in the darktable bin folder to get lut3d module working:libopencv_code4xx \
and libopencv_videoio4xx
should be renamed to libopencv_code440 and libopencv_videoio440 respectively.
RawSpeed changes
CR2 decompressor was rewritten, the subsampled (mRAW/sRAw) data is now \
stored in packed format,
which made interpolation beneficial for auto-vectorization by LLVM/Clang
(after fixing over-eager common code hoisting (https://reviews.llvm.org/D84108),
and teaching it to perform SROA after loop unrolling \
(https://reviews.llvm.org/D87972)),
resulting in modest performance improvements, also, 4:2:0 case was parallelized:
see darktable-org/rawspeed@5743628 /
darktable-org/rawspeed@11eccf1
Camera support, compared to 3.2.1
Base Support
Canon EOS REBEL T7i
Nikon Z 5 (14bit-compressed, 12bit-compressed)
Olympus E-M10 Mark IV
Panasonic DC-GX7MK3 (4:3)
Panasonic DC-S5 (3:2)
Sony ILCE-7C
Sony ZV-1
White Balance Presets
Canon EOS 200D
Canon EOS Kiss X9
Canon EOS Rebel SL2
Canon EOS M5
Canon EOS M6
Nikon 1 V2
Nikon Z 50
Sony ILCE-6600
Noise Profiles
Panasonic DC-G90
Panasonic DC-G91
Panasonic DC-G95
Panasonic DC-G99
Ricoh GR II
Sony NEX-5T
Translations
Afrikaans
Czech
German
European Spanish
Finnish
French
Hebrew
Hungarian
Italian
Polish
Brazilian Portuguese
Russian
Slovak
Slovenian
# 3.2.1
The Big Ones
The lighttable view has been rewritten and the filmstrip reworked, resulting \
in large performance gains, especially when using the zoomable lighttable view. \
The culling view has also been rewritten from scratch. Operations are smooth at \
any screen resolution up to 8k.
Many types of overlay are now possible on lighttable thumbs. Different overlay
information can be selected depending on the thumb size on the
lighttable. The different sizes can be set in the preferences, so we
can have no overlay at all for small thumbs and full overlay when
large thumbs are displayed. This is fully configurable.
Likewise, the tooltip information when hovering the thumbs can be
activated/deactivated based on the thumbs size.
The lighttable modules have improved user interaction: buttons are highlighted
only when the context makes the action
possible.
A complete overhaul of the CSS has been done. This gives
darktable a professional look. This continues
the goal to make every single aspect of the UI themable using CSS.
The Color Picker and
Location modules are updated to better fit into the new UI, and most of the icons
have been altered so as to be more visually balanced.
The preference dialog has been fully reviewed and reorganized to
propose a better look and require less
scrolling. It is also possible to add some CSS rules directly into
the preference dialog to tweak darktable's look as well as
to directly control the font size and DPI values from the general
preference tab.
A search field has been added to the shortcuts tab to help you find
the keyboard shortcut you want to customize.
The new negadoctor module has been added to help inverting negative
films.
A new histogram display called RGB Parade has been added. At the
same time the histogram module height can now be adjusted with
Ctrl+Scroll.
The metadata feature has been made generic internally and has new
features. The user can now select the information they want to see in the
metadata editor. This selection is automatically mirrored in the collection
and image information modules.
Along with a new "notes" field, all the fields are multiline
Ctrl+Enter, sizable Ctrl+Scroll and can be set
as private (not exported). Metadata collection filters have an entry
"not defined". At import time it is possible to choose not to import
some metadata.
Image change detection has been made more reliable. This affects the
lighttable thumbnails change symbol and history collection filter,
which is now more accurate. In darkroom navigation, this avoids the
need to recalculate an image and save the xmp file when there is no change.
A new down-sampling preference has been introduced for faster
response in darkroom. The preview is either computed at full
resolution (original, default value) or at 1/2, 1/3 or 1/4 of the
original size. This allow for better performance but can slightly
hinder the precision of the guided filter masking.
Note that this is a very delicate feature to implement. A lot of care has
been taken to ensure all is correct when using down sampling. It
touches all areas of darktable, like masks, guided filter, liquify
controls, crop & rotate, lens and perspective corrections...
Clarify the three possible workflows. Previous version had a preference
to choose whether to auto-apply the base curve module. Many questions were
raised about the intention. The new preference introduces three workflows:
display-referred : use base-curve module
scene-referred : use filmic and exposure modules (new default)
none : use neither base-curve nor filmic
Filmic RGB is updated to v4 (new color science) with integrated highlight \
recovery.
New Features And Changes
Add support for curved gradients. This can be helpful when putting a \
gradient mask on an image with a horizon line that is curved due to lens \
distortion. This can also be for artistic goals.
Add support for AVIF file format (requires libavif >= 0.7)
Collect module has two new filters: module and module order.
The former makes it possible to filter pictures based on the
activated modules in the history. The latter can be used to filter
based on the pipe version (legacy up to 2.6 releases or v3.0
starting with 3.0 release).
Tag in the Collect module keeps track of the selected images order.
When a tag is at the first level of the Collect module, any change
on the images order is kept along with the selected tag.
This allows to the user to associate a specific order with every image (tag)
collection.
A full rewrite of the pipe ordering has been done. It is now
possible to change the order of the pipe using a new module giving
access to the legacy order (order used up to 2.6 releases) and the
v3.0 order. It is also
possible to create module order presets which can be freely applied.
Note that the copy/paste of multi-instances when they have been
reordered in a way that some other modules are separating them will
not keep the same order. This was buggy in previous implementation
when the target image had also been reordered in a non-compatible
manner or using a different pipe order. In this new versions all the
multi-instances will be grouped together keeping their relative
order.
Note that this work has mainly been done to make the implementation
simpler, safer and that will require less maintenance. Also as this
implementation records the full pipe order for history and styles it
will be the ground for proposing different strategies when applying
styles.
The retouch module has a new keyboard shortcut "show or hide \
shapes" which can
be mapped to a key to quickly show or hide shapes. This is in
addition to the right-click on the image which does the same action.
The spot removal module keyboard shortcut to show-hide shapes has been renamed
to "show or hide shapes" for clarity and to be consistent with
the new keyboard shortcut in the retouch module.
It is possible to change the color of all overlays (shapes, guides,
etc), in the darkroom. This may come handy on some images where the gray
guides were barely visible. The possible colors are now: Grey,
Red, Green, Yellow, Cyan, Magenta. The colors can be cycled through
using Ctrl+O.
In the crop & rotate module, the pan movements can be restricted
vertically or horizontally using the Shift or
Control respectively.
The crop & rotate module now allows format ratios to be entered as
a float number.
When using a snapshot view, a flag has been added to clearly show the
position of the snapshot.
Improve the falloff and radius of the vignette to 200% for better
control.
Add a user-defined mode in the white-balance module to keep the last
modification of the module. It is then possible to go back to the
last modified setting after selecting another mode (spot for
example).
Dynamic keyboard shortcuts have been added for combo-boxes making it
possible to select next and previous values directly from the
keyboard.
It is now possible to adjust the color picker areas just after
having created them. This is achieved by dragging one of the four
little square handles at the corner.
Tagging improvements: Entry tag(s) creation works now without an image
selected. It allows the user to create a tag on a virtual node, to insert
a pipe | character in create tag (menu). The tree display
shows the newly created tags.
New variables $(LENS), $(EXIF_EXPOSURE_BIAS), $(VERSION_NAME) and
$(VERSION_IF_MULTI) have been defined. $(CATEGORYn(category)) works
now when multiple values on the same image (for example people) and
accepts 9 levels instead of 3 (for n).
Four new timestamps are now supported to store the import, last
export, last change and last print times. Those timestamps are also
made available in the collection module and so can be used to better
control of created collections.
Multiple image drag & drop works now on map view.
Add new preferences for keyboard shortcuts to control how
multi-instances are handled (use first or last instance, prefer the
visible, active or expanded instance). This also fixes some faults
caused when duplicating or deleting modules, and when selecting
earlier edits in the history stack.
Introspection support has been added into darktable. At this time
this does not bring new features for end-users but it has provided a
basis for significant simplification of the code. This will provide easier
integration of new modules and will ensure better interactivity
consistency between modules.
Add optional grey-scale export of TIFF for monochrome images.
Add some tooltip information for tone equalizer.
Some actions, like cropping, have been made more responsive by triggering a
fast-pipe mode where the quality of the image is less important
while dragging the controls.
Better support for HiDPI icons theme on Windows.
Add keyboard shortcut for enabling/disabling tooltips Shift+T.
Better history stack module order (more logical) for newly-imported images.
Add confirmation when deleting/updating presets.
It is possible to handle (deleting, applying or exporting) multiple
styles in the style module.
Applying a style now supports overwrite mode (it previously could
only append to the existing history stack). This makes the style module
consistent with the copy/paste of history.
Rework the sliders to make then look better (smaller and controls a
bit more visible).
Implement undo/redo for orientation changes from the lighttable.
Exported pictures size should be more conservative and stable when
flip or orientation is changed.
Using Ctrl+Click in the blending module drawn masks, it is possible to
allow continuous creation of masks.
Continuous mask creation was previously the default in the retouch and spot
removal modules. For consistency this has been changed and so now one need to use
Ctrl+Click in these modules as well for continuous mask creation.
Rejecting an image still keeps the last number of stars. So
un-rejecting it will recover the previous star rating.
Improve messages when a database lock is detected to give better
guidance about the possible solutions, checks to be done for
recovering from this situation.
Rework local laplacian implementation for a 2x speed-up.
Optimize the denoise profile module (bilateral filter) for better
performance.
Many parts of the histogram code have been reworked for better
performance.
A new universal toast message framework has been put in place. This
is used to display information about changes performed with dynamic
keyboard shortcuts when the module is collapsed.
It gives visual information about the change being made
(like exposure change or new opacity value, etc.).
The spot removal module has been enhanced to be more consistent with
the functionality of the retouch module. A new button has been added
to show/hide shapes. It also now supports continuous shape creation.
Add a new keyboard shortcut to toggle last snapshot on/off.
Add a new keyboard shortcut to show/hide lib modules.
Add a new keyboard shortcut to show/hide drawn masks for the currently \
active module
Allow for more than 500 images in tethered control which is needed
for time-lapse.
It is now possible to export masks in TIFF format.
Duplicate modules now use the new metadata field "version name" in \
place
of the title field to show a description of each image version
Fix support of legacy parameters in the basic adjustment module.
Add integrated database maintenance policy.
Bug fixes
Better performance when using masks.
Fix some displayed images issues.
Fix to allow the shift modifier to be used in dynamic keyboard shortcuts.
Fix exporting private tags issue with different settings along the path.
Fix possible freeze on liquify module.
Fix long text display when no space is available to show all the text by \
using an ellipsis.
This allows the side panels to be reduced in size without adversely
affecting the UI.
Fix some crop & rotate issues.
Smoother transition for gradient shapes.
Fix the snapshot rotation which could go 180° in a single click.
Add missing icon for the tone-mapping module.
Fix color-zone module min & max indicator in edit by area mode.
Enhance performance of blending and retouch, tone equalizer,
color-picker modules when masks are set on/off and/or removing some
unnecessary reprocessing.
Various minor fixes to the shape selection buttons in the retouch module
Fix displayed curve in denoise profile Y0U0V0 mode.
Film rolls can be ordered by folder name or id (so in chronological
order).
Fix gphoto camera detection procedure.
Fix the opacity issue (second attempt) which led to a mask having no effect.
Fix a possible infinite loop in the slideshow module.
Fix a possible out-of-bound indexing in the chromatic aberration module.
Fix issues when importing duplicates.
Fix possible race condition in tone equalizer module.
Notes
A known issue when using two computers to edit images. If the three
following options activated:
update database from selected xmp files
write sidecar file for each image
check xmp on start
then darktable will write the XMP for each images each time you switch
from one computer to another. This is due to an issue with the way
timestamps are implemented and is being fixed for 3.4.
You can follow the discussion here:
#5869
A safe option if you are in this specific case is to wait to 3.4 release
planned at the end of year.
The histogram has been deactivated on the print view because after
lot of work on the histogram code it was not possible to have it
ready for this view. The work on this part is almost ready now so
the print view will get back its histogram for the 3.4 release.
An integration test suite has been added. This will ensure better
quality and keeping old edits intact. This is an important tool for
developers to ensure a rework of a module for performance reason
for example does not change visually the image.
Lua
API changed to 6.0.0
facebook, flickr, and picasa removed from types.dt_imageio_storage_module_t.
piwigo added to type.dt_imageio_storage_module_t.
notes and version_name metadata fields added to types.dt_lua_image_t data type.
Added 4 new properties to dt_collection_properties_t,
DT_COLLECTION_PROP_IMPORT_TIMESTAMP, DT_COLLECTION_PROP_CHANGE_TIMESTAMP,
DT_COLLECTION_PROP_EXPORT_TIMESTAMP, DT_COLLECTION_PROP_PRINT_TIMESTAMP
added darktable.gui.panel_get_size and darktable.gui.panel_set_size functions
to set the width of the left or right panels and the height of the bottom panel.
fixed is_password field of entry widget to work according to the API manual, so
now when it is set to true the field is hidden.
Added function darktable.gui.views.lighttable.is_image_visible to check if \
an image
is visible in lighttable view.
Added function darktable.gui.views.lighttable.set_image_visible to force an
image to be visible in lighttable view.
Added a lua scripts installer to the default luarc
Changed Dependencies
RawSpeed changes
New Panasonic 'V6' decompressor
Huffman table implementations rewrite/cleanup
Fuji compressed raw decompressor performance improvements (-13% wall clock)
Canon CRW decoding performance improvements (-15% wall clock)
DNG LJpeg decompressor support for images with 2 components / pixel
DNG Deflate decompressor support for images with more than 1 component / pixel
Fuji compressed raw decompressor support for 16-bit raws
Continuation of ongoing collaboration with LLVM, highlights include many
little steps towards making it possible to auto-vectorize GoPro's VC5
decompressor loops, Canon S-RAW interpolator loops; more changes upcoming.
Camera support, compared to 3.0.0
Base Support
Fujifilm FinePix S1
Fujifilm GFX 100 (compressed)
Fujifilm X-Pro3 (compressed)
Fujifilm X-T200
Fujifilm X-T4 (compressed)
Fujifilm X100V (compressed)
Hasselblad H4D-50
Hasselblad X1D II 50C
Hasselblad X1DM2-50c
Nikon COOLPIX P950 (12bit-uncompressed)
Nikon D780 (12bit-compressed, 14bit-compressed)
Nikon Z 50 (12bit-compressed, 14bit-compressed)
Olympus E-M1MarkIII
Olympus E-PL10
Panasonic DC-FZ10002 (3:2)
Panasonic DC-GX880 (4:3)
Panasonic DC-S1 (3:2)
Panasonic DC-S1H (3:2)
Panasonic DC-S1R (3:2)
Panasonic DC-TZ91 (4:3)
Panasonic DC-TZ95 (4:3)
Panasonic DC-TZ96 (4:3)
Panasonic DC-ZS80 (4:3)
Panasonic DMC-FZ40 (1:1, 3:2, 16:9)
Panasonic DMC-FZ45 (1:1, 3:2, 16:9)
Sony ILCE-6100
Sony ILCE-9M2
White Balance Presets
Canon EOS 77D
Canon EOS 9000D
Fujifilm X-E3
Fujifilm X-T30
Fujifilm X-T4
Nikon COOLPIX P1000
Olympus E-M1MarkIII
Olympus E-PL6
Olympus TG-5
Panasonic DC-GH5
Panasonic DC-TZ95
Panasonic DC-TZ96
Panasonic DC-ZS80
Samsung NX1
Sony ILCE-7RM4
Noise Profiles
Canon EOS-1Ds
Fujifilm X-H1
Fujifilm X-T100
Fujifilm X-T30
Fujifilm X-T4
Nikon COOLPIX P1000
Nikon Z 50
Olympus E-510
Olympus E-M1MarkIII
Olympus E-M5 Mark III
Olympus TG-6
Panasonic DC-GF9
Panasonic DC-GX800
Panasonic DC-GX850
Panasonic DC-GH5
Panasonic DC-TZ95
Panasonic DC-TZ96
Panasonic DC-ZS80
Sony DSC-RX100M6
Sony DSC-RX100M7
Sony ILCE-6600
Sony ILCE-7RM4
Sony ILCE-9
Sony ILCE-9M2
Translations
German
European Spanish
French
Hebrew
Italian
Polish
Brazilian Portuguese
Russian
Slovenian
Files: