My digital open darkroom

A photography workflow powered by FOSS

Darktable Digikam Photobook Photography Workflow

‹ Previous 24 min read

After yet another disappointment with Aperture, Photos, Capture One and other proprietary photo development and editing software, I looked for opensource alternatives.

I was looking for something that was open, non-proprietary, and that would allow me to use my data and images without necessarily having to share them on third-party servers, be dependent on a subscriptions-based model, and most importantly give me the ability to be able to use different software without having to lose all the work I have done so far just because my work is locked in an inaccessible, proprietary library.

In the forums and on Reddit I was reading about users using opensource software, and I tried to better understand how to optimize my personal photo workflow to make it completely FOSS, free and open source software.

And so I gradually got into applications like darktable and digiKam. At first I used them on my MacBook Air M1 but with only 8Gb of ram and limited disk space the general disappointment kept growing. I therefore needed a more powerful computer and more space to manage my image archive.

The initial intention was to pair my MacBook Air with a Mac Studio that was a newly released model. However, after much thought, I gave up on the idea of spending money on a machine that was very expensive, not upgradeable, and poorly supported by the opensource community since Silicon processors had just been released by Apple.

And that is how I decided to reuse a CAD workstation I had assembled for my wife during the COVID19 period to turn it into my photoediting workstation.

And it is on this workstation that I built and defined my current workflow, which is based on a local context and without using proprietary platforms or formats.

At the time of writing, the workstation has the following specifications:

I chose to use Linux OpenSUSE Tumbleweed as my main operating system because it allows me to have recent updates and have the support of a very helpful user community.

Rounding out my configuration is a Synology NAS that I use as a network drive, mainly for backups and to self-host services useful for my work.

My goal was to achieve a totally FOSS photo workflow from the time the RAW photos arrive to be archived, to the printing of a photo book.

The following is my personal experience that I want to share to inspire those who will read it and get suggestions for optimizing my FOSS photography workflow.

The reason I decided to publish and share my photographic workflow is that when I started using opensource software there were not many online resources. The documentation of the various software I use, while comprehensive and thorough, is often written from a technical perspective and lacks a complete overview from start to finish of the process.

Finally, I want to share this story to inspire photographers —professional and non-professional— to find alternatives to commercial software and entice them not to share their personal data and work with large companies that do not always respect user privacy and data.

The photographer’s user journey

Photographing is a complex business, and finding a workflow that works for everything and all types of photographers is far too ambitious a goal since we are talking about something very articulate and personal.

After some research, I found that in general, there are commonalities between different approaches to photography, and I tried to sketch out what the ideal user journey of those involved in photography might look like.

I summarize the main points below:

These 7 steps are not meant to be exhaustive, and are very personal, and I will describe them in detail in the following paragraphs.

Photography project planning

“Screenshot of a mood board I made in Penpot to collect ideas and images for my project Memento Floris”
A mood board I made in Penpot to collect ideas and images for my project Memento Floris

Making photography does not mean simply taking pictures. It means telling a story, communicating an idea, making one’s view of the world and reality visible to the viewer through the images we produce. Researching a topic is the first step toward communicating an idea.

Studying, reading, and viewing other work is a start, and wanting to go deeper there are many ways to research and be inspired.

Books and photobooks by other authors, are one of many ways to find inspiration, information and material for your own photographic projects. They can be found free of charge in the most common city libraries or in online libraries that make their material available and which in some cases is also in the public domain.

These libraries in some cases also make available entire archives of digitized images in the public domain, such as the New York Public Library which makes available its archive of images in the public domain. There one can find historical images from the FSA photo campaign —Farm Security Administration— by Walker Evans, Dorothea Lange to Lewis Hine’s Ellis Island immigrant photographs.

Another place where you can find inspiration online is Public domain review a site dedicated to exploring curious and compelling works from the history of art, literature, and ideas-focusing on works that have now fallen into the public domain, the vast trove of out-of-copyright material that everyone is free to enjoy, share, and build upon without restriction.

Finally, I point out a project I personally collaborate on: Landscape stories, is a reference for contemporary photography, useful to take cues and see what other authors are doing.

In this series of notes, I will use photographs from a project whose inspiration came from looking at some minimalist and highly contrasted drawings by Ellsworth Kelly, an American artist and exponent of Hard edge painting and Minimalism.

The images were found by chance just as I was browsing through the archives of the National Gallery of Art.

Screenshot of a mood board made in Penpoit showcasing Ellsworth Kelly drawings
Ellsworth Kelly drawings collected in my Penpot mood board

Ideas come about by chance, and often inspiration comes after seeing other work, whether on the Web, in a museum, in a magazine, or in a book. There is a need to collect notes, whether they are written or visual notes. The images we like can also be saved, captured with the phone or a screenshot. Once collected, the images can be viewed and organized.

