Colour Labels in Lightroom

Have you ever used colour labels in Lightroom to organise your photos?

It may surprise you that these colour labels are actually not what they are called. There is no colour assigned to a photo, it is a string.

You can easily try it yourself. Open Lightroom, choose a photo and set the colour label to red by hitting “6” on the keyboard. Depending on your settings, Lightroom will display a red frame around your image, add a reddish background or show a red square beneath the image in grid view. Once you did that, open the metadate panel, choose the default display and observe the field called “Label”. What do you see? The text “Red”, not the colour.

You can edit this field. Try typing “Green” and observe the colour marking change. Of course you can type in anything you like. Say you want to mark an image as approved, just type in “Approved”. No colour shows up? Well, what did you expect?

Colour Label Sets

If the field “Label” contains just text, how does Lightroom know it is supposed to display a colour? How does this work for different languages? You might write “Yellow” for yellow, I’d write “Gelb” in my mother tongue, still we mean the same colour. The key is a colour label set. You will find it in the menu under “Metadata – Color Label Sets”. Lightroom comes with three predefined sets: “Lightroom Default”, “Bridge Default” and “Review Status”. Select “Lightroom Default”, open the Menu again and klick “Edit…”. You will see this:

That is the complete secret. Lightroom reads the field “Label” and checks the currently selected colour label set to see whether there is a colour to display for the text found. You can use any text you like. The two other default sets use other text and are good examples for what you might want to use this for. You can create and save you rown colour label sets as well.

By the way, switching the colour label set does not alter the label-fiels. So you can use different sets for different purposes and switch between those. Only thing to keep in mind: there can only be one label per photo. So if you mark a photo as Red with the “Lightroom Default” set, then switch to “Bridge Default” and use the colour label yellow to mark the same photo as second choice, the metadata will only contain the word “Second” – the first colour label is gone.

I’ll leave it to you to find out what happens if you switch languages.

Re-Run Lightroom Face Detection

To my knowledge as of today there is no official way to re-run face-detection in Adobe Lightroom (LR), neither for a complete catalogue nor for a single folder. You may find you want this option if for example you deleted a whole bunch of already recognised face-areas and now regret you did so. The following works for me.

First make a backup of your catalogue.

