LWN.net Logo

Raw photo manipulation with Darktable

November 16, 2011

This article was contributed by Nathan Willis

The Darktable project released the latest update to its photo editor on November 8. Version 0.9.3 is a minor update to the stable 0.9 series, but I had not spent much time with the application since the 0.7 cycle, so I took a fresh look. There are few surprises in this series; the developers continue to add features designed to enable photographers to develop creative images. As in past releases, there is particular emphasis placed on darkroom styles and techniques that hearken back to pre-digital days — which gives Darktable its own niche, but may not be what the majority of digital camera owners are looking for.

Defining Darktable

Darktable is a self-described "photography workflow application" and raw converter. Even within photography, the term workflow application means different things to different people. To some it means using a single application to perform every step from importing images from the camera, to sorting and editing them, to exporting final images for print or online publication. To others it just means the process of sorting, grading, and batch-processing images. To still others, it is little more than a catchword to draw a line between "professional" and "hobbyist" class programs.

Darktable includes camera offloading and image collection management features, so it can handle most if not all of the steps a photographer might use to turn a shooting session into a finished product (in fact, it is one of the few open source applications that can do tethered shooting using a USB-attached digital camera). Nevertheless, it places far more emphasis on the editing and creative interpretation features than on other steps of the process, which makes it feel like more of a super-powered raw editor than anything else. By comparison, Digikam has significantly more features on the collection-management front, including geolocation, facial recognition, and powerful search capabilities. Darktable will import your image metadata into an internal database, but provides only a rule-based filter to narrow down how much of your collection is visible in the "light table" view at once. Currently Exif is the only metadata format supported, while many other open source tools are now also supporting XMP.

It also provides little in the way of batch-processing, which I consider to be a key workflow feature. In other raw editors, such as Rawstudio, you can mark individual images for batch export as you edit, and when finished start the processing queue with one click. Currently in Darktable, you still need to return to the light table view, select the images you wish to export with the cursor, and use the "export selected" widget. You can work around this restriction slightly by using the tagging or star-rating features to flag the images you wish to batch process later, but that limits your ability to use tags or ratings for other purposes.

Even on fast systems, the multiple sets of image transformations required to export each photo can add up with even a small handful of high-resolution images. Being able to queue these operations for later — ideally even with distinct export parameters and destination folders — is a time saver. Darktable, like most raw converters, shows you a preview image of each correction you make in the editor, but it does not perform the full-size operations until file export time.

Still, none of that is to say that Darktable is not a capable application — it just provides more power to the image-creation pipeline than it does to other steps. But if you have a very large collection of photos to manage, you will probably prefer to use Digikam to juggle them until Darktable beefs up its suite of library-management tools.

The grand tour

[Light table]

I have not found an explicit history of the application's name, but it is clearly a portmanteau of darkroom and light table, which are its two primary modes (and, of course, the inverse of Adobe's "Lightroom"). Light table mode is used to sort images, including importing them from camera or disk (thankfully, Darktable does not attempt to copy images already on disk into its own special folder, rather it scans them and ingests the metadata for its database), tagging and editing image metadata, and exporting to common output formats like TIFF and JPEG. It can export in 16-bit-per-channel mode to formats that support it, and includes support for the OpenEXR high dynamic range file format, as well as direct export to Flickr, Picasa Web Albums, and HTML galleries.

Minimal editing capabilities (such as rotation and applying pre-defined "styles") are available in the light table mode; all serious editing is done in the darkroom mode. Both modes use a custom dark, neutral-gray UI theme rather than the system GTK+ color scheme. This is a growing trend among photo and creative applications, enough so that GTK+ implements a prefer-dark-theme property that applications can use to automatically request a dark variant. Darktable implements its own color scheme, however.

[Darkroom]

Switching to darkroom mode is done by double-clicking on an image thumbnail or by clicking on the mode text-label in the upper-right corner. This is where Darktable begins to diverge from the UI conventions followed by most other raw editors. The others tend to provide a long, scrollable column of image-adjustment tools down the left- or right-hand side of the editor, and you can adjust any of the settings exposed or leave them as-is. Darktable uses a plugin system instead; each of the adjustment tools is a separate plugin that you must activate in order to manipulate it.

The available plugins appear in a grid at the bottom of the right-hand column; when activated each plugin's controls appear in the main tool strip, but in order to apply the plugin to the selected image, you must also click on a "power button"-style icon next to the plugin name. That is more steps than should really be necessary, and I think it reflects the underlying design of the code base more than it does a particular UI theory. Darktable has a fast image-processing core, but all of the editing features are implemented as separate plugins. That makes for faster development, but in this case it complicates things for the end user.