In the real world, I like to put all the images on a table or on the floor so that I can look at them from above, touch them, physically move them around, and organize them into a sequence of ideas.

In the digital world the equivalent of my big table is an infinite canvas, which has the great advantage of being able to organize all the images exactly as on my big table.

To organize ideas, cues, and images I use two tools that I consider fundamental in my work:

I also use my local and personal AI: Open Web UI. In conjunction with local models it became my personal assistant to help me organize ideas as well as keywords, captions, and image metadata. I find it a very useful tool to improve my creativity.

Framing the moment

This is the most fun part.
Go out, observe the world.
Be curious.

Click.

Building memories

After a long day taking pictures, photographers return home and there are two important things to do right away: import the photos into the archive and back them up immediately.

My archive is a folder called Memories and is organized on a file system more or less like this:

Screenshot of my memories folder
My Memories folder that containts all my life in pictures

Memories contains the following subfolders:

In Memories I also added a README.md file that contains information about the archive organization. The reason is simple: the day I’m gone, if any of my family members want to better understand my work, they will have the basic information to navigate and manage it.

To manage my Memories archive I use the opensource software digiKam which offers a complete set of tools to import, manage, edit and share photos and raw files.

I import photos from the camera to the archive, physically copying the photos from the memory card into a sessions folder organized like this:

In digiKam I rename individual images using this expression:

[date:yyyy-MM-ddThhmmss][meta:Exif.Photo.SubSecTime]-[meta:Exif.Image.Model]{replace:" ",""}.[ext]{lower}

Modal of the rename tool in digikam

This expression renames the original camera files in a way that is unique, readable and findable even by file system, like:

2020-05-17T121611-X100F.raf

The file uniquely identifies an image taken on 2020-05-17 at 12:16:11 with a Fuji X100F. No other information needs to be added because it is contained in the image metadata readable by digiKam or any image management software.

I chose to use the date in ISO format as the unique identifier for my images along with the camera model because it represents the minimum information to uniquely identify the file. The identifier is critical to make sure we are working with a unique image and to identify any derivative copies, such as the same image exported in a different format.

To be sure of compatible file names on major file systems, for folders and file names I avoid using special characters, and use only the hyphen-minus character - as a separator to improve readability.

In general, I think the important thing about file and folder names is that you can understand what they mean and that you can analyze them programmatically for your own workflow.

In my case, the folder name is chosen from a set of conventional categories that I use to identify the various rolls.

Using conventions, you can use categories as keywords to filter in digiKam all folders/photo rolls that contain, for example, the name “Flowers.”

Digikam album drawer with filter enabled

After importing images into the archive I immediately add basic metadata, the kind that will allow me to find what I need in the future. As optional as it may seem, taking care of the archive is essential for working with my images later.

Digikam user interface

I also believe that the only way to preserve my work is to rely on a system that has been working now since computers were born: folders and files.

This is the main reason on why my Memories archive is mainly a set of folders and files organized on file systems that allow me to work with different applications and to be able to manage them in a standard way.

I believe that this approach will work and still be valid 100 years from now.

Protecting memories

My photo archive is invaluable to me.

To lose it permanently would be a huge blow. Years of work and memories deserve some attention, which is why backing up is a key part of my workflow.

For my backups, I mainly use restic and rysnc since my archive is a system of folders and files the backup, it is sufficient to make a full backup of the Memories folder.

On the importance of making local and dislocated copies of your work, a million words have been spent and I don’t want to dwell much on this point, and if you are reading these notes and you don’t yet have a backup of your work, do it now.

In my specific case, I back up the Memories folder 5 times:

Considering the original copy, in total there are 6 copies of which a couple are deployed and updated regularly in case of extreme disaster.

As onerous and complicated as this mechanism sounds it is actually very flexible: both restic and rsync are commands from CLI that can be automated in a script (contact me by email if you are curious to see my backup scripts).

Finally, let me add some important recommendations that are often ignored:

In addition to digital copies of my images, I regularly print photos on photo paper or photo books that are in fact a physical copy that always works even without computers and electricity.

If you then give these copies as gifts to people you love, then you have a displaced backup and happy people.

From chaos to meaning

By the term “curation” of a photo archive, I really mean taking care of the archive and the information in it and especially creating meaningful relationships among the images.

Meticulous selection and management of photographs and metadata can transform a disorganized archive into a strategic asset, enabling photographers to quickly reuse and access their material.

I consider archive curation to be an activity that cuts across the photographer’s entire user journey because curation of information begins even before a photo is taken.

The simplest and most trivial example that comes to mind is setting the time on the camera. A few times I happened to have forgotten to set it correctly, and the consequence was to have incorrect information that affected everything else I did, resulting in wasted time trying to fix it.