Then get the SQLite Browser (http://sqlitebrowser.org/). You will need it to edit the LR catalogue file. Install it, run it and open a database. Use your catalogue as database. Lightroom must be closed while you do this.

You will see, a LR catalogue is a relational database, it contains a lot of tables. With some experience you’ll be able to guess how these work together. A lot you can do here – a lot you can damage! If you try what I describe here and it fails, don’t come to me for complaining. This is definitely not officially supported, no warranty, at your own risk.

There is one table that can help you if you want to re-run the face-detection: Adobe_libraryImageFaceProcessHistory. It contains information about what happened with the images already, the last status of face-detection, face-recognition and indexing as well as whether you touched the image after detection, for example to confirm the find by adding a name.

The table is pretty useless without additional information. It contains a ID for each image it has data for, which you can use to link to the relevant information in other tables like this:

select Folder.pathFromRoot, File.baseName, File.extension, Hist.*
from  Adobe_libraryImageFaceProcessHistory AS Hist
inner join Adobe_images AS Img ON Hist.image = Img.id_local
inner join AgLibraryFile AS File on  Img.rootFile = File.id_local
inner join AgLibraryFolder AS Folder on File.folder = Folder.id_local

As you have the folder path in the query, you can also use it to filter for photos in a particular folder (including subfolders if you use a wildcard ‘%’). Like this:

select Hist.*
 from  Adobe_libraryImageFaceProcessHistory AS Hist
 inner join Adobe_images AS Img ON Hist.image = Img.id_local
 inner join AgLibraryFile AS File on  Img.rootFile = File.id_local
 inner join AgLibraryFolder AS Folder on File.folder = Folder.id_local
 where Folder.pathFromRoot LIKE 'Photos/2015/2015-04-25/%'

Now, with this you can selectively delete the face detection history entries for photos in a particular folder. Before you do, make sure you have really made that backup.

delete from Adobe_libraryImageFaceProcessHistory
 Where id_local in (
 select Hist.id_local
 from  Adobe_libraryImageFaceProcessHistory AS Hist
 inner join Adobe_images AS Img ON Hist.image = Img.id_local
 inner join AgLibraryFile AS File on  Img.rootFile = File.id_local
 inner join AgLibraryFolder AS Folder on File.folder = Folder.id_local
 where Folder.pathFromRoot LIKE 'Photos/2015/2015-04-25/')

Now, close the database and open Lightroom. Go to the folder and switch to people-view. The detection runs again.

This does not delete already detected face-areas or keyword assignments.

Let me know if this worked for you in the comments.

Englisches Lightroom mit deutscher Tastatur

Mit einem einfachen Trick eine deutsche Tastaturbelegung mit englischem Lightroom benutzen.

Die Herausforderung

Weil ich bevorzugt englischsprachige Fotoseiten lese und auch eine Menge Foto-Lehrbücher in dieser Sprache besitze, bevorzuge ich ein englisches Lightroom. So spare ich mir die Suche nach der deutschen Bezeichnung für einen Begriff, der z.B. in einer Anleitung verwendet wird. Bei Photoshop halte ich es genau so, doch darum soll es hier heute nicht gehen.

Die Herausforderung ist, dass Adobe leider mit dem Sprachwechsel auch die Tastaturbelegung wechselt. Es ist nicht vorgesehen, ein Tastaturlayout separat einzustellen. Tasten, die auf einem englischen Layout bequem sind, liegen auf der deutschen Tastatur unmöglich. Zum Beispiel der Backslash “\” oder die eckigen Klammern “[” und “]”. Sie liegen in der US-Version direkt nebeneinander und sind ohne Kombination mit anderen Tasten erreichbar:

US Tastaturlayout
„KB United States-NoAltGr“ von Diese Datei wurde von diesem Werk abgeleitet: KB United States.svg. Lizenziert unter CC BY-SA 3.0 über Wikimedia Commons – https://commons.wikimedia.org/wiki/File:KB_United_States-NoAltGr.svg#/media/File:KB_United_States-NoAltGr.svg

Für uns Deutsche sieht das anders aus, alle drei Tasten sind nur per Kombination mit Alt Gr erreichbar.

Quelle: Wikipedia
Quelle: Wikipedia

Die “Lösung”

Bei einem Sprachwechsel wird in Lightroom auf eine andere Sprachressourcedatei umgestellt. Die Datei für Deutsch ist bei einer Installation von Lightroom CC unter Windows: %Program Files%\Adobe\Lightroom\Resources\de\TranslatedStrings.txt.

Es gibt erwartungsgemäß keinen Ordner für die Sprache Englisch (en). Interessant ist aber, dass er, wenn es ihn gibt, berücksichtigt wird. Das kann man leicht ausprobieren, indem man den Ordner …\Resources\de kopiert und in …\Resources\en umbenennt und danach eine englische Version Lightroom startet. Dann werden nicht nur die deutschen Anzeigetexte verwendet, sondern auch die Tastaturbelegung.

Die Datei selber ist eine reine Textdatei. Hier mal ein Auszug aus dem Inhalt

"$$$/AgDevelop/Localized/Brightness=Helligkeit"
"$$$/AgDevelop/Localized/Brush=Pinsel:"
"$$$/AgDevelop/Localized/BrushA=A"
"$$$/AgDevelop/Localized/BrushB=B"
"$$$/AgDevelop/Localized/BrushDecreaseKey=,"
"$$$/AgDevelop/Localized/BrushDecreaseKeyShifted=;"
"$$$/AgDevelop/Localized/BrushIncreaseKey=."
"$$$/AgDevelop/Localized/BrushIncreaseKeyShifted=:"

Die rot hervorgehobenen Zeilen sind interessant. Es werden offensichtlich Tastaturbelegungen vorgenommen. Was liegt also näher als alle Zeilen, die nichts mit Tastaturbelegungen zu tun haben, aus der Datei zu werfen und diese dann für das englische Lightroom zu verwenden? Nichts, genau so funktioniert es.

Bei Bedarf lassen sich dann gleich noch ein paar unglücklich gewählte Belegungen korrigieren und ein paar wenige Texte anpassen, fertig ist die eigene Tastaturbelegung für deutsche Tasten an englischem Lightroom.

Umsetzung

Einen Download einer fertigen Datei möchte ich an dieser Stelle nicht abieten, weil

  • ich meine persönlichen Vorlieben in meine eingebaut habe, die nicht jeder teilen mag
  • die Datei von der Version von Lightroom abhängen dürfte
  • ich nicht sicher bin, wie begeistert Adobe wäre

Aber ich kann noch ein paar Tips geben:

  1. Die Einträge unter “$$$/AgBezels/KeyRemapping” sollten mitgenommen und angepasst werden.
  2. Unter “$$$/AgApplication/Menu/Window/SecondMonitor/” finden sich ein paar Tastaturbelegungen, die mit Shortcut statt Key bezeichnet sind.
  3. In der deutschen Version der TranslatedStrings.txt ist “Ctrl + ,” doppelt belegt. Ich habe daher zusätzlich “$$$/Application/Menu/Edit/Preferences/KeyWin=Cmd++” eingefügt und “$$$/Application/Menu/File/LibraryInfo/Key=Cmd+Option++” analog angepasst.
  4. In der deutschen Version der TranslatedStrings.txt findet sich eine Tastaturkombination “^L”, die sich anscheinend auf den Backslash “\” bezieht. Ich habe sie bei mir durch “<” ersetzt, das ist viel leichter zu bedienen.
  5. Es scheint naheliegend, für Zoom-Vorgänge die Tasten “+” und “-” zu verwenden. Leider klappt das aus mir unbekannten Gründen nicht mit dem “+”, daher sollte man bei dem (weniger intuitiven) “#” bleiben.

Letzter Tipp: vor irgendwelchen Änderungen immer die Originaldateien sichern!

Aktualisierung 24. März 2017

Bei der aktuellen Version von Lightroom CC (2015.9) wurden die Dateien anders benannt. Damit klappt der beschriebene Trick erst mal nicht mehr. Die deutsche Datei heißt jetzt TranslatedStrings_Lr_de_DE.txt. Ich habe einfach mal probiert, die für Englisch  TranslatedStrings_Lr_en_US.txt zu nennen – und siehe da, es geht wieder.

Natürlich braucht man nicht wirklich alle Zeilen aus der Datei. Da, wo die englische Originalbelegung gut funktioniert, muss man nicht korrigierend eingreifen. Es ist nur viel einfacher, alle Zuordnungen aus der deutschen Datei zu übernehmen, als mühselig herauszusuchen, welche man braucht.

Der Fehler der Mehrfachbelegung von “Ctrl + ,” ist behoben, die Kombination ist jetzt “Ctrl + u”. Mein Tipp 3 ist daher obsolet.

Die in Tipp 4 beschriebene Kombination “^L” ist nur eine Zeichenkette für die Anzeige, man kann sie ersetzen, die Funktion ist auch ohne Ersetzung auf “<“.

Übersetzungen

Die folgenden Zeilen dienen der Zuordnung der Namen für Kombinationstasten zu den in den anderen Zeilen verwendeten Kürzeln. Man braucht sie, anders als ich ursprünglich dachte, nicht.

"$$$/AgBezels/KeyRemapping/MacCommand=Befehl"
"$$$/AgBezels/KeyRemapping/MacDelete=Löschen"
"$$$/AgBezels/KeyRemapping/MacOption=Wahl"
"$$$/AgBezels/KeyRemapping/MacReturn=Eingabe"
"$$$/AgBezels/KeyRemapping/WinAlt=Alt"
"$$$/AgBezels/KeyRemapping/WinBackspace=Rücktaste"
"$$$/AgBezels/KeyRemapping/WinControl=Strg"
"$$$/AgBezels/KeyRemapping/WinEnter=Eingabe"
"$$$/AgCameraRawController/Keyboard/AltKey=Alt"
"$$$/AgCameraRawController/Keyboard/OptionKey=Wahl"

Es gibt einige weitere Zeilen, die deutsche Begriffe enthalten. Diese dienen der Anzeige der aktuellen Tastenbelegungen auf dem Hilfeschirm, den man mit Strg+< erreicht. Es erscheint mir sinnvoll, die hier auftauchenden deutschen Begriffe durch die englischen zu ersetzen, also:

  • Command statt Befehl
  • Delete statt Löschen
  • Option statt Wahl
  • Enter statt Eingabe
  • Backspace statt Rücktaste
  • Shift statt Umschalt
  • Right Arrow statt Nach-rechts-Taste
  • Left Arrow statt Nach-links-Taste
  • Up Arrow statt Nach-oben-Taste
  • Down Arrow statt Nach-unten-Taste
  • Ctrl statt Strg
  • Tab statt Tabulatortaste
  • Space statt Leertaste

Löschen überflüssiger Zeilen mit Notepad++

Man kann das Löschen von nicht benötigten Zeilen mit Suchen und Ersetzen mit Regulären Ausdrücken deutlich erleichtern. Ich habe alle Textteile mit notepad++ gelöscht, auf die folgender Ausdruck passte:

^((?!(Key=|KeyWin=|KeyShifted=|Shortcut=|KeyRemapping)).)*$\R

Danach ist die Anzahl der Zeilen, die man manuell löschen muss, überschaubar.