The other day, I was working on some Smart Albums in Photos, adding a Smart Album for each of the lenses I use with my FUJIFILM X-E3 camera. This seemed like a simple task; each Smart Album just needed to check two conditions:
Camera Model is X-E3 [and] Lens is 16.0 mm f/2.8 (as one example)
But after creating my Smart Albums, I noticed that some photos were missing, so I did a bit of experimenting. What I found was that Photos showed different values for the Lens field—even when the same lens was used on the same camera. Here's an example:
The only difference between those two photos is that one was taken in RAW mode, the other in one of my camera's JPEG modes.
At this point, I suspected the X-E3's firmware was doing something odd, so I snapped a series of photos using each of the X-E3's five photo format options (RAW, Fine, Normal, RAW+F, and RAW+N), and imported them into Photos…
All five shots were taken with the 16mm f/2.8 lens on the X-E3. Of the five, the only one with a different value in the Lens field was the RAW photo.
I uploaded the five (seven, actually, because of the two "RAW+" formats) photos to a folder on my Mac, and then used exiftool to see what lens information was recorded with each photo:
$ ls -1 DSC* DSCF1421.RAF DSCF1422.JPG DSCF1423.JPG DSCF1424.JPG DSCF1424.RAF DSCF1425.JPG DSCF1425.RAF $ exiftool * | grep "Lens Info" Lens Info : 16mm f/2.8 Lens Info : 16mm f/2.8 Lens Info : 16mm f/2.8 Lens Info : 16mm f/2.8 Lens Info : 16mm f/2.8 Lens Info : 16mm f/2.8 Lens Info : 16mm f/2.8
It's not the X-E3 that's recording different Lens metadata—as you can see, it's identical for all seven photos.
So what's going on? Looking at more of the exif lens data, here are all the fields that contain "Lens" for the RAW photo:
$ exiftool DSCF1421.RAF | grep Lens Lens Modulation Optimizer : On Lens Info : 16mm f/2.8 Lens Make : FUJIFILM Lens Model : XF16mmF2.8 R WR Lens Serial Number : 1AABBCCD2
This same information—with the same values—is present on all the JPEG images, too. Notice that the Lens Model field's value matches what's shown in Photos for the RAW photo…and it also matches FUJIFILM's official name for the lens, as shown on its web page.
My guess is that Photos' importer uses the Lens Model field to populate Photos' internal Lens field, but only when importing RAW photos. For whatever reason, when importing anything other than RAW, Photos is using the value from the Lens Info field, not the Lens Model field.
I would expect that any camera that has differing values in these two fields will experience this problem. I heard from one Twitter user with a Canon; his EXIF data is different for Lens Info and Lens Model, but Photos correctly imports both RAW and JPEG images, using just the Lens Model field.
Once I figured out what was going on, I was able to modify my Smart Album to account for the two different styles of data in the Lens field:
Camera Model is X-E3 [and] Lens contains 16
This works for now, but if I were ever to buy, for instance, the nice-but-costly XF16mmF1.4 R WR, my Smart Album would capture those photos as well. The only way to even sort-of make it work that I can think of would be to create two Smart Playlists for each lens—one for RAW photos and one for all other photos. And that's a kludge.
The real solution is for Photos to use either—and only!—the Lens Info field or the Lens Model field. Changing from one to the other based on source image format seems like a mistake. (While they're at it, maybe they can add support for Smart Albums that let you use a mix of "any" and "all" conditionals in one album, as you can do in Finder searches.)
Call for asssitance: I'm curious to know if others see this with non-FUJIFILM cameras and/or lenses: Take two photos, one RAW and one JPEG, import both to Photos, and compare the value in the Lens field. They will hopefully be identical, but either way, please let me know via the comments here or on my Twitter feed.