Strategies for using darktable without its DAM feature


I’ve been using darktable almost exclusively for editing for the last two years, but I’m getting ready to switch to a FOSS DAM alternative too.

I wonder how those who use darktable only for editing go about combining it with another DAM. The DAM I have in mind using is digiKam. I’ve seen no solutions for turning off the DAM features in darktable (directories get added to collections automatically whenever I open an image).

A reddit user shared this, and I’m tempted to go down that path:

Today I am using Digikam only as a DAM and Darktable only for editing ofimages. The big benefit with this is the fact, that there are two separate sidecar files: One small sidecar *.xmp for Digikam and one larger sidecar *.ext.xmp for Darktable. I see no need to show or edit the Digikam tags in Darktable and vice versa no need to edit images in Digikam. Digikam acts as a DAM for all my jpg and raw files and Darktable for editing of all raw and some jpg files.

The downside with this completely relying on digiKam for previewing images is of course that Digikam won’t be able to preview the edits done in darktable.

One could also add the same raw file base directory in both darktable and digiKam with these settings in digiKam:

But then you will also have two databases with the same images. How well does exchanging stars and tags between darktable and digiKam work using these settings?

Files are on a NAS.

I am not sure if I am addressing your question or just adding noise. But, one way I use DT is to find images in Windows using my file explorer, right clicking on the image and selecting open in DT. DT then adds it to a collection which I ignore and I get on with my editing. However, I am finding the DAM capabilities of DT very suitable to my needs although not as intuitive as I found Adobe’s Lightroom. Good luck getting the answers you need.

Terry gave a good Windows-based answer. You didn’t mention what platform you were on, so I’m providing a Linux-based answer.

I use dt only as an editor. I have it set up to create sidecar files but not use the database.

I use Geeqie for culling, etc. It’s fast and I can quickly see images at any scale I want. To launch dt from Geeqie, I right click on an image and select plugins > Darktable. Collections don’t come into play because the database is not in use.

1 Like

There was some description by @Bastian about DK and DT parallel usage:

I think the key is to uncheck some of the options which tags are written and read by DK to make it work more or less seamlessly

I’m using that exact setup: Digikam for tagging, rating, etc, darktable for editing. Both use the same naming scheme for the sidecars, and exchanging metadata works nicely for me.

Just a few things to keep in mind:

  • I avoid having both darktable and digikam running at the same time (just as a preecaution)
  • I had to set up the xml tags in digikam different from the defaults to get the hierachical tags transferred as I like it
  • make sure the data actually get transferred between the two programs (I need transfer both ways), so either have the programs check for changes at startup, or reread the metadata for changed collections/folders…
  • ratings are transferred between the programs, as are captions, descriptions, and keywords. Colour labels and pick labels are not transferred (colour labels are handled in a fundamentally different way in each program).

And, I notice that I use darktable’s search features more and more. They are good, once you understand the system. But I still prefer digikam’s interface for entering and editing the metadata.

1 Like

Thanks all, good input!

I’m afraid darktable will take a performance hit because of my large library, that (and speed of culling) is the main reason I’m looking for something external.

Do you cull directly on the raw files, or do you use jpeg/raw pairs (seems Geeqie can use that). I don’t think all of my cameras have full res embedded jpegs, so it could become hard to judge sharpness without creating jpegs before culling.

How do you achieve that? Every time I open an image the directory in which the image resides gets added to the collections module in the lighttable.

Thanks! Can you go into details?

I’m not sure that’s going to work for me. I’m going to go back and forward between my library and editing. As long as one is cautious and re-reads metadata in in each program, it should work having them both running?

Not sure if that addresses your question, but I’m using darktable mainly for editing and I don’t need collections or metadata to be persistent.
To achieve that, I’m starting darktable with the flag –library :memory:

1 Like

Thanks, that helps. :slightly_smiling_face:

Yes Geeqie can group raw + jpeg pairs and treat them as one. It’s one of my favourite features of Geeqie. The digicam grouping is such a hassle in comparison. I’m not sure how it Geeqie behaves when the raw is lacking a thumbnail though.

1 Like

For me, that wouldn’t really work, as I do use some of the search capabilities of darktable, over several (many) film rolls/folders, and that needs the database.

It might work. I do go back and forth, but not more than a few times/day, and I’m not bothered by the start-up delay. So I prefer not having them both running.