[Plugins]

What is more frustrating is that Darktable has several more peculiar UI quirks that make its features hard to discover. First, all of the aforementioned plugins are shown in an unlabeled grid, one in which each icon is a slick-looking minimalist logo, and all of which look virtually indistinguishable. You will have to hover the mouse over every icon long enough for its tooltip label to materialize. It would be simpler to list all of the plugins in a menu, but Darktable (deliberately?) has no menus. That has its own side-effects, such as making the preferences dialog the only place to discover keybindings (more on that below...). In other parts of the interface, Darktable uses text labels instead of icons (such as the selection buttons), which makes me suspect that the symbolic plugin icons are a purely cosmetic choice.

The Darktable window also uses triangular "expander" buttons on the top, bottom, left, and right edges to selectively show or hide sub-panes (such as the tool strip or navigation/image-info box). That is not bad in and of itself, but the triangles stay on the edge of the screen whether the pane they control is collapsed or not. As a result, it was about an hour before I discovered that the arrow at the bottom edge did not control the filmstrip widget also on the bottom of the screen, but instead toggled the visibility of a one-line color-selector tool which, at the bottom of the window, is nowhere near the other tools. The filmstrip can be hidden, but only by opening the preferences dialog. The preferences dialog, though, is only accessible through an unlabeled "gear" icon placed next to the image-sort-field selector, which itself is only visible when you expand the top-edge window pane.

A good UI-review or sprint with some usability experts would fix a lot of these issues and make Darktable significantly easier to navigate. On the other hand, some of the actual image-adjustment tools have very perplexing interfaces of their own that I am less sure how to fix, because I am still not sure I understand them. Most are normal sliders, spinboxes, or selection menus, but a few head in different directions. [Color widgets] For example, the color-correction widget is a square grid of colors, into which the tooltips tell you to "draw a rectangle to give a tint." It is clear that whatever colors you catch with your rectangle somehow affect the tint, but exactly what they do is a mystery (a shift? a rotation? remapping the entire color space?) — and because the grid is unlabeled, you do not have precise control over the effect. Furthermore, because of the grid's fixed orientation it is impossible to draw rectangles around certain color combinations, such as blue-to-orange.

The "color zones" plugin's widget is arguably more confounding. It has three separate grids, one each for lightness, saturation, and hue, all unlabeled, and each incorporating a flexible adjustment curve, a set of control points bound to the bottom edge, a circle that hovers around the cursor, and a fluttering gray polynomial curve that surrounds the circle but changes in size and shape depending on some combination of the circle's diameter and the shape of the adjustment curve. Confused? You are not alone. Neither the online documentation nor the PDF manual explain the design at work; you can learn that the circle is a "virtual color filter" and that you can control it's diameter with the mouse scroll wheel, but little else. Simply labeling the UI elements used in these widgets would be a good start, but the lack of clear documentation makes them unusable.

Image is everything

All user interface issues aside, I do like Darktable, both for what it can do, and how quickly it can do it. It provides tools that allow you to focus on creating the look that you want in the output image, rather than exposing only low-level adjustments. Other raw editors give you control of de-noising and exposure; Darktable does, too, but it also has a zone system plugin and the ability to do split-toning (which Photoshop veterans will recognize as "duotones").

Among the effects plugins are several common photographic tools, such as a graduated neutral-density filter. In the on-camera world, this is a lens filter that darkens one part of the image, then fades naturally out — it is what people routinely use to bring the too-bright midday sky back into the same range as the ground. There are also composition guides (golden ratio, rule-of-thirds), lensfun-based distortion corrections, grain simulation, and a "fill light" plugin. For the most part, the controls are easy to use and the changes are rendered on the preview image with little noticeable lag.

The application also provides more control than its competition over common tasks like converting an image from color to grayscale. Other programs do this with a simple switch to monochrome — sometimes offering the choice between using the slightly-different luminosity or brightness value of each pixel to determine its final tone. Darktable tries to emulate the control provided by shooting in black-and-white in the first place, using various filters to alter the light. In his demonstration videos, developer Pascal de Bruijn said that he used actual black-and-white film to calculate the characteristic curves used in the presets (although he did not specify the type of film).

Granted, to a non-photographer, some of the plugins implemented in Darktable may not mean much at first, but they are still valuable. For example, there is a "Velvia" plugin which is intended to emulate the distinctive look of Fujichrome Velvia film, which pulled extra saturation out of normally neutral scenes. You could achieve the same effect by manually manipulating the saturation settings, but doing so without blasting-out cartoon-like colors is difficult. People who have never shot Velvia film and never care to start will probably just be happy to have a simple-to-use saturation preset.

