This’ll be a long rambly post, so apologies on that front. I’ve been using exclusively darktable https://www.darktable.org/ to process all my digital and film photos the last month as a challenge to myself and as part of an ongoing effort to minimize my reliance on Adobe. Thought it’d be good to try and organize my thoughts and feelings on it into a post and see what others think, so here I am! My use case during this span has been a couple of big event shoots with around 3-4000 photos each, about 5 rolls of color and black and white film, a few graduation shoots, and some relaxed walkaround pics when weather’s been nice. I think it’s a decent smattering of common photography use-cases. I’m coming at this as someone that’s been using Lightroom for just about a year, and as a big FOSS and photography nerd.
My initial impressions were really negative. The UI/UX leaves a lot to be desired, and the software defaults to the minimum processing needed to show a RAW file on screen so the user has to make all the adjustments themselves. The lack of right click context menus across the software is a real missed opportunity, and it took a bit to figure out how to bind my own keyboard shortcuts for actions. The Lighttable view (analogous to Lightroom’s Library) has a few unclear labels/buttons, I can’t fathom the zoomable lighttable view, and the dynamic culling view sat utterly unused.
Documentation is actually really good! Most all of the modules have solid manual pages telling you what they do and how they do it, and the UI has a handy question mark button that lets you click any element and immediately go to the online manual. My biggest gripe here is there’s a lot of technical documentation on what and how things work, but not much on when or why an end-user should use them. When should I use Contrast Equalizer vs Local Contrast? What about Sharpen vs Diffuse and Sharpen? How do I tweak Diffuse and Sharpen to reduce some haze in my image while also adding some local contrast? No idea! I’ve had to figure the former two out via trial and error, and frankly still don’t know how to wrangle Diffuse and Sharpen beyond using its presets and stacking a few copies of the module.
Culling in darktable is really good once you can wrangle it. For my big shoots, I’d import them into my library, use the darktable-generate-cache command in a terminal to generate all my previews while I left to make a sandwich, then once I was back get to culling. I really like that I can assign multiple color tags to an image, and stars work as they do in every other piece of software. I’d use culling mode in a fixed layout set to view one image at a time, mark the image however I’d like, repeat for however many I’d need to review. This part takes about as long as it does in Lightroom for me, so points there. There is a keybind for assigning the last Keyword you used to another image, but not one to let you assign an arbitrary keyword with any key, so I’d usually save keywording images to the very end.
Once culled, editing is equal parts frustrating and joy. Darktable defaults to applying only the processing needed to render a RAW file to the screen, so they will always start off looking flat and low-contrast. The recommended way to get a starting point if you want a more appealing image is using the built-in Styles to apply some modules that try to match what a given camera’s JPEG processing looks like. For my Sony A7RV, the designated preset tended to blow images out and I preferred to start from scratch, but my Fuji X100vi’s preset tended to get much better results. Try them out, see what works for you. Once you find a set of baseline modules/edits you want to apply to most images, it’s easy to make a Style out of them and have DT apply them to images on import.
The module-based editing is at once DT’s killer feature and Achilles’ heel for newcomers. Modules are applied from the bottom to the top, you can have multiple instances of the same module at once (useful for masking or using multiple presets from the same module), and there’re a ton of processing modules to cover most anything you could want to do to your image. My minimal set ended up being Exposure, Color Calibration, Denoise(profiled), Lens Corrections, Color Balance RGB, Filmic RGB or Sigmoid, and Local Contrast, and I’d often include Color Equalizer or Tone Equalizer on top as images called for them. In order, these handle the Exposure adjustments, the white balance/color calibration of your image, removing luminance and color noise, color balance/global contrpartast/saturation, tone mapping (how the software maps the dynamic range of your RAW file to brightness values on a screen), local contrast in highlights midtone and shadow areas, more color tweaks but with a different UI/UX better suited to grading individual tones, and dodging/burning regions. I’m a relatively new Lightroom user, having only picked it up in the last year and not being too used to the UI, but darktable initially took much longer to get images I was happy with since while LR presents most of its basic edits on the right side of the Develop module, DT asks you to use the various module tabs to find and enable different tweaks to for the pipeline. The quick-access panel does exist and has many of my preferred modules in it, but I hardly used it since it presents a truncated version of each module, and I’d often need the controls quick-access hides. White balance is also a bit of a bear. I’ve found I can’t consistently copy + paste tweaks from White Balance or Color Calibration across images without them being very off until I go into Exposure and make some tweak to re-calculate the image, or just manually reset White Balance to “as shot to reference”(in-camera WB essentially) on a per-frame basis.
But once i’d found what modules I generally needed, and set up a style with my minimal set, and configured the modules tab to better fit my workflow, and learned what my go-to modules did, and learned how to use them, and how to use the masking tools to make more focused edits, it’s great. The masking tools absolutely blow every other RAW processor I’ve tried out the water and it’s not even a contest. Parametric masks alone let you pin masks down to exact regions of luminance, RGB ranges, general chromaticity, and hues, and once you dial in a mask for whatever you’re trying to apply that module to, it’s really quick to copy + paste it across a bunch of images you want the same targeted-edit to. A good example is I had a few photos of someone in a yellow dress that seemed really desaturated compared to the rest of the image. Made a mask set to the range of tones the dress tended to have, bumped the saturation and contrast to midtones over the masked region, and could copy that module across a few hundred photos knowing those tweaks would only apply to that one exact dress. For individual images, Drawn masks mean you can fine-tune a parametric mask for what you want to cover way more quickly, and making a good mask only takes a few seconds, no AI trickery needed. Most of the more-complex modules do have solid presets to cover common use cases baked-in, so it’s not too bad to use them for common edits. Being able to apply multiple copies of the same module means it’s easy to have a few copies of the same module for individual tweaks, maybe one instance of Color Balance RGB to add some blue to the shadows, one for handling global contrast, one for tweaking the red tones in some shot. The profiled Denoise has presets for my specific cameras at every ISO and is really solid at knocking out most of the luma and color noise across my ISO range. Not as good as an AI denoise, but also much faster and reliable. Color Calibration having a built-in way to calibrate to a color target is super handy for getting a neutral base point to edit on top of. Tone EQ has a delightful UI where it splits the image into 8 equal zones, then you can just mouse over a part of the image, scroll a mousewheel, and it’ll dodge or burn that zone while smoothly tweaking nearby ones. This’s a great way to make quick brightness edits to an image or add some contrast and it’s come in handy a ton. Highlight reconstruction in Filmic RGB is also genuinely really great for digital images and is a personal highlight. Similar things apply to most modules I’ve used; the UI/UX varies, but once you learn what they do and how they work it becomes a great tool to edit images. It’s finding what ones you need, which ones fit your preferred workflow, and how to use them to get the result you want I’ve found difficult, and I can’t easily excuse the long series of “once I did X” before I could get comfortable making edits. Very much “designed by programmers” program rather than a UI/UX-first approach, and ease of use is clearly not a priority.
I do a lot of film photos, and I feel the need to call out Negadoctor in particular for a moment. The praise I’ve given a lot of the other modules can’t be given here. It works to invert color and black and white film negatives, and that’s about it. It’s exempt from the “how to use it” comment I’ve made on its documentation earlier, as its section in the manual does a good job explaining the intended workflow darktable user manual - negadoctor. For black and white, it works well and is pretty easy; white balance on a section of film border or other black area, set your DMin and DMax, and a simulated photopaper grade in the “print properties” tab before using other processing modules above it to make further tweaks. For whatever reason I’ve found it doesn’t output in monochrome, and have to tack on an instance of Monochrome after it. For color? Holy hell is this module frustrating. It’s passable so long as every frame you scan has a section of film border to sample as then I’ve an easy way to set DMin and film base, but gods help me if I don’t. Got any dust on your negatives at all? DMax, Scanner exposure bias, print exposure adjustment, and highlights white balance can be thrown wildly off so you’ll either have to adjust the slider manually or narrow your image sample to a small area. Even without dust, I found the shadow and highlight color tweaks in the Corrections tab to be inconsistent and overly-fiddly, and I’d usually just set them then use Color Balance RGB to fix hue issues. Talking to some other people, this isn’t an uncommon experience, and a few folks found it easier to just manually invert the negative using RGB Curve than use the designated “invert negatives” module, and coming from Negative Lab Pro where I can invert most negatives in a few seconds to needing to spend about a minute per-frame tweaking negadoctor for a minimal invert is endlessly frustrating. I tend to like the results from negadoctor a bit better, but it taking many times the amount of time to edit a frame is a massive nuisance. If I can get past that point, the silver lining is I then have access to every other module in DT with all the bells and whistles, vs NLP where you need it to make all further tweaks since LR’s native sliders will impact the intermediary TIFF and not NLP’s output.
Overall, I’m really mixed on this software. I genuinely want to love it as it’s FOSS, gives experienced users a ton of control over their RAW processing, has a number of features absent from other RAW software, is easily available on Linux, and has had me learn quite a bit about image processing and color theory. There’s a lot going for it, and after using it for a month I find I have a lot of things I miss about it when editing in LR. On the other hand, the UI/UX is consistently inconsistent and requires watching a ton of tutorials to come to grips with, names are consistently confusing (why does Add to Library import to the library in-place but Copy & Import do what it says on the tin. Why does diffuse or sharpen cover bloom, denoise, lens deblur, sharpening to counter debayering artifacts, and local contrast, etc), there’s no easy “Sync edits made on current image to all selected” forcing you to either copy+paste edits or make them a style to apply across a selection, among others. I can and have given Lightroom to photography newcomers, and gotten them up and running and able to make modest edits within an hour or so. I’m a huge photography and programming nerd, and it took me about two weeks of forcing myself to use this software to get kinda-comfortable. A newcomer to photo processing would probably bounce right off of DT, and I couldn’t blame them. I’ll likely be sticking to it going forward now that I know it since it is powerful and flexible software, but I’m doing so in spite of a lot of issues I have with it because I dislike Adobe more than I find DT frustrating. I’ve done my best to engage with existing reference material and really learn this stuff, but man it’s been a bear.
My biggest takeaway is I’d want to see a team of proper UI/UX designers do a pass (or three) over darktable as that’s been my biggest single issue with it. This’s far from a problem exclusive to it in the FOSS world, but as-is I see that as the biggest barrier between someone picking it up and being able to rely on it as a tool in a reasonable amount of time.
Look forward to hearing other people’s thoughts on the matter, and I’m happy to answer any questions people might have!