As for the keyword setup, I set that up a while ago and forgot the details…
The issue I had before changing the digikam setup was that I’d get elements of hierarchical tags as separate tags in my tree. Which made working with the tag tree unnecessarily complicated.
Iirc, darktable uses the tag , and the Xmp.dc.subject tag. Digikam reads the first item it understands, so you want to make sure the tag is tried before the Xmp.dc.subject tag. For writing, you may even want to disable the Xmp.dc.subject tag (but how you want to set that up exactly depends on what other programs have to understand your metadata).

That’s what I have doing in the past couple years:

  • culling, rating, tagging in DigiKam
  • editing in Darktable.

Make sure to set Read and Write to XMP-files in Digikam

As a precaution, don’t run Digikam and Darktable at the same time.
When opening Digikam, I always do a rescan on the folder I’m currently working in Darktable. You can set DigiKam to automatically rescan your collection on startup. As my collection is very large and lives partially on a NAS, this is slow an tedious.

Thanks. Have you added all your photos as collections in darktable too? Or are they just added to collections as you open them from digiKam? May I ask how big your collection is? Are you experiencing any slowdowns that you think are a results of the collection size? My whole collection is on a NAS.

The answer is a bit longer than this. I keep different darktable databases on my system. I keep a database for every year. I keep multiple shortcuts to darktable with the --library parameter pointing to the database.

Digikam contains my entire collection; living partially on my workstation, partially on my NAS. All together this is more than 2TB of data, over 100.000 files. (More than 20 years of images).

Darktable in particular the darktable database only contains the files of that year.
2023.db, 2022.db etc.

I don’t know if this is recommended, nor do I know what the performance impact is when having only 1 database with a lot of files.

Working from the NAS is slow, but that has to do with the speed of my nas and network throughput.

Geeqie does support jpeg/raw pairs, and I use them (I shoot raw+jpeg because I like wasting SD card space :smiley: ). Geeqie will delete the pair together when culling, if desired.

In darktablerc, I changed database=library.db to database=:memory:
That causes dt to not use a persistent database.
The Geeqie plugin for dt invokes dt with the input image file name. That causes dt to open into the darkroom with the image ready to go. If you do switch to the lighttable, under collections you will see the one file all by itself:
If you then exit and re-enter dt, that file will no longer show up in collections, because there was no database. So, like Terry said, you can just ignore the collection because it’s transient.

1 Like

I would like to add a correction here: my entire photo collections lives on my NAS. Only the last 2 years are synchronized to my workstation. I use Syncthing for this.

If you do not use the database, what other consequences does it have? I seem to recall that styles and others things are stored in the database also. Are they lost if I don’t use the database?

As I use external hard drives that may or may not be connected, which seems to leave a lot of entries in the collections module shown with strike through text. Can’t seem to get rid of those.

Image info is in library.db. Presets and styles are in data.db, which is separate from library.db, so you should not lose any.

You should not see those with database=:memory: because there is no database being accessed to load historical collections information.


Hello mikae1,

Quite late I am answering to your original post at the top. And funny, I read today your quoting of my reddit post about my parallel use of DK and DT.

I am still very happy with separation of DK-DAM and DT-Editing. May be also, because I have 67,060 JPG files to manage and only 12,461 RAW files to edit. I do not need previews of my raw files, because I export always my edits as JPG files. In addition I create with automated batch jobs dowscaled (to 1080 pix height) and sharpened JPGs for fast viewing on PC/TV and sharing via e-mail or web gallery. I do not need and want all these JPGs in DT, but of course in DK. In DK I am only tagging the master files (RAW or JPG). If I search a photo, I find either the master JPG or the master RAW. In case of RAW file I have to look for the RAW-to-JPG-Export, which is located in the same DK-group or due to the same leading file name directly next in file manager.

Thanks a lot, that could be helpful.

I really can’t understand by what standards a design that opens a program to a wall of skulls could be considered a brilliant idea.

As I wrote, I use external hard drives that may or may not be connected, and Darktable doesn’t seem to be able to handle that.
A simple filebrowser like Geeqie’s which is blazingly fast for browsing NEF files would be a wast improvement over the wall-o-skulls.
Alternatively a simple check to see if last used directory is still available would be nice, so I wouldn’t have to see the list of collections in over strike font …

The skull means “file not available.” Since you use an external disk, maybe you want to use the local copies feature?

It does “handle it” by telling you it can’t find your files.

What would geeqie show you if the disk containing the files isn’t connected?

And what would you have dt do if the disk isn’t available?