In Adobe Lightroom there is a concept of "publishing service". Its a collection that has a "publish" option, which exports just the images added to the collection after the "publish" action was last triggered as well as those pictures that were previously, but they have been adjusted. It can export to disk/flickr/facebook etc. It also holds export settings, target directory, etc.

How to set up something similar in darktable? Currently I can export entire collection to disk and rsync the result to the target folder, but in case I add 10 pictures to the collection holding 300 pictures, then it means vast majority of pictures are needlessly re-exported.


1 Answer 1


Darktable allows styles for the export module. Among other settings a style will store the chosen behavior when an image with the same name exists in the destination directory. The options are to create a new file with unique name, overwrite the existing file, or skip exporting the file.

Skipping the export seems like the option you probably want to select for a new style in the export module. The new style can also save a dedicated file system location, if that is also part of your workflow.

  • \$\begingroup\$ I have tried that. This makes the workflow much batter. But in the I opted for writing a python script that traverses all images imported into darktable and checks their tags. If a certain tag e.g "Kitten Photos Gallery" is detected, it exports the photo to the appropriate place. This is all possible due to "darktable-cli" command and exiftools that parse the ".xmp" files. Also the fact that darktable keeps xmp files next to the photo original is also helpful. \$\endgroup\$
    – user99307
    Jun 16, 2021 at 8:47
  • \$\begingroup\$ And for avoiding duplicates I keep md5sum of the xmp file in the exported filename. If I adjust settings, for example exposure in darktable, the xmp file gets modified and the exported figure will be replaced with a new one. It woulf be more aesthetical to keep the md5sum as a metadata, but filename allows to get i without reading the remote (convenient with SFTP access). \$\endgroup\$
    – user99307
    Jun 16, 2021 at 8:49
  • \$\begingroup\$ @Lacek Thanks. Those comments would make a good answer and it is ok to answer your own questions here. It is also ok to accept your own answer to your own question. \$\endgroup\$ Jun 16, 2021 at 16:52
  • \$\begingroup\$ @Lacek If you write an answer and there is a Git repository for the code, a link to it would help people in the future. Thanks again. \$\endgroup\$ Jun 16, 2021 at 16:54
  • \$\begingroup\$ I will try to make a git code out of it. I just have to generalize it a little bit (remove hard-coded file locations etc...). \$\endgroup\$
    – user99307
    Jun 17, 2021 at 10:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.