Jeffrey’s “People Support” Lightroom Plugin

This plugin for Adobe Lightroom Classic adds features related to people in your photos, and their ages, such as knowing the ages of people in a photo at the time it was taken.

This plugin works in Lightroom Classic, and older versions as far back as Lightroom 4 (though some features depend on the version of Lightroom).

In Lightroom CC/6 and later, additional support is built in for Lightroom's Facial-recognition feature.

The same download works for both Windows and Mac. See the box to the upper right for the download link (in orange) and installation instructions.

Table of Contents

   Setup
      Create and Assign Keywords for Each Person
      Associate a Birthday and other data with Each Person Keyword
   Filtering The List of People
   Usage: Viewing Ages
   Accessing People and Their Ages Elsewhere
   Availability
   Version History

Setup

The plugin involves two phases of setup:

1. Create a Keyword for each person, and assign it as appropriate to each photo the person is in.
2. Use the plugin to associate extra data, such as a birthday with each keyword.

1) Create and Assign Keywords for Each Person

This is most easily done in Lightroom CC/6 with its Facial Recognition feature, though you can do it by hand as well.

How you organize your People keywords is up to you, and like most aspects of Lightroom workflow, it's a personal decision. If you've not thought about it yet, here are two organizational examples for consideration:


example 1

example 2

You can create keywords via Facial Recognition, or manually via the + icon highlighted in red above.

In both examples the people-related keywords have been organized under a master parent keyword; I find it convenient to keep them segregated that way. In the right-side example, the parent keyword is named with a leading hyphen (-PEOPLE-) so that Lightroom will sort it to the top of the list, which I find helpful.

If you'd find it convenient to have family names sorted together, you'll want the family name to appear first in the keyword. Unfortunately, keywords may not contain commas, so a keyword like Friedl, Jeffrey is not possible. In the right-side example above I went with a format like Friedl/Jeffrey, but depending on taste you might prefer a format along the lines of FRIEDL Jeffrey or perhaps Friedl - Jeffrey.

Personally, I use the style shown in the right-side example.

Note that you can always edit your keywords to change the presentation of names later, and/or how they're organized; it's not something set in stone the first time you do it.

2) Associate a Birthday (and other data) with Each Person Keyword

Invoke the plugin's people-management dialog via

      File > Plugin Extras > Open People-Support Dialog

to get a dialog like this:

If a birthday has been associated with a keyword, the current age (or a bullet point; more on that later) is shown next to the name.

Because I've organized all my people keywords under a master base keyword, I'll go ahead and select that (see highlighted button above) to omit the clutter of non-people keywords from this dialog…

In Lightroom CC/6 and later, the little asterisk highlighted in red above appears. Clicking on it reports on any People keywords lying outside the chosen Parent. It's probably a good idea to check this every so often, in case a stray Person keyword had gotten created elsewhere.

Click on a keyword to bring up the ability to add a birthday and other data. Here's my entry for Anthony's great grandmother, who passed away some years back:

(Update Oct 2018: the dialog now includes a Nickname field, which can be referenced in the {People} token via the nicknames modifier).

Because she's passed away, I've chosen to enabled the don't display current age option, which is why she has a dot beside her name in the list instead of her current age beside her name.

The notes section allows you to keep track of things like family relationships, other names the person might have used, etc.