The list of actual changes in the 0.9.3 series is modest; there is an "invert" plugin specifically built for scanning and converting film negatives, a new de-noising filter, and new presets for several of the existing tools (such as the "real world" black-and-white film conversion). Two new file import features will save obsessive photographers some time: a checkbox to recursively import a tree of directories, and a checkbox to ignore JPEG files and only import raw images.

There is also a new row of buttons above the existing plugin categories (which were generic groupings like "color," "correct," and "effect"). The "active" button shows you only the plugins that are currently activated, which can help if you turn on too many and get lost, and the "favorite" button allows you to mark your own custom set of plugins for quick access. As the number of plugins continues to grow, this will only be more valuable. Minor enhancements have landed for other tools, such as the crop/rotate plugin, which now works more like other image editors, allowing you to draw a line on the screen that should be horizontal and have Darktable automatically make the proper adjustment.

This release will probably not shake off Darktable's reputation as a tool tailored for photography geeks. The image manipulation functions are maturing, which you can see in the accumulation of carefully crafted presets. They allow users to quickly apply effects without having to understand the complex curves built in to the tools themselves. However, if the application is ever going to break into mainstream acceptance, it will have to undertake a serious attempt to fix its user interface. The tool grids, menu-free design, and everything-in-a-single-window approach may look slick, but they slow down the user's actual completion of tasks, which is an unforgivable sin among GUIs.

Every raw converter on the market struggles with the problem of how to fit a dozen adjustment widgets onto the screen along with the image they affect. Sure, none of them has solved the puzzle outright, but going-it-alone in user interface design rarely works either. Even Blender — which for years argued that everyone would eventually adapt to its strange conventions if they only sat down and used it long enough — finally undertook a redesign in the 2.5x series. Like Blender, Darktable offers a unique set of features, they just aren't as easy to utilize as they should be. Some work on that front would grow the user base, and hopefully allow the team to build out other areas of photography workflow, such as collection management and batch processing.


(Log in to post comments)

Image quality

Posted Nov 18, 2011 8:37 UTC (Fri) by djm (subscriber, #11651) [Link]

How does Darktable compare in image quality to Lightroom? Lightroom has a well-tweaked RAW converter, per-camera/lens adjustments and lossless internal processing path, but it suffers from limitations that seem to be deliberately intended to avoid cannibalising Photoshop sales (only round brushes, limited adjustments available via brush, only basic curve-editing, etc.)

I'd love a more flexible, geekier Lightroom-like application, but not at the expense of image quality...

Raw photo manipulation with Darktable

Posted Nov 23, 2011 2:55 UTC (Wed) by Baylink (subscriber, #755) [Link]

For what it's worth...

I spent some time with Ardour, a few years back; Paul Davis' ProTools semi-clone for Linux.

I did a project with it, and discovered that it's UI didn't follow any of what we consider to be the standard rules that such interfaces should follow for usability, discoverability, and suchlike.

And, of course, I got on their IRC channel (or mailing list; I forget which it was), and embarassingly, ranted a bit more than was perhaps really called for.

To the everlasting credit of Paul and a couple of his lead developers, they were very polite to me, and over the course of a few hours of editing, they led me to see that the ways in which they'd broken the customary interface design guidelines we've all come to know and expect were done for very good reasons of efficiency and ease of actual use by professionals doing professional work -- which is the target of Ardour, if not of some other programs like Audacity (which are very nice, but are not targeted at Bob Clearmountain and Nile Rogers).

I don't know whether this potential explanation for the way Darktable is designed might be serviceable -- I've never used any of the commercial packages either, much less DT itself, so I can't speak to whether it's trying to be 1-2-3 compatible with one or not.

But I've learned (!) not to assume that something's poorly designed *solely* because it doesn't follow The Rules As I Understand Them.

Raw photo manipulation with Darktable

Posted Jan 23, 2012 19:02 UTC (Mon) by n8willis (editor, #43041) [Link]

Well, I appreciate your comment, but I did not "assume" anything about Darktable's UI or abstract rules-as-I-like-them. The unlabeled icons and the infexibility of the adjustment widgets I mentioned are demonstrably detrimental to the usage of the program in practice. You *could* memorize the names of all of the unlabeled icons, for example, but the fact that you could do so does not mean that the icons successfully communicate what they do.

Nate

Copyright © 2011, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds