One example of the plugin's 131 ways to group your images
This plugin for Adobe Lightroom allows you group photos and videos in your Lightroom catalog by more than 100 data criteria. For example, grouping a large folder tree by “Crop Amount” might result in the screenshot seen above.
By clicking “isolate” on each row, the relevant images are shown. The plugin also creates a row-specific collection, such as:
and populates it with the pertinent photos so that you can refer to them later.
The basic purpose is essentially the same as Lightroom's own Library Grid Filter, but Adobe's built-in functionality, though fast, has extremely limited scope. If it were able to handle more than the scant few fields it currently supports, there would be no need for this plugin, but it doesn't, so here we are.
As it is, this plugin lets you inspect and group photos via a bewildering number of criteria, from the mundane (“group by copyright name”) to the esoteric (“group by geoencoded hemispheres”) to the particular (“group by amount of Clarity applied in Develop”) to the advanced (“group by camera-calibration profile”). The entire list of 131 criteria are listed below.
Table of Contents
This plugin works in Lightroom 5 and Lightroom 4.
Lightroom 4.1 or later is required.
The same download works for both Windows and Mac. See the box to the upper right for the download link link (in orange) and installation instructions.
Search. Filter. Group. Explore.
This plugin can be used to search or to browse. A search helps you locate photos that match specific criteria, such as “Where are my panoramas with a really wide aspect ratio?”, while browsing lets you see the range of values represented by some particular criteria in your library, answering questions like “What range of aspect ratios do I have in my library?” (The answer for my catalog at the moment: as tall as “1 : 2.58151” and as wide as “6.4 : 1”).
Browsing can be both fun and useful, especially for catalog cleanup, such as after grouping by “Copyright”, you may see various versions of the same person's name that you'd want to make identical.
Sometimes the results are surprising. While making the screenshot shown at the top of this page, the first thing I noticed was that four photos had an essentially-100% crop! I wondered what they were, and found the answer with one click of the “isolate” button: the four photos were presented and I recognized them as the extrema crops that appeared on this blog post 18 months ago, and an extreme crop of the first photo on this post that I used to use as my online avatar.
Anyway, I started writing this plugin the first time I tried to use the results of an X-Rite ColorChecker Passport in Lightroom, which allows you to make situation-specific camera-calibration profiles for Lightroom's render engine. After trying it with some photos in my library, I quickly lost track of which photos got which profile; it was very frustrating because the only way to know was to inspect each photo's develop settings, one by tedious one, and manually keep a running tally.
Now, I can invoke this plugin on a folder and quickly see:
It didn't take long to solve my immediate need (a crude plugin that merely listed the camera-calibration profiles and their photos), but it's taken three weeks of never-ending “just one more enhancement...” development to whip it into good enough shape to put my name on and release.
Even while writing up this web page after I thought the plugin was ready to release, I realized that Lightroom does not normally subject images hidden within collapsed stacks to catalog operations (such as the grouping operation done by this plugin), so writing this page got put on hold while I addressed that issue in the plugin:
It wasn't straightforward at all, especially to handle it as efficiently as possible, so I burned the better part of a day on just that. Such is the nature of Lightroom plugin development driven by a passion to make things useful.
While talking about searching and browsing, for times when you want only to search, this Data-Explorer plugin may well fill your needs, but you may also want to keep the following plugins in mind as well:
I've not used John's plugin, but it looks to be quite impressive.
The plugin is invoked via “File > Plugin Extras > Explore...”, but it's much faster and convenient to invoke via a Lightroom keyboard shortcut.
On Windows, the keyboard shortcut is “ALT-F S E”.
On a Mac, you can set the shortcut as you like. For my own workflow, I've chosen “Option Shift Command F”.
This pops up a dialog that allows you to select the criterion to explore by:
You can pick something from the dropdown box (currently showing “Aspect Ratio...” in the screenshot above), or just start typing search terms, and the dialog immediately transforms into an effective way to find the item you want among the 131 criteria the plugin supports:
Clicking on any criterion returns you to the initial dialog with that item selected, but if the search results in just one criterion, you can press ENTER to immediately launch Data Explorer with that criterion as the basis for grouping.
The “Include items hidden within collapsed stacks?” option is off by default because with large sets of photos it can cause quite a delay because when enabled, the plugin must fetch stack-related data from the catalog, then walk the list inspecting each stack for new photos not already included.
This doesn't take long for small sets of photos... on my laptop it takes about a second to do 1,000 photos, but even this is highly dependent on what else Lightroom is doing in the background. (When I select “All Photographs”, Lightroom turns my CPU into a space heater as it renders thumbnails in the background.)
But that time adds up, and it's a one-minute delay for 60,000 photos. Because the process must finish before the grouping process can be launched, I made the entire option default to unselected.
By the way, here's an interesting general little Lightroom workflow tidbit: Lightroom ignores stacks if you select both Folders and Collections, bringing anything that had been hidden within collapsed stacks into the target set. So, if you select “All Photographs” in the upper left of Library and see “X of Y photos” in the filmstrip instead of just “Y photos”, and if this can't be explained by you Library Filter, you have photos hidden within collapsed stacks.
If you then option-click (ALT-click) on any folder, you're not really adding anything new to the target set because any folder's photos are already included with “All Photographs”, but because you've now got a collection and a folder selected, Lightroom ignores stacking and voilà, you're at a straight-up “Y photos” that really is everything in your catalog.
You can apply the same idea while viewing a specific folder if you create an empty collection (perhaps named “Empty”) that you can add to the selection.
The following table lists the criteria currently available.
(Due to limitations in Lightroom's plugin infrastructure, items marked with a “*” take longer to process.)
|In Lightroom Library|
|File Currently Available?*||File is available, or offline (e.g. on an external disk not currently connect)?|
|File Type||File type (DNG, JPEG, Raw, Video, ...)|
|Folder Name||Name of the folder (without path) the file is in. Useful to isolating images in a parent folder when there are also images in a subfolder.|
|Path Name||Full path of the folder the file is in. Useful to isolating images in a parent folder when there are also images in a subfolder.|
|File Extension||Filename extension (jpg, NEF, AVI, mts, CR2, ...)|
|Copy Name||Virtual-copy name for the photo/video.|
|Virtual-Copy Count||Number of virtual copies a master image or video has.|
|Snapshot Count*||The number of snapshots for the related master photo.|
|Stacking Status||Status with respect to stacking (within its parent folder).|
|Stack-Membership Size||Number of photos/videos in its stack (within its parent folder).|
|Position in Stack||Place in stack (within its parent folder).|
|Rating||Star rating (a number from 1 to 5).|
|Color Label||Color label name.|
|Keywords||List of keywords (can be long!).|
|Keywords (exportable)||List of keywords included on export (can be long!).|
|Camera Make and Model||Camera manufacturer and model name.|
|Camera Make, Model, and Serial Number||Camera name with its serial number.|
|Lens||The lens used to take the photo (e.g. “50 mm f/1.4”).|
|Focal Length||Focal length of lens as shot (e.g. “85 mm”).|
|Focal Length 35mm Equiv||Focal length of the lens as shot, in full-frame 35mm terms (e.g. “135 mm”).|
|Software||Software used to process/create the photo prior to import into Lightroom.|
|Exposure*||Exposure summary (e.g. “1/60 sec at f/2.8”).|
|Total Exposure (camera Ev)||Total camera exposure (Ev), derived from the shutter speed, aperture, and the ISO speed rating.|
|Total Effective Exposure (effective camera Ev)*||Total effective camera exposure (effective Ev), derived from the shutter speed, aperture, and the ISO speed rating, then adjusted to reflect any Exposure added or removed in Lightroom.|
|Shutter Speed*||Shutter speed used to take the photo (e.g. “1/60 sec”).|
|Aperture*||Aperture used to take the photo (e.g, “f/2.8”).|
|In-Camera Exposure Bias*||In-camera exposure bias/compensation (e.g. “-2/3 EV”).|
|Lightroom Exposure Adjustment*||Amount of overall exposure compensation applied in Develop.|
|Flash||Whether the flash fired (“Did fire” or “Did not fire”).|
|Exposure Program||Exposure program (“Manual”, “Aperture priority”, “Landscape”, ...).|
|Metering Mode||Metering mode (“Center-weighted average”, “Spot”, ...).|
|ISO||ISO Sensor-sensitivity speed rating (e.g. “100”).|
|Subject Distance||Subject distance (e.g. “1.92 m”); often wildly incorrect.|
|Cropped?||Has a crop been applied in Develop? (“Cropped” or “Not cropped”)|
|Crop Rotation*||Amount of crop rotation applied in Develop, rounded to the nearest degree (e.g. “2° CCW”).|
|Crop Amount*||Relative area of the image cropped away from the original, in percent. Larger numbers indicate images left with increasingly smaller areas compared to their original.|
|Megapixels (post-crop)||Image size, after any Develop crop/rotation adjustments, in megapixels.|
|Megapixels (original)||Original image size, prior to any Develop crop/rotation adjustments, in megapixels.|
|Width x Height (post-crop)||Dimensions, after any Develop crop/rotation adjustments, in pixels and megapixels (e.g. “3208 x 4928 (16.0 MP)”)|
|Width x Height (original)||Original dimensions, prior to any Develop crop/rotation adjustments, in pixels and megapixels (e.g. “3208 x 4928 (16.0 MP)”). Note: “Original” does take into account any “Rotate Left (CCW)” or “Rotate Right (CW)” applied to the photo; just not subtle rotation applied in the Develop Module|
|Length of Long Edge (post-crop)||Length of the long edge of the image, after any Develop crop/rotation adjustments, in pixels.|
|Length of Long Edge (original)||Length of the long edge of the original image, prior to any Develop crop/rotation adjustments, in pixels.|
|Length of Short Edge (post-crop)||Length of the short edge of the image, after any Develop crop/rotation adjustments, in pixels.|
|Length of Short Edge (original)||Length of the short edge of the original image, prior to any Develop crop/rotation adjustments, in pixels.|
|Width (post-crop)||Width of the image, after any Develop crop/rotation adjustments, in pixels.|
|Width (original)||Width of the original image, prior to any Develop crop/rotation adjustments, in pixels. Note: “Original” does take into account any “Rotate Left (CCW)” or “Rotate Right (CW)” applied to the photo; just not subtle rotation applied in the Develop Module|
|Height (post-crop)||Height of the image, after any Develop crop/rotation adjustments, in pixels.|
|Height (original)||Height of the original image, prior to any Develop crop/rotation adjustments, in pixels. Note: “Original” does take into account any “Rotate Left (CCW)” or “Rotate Right (CW)” applied to the photo; just not subtle rotation applied in the Develop Module|
|Aspect Ratio (short:long, post-crop)||Aspect ratio of the image, after any Develop crop/rotation adjustments, without regard to image orientation (e.g. “2 : 3”)|
|Aspect Ratio (short:long, original)||Aspect ratio of the original image, prior to any Develop crop/rotation adjustments, without regard to image orientation (e.g. “2 : 3”). Note: “Original” does take into account any “Rotate Left (CCW)” or “Rotate Right (CW)” applied to the photo; just not subtle rotation applied in the Develop Module|
|Aspect Ratio (width:height, post-crop)||Aspect ratio of the image, after any Develop crop/rotation adjustments (e.g. “5 : 4”).|
|Aspect Ratio (width:height, original)||Aspect ratio of the original image, prior to any Develop crop/rotation adjustments (e.g. “5 : 4”). Note: “Original” does take into account any “Rotate Left (CCW)” or “Rotate Right (CW)” applied to the photo; just not subtle rotation applied in the Develop Module|
|File size (bytes)||File size of the master image or video, in bytes.|
|Audio sidecar file*||The kind, if any, of the audio sidecar file associated with the image|
|XMP sidecar file*||Does the image have an associated XMP sidecar file?|
|JPEG sidecar file*||Does the image have an associated JPEG sidecar file?|
|Video Trim*||Whether the video has had its start and/or end trimmed (“Trimmed at start and end”, “Trimmed at end only”, “Untrimmed”, ...).|
|Video Length (Trimmed)||Length of the video, after any trimming in Lightroom (e.g. “17 min”).|
|Video Length (original)||Length of the original video, without regard to trimming in Lightroom (e.g. “22 min”).|
|Video Frame Rate||Frame rate for the video (“15.000 fps”, “29.989 fps”, ...)|
|Audio Sample Rate (of a video)||Sample rate for the audio track of a video (e.g. “48000 Hz”).|
|Audio Channels (of a video)||Number of audio tracks (“Mono”, “Stereo”, “5.1”, ...)|
|Video Pixel Aspect Ratio||Aspect ratio of pixels encoded in a video (e.g. “1”, “1.3333”, ...)|
|Develop (except crop)|
|Develop Sections Disabled*||List of disabled Develop-module sections (e.g. “Paint-Based Corrections and Lens Correction”).|
|Red-eye Corrections*||Count of red-eye corrections applied in Develop (e.g. “3 Eyes”).|
|Spot-Healing Corrections*||Count of spot-healing corrections (i.e. dust-spot corrections) applied in Develop (e.g. “27 Spots”).|
|White Balance*||White-balance setting applied in Develop (“Daylight”, “Custom”, ...)|
|Clarity*||Amount of overall “Clarity” applied in Develop, rounded to the nearest +/- 5.|
|Color Treatment*||Color vs. Black & White.|
|Tone Curve Name*||Name of the tone curve applied in Develop (“Linear”, “Custom”, “Strong Contrast”, ...)|
|Lens Corrections*||List of Lens Corrections enabled in Develop (e.g. “Color defringe + Manual”.|
|Vignette*||Amount of post-crop Vignette effect applied in Develop (e.g. “Slight white vignette”, “15 black vignette”, ...)'|
|Process Version*||Name of the Lightroom render engine applied in Develop (e.g. “2012 (standard in Lightroom 4)”).|
|Has Basic Tone/Presence Edits*||Reports whether an images has basic Tone changes (exposure, etc), Presence changes (saturation, etc.), both, or neither.|
|Camera-Calibration Profile*||Name of the camera-calibration profile applied in Develop (e.g. “Adobe Standard”).|
|Artist / Copyright|
|Copyright State||Copyright state.|
|Artist / Creator||Artist's name.|
|Artist and Copyright Differ?||How do the “Artist/Creator” and “Copyright” fields differ? (“Artist contained within Copyright”, “Identical”, ...)|
|Rights Usage Terms||Instructions on how image can legally be used.|
|Copyright Info Url||Copyright info URL.|
|Provider||Name of person who should be credited when image is published.|
|Source||Original owner of the copyright.|
|Creator Job||Job title of the person that created the image.|
|Creator Address||Address for the person that created the image.|
|Creator City||City for the person that created the image.|
|Creator State/Province||State or province for the person the created this image.|
|Creator Postal Code||Postal code for the person that created the image.|
|Creator Country||Country for the person that created the image.|
|Creator Phone||Phone number for the person that created the image.|
|Creator Email||Email address for the person that created the image.|
|Creator Url||Web URL for the person that created the image.|
|City||Name of the city where image was taken.|
|State||Name of the state where image was taken.|
|Country||Name of the country where image was taken.|
|Country Code||2 or 3 letter ISO 3166 Country Code of the country.|
|Location||Details about a location where image was taken.|
|Geoencoded Hemisphere||Geoencoded hemispheres (e.g. “North/East”). This can also be used to answer simple “Geoencoded?” queries, and to find mis-encoded “0°N 0°E” entries.|
|Geoencoded Location Marked Private*||Is the geoencoded location marked a private? (“Private”, “Not Private”, or “Not Geoencoded”)|
|Geoencoded Altitude||Geoencoded altitude (e.g. “65 m”).|
|Other Text Fields|
|Title length||Reports whether “Title” is blank, starts or ends with spaces or had doubled spaces; otherwise reports the legnth.|
|Title line count||Reports the number of lines in “Title”.|
|Headline length||Reports whether “Headline” is blank, starts or ends with spaces or had doubled spaces; otherwise reports the legnth.|
|Headline line count||Reports the number of lines in “Headline”.|
|Caption length||Reports whether “Caption” is blank, starts or ends with spaces or had doubled spaces; otherwise reports the legnth.|
|Caption line count||Reports the number of lines in “Caption”.|
|Event||Names or describes the specific event at which the photo was taken.|
|IPTC Subject Code||IPTC Subject.|
|IPTC Category (deprecated field)||deprecated IPTC Category.|
|IPTC Other Categories (deprecated field)||deprecated IPTC Other Categories.|
|Description Writer||Name of the person who wrote the description.|
|Intellectual Genre||Intellectual genre.|
|Job Identifier||A number or identifier needed for workflow control or tracking.|
|Instructions||Information about embargoes, or other restrictions not covered by the Rights Usage field.|
|Name of Org Shown||Name of the organization or company featured in this image.|
|Code of Org Shown||Code from a controlled vocabulary for identifying the organization or company featured in this image.|
|Plus Version||The version number of the PLUS standards in place at the time of the transaction.|
|Model Age||Age of human model(s) at the time this image was taken in a model released image.|
|Minor Model Age||Age of the youngest model pictured in the image, at the time that the image was made.|
|Model Release Status||Summarizes the availability and scope of model releases authorizing usage of the likenesses of persons appearing in the photo.|
|Model Release ID||A PLUS-ID identifying each Model Release.|
|Additional Model Info||Information about the ethnicity and other facets of model(s) in a model-released image.|
|Source Type||The type of the source of this digital image, selected from a controlled vocabulary.|
|Property Release Status||Info on the availability of property releases.|
|Property Release ID||PLUS-ID identifying each Property Release.|
|Has a “dateTimeOriginal” field||A simple yes/no on whether the “dateTimeOriginal” field is present.|
|Has a “dateTimeDigitized” field||A simple yes/no on whether the “dateTimeDigitized” field is present.|
|Has a “dateTime” field||A simple yes/no on whether the “dateTime” field is present.|
|Has a “dateCreated” field||A simple yes/no on whether the “dateDreated” field is present.|
|Do the various date fields agree?||Reports on whether the “dateTimeOriginal”, “dateTimeDigitized”, and “dateTime” fields are the same|
After the plugin does its work, it brings up a dialog to display the results, for example:
I've spent considerable energy on tailoring the presentation and default sort for each of the 131 criteria the plugin supports. In the “Lens” example seen here (which Adobe's Library Grid Filter does support, though not as well), I take care to sort the lenses by focal length, and to pretty up the presentation (e.g. “50 mm” instead of “50.0 mm”).
Some features of the results dialog:
Click on an “isolate” button to create a collection named for the criteria and result, populate it with the appropriate photos, and switch to it.
Click on the “Isolate All...” button to create all the individual collections and dismiss the dialog.
Click on two or more checkboxes to enable an “Isolate Combined Checked Items” button that creates one special collection with all the photos of the checked rows.
Click on a column header to toggle the display sort.
Click on a photo- or video- count number to display some percentage information. In the example above, clicking on the “8,306” of the “Voigtländer 125mm f/2.5” row reveals that 31.9% of the target photos were taken with that lens (because it's such an oh-so-sweet lens whose results I adore).
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 Lr3 to Lr4, de-registers the plugin in the upgraded version, thus requiring (if you want to maintain registration) a new (1-cent if you like) registration code 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.
( Update Log via RSS )
|20130501.20||Update for Lr5|
Added "Folder Name" and "Path Name" to the list of search items.
Added the “Has Basic Tone/Presence Edits” search item.
Fixed the “dateCreated” search.
|20130412.17||Build system update.|
|20130330.16||Added some Ricoh cameras to the crop-factor database.|
|20130328.15||Fix for the registration system.|
Added "Total Exposure (Ev) and Total Effectiv Exposure (effective Ev).
Filled in some areas where the docs were not yet written.
|20130219.13||Added some notes to the aspect-ratio results to denote common aspect ratios (e.g. 16:10 is a widescreen monitor)|
|20130218.12||Added some extra text fields (title, caption, etc.)|
Added the ability to identify images with sidecar files.
In the criteria-selection dialog, warning messages would sometimes get truncated.
|20130212.10||Added some date fields|
|20130209.9||More build-system maintenance|
|20130206.8||Tweak for my registration system|
|20130124.6||Added a bunch of Canon cameras to the crop-factor database.|
Computation for the megapixel notation for "Width x Height (post-crop)" was wrong.
Many of the pixel-size items crashed when used on videos.
Focal-Length 35mm crashed if a photo didn't have focal-length data.
Added a bit of buffer to the dialog-height calculations to help ensure that the dialog doesn't grow taller than the screen.
|20121113.3||Made "Dimensions" available for video.|
|20121020.2||Added "Lens Corrections"|
|20121019.1||Initial public release.|