(I don't intend to have the plugin try to keep relationship data itself, because that can be a can of worms.)

Filtering The List of People

If you have many Person keywords, the filter box above the list can help track down specific keywords quickly.

For example, to bring up a specific name so that you can edit the person's data, just type the name into the filter field and their data will pop right up.

The keyword name and any personal notes you've added are subject to the search term you type. In addition, the following special terms are recognized:

+bd Limit the list to keywords with birthdays associated with them.
-bd Limit the list to keywords without an associated birthday.
! Limit the list to keywords applied to the currently-selected images.

Usage: Viewing Ages

If you have a photo (or photos) selected that include People keywords, invoke

      File > Plugin Extras > View Ages for Photo

(which personally I've mapped to shift-option-command-P on my system) and you'll get a report like this:

Within each photo, people are listed from youngest to oldest.


When first preparing this documentation, I thought it might be less distracting to not use my own family data, so I planned to use Elvis's family. I gave up on the idea mostly because I could find only one copyright-free photo of Elvis to use in my examples. That ended up taking me on a slight tangent, and, well, since I got this far I may as well share the screenshot I'd made:

Accessing People and Their Ages Elsewhere

Names and ages of folks tagged in photos can be accessed via the special {People} template token that many of my plugins support, such as for image titles and captions upon export, or in Twitter-tweet text.

Using the photo at the top of this page as an example, a bare {People} token by itself turns into text along the lines of:

Anthony Friedl (3 days old) and Jeffrey Friedl (36.5 years old)

So you might enter something like the following for a Caption template in one of my export plugins:

People in this photo: {People}

To see this result:

People in this photo: Anthony Friedl (3 days old) and Jeffrey Friedl (36.5 years old)

One problem with this approach is if there are no people in the photo (that is, if the photo has no keywords associated with it that this plugin has a birthday associated with), that last example would end up becoming:

People in this photo:

which is not very good.

This problem is easily solved if we dive into the various options for the {People} token. It's an extremely powerful token but with that power comes what might be a bit confusing at first.

Token Options

Using options to the {People} token, you can have only certain people shown, display or not display their names and/or ages, update the order that people are shown, and more.

Choosing People with People Selectors

If you want to include only specific people, you can list them separated by commas in the token, like in this example that lists two people:

{People=Anthony Friedl, Fumie Friedl}

If this were applied to the sample photo of me and Anthony, I would be excluded from the result because I'm not in the list. (My wife Fumie wouldn't be suddenly added to the output, of course, because she's not tagged in the photo to begin with.)

Explicitly listing names is one way to select people for inclusion. (In this documentation, selectors are shown like this to help keep things clear.)

If you don't select anyone, then everyone is included, but if you select anyone, only those people you select are included.

You can use wildcard patterns (similar to *.txt filename patterns) in addition to explicitly listing names. The selector * matches every name, so {People=*} is the same as {People}.

If I want to include only people with the last name Friedl or Matsunaka, I'd use:

{People=* Friedl,* Matsunaka}

You can also select people based upon their age. The reason for this will be apparent soon, but first an example. To include only people less than 20 years old:

{People=< 20}

or, to include people less than 20 years old and folks 80 years old or older:

{People=< 20, >= 80}

The comparison is on their age in years as we normally think it… someone is 20 on the day they turn twenty years old, and remains 20 for a full year. So a selector like > 20 gets people 21 and over, while >= 20 gets folks 20 and over.

This age-based selection is powerful because the plugin also allows you to specify with each selector whether a selected person' age is shown, and if so, how.

What To Show For Each Person

The default presentation for a person is to show their name followed by their age in a reasonably-human way (older people just get the age in years, but babies get it in days and/or months). But you can change this on a per-person or per-class basis by following the people selector with a backslash and then a people-info format.

For example, to display just the name (and no age) for everyone, use * as the selector to match every name, and use %N — that's the code for just the name — as the format:

{People= *\%N}

As you can see, the format follows its selector, separated by a backslash.

With the photo of me and my son at the top of this page, a template of

People in this photo: {People=*\%N}

produces:

People in this photo: Anthony Friedl and Jeffrey Friedl

The default format code to show the full name and age is %F, so that means {People} is the same as {People=*\%F}.

If you want to include the name and age for kids 10 and under and folks over 90, but include just the name for anyone else, use this:

{People=<= 10\%F,>90\%F,*\%N}

It's that trailing *\%N that includes the name for anyone not selected by the other two rules. If it were omitted, folks between 10 and 90 wouldn't be included in the result (which would be fine if that's what you want).

People-Info Format Codes

The format given after the backslash can be more than just %F or %N, though those are the most useful. You can actually include most any text, with the following codes recognized therein:

%NThe name of the person (the keyword text itself)
%SSmart age — the age presented in a human way… like 22.3 years old for those older than two years old, and months and/or days for those younger.
%sSimple smart age — the age presented in a more simple human way… like 22, 4, 18 months, 3 weeks, …
%FFull info, the same as %N (%S), which is the name and the smart age. (This is the default format if none given.)
%fSimple full info, the same as %N (%s), which is the name and the simple smart age.
%YThe age of the person in years as an integer. (The day before their 15th birthday, %Y is still 14.)
%MThe month component of the person's age, as an integer. (Two months after any birthday, %M is 2.)
%DThe day component of a person's age, as an integer. (If someone is 17 years 3 months 22 days old, then %D is 22.)
%1YThe age of the person in years, to one decimal point (47½ becomes 47.5). Normal rounding rules don't quite apply: the day before the 32nd birthday would normally round to 32.0, but sorry, it's not your birthday quite yet, so %1Y remains 31.9.
%2YLike %1Y but to two decimal places.
%%A percent symbol.

So, the token

{People= >70\%N at the ripe old age of %Y, <5\%N at the tender age of %S, *\%N}

includes three people selectors, each with their own format.

Here's what would be produced if that token were used with this next four-generation photo:


Anthony Friedl at the tender age of 8 months one day old, Fumie Friedl, Eiko Matsunaka, and Kine Imai at the ripe old age of 79

To change the format used for everyone, just apply it with a * selector. To apply the format %N (%s) to everyone:

{People=*\%N (%s)}

which with the previous photo produces:

Friedl/Anthony (8 months), Friedl/Fumie (27), Matsunaka/Eiko (51), and Imai/Kine (79)

(The token {People=*\%f} would produce the same result, because the code %f is a shorthand for %N (%s).)

The Age of People Before They're Born

Formatting described above sort of breaks down when a photo is from before someone's birth, such as in an ultrasound scan. If the data of the photo is prior to the registered birthday, the plugin will replace the format with something that is hopefully appropriate.

Overall Modifiers, Etc.

The {People} tag can accept various overall modifiers after the list of people selectors, separated by semicolons. For example, update the previous example so that folks are presented in an oldest-age-first order:

{People=*\%N (%s);oldest first}

This would have the previous photo result in:

Imai/Kine (79), Matsunaka/Eiko (51), Friedl/Fumie (27), and Friedl/Anthony (8 months)

Note that even if you don't have a format, you do need the = after People, so the previous example with the default format is:

{People=;oldest first}

(Note the ungainly =;)

The following modifiers are available. You can include as many as you need, separated by semicolons:

  • nicknames
    For each person, use the registered nickname (if any) instead of the text from the keyword.

  • youngest first
    Order people by age, youngest first. This is the default sort.

  • oldest first
    Order people by age, oldest first.

  • sort by name
    Put people in alphabetical order by name.

  • separate by ""
    Separate multiple names by the given text, instead of the default English-language list treatment. For example, to have names separated by a comma and a space, use separate by ", "

  • if blank use "text…"
    If it turns out that the photo has no people (or, at least none that are selected) the {People} token should produce the given text instead of nothing. Consider this template pattern for a photo caption:

    People in this photo: {People=;if blank use "none"}

    In this example, no people selectors are given (the semicolon for the modifier comes immediately after the equal sign), so it remains at the default of *\%F.

  • prefix "text…"
    If the photo does have people (that are selected), prefix the list of names/ages with the given text. If there end up being no people selected, this modifier is ignored.

    A better way to present the previous caption example would be:

    {People= ;prefix "People in this photo: "}

    If there are no people, nothing results, but if there are people, the list of names and ages is prefixed by People in this photo: .

  • suffix "text…"
    Like the prefix above, but the text is appended rather than prepended.

  • swap around "character"
    This special modifier changes how names are presented, and is intended to ameliorate the last-name-first hack of having your name keywords like Friedl/Jeffrey rather than Jeffrey Friedl:

    {People= ;swap around "/"}

    This would leave names that don't have a / character alone, but names like Friedl/Jeffrey that do would have what comes before the / swapped with what comes after, replaced by a space: Jeffrey Friedl

    Note that if you use the sort by name modifier, the sorting happens before the swapping. That keeps the sort via family name.

  • swap around "character" rejoin with "text.."
    This is like the prior modifier, except you can specify what should be used to rejoin what has been swapped, instead of the single space that the prior modifier uses. I'm not quite sure how this would be used, but I include it for completeness. A silly example might be:

    {People= ;swap around "/" rejoin with " of the family "}

    which turns Friedl/Jeffrey into Jeffrey of the family Friedl. May be useful for British royalty.

Modifiers can be combined, as in this example:

{People= < 10 \%f,*\%N ;prefix "In this photo: ";swap around "/";oldest first}

Availability

This plugin is distributed as “donationware”. I have chosen to make it available for free — everyone can use it forever, without cost of any kind — but unless registered, its functionality is somewhat reduced after six weeks.

Registration is done via PayPal, and if you choose to register, it costs the minimum 1-cent PayPal fee; any amount you'd like to add beyond PayPal's sliding fees as a gift to me is completely optional, and completely appreciated.

Note: a Lightroom major upgrade, such as from Lr10 to Lr11 de-registers the plugin in the upgraded version, so if you want to maintain registration, a new ($0.01 if you like) registration code is needed in the upgraded version. It makes for a hassle every couple of years, I know. Sorry. See this note for details.

For details on plugin registration and on how I came into this hobby of Lightroom plugin development, see my Plugin Registration page.


Version History
( Update Log via RSS )

20220227.44

Better Lightroom DB access.

20220224.43

Work with MacOS gatekeeper to allow sqlite3 to be run.

Renamed “Sort By Face-Region Size” to “Advanced Face Search”

20220217.42

Added the ability to match only images with (exactly/more than/less than) some specific number of faces.

20220124.41

Previous build broke the new features added in the build before that.

20220120.40

Some settings were getting reset between uses.

Whack-a-mole with PayPal's random changes.

Added the WEEKNUM token, along with DAYNUM, weeknum, and daynum.

20211231.39

Added the “Sort By Face-Region Size...” feature.

Added the “Find Photos with Duplicate Faces...” feature.

20211219.38

Warn when PayPal seems to have given a bogus code in the web-confirmation page.

Fixed that the Province template token did not respect the plugin-specific geo-privacy settings.

Fixed an issue with the {Newline} token, and added {Comma}, {Hyphen}, and {Space} for good measure.

Fixed a problem with filters on the {Keyword} token.

20210415.37

Added 'separated by' to the People token.

Added the ImageViewDirection and ImageViewBearing tokens.

Reworked the Keywords token to better accept filters.

working around 'constant table overflow' error

20201103.36

Added the PF filter to turn typographic fractions into plain-ASCII fractions.

20201017.35

Updates for Lr10

Added the SpeedKnots token.

Worked around an "unknown key captureTime" error.

Added the {PlusCode} and {GeoHash} tokens.

Work around a Windows bug related to canceling out of the registration dialog.

Some of the filename-related tokens could be incorrect in rare situations.

Added some extra debug logging to note whether the plugin is enabled.

20191011.34

Added the LensInfo template token.

Updated the Exposure token to allow customization.

More token work: added {Urls}, and updated {ISO} and {Copyright} to allow customization.

Added the {RelativeFolder} token.

20190810.33

Fixed the SST1 and SST2 tokens.

20190731.32

Updated the PublishCollectionName token (and CollectionNames and CollectionFullNames) to remove the MIRROR: prefix from the name that mirrored collections within my Collection Publisher plugin automatically get.

20190708.31

Fixed a problem with the SpeedKPH token.

Added TempC and TempF to the template tokens that my plugins understand.

Added the TempC and TempF tokens.

Updated the keyword-related tokens to accept standard filters.

Work around a bug that sometimes causes plugins to be disabled when starting Lightroom via clicking on a catalog file.

Fix an "Unknown key: captureTime" crash.

Added the GPSCoords token.

Fixed a problem related to template tokens and photos without capture times.

Added functions uc(), ucFirst(), lc(), and lcFirst() to the LUA token.

20181106.30

Added the PEOPLE variable to the LUA token.

20181015.29

Updates for Lr8 (Lightroom Classic CC Version 8).

Added the special PP() function to the {LUA} token.

Try to work around a Lightroom bug related to photo timezones and how Lightroom handles accessing plugin data.

Added hierarchical options to the Keywords token.

20181004.28

Added the Nickname field to the per-person dialog, and added the 'nicknames' modifier to the {People} token.

Added the SST1, SST2, and SS3 tokens to the template tokens that the plugin understands.

20180906.27

Clicking on the version number in the Plugin Manager now copies version info to the clipboard

Updated the PublishCollectionName token to allow numeric arguments along the lines of the CollectionName token.

Added the folowing template tokens: {home}, {desktop}, {temp}, {pictures}, {documents}, IptcDateTaken

Added the 'PCH' variable to the {LUA} tag.

20180420.26

Fixed a bug when 'Token Examples' invoked in certain situations.

Updated the Keywords token, and added the KWf function to the {LUA} token.

Added the {NonSmartCollectionNames} and {NonSmartCollectionFullNames} tokens to the data templates that my plugins understand.

Added a bunch of token filters: F2D F2S F2X B2D B2S B2X S2X A2D A2S A2X

20171019.25

Oops, more Lr7 stuff.

20171019.24

Updates for Lr7.

Better handle some character-encoding issues related to template tokens.

Allow the "If Exists" feature of Templat Tokens to work with the PluginProperty token.

Update registration support to handle a stupid bug at PayPal that PayPal refuses to fix )-:

20170702.23

Added the "Open People-Support Dialog (Keywords in Selected Photos)..." plugin-extras command.

Fixed a bug introuded the other day in template tokens, related to Windows filenames.

20170621.22

Added the Newline template token.

Enhanced the FolderName token

Added the "only if it has a value" feature to template tokens.

20170513.21

Added "Sort Selected Photos By Age..." to the Plugin-Extras menu. The concept has potential, but it's quite kludgy now.

Allowed 'A' to be the Windows shortcut for "View &Ages for Photo...".

20170403.20

Better support for multiple FB accounts.

20170316.19

Fix to the Russian-language support for the People Support plugin.

20170309.18

Added the following tokens to the templates that my plugins understand: FileModYYYY, FileModYY, FileModMM, FileModDD, FileModHH, FileModMIN, FileModSS, FileYYYY, FileYY, FileMM, FileDD, FileHH, FileMIN, FileSS.

Fixed a bug with the keyword tables in the LUA token.

Added Weekday, Wday, weekday, and wday to the list of template tokens that my plugins understand.

Switch the log-sending mechanism to https.

Added "ISO8601Date" to the template tokens that my plugins understand.

Added the following tokens to the template tokens that my plugins understand: Artworks, ArtworkTitle, ArtworkCopyright, ArtworkSource, ArtworkCreator, ArtworkDateCreated, ArtworkInventoryNum

20160630.17

Better support for linking Facebook business pages.

20160313.16

Added Russian-langauge support for the People-Support {People} tag; see the new section of the plugin manager.

Make use of photo timezone data (added and maintained via my Geoencoding Support plugin when considering photo times.

Try to avoid yet another place where Lightroom gets hung because it can't handle certain kinds of dialogs at the same time.

20151226.15

Better support for linking to Facebook pages that are private.

Fixed a display error when editing a linked Facebook page for a person.

20151222.14

Add a note to the Facebook-linking stuff that reauthenticating to Facebook via my Facebook plugin can perhaps fix "not a Facebook profile url" errors.

Added ChildOf and DescendantOf filters to the {Keywords} and {KeywordsAll} template tokens that my plugins understand.

Fixed how custom {People} formatting works with people keywords that have no birthday associated with them.

20151122.13

I finally understand what causes the blank-dialog problem that some Windows users have reported... it seems that too many keywords overwhelms Lightroom's dialog system, and after some indeterminate amount of keyword data, dialog elements become blank, even in Lightroom system dialogs.

I've submitted a bug report to Adobe.

To hopefully mitigate the issue for some folks, I've changed the "select a base keyword" button so that it exits the people-support dialog first, freeing up space in Lightroom's dialog system. If you then select a base keyword, perhaps the newly-reduced number of keywords the dialog tries to display is under the "too much" limit.

20151009.12

Update to the Facebook-linking stuff... hopeful works in more situations now.

20150704.11

Figured out how to make the Facebook-linking stuff work again. You have to have been authenticated to Facebook with my export-to-Facebook plugin for it to work.

Put back the "Include on Export" option because those issues are fixed in Lr6.1.

20150529.10 Still more ways to figure out a person's FB id from their FB page url.
20150528.9 Try new ways to figure out a person's FB id from their FB page url.
20150509.8 New Italian translations courtesy of Davide Voltolini.
20150505.7

In LrCC/6, the "Show only People keywords" option is now augmented by a note about how many non-people keywords are hidden (or would be hidden), to perhaps explain why the list is blank.

20150430.6

Big update for Lightroom 6/CC.

Added support for Facebook: you can associate a Facebook account with a Person keyword, so that when you send photos to Facebook with my export-to-Facebook plugin, photos that have had faces recognized in Lightoom will be properly tagged at Facebook. For details, see "Automatic Face Tagging Now Supported in my Upload-to-Facebook Plugin for Lightroom".

Removed the stuff related to the Keyword's underlying "Include on Export" option, because that option seems to be completely ignored for People keywords. Rather, the publish/export option "Remove Person Info" seems to completely control the inclusion/exclusion of any People keyword. This seems like a bug to me, but until I get to the bottom of it I worry its inclusion here cold be misleading.

Added a filter for quickly finding name, or finding keywords that do/don't have a birthday, or are/aren't associated with a Facebook account.

20150206.5

In the POODLE-vunerability dialog, display a raw URL of a page on my site that discusses the issue, so that folks can be independently sure that the dialog is indeed from me and not malware.

20150201.4

Updated some of the translations, especially French (thanks to Pierre-Nicolas Rigal!)

20150129.3

Added some debug logging to track down a dialog-display error.

20150129.2

Added some progress scopes to the preparation of the "Manage People Keywords" dialog, because it can take a while if someone has a lot of keywords.

Fixed some of the translations. Respect the user's locale setting for numbers ("2.5 years" might become "2,5 Jarhe".

In the view-age dialog, added the person's birthday as a tooltip for their name.

20150126.1 Initial public release

The 30 most-recent comments (out of 38; see all), most recent last...

From one dad to another: I love the example for #1 – Pictures of daddy – 5 vs. baby – 1963… LOL… sounds like my collection. I’m glad once in a while my wife will take a picture of me with the kids to prove that I was around after all… 🙂 Great work, enjoy that baby!

— comment by Geoff Hudson on August 13th, 2015 at 10:46pm JST (9 years, 2 months ago) comment permalink

I’m posting my experience with the “blank windows” issue as others have been mentioning regarding this plugin, and how I “fixed” it.

I was following Jeffrey’s advice from a comment above, where he suggests making a copy of the library, removing the photos in that library copy, then zipping and sending it to him for analysis.

I did so, then reopened my original library and was about to take screenshots of the issues I was seeing to send along with the zip. But, it turns out the plugin began working fine at this point, displaying all the windows correctly, as pictured in the tutorials.

I wonder if the switching back and forth of the catalog copy and my original catalog somehow cleaned something up internally in the catalog to allow the plugin to work again.

It’s something to try at least, for those that are having similar problems.

— comment by Keith on October 13th, 2015 at 8:32pm JST (9 years ago) comment permalink

Hello Jeffrey,

in your description of the plugin you write that you have mapped the plugin extras -> view ages for current photo to a keyboard shortcut.
I know this is off-topic for this specific plugin, but how did you do this?

Thank you very much in advance for your reply!

Check out this article —Jeffrey

— comment by Christian Denk on November 4th, 2015 at 2:36pm JST (8 years, 11 months ago) comment permalink

Hello Jeffrey,
thanks for your comment on my question for keyboard shortcuts.
On windows however, this doesn’t work.
Could you maybe set an “accelerator” for your plugin, or is this something that needs to be configured locally on my machine?

E.g. for your Geoencode Plugin, the “Geoencode” menu item in plugin extras has the “accelerator” “G”.

Thank you very much in advance for your reply!

It’s a real mess on Windows because the space of accelerator keys is shared among all features of all plugins worldwide. I went ahead and made “A” an accelerator for “View Ages for Photo…”, but that may well conflict with one of my other plugins (if you happen to use it) or someone else’s plugin (if you happen to use it) or plugins (if you happen to use them). —Jeffrey

— comment by Christian Denk on January 30th, 2016 at 4:45pm JST (8 years, 9 months ago) comment permalink

Is there a way to combine the People details with others such as Location or Date in the Image Caption template for Facebook. For example, if someone in the photo is not yet 18 years old, do not display the Location/Sublocation?

No, sorry. You give a great use-case example, but it’s not currently possible. —Jeffrey

— comment by Jennifer L on February 16th, 2016 at 3:20am JST (8 years, 8 months ago) comment permalink

I am split catalog on two: 1-RAW 2-Jpeg. Exported from the RAW catalog to Jpeg (catalogs have the same keywords and the same person), but there is no way to move the date of birth 🙁 Maybe we can somehow realize the import and export of data on persons under the plug-in?

Data import/export is definitely a desired feature and it’s on the todo list, but your use case is not a good (or at least common) example for it. I have a difficult time imagining a workflow for which your catalog setup makes sense (but I’ve been surprised many times at the creatives way folks use Lightroom)…. —Jeffrey

— comment by NewSky on February 25th, 2016 at 4:53am JST (8 years, 8 months ago) comment permalink

I use the English version of the program, but would like to receive information about the persons in Russian.
For example:

На фото: Персона (12 months) = На фото: Персона (12 месяцев)

month=месяца
months =месяцев
weeks=недель
days=дней
etc…
Is it possible? What do I need to do?

Unfortunately, Lightroom doesn’t offer Russian translations, so the best I can suggest is to add your translations to the translation file for whatever language you run Lightroom in. If that’s English, the file is “TranslatedStrings_en.txt” in the plugin, which by default is almost empty (it has just one line). But if you look at the others, you’ll see lines like “"$$$/Age/2Y_3M_4D=^2 ans, ^3 mois et ^4 jours"”. Copy the lines from one of the other translation files into “TranslatedStrings_en.txt” and then update the text from whatever language it was to Russian. If you then send a copy I’ll include it in the plugin as “TranslatedStrings_ru.txt”, which Lightroom will unfortunately ignore, but users wanting it can then just copy it over “TranslatedStrings_en.txt”. They’d have to perform the copy after each upgrade, unfortunately, but at least it’d be possible. —Jeffrey

Update: as of version 20160313.16, I’ve added Russian-language support. See the new language section in the Plugin Dialog. —Jeffrey

— comment by NewSky on March 8th, 2016 at 8:51pm JST (8 years, 7 months ago) comment permalink

Thank you very much for the support of the Russian language! (On some nuances i wrote in a letter). I have a question. Is there at least some option to obtain data on persons in the image and make them into photo (JPG) WITHOUT the export process? For example by means of a plugin “LR/Transporter” Similarly: {pluginField[info.regex.lightroom.export.gps,map]}? (Best variant) or via Exiftool and plugin “Run Any Command” (not the best variant, because as after the need to re-read the metadata for all of altered photos). But the most remarkable thing is if the plugin “People Support” would have the tool data records on persons own (without export to new pictures, namely data entry into existing photos). Sorry for my English, I use Google translator

The easiest thing would be to use the write field feature of my Bag of Goodies plugin to fill in a standard metadata field (e.g. caption, title, etc.) with the text you want. If you want that text to be part of the original master (and the original master is a JPEG), you can just invoke “Metadata > Save Metadata To Files”. If you want the text to be included on the photo as a watermark or caption, the Lr/Mogrify plugin should be able to do that for you. —Jeffrey

— comment by NewSky on March 22nd, 2016 at 3:20am JST (8 years, 7 months ago) comment permalink

Hi Jeffery,

Love your stuff! I’ve been using a dot (period) as the delimiting character (Example: Jackson.Joe.Jr)
What would the expected results of multiple delimiters?
{People= ;swap around “.”}

Hope you & yours are doing well!

Joe
Dunwoody, GA, USA

Only the first delimiter is recognized, so your example will come out as “Joe.Jr Jackson”. I didn’t contemplate this situation where one wants “1/2/3” to become “2 3 1”. I’m not sure how to solve it… maybe enter the name as “Jackson. Joe (Jr)”, which then becomes “Joe (Jr) Jackson”? —Jeffrey

— comment by Joe Jackson on August 27th, 2016 at 3:56pm JST (8 years, 2 months ago) comment permalink

I’m pretty sure the answer is no, but is there any way to target the LR caption fields? I think your plugins only work on export?

Thanks,
Rob

You can do it with this, which I just added for you. —Jeffrey

— comment by Rob on August 28th, 2016 at 9:52pm JST (8 years, 2 months ago) comment permalink

Jeffrey

I just wanted to say thank you for adding the ability to apply face/age data directly into metadata fields of the “master”images in the LR catalog, (vs only being able to apply that info to exports). If I understand correctly, this can now be done by using the Faces plugin along with the “Write Data Field” feature of your “Bag-o-Goodies” plugin. In my opinion being able to apply face/age data to caption, description or other fields to the “master” images is tremendous!

Thanks!!

— comment by Caleb on October 20th, 2016 at 4:06am JST (8 years ago) comment permalink

Can I use plug-in “People Support” together with the plugin “LR/Transporter”? I would like to add data about the persons directly in the original photos (without exports, without the creation of new photos).
[quote]You can access the metadata fields of 3rd party applications by using the ‘pluginField’ token and passing in the plugin’s ID and the field ID. You should contact the plugin’s vendor for this information.

{pluginField[info.regex.lightroom.export.smugmug2,url]}[/quote]

For exemple: http://bit.ly/2eWP1rX It works great. I’d like to add existing photos this data:
{People=*\%N (%s);prefix “На фото: “;oldest first} Место съёмки: {Country}, {Province}, {City}, {Location}. {D2}
Sorry for my english. I use Google translator

You can’t do this directly because the data kept by the plugin is complex, not a simple text field. However, you can use the ““Write Field” feature of my Bag-o-Goodies plugin to populate a standard field (such as “Caption”) this way. —Jeffrey

— comment by NewSky on October 24th, 2016 at 2:25am JST (8 years ago) comment permalink

Jeffrey! “Write Field” feature of Bag-o-Goodies This is what you need! Perfectly! Conveniently! Many thanks!
Sorry for my english. I use Google translator

— comment by NewSky on October 29th, 2016 at 3:55am JST (8 years ago) comment permalink

Hi Jeffrey,

I recently started using your People Support plugin with LR6. However, I use two separate machines- a laptop when I am in the field or traveling and my main workstation for doing serious editing when I am back home. I would like to be able to share/exchange the mapping of people keywords to facebook urls between the two machines. The main reason I started using this plugin is so that when I am in the field, I can easily post to facebook from LR with people already tagged. However, when I return home and import my laptop’s catalog into my workstation’s catalog, I lose all the people-fb associations that I laboriously setup. And visa versa, if I setup new people-facebook associations on my workstation I need to be able to migrate them to my laptop so I have them the next time I am out in the field. Is there any way to support this important (at least to me) workflow?

Best regards and thanks for all of the plugins you provide. I use about 6 of them that I could not do without.

Dave (from CT)

Unfortunately, there’s no easy way to keep catalogs in sync this way. The association is kept in the catalog, but is not part of the catalog import/export. The best I can suggest is to keep a list of names and FB urls that you add to your laptop, then re-add them to your desktop when you get home. )-: —Jeffrey

— comment by David on February 11th, 2017 at 7:17am JST (7 years, 8 months ago) comment permalink

Jeffrey, Facebook has released a feature for parents that want to be able to tag children, without creating a whole different account for them. It’s the “scrapbook feature”. Because your people tagging plugin requires people in the db to have an independent Profile URL, I don’t seem to be able to use this. Ideas? Photos of my daughter are easily a big chunk of what I upload to Facebook.

Scrapbook Info
https://www.facebook.com/help/1530275617253660

As far as I can tell, Facebook doesn’t expose this to third-party apps. The word “scrapbook” does not appear at all in the docs. —Jeffrey

— comment by Anna H on February 20th, 2017 at 4:58pm JST (7 years, 8 months ago) comment permalink

Is there a way to sort a collection by the age of the persons in the photo? For example, I have two boys and would love to see how they looked when they were the same age. Obviously this wouldn’t work when they are in the same photo, but for photos with a single person this could be interesting.

I added something to the new version that I just released. It’ll create a new collection and you’ll have to manually set the sort order in that collection to “custom” (Lightroom doesn’t allow plugins to set the sort order). You’ll find the new feature in the “File > Plugin Extras” menu, and you’ll almost certainly find it frustrating because the moment you have all the photos sorted by age, you want to see the age right away as you move among the photos. Lightroom just doesn’t give enough UI power to plugins to solve this easily. )-: —Jeffrey

— comment by Chris on May 9th, 2017 at 7:14pm JST (7 years, 5 months ago) comment permalink

Wow Jeffrey! Thanks! I appreciate the difficulty with this and your effort! I just tried it and it works great! The perspective of seeing my children at the same age is quite interesting. Cheers!

— comment by Chris on May 20th, 2017 at 6:30pm JST (7 years, 5 months ago) comment permalink

I installed your Metadata Wrangler Plugin in LR6.14 on an iMac and can see it in the Plugin Manager etc. In the Export splash screen, I can see that Enable box is checked. I selected “Remove All Metadata” from the Preset drop-down and hit export the renamed photo as jpeg into a folder on the desktop. When I open the jpeg image in Photoshop, my copy right info is still there! I thought that selecting “Remove All Metadata” would have stripped all that info from the exported photo.

It definitely should have removed it all. Could it be that Photoshop is re-adding it, as some kind of template that’s applied upon image opening? You can inspect the raw image with my online Exif viewer. If the data is indeed not being removed, perhaps send a plugin log after an export, along with info about what remained. —Jeffrey

— comment by Raj on February 14th, 2018 at 8:53am JST (6 years, 8 months ago) comment permalink

Getting used to the plugin and really like it so far, except for one thing i’d expect to work differently. I’ve noticed that it exports always all persons and doesn’t care about the “Include on Export” status. Is that intended?

I’m using pseudonyms here, which i want to export and use in descriptions on social-media. So far this works. But i also tag real-names, which i don’t want to pop up anywhere else, so i flagged them as “not exportable” – but the people-token still lists them.

The other thing i would love to be able to, but i guess, it’s not that easy to do, is being able to use the People-token in actual metadata-fields in the lightroom-panel like title or caption, or the iptc-“person shown”. Maybe that’s doable with metadata-wrangler?

Thank you very much for your awesome work!

This plugin has nothing to do with whether keywords get exported, except it offers easier-to-deal-with access to the “include on export” flag for each keyword. If they’re marked to not include on export, Lightroom won’t include them, but if you’re using some plugin to communicate with social-media sites, it could be that the plugin is sending them as metadata alongside the image. —Jeffrey

— comment by Mike on April 17th, 2018 at 5:05am JST (6 years, 6 months ago) comment permalink

Hi Jeffrey,

is it somehow possible to export/access the database which contains the people information – especially the facebook-URLs and profile names? Many thanks in advance.

No, sorry, nothing like that has been built in, and considering that Facebook is next week dropping photo-upload support for apps like the plugin, it won’t be worth it to put more resources into Facebook-releated features. Sorry. —Jeffrey

— comment by Roberto on July 22nd, 2018 at 4:08am JST (6 years, 3 months ago) comment permalink

Hi Jeffrey,

I actually asked especially because Facebook dropped support.

Now that we have to tag people manually again (besides all the other actions your plugins automated before) I need to map peoples Facebook name to their real name as they may differ, because I always use real names for Lightroom tags.

I thought of making a Excel list of people data or sth. similar (crappy workaround but better than nothing). I also like to have access to all this data just in case someone finds a way to circumvent Facebook’s new policy or in case I leave LR and switch to another software.

As I have stored over 1000 people (about half of them linked to Facebook) in LR it would take a while to open every one of them, then manually copy the URL or name.

— comment by Roberto on September 9th, 2018 at 10:38pm JST (6 years, 1 month ago) comment permalink

Like f1oren, I’m interested in using First Name or Nickname instead of the full Last/First combo, especially since posting to Facebook is not supported by Facebook anymore. I’m looking at using Metadata Wrangler to rewrite the caption field so that it can be automatically read at Facebook Upload. Wondering if it might be possible to do a keyword replace of Last/First with a name I specify (either just a specific First name or nickname) in the exif data, but also be able to capture that replacement in the caption field? Or just the latter i.e. replacing name in caption without affecting the keyword in exif?

I’ve added a “Nickname” field to the People Support plugin’s dialog, and a “nicknames” modifier to the {People} tag. Hopefully that will help. —Jeffrey

— comment by Jen L. on October 2nd, 2018 at 5:01am JST (6 years ago) comment permalink

Thanks so much, Jeffrey! Tried it out and works well! For v2, might you consider a placeholder such as “first names” or “right names” (assuming the slashed keyword may also include middle names) displaying the text to the right of the “/” in the people keyword?

— comment by Jen L. on October 5th, 2018 at 12:42pm JST (6 years ago) comment permalink

Hi is possible to generate only first name with this plugin for people in export to Facebook

The plugin doesn’t know what format the names are in, so it can’t really automate it. But if you can do some programming, you can craft an appropriate LUA tag for your needs. —Jeffrey

— comment by Marcin on December 6th, 2018 at 8:33pm JST (5 years, 10 months ago) comment permalink

Hi Jeffrey,

Tank for all your work with LR.
I use yours plugin People support and Write Data Field. I would like to write the template “People” in the field Age cf Extension IPTC. I can’t find the field.
Moroever, I use the plugin “Search, replace and transfer” based on your code. Unfortunately, this field dosen’t exist !
Have you got another solution, please. ?

I’ve updated the Write Data Field feature of my Bag-o-Goodies plugin to let you write the “Age” metadata field. —Jeffrey

— comment by Cyrille on January 24th, 2019 at 10:12pm JST (5 years, 9 months ago) comment permalink

Hi Jeffrey

I have been using your plugins for years and love them! I am having an issue with the people token. I have had it set up for years in the folder watch and now it keeps giving me the error: GrokExif:16: bad argument #2 to ‘?’ (string expected, got table). I had it set up with People and the name simple age and the swap and oldest first and I just kept getting the error. I took it down all the way to just {People} and still get the same error. I pull up the people support manager and everything seems to be fine. The names and ages are still showing under the plugin extras. I have no idea why this changed and how to get it back. Thank you in advance

Please send a plugin log after encountering the error, and I’ll take a look. Thanks. —Jeffrey

— comment by Angela on May 21st, 2019 at 1:33pm JST (5 years, 5 months ago) comment permalink

I don’t know if you’d like to get feature requests/suggestions.
It would be a quite new thing for this plugin but being able to write all (facial) people tags to the description (ordered by position in the image) would be great. Do you think, this would be possible via any plugin?

It’s not impossible, but it’s not easy. The only way for a plugin to know where in the image a face tag is is to export a temporary copy of the image behind the scenes, then inspect its metadata. Too much trouble. )-: —Jeffrey