Curating a photo archive is not limited to selecting the most representative or significant images, but involves an ongoing process that carefully organizes, labels, and describes each image to ensure easy access and retrieval.

The main activities include:

  1. selection and organization: after the images have been taken and archived, photographers must examine each photo and decide which to discard and which to keep; this not only concerns the aesthetic quality of the image, but also its relevance, context, and potential usefulness for future projects; the selected images must be organized in a logical system that can include folders, collections, or thematic albums;
  2. addition of metadata: a key element of curation is the addition of metadata; this can include information such as the date and location of the shot, description of the subject, equipment used, keywords (tags), copyright and copyright information, any notes on the context and emotion captured, etc.; good metadata management increases the searchability of images, even years later;
  3. keep consistency: it is essential that photographers establish a standard system for metadata and tags; for example, using uniform conventions for file names or image categories (such as landscapes, portraits, events, nature, etc.) facilitates search and management; consistency helps avoid disorganization and overlapping information;
  4. quality management: during the curation phase, photographers may decide to delete duplicate images, enhance those that are not perfect, or even make small changes to their appearance or metadata to ensure that the archive remains consistent and useful in the long run;
  5. document: adding historical or narrative context can enrich the archive; details about significant events or the creative process behind each image can turn the archive into an important cultural or artistic resource; for example, it might be useful to note the evolution of one’s style or the symbolic significance of a photographic project;
  6. findability: a good archive must be easily searchable; the use of image management software that supports advanced searches using keywords, dates, locations, and other metadata is essential; in this way, even among thousands of images, it will be possible to quickly find the one you need; curation, therefore, also involves creating a system that helps to quickly locate the right images at the right time.

Curation represents an investment that allows photographers to maximize the potential of their archive over time. A well-curated archive not only saves time in managing photographic resources, but also becomes an asset that increases in value over time.

darktable lighttable user interface
My rating system in darktable, to get out of chaos

Selecting photos for a project is the most important part of the process, and I am very strict when it comes to making selections of my photographs. Often this activity is done at different times, over several days, months and sometimes years.

I do this selection in darktable for the sake of simplicity, but as I will explain in the next section, the rating will be readable by other software that supports reading XMP sidecar files.

For rating my photos, I use the following rating system:

By default, all photos imported into darktable have rating 1 which I consider the default rating. After taking and importing the photos, I do an initial round of culling. If I do not like a photograph, or it is technically wrong, and more generally does not give me any emotion, the image does not pass selection, I assign rating 0 and it disappears from my view. These will be 99% images that are later destined to be rejected -rating R- and in the future permanently deleted. I am very strict in this operation, and I do not keep these kinds of images, and archiving them would be unnecessary, and especially costly in terms of noise and archive cost.

Archive – the bin for the indecisive

— Sönke Ahrens, How to take smart notes

During the second round of curation, I make an initial selection, assigning rating 2 to photographs that have creative potential and are part of the initial vision. These are the images that give me emotion and that I consider meaningful.

I always let a few days pass between the different selection stages, because often seeing the same photographs repetitively does not help with selection, it confuses and generates frustration. In the later stages I assign the rating 3 to the images I want to edit, which will most likely be shared and end up in the final project. At this stage there are still similar images but there are still small details that do not help me make a final choice.

Only at the point when I begin to reason with the final vision of the project in mind —for example a photobook— will I assign rating 4 to identify the final images that will be printed and form the final project.

The rating 5 is assigned only and exclusively to the cross-project images that I consider the best in my archive those that will be part of my photographic portfolio.

Crafting the final vision

“A screenshot of darktable”
A moment of editing in darktable

After taking, storing and backing up photos, photographers have a need to view the photos and be able to develop them.

In the opensource arena there are several software to develop RAW photos but my favorite remains for the moment darktable an application to manage the photographic workflow and development of RAW images. It is both an image library and a virtual darkroom. It manages digital negatives in a database, allows them to be viewed through a zoomable light table, and allows RAW images to be developed and enhanced.

It is a viable open source alternative for RAW photo development for all types of photographers, professional and amateur.

I will not go into much detail on the actual development part of RAW images. This topic is much better covered by other photographers and on YouTube you can find many videos of editing sessions to take inspiration from. My favorite is the channel of Boris Hajdukovic which is always very up-to-date.

On the other hand, I wanted to share a key aspect of darktable that is often overlooked and which allows the archive to be shared interoperably with digiKam.

darktable is a non-destructive image editor and reads RAW files without ever editing them. Everything done in darktable is saved in separate text files in XMP format, the so-called sidecar files.

Information such as rating and captions are saved in these files, but also the complete editing history.

This is an example of how images and sidecar files appear within a folder:

