I have started to use digikam for browsing the photos. I am testing its capabilities on a subset of recent photos but I plan to import my entire collection once my workflow is set.
I use darktable for raw conversion and I have been using it to tag photos, too.
I used to use Capture One, so there are plenty of raw files processed with that software, too.
I currently use a folder hierarchy like the following and am testing workflow B with sidecar files for jpgs.
After processing the raw file with darktable (with metadata export disabled) I may get:
./2023/jpg_sooc/basename_sooc.jpg ... without ratings and custom xmp metadata
./2023/raw/basename.RAF
./2023/raw/basename.RAF.xmp ......... has ratings and custom xmp metadata
./2023/raw/basename_01.RAF.xmp ...... has ratings and custom xmp metadata
./2023/jpg/basename.jpg ............. without ratings and custom xmp metadata
./2023/jpg/basename_01.jpg .......... without ratings and custom xmp metadata
./2023/jpg/basename_02.jpg .......... without ratings and custom xmp metadata
(I have written a small python-based program to import photos from my camera’s SD cards. It copies the files, compares checksums to make sure everything is copied properly, and does some renaming, to make sure that image filenames don’t repeat after 9999 photos taken. That’s also how the sooc-jpg files get their filename suffix.)
Now, importing all the images into digikam I am faced with the issue that the jpg files lack tags.
So I have written another small python-based program which scans folders for images and sidecar files that share a basename (like all the files in my example). This program then synchronizes tags based on the information that was written most recently. I am instructing that program to only ever write xmp files, also for jpgs, using exiftool under the hood.
So this tool will then add more sidecar files to the tree:
./2023/jpg_sooc/basename_sooc.jpg ... without ratings and custom xmp metadata
./2023/jpg_sooc/basename_sooc.jpg.xmp
./2023/raw/basename.RAF
./2023/raw/basename.RAF.xmp
./2023/raw/basename_01.RAF.xmp
./2023/jpg/basename.jpg ............. without ratings and custom xmp metadata
./2023/jpg/basename.jpg.xmp
./2023/jpg/basename_01.jpg .......... without ratings and custom xmp metadata
./2023/jpg/basename_01.jpg.xmp
./2023/jpg/basename_02.jpg .......... without ratings and custom xmp metadata
./2023/jpg/basename_02.jpg.xmp
(Well, I will mostly have only a single xmp, and a single derived jpg per raw file.)
From here I am going to do all remaining tagging in digikam and I would bulk-tag all images that belong together, so these changes will be made to all the xmp sidecar files simultaneously without the need for additional synchronization.