— comment by Roberto on June 8th, 2021 at 6:59am JST (3 years, 4 months ago) comment permalink

Hi Jeffrey,

I’m just getting started with this plug-in and I’m going to have to dig through the documentation carefully but is there a way to use the existing title/caption if there are no people. For example if the title says “Fireworks night” and there’s no people then just leave the title alone? TIA, Ken

If you’re speaking of using the people/caption during export, you don’t need this plugin, but likely my Metadata Wrangler plugin during export, to inject a new title. In there or any of my plugins that support my template tokens, you can use the {LUA} token to inspect the various fields (People, Title, etc.) and construct what you want as you like. —Jeffrey

— comment by Ken Davies on December 10th, 2021 at 9:09pm JST (2 years, 10 months ago) comment permalink

Hi, Jeffrey. I have a catalog of family photos that I’m using your very-helpful tool with. Some of my photos already have a {Caption} with them and would like to cleanly append {People….} to that with spacing after the period of the Caption.

I’ve been trying to use {Caption}{People=*\%N(%s);prefix ” ” ;if blank use “” } in my Caption field. The problem is that ‘prefix’ won’t lead with a blank space when I’m previewing in MetaWrangler. If I type any regular text in there, it includes it just fine, so characters work. It’s also fine if I postpend with a space in ‘prefix’ (ie prefix “test ” includes a space at the end).