...
-rw-r--r--. 1 fabio fabio  48M May 17  2020 2020-05-17T150537-X100F.raf
-rw-r--r--. 1 fabio fabio  13K Oct  1  2024 2020-05-17T150537-X100F.raf.xmp
-rw-r--r--. 1 fabio fabio  48M May 17  2020 2020-05-17T150547-X100F.raf
-rw-r--r--. 1 fabio fabio  13K Oct  1  2024 2020-05-17T150547-X100F.raf.xmp
-rw-r--r--. 1 fabio fabio  48M May 17  2020 2020-05-17T150602-X100F.raf
-rw-r--r--. 1 fabio fabio  13K Oct  1  2024 2020-05-17T150602-X100F.raf.xmp
-rw-r--r--. 1 fabio fabio  48M May 17  2020 2020-05-17T150603-X100F.raf
-rw-r--r--. 1 fabio fabio  13K Oct  1  2024 2020-05-17T150603-X100F.raf.xmp
...

This is an important point for several reasons:

I stress the importance of this point because in the past I have had to use proprietary software that used a “library” whose proprietary format did not allow me to easily handle this type of operation. In addition, the proprietary format made interoperability between different software difficult.

In my workflow, I can switch from an editing session in darktable to a curation session in digikam by simply re-reading the information saved in the XMP files of the images.

“Alt”
In digiKam is it possibile to read information from the XMP sidecar files and update the database

Finally, a personal note on darktable.

I often read that the interface is not intuitive and that the learning curve is steep. As a designer and former user of other operating systems and other photographic software, of course I too had difficulties in the beginning. But I think this applies somewhat to all kinds of complex software from darkable to Blender, from Figma to Photoshop, from Blender to Maya. Fortunately there are many enthusiasts and there are many tutorials to learn, and once you get the basic knowledge, developing photographs in RAW format is done very quickly.

The main darktable community can be found at pixl.us and is very active and willing to help those who have just recently approached this software.

One thing that helped me a lot to understand better how to develop my images was to participate in Play Raw: users post their RAW images and other users develop them by posting only the XMP file. This way anyone can give their interpretation of the same image, but at the same time you can see how others used darktable to get a specific development.

Leaving a trace

“Alt”
Memento Floris postcard

At the end of this entire journey, from planning a photography project to editing individual images, photographers obtain images that can be used for other purposes.

In this section I will not cover everything that is possible to do with images, but will simply describe my personal experience in what I think are the most common needs namely online sharing and photo book design.

In the analog world one of the things I’ve always done to choose and organize a series of images is to put all the prints on a big table or on the floor, move them around, match them up, and put them together to build the narrative of the idea, of the project.

In the digital world this approach is enabled by software that uses the concept of an infinite canvas. As a designer I use Penpot not only to collect images to create mood boards but also to organize the images and sequences of my projects.

I used this technique to sketch the sequence of photographs that I included in my personal photobook Memento Floris.

“Screenshot of the board made in Penpot about the planning of my book Memento Floris”
Screenshot of the board made in Penpot about the planning of my book Memento Floris

To create photo books the open source software I use has been around for 40 years, and it works so well that I believe there will always be ways in the future I can use it: LaTeX.

Again, using LaTeX is not at all straightforward, and I can already hear the criticism from those who compare it to InDesign or better known publishing editing software that allows you to create a book with graphic mode.

In the case of LaTeX, however, the great advantage besides being opensource and free, is that since it is a code, it can also be compiled in the future without having to convert it as happens with proprietary formats.

I have created a basic template to create Carnet des photos which starting from a folder containing a series of images, automatically paginates them and which I use to print my photobooks in just under a few minutes, just enough time to compile the book with LaTeX.

An excellent visual editor for manipulating files in LaTeX is Kile which offers preview capabilities of LaTeX-generated pdf files for further fine tuning of the final result.

“Screenshot of Memento Floris photo book in Kile”
My photo book Memento Floris in Kile

The end of the journey

Picture of the cover of my Memento Floris photobook
My Memento Floris photo book created from using only FOSS software
We are at the end of this journey where I wanted to share my photographic workflow using only FOSS and non-proprietary software, and I am taking the opportunity to write some thoughts.

The main reason in choosing this kind of path using only FOSS software is not cheap to use free software.

On the contrary, my invitation is to support the projects you use by making donations. Don’t wait to receive notifications, and put your hand in your wallet and donate and support your projects financially. And if you cannot offer money, offer your contribution in the form of development, translations or user feedback.

The biggest advantage of this way of working from my perspective is to be sovereign of your own data, your own images, and not be bound to specific non-interoperable formats and photo libraries.

This type of approach also does not require modern hardware and works well on any type of computer allowing —those willing to learn— to create and work on photographic ideas and projects achieving results equal to those obtained using the so-called professional software used by the industry.

Not least, participation in open source communities allows not only to build and contribute to a collective project but is also a way to improve human relations.