Project

General

Profile

Feature #12499

Compatible color labels

Added by Vincent Fregeac 6 months ago. Updated 6 months ago.

Status:
New
Priority:
Low
Assignee:
-
Category:
Lighttable
Target version:
-
Start date:
12/27/2018
Due date:
% Done:

0%

Affected Version:
git master branch
System:
all
bitness:
64-bit
hardware architecture:
amd64/x86

Description

Darktable implementation of color labels is incompatible with the implementation of color labels in every other image software. Color labels where implemented as a simpler version of the IPTC field "Edit Status" and are used by most photographer to manage where the image is in the workflow. But, when a workflow involves several software (as it usually do), the stage in the workflow is lost when the image is processed by Darktable since Darktable save color labels in a "proprietary" Darktable entry in the xmp sidecar.

Color labels are supposed to be exclusive (an image cannot be at several different stages of the workflow at the same time) and always saved as a color name (even if the color label has been renamed) in the <xmp:Label> field. All image software implement color labels this way to allow a workflow of images involving several software.

I don't know why, originally, reinventing the wheel for color label in Darktable was considered a good idea but it makes color label in Darktable basically useless as soon as the workflow is not entirely done in Darktable. And considering the limitations of Darktable in terms of metadata, hierarchical tags, reverse lookup of location, an image workflow with Darktable will, for the foreeseable future, involve going back and forth between Darktable and other tools. So, a compatible implementation of color labels to manage the workflow is a must.

History

#1 Updated by Roman Lebedev 6 months ago

Vincent Fregeac wrote:

Darktable implementation of color labels is incompatible with the implementation of color labels in every other image software. Color labels where implemented as a simpler version of the IPTC field "Edit Status" and are used by most photographer to manage where the image is in the workflow. But, when a workflow involves several software (as it usually do), the stage in the workflow is lost when the image is processed by Darktable since Darktable save color labels in a "proprietary" Darktable entry in the xmp sidecar.

Color labels are supposed to be exclusive (an image cannot be at several different stages of the workflow at the same time) and always saved as a color name (even if the color label has been renamed) in the <xmp:Label> field. All image software implement color labels this way to allow a workflow of images involving several software.

I don't know why, originally, reinventing the wheel for color label in Darktable was considered a good idea but it makes color label in Darktable basically useless as soon as the workflow is not entirely done in Darktable. And considering the limitations of Darktable in terms of metadata, hierarchical tags, reverse lookup of location, an image workflow with Darktable will, for the foreeseable future, involve going back and forth between Darktable and other tools. So, a compatible implementation of color labels to manage the workflow is a must.

citations needed.
When in the proper XMP specification is the color labels documented?

#2 Updated by Vincent Fregeac 6 months ago

IPTC field for workflow management are outside the scope of the standard IPTC shemas. However, there are several IPTC fields for workflow management, like "Edit Status", "Priority", "Object Cycle" or "Color label", etc. These fields do not have a documented standard implementation but they do have defacto standard implementation, i.e. a common implementation followed by almost all, if not all, software tools that implement these fields.

Darktable developers obviously recognise the defacto standard of color labels since, in Darktable:
- there are 5 and only 5 color labels, as in almost any other software who implement color labels for images;
- the five color labels in Darktable are Red, Yellow, Green, Blue, Purple, in that order, as in almost any other software;
then, for whatever reason, Darktable use non-exclusive color labels, and save them in a proprietary field that no other software recognize.

But, although Darktable do not follow the defacto standard, it expects other software to follow that defacto standard. You can just look at how Darktable import color label from images with existing xmp sidecars:
- Darktable reads the color label from the xmp:Label field during import;
- Darktable will import a color label saved as a name but will fail to recognize a color label saved as a number (although Darktable itself save color label as numbers);
- Darktable will import a single color label properly, but will fail to import multiple color labels saved as a comma separated list or saved as multiple entry of the xmp:Label field (although Darktable itself save multiple color labels as multiple entry of the same field).

Obviously, Darktable developers know that color labels have a defacto standard implementation since that's how Darktable expect color labels during the import. So, if Darktable expect other software to follow the defacto standard, why not follow the same standard internally? I don't think making Darktable color label incompatible with every other software is a good idea, especially when you expect other software to follow that standard, as Darktable import module shows.

For reference, you can look at RAWTherapee, Capture One, Lightroom/Bridge, XnView MP, ACDSee Ultimate, just ot mention those I have used, they all implement the defacto standard for color label in their GUI and, when they save the color label as an xmp field (not every software implement xmp yet), they all use a single color name in the xmp:Label field. After all, there must be a reason why Darktable expect the color label to be saved that way when importing images with xmp sidecars.

#3 Updated by Vincent Fregeac 6 months ago

I just thought how "compatible" color labels could be implemented with minimal disruption to the current functionality and code: Save the color labels in the usual darktable xmp fields, but also save the "highest" color label as xmp:Label.

For example, if an image has Red, Green and Blue labels, all color labels are saved the usual way, but Blue is also saved as xmp:Label.

This way, darktable keeps multiple color labels for those who use that functionality, but color labels can also be used to share the status of an image with another software, which is the most common use for color labels as far as I know.

Also, it would only require to add a few lines of code to translate the highest color label number in the corresponding color name, before saving it as xmp:Label, but the color label related code could otherwise remain the same.

#4 Updated by Mica S 6 months ago

Vincent Fregeac wrote:

For example, if an image has Red, Green and Blue labels, all color labels are saved the usual way, but Blue is also saved as xmp:Label.

Who says blue is the highest?

This way, darktable keeps multiple color labels for those who use that functionality, but color labels can also be used to share the status of an image with another software, which is the most common use for color labels as far as I know.

Citation needed. Also not everyone's use & personal meaning of color labels will be the same.

#5 Updated by Vincent Fregeac 6 months ago

People read from left to right, at least for occidental languages, to Blue comes after Red and Yellow. Call it "Latest", "Most Right", if you don't like "Highest". And if it's the last one you assign to the image, it's probably the one you want to know about when you use another software for the next step in your workflow.

Citation needed: Really? Am I the only one who look at what other photographers are doing to refine my own workflow and the way I use my image tools? And after 10 years, I am yet to see a tutorial, a video, a blog post about color labels who doesn't use them in a way related to the workflow, either to know where the image is in the workflow, or to remember what's next for this image. And, yes, I haven't read the entire internet so there may be some people somewhere who use the color labels in a different way, but if I haven't seen one in 10 years, they are probably not that common.

#6 Updated by Mica S 6 months ago

Vincent Fregeac wrote:

People read from left to right, at least for occidental languages, to Blue comes after Red and Yellow.

But Green comes between Yellow and Blue.. like this: red, yellow, green, blue, purple.

Call it "Latest", "Most Right", if you don't like "Highest".

Changing words that don't change the semantic meaning is pointless. You can call it whatever you like, but your workflow isn't the gold standard.

And if it's the last one you assign to the image, it's probably the one you want to know about when you use another software for the next step in your workflow.

It isn't the last one.

Also available in: Atom PDF