Is there some ALT+ character or something I should be using to get the space to stick and not get stripped if it’s the first thing in ‘prefix’?

Try entering a non-breaking space. This wikipedia page explains it. —Jeffrey

— comment by Jamie on December 20th, 2021 at 11:09pm JST (2 years, 10 months ago) comment permalink

Hello Jeffrey,
I wonder if your people plugin or any for that matter can filter photos based on the size of the bounding box of the faces themselves.
I have my daughter in may photos but at least 50% of them the faces arent of good quality, means she wasnt the main subject or was too far from the camera. I would like to find her photos where the face covers at least 33% of the photo.
Would that be possible to somehow implement?

I am trying to create a morphing video of her growing up and filtering the photos where her face cant be used is time consuming. I have three kids so its even worse.
I believe it could be a great feature addition to your people plugin, just not sure if the API lets you have access to bounding box face coordinate system.

No, unfortunately, Lightroom doesn’t give plugins any insight into face areas. —Jeffrey

— comment by Pavel on December 22nd, 2021 at 4:23pm JST (2 years, 10 months ago) comment permalink
Leave a comment...


All comments are invisible to others until Jeffrey approves them.

Please mention what part of the world you're writing from, if you don't mind. It's always interesting to see where people are visiting from.

IMPORTANT:I'm mostly retired, so I don't check comments often anymore, sorry.


You can use basic HTML; be sure to close tags properly.

Subscribe without commenting