Apple's Photos for macOS taking forever to scan photos for People?

I recently migrated around ~50,000 photos and videos from Aperture to Photos (see my blog post on the process), and have also in a short amount of time upgraded my personal and work Mac laptops (both from older MacBook Airs to newer MacBook Pros).

On both of my new laptops—which were at least 3x faster than my older Airs—I noticed that Photos started completely fresh in its photo analysis for the 'People' album that shows everyone's faces. And after three weeks of seeing one of my CPUs stick around 100% all day every day (while plugged in), I started getting sick of this.

I would leave the Mac on all night, and check in the morning, and only 20-30 new faces would be recognized.

macOS Sierra Photos - People Scanned slow and stuck
Some days it seemed it would take forever...

There are all kinds forum posts and support requests in Apple's community forums asking "Anyone else finding Photos 'People' scanning really slow?" and "Why is people scanning in MacOS Photos so slow?".

On my iPhone and iPad, even though I have Photos set to 'optimize iOS storage' (meaning only a subset of photos and videos are stored on the phone), the people scanning only took a few days, and then it's kept up since.

But on the Mac, after a few weeks, the pace is still glacial. I'm fairly certain the macOS version of Photos and iCloud Photo Library have some bugs causing this problem. But how do you work around it?

The Fix

The workaround is fairly simple:

macOS Sierra Photos - Set to download all originals for faster people scanning

  1. Open Photos' Preferences.
  2. Click on 'iCloud'.
  3. Choose 'Download Originals to this Mac'.
  4. Wait a really long time for all Originals to be downloaded.

Now, this presupposes you have enough disk space on the drive where you're Photos library is located to store all the photos and videos from your library. And many people probably don't. So you might need to use an external drive, and move your library there for a few days.

The benefit is that instead of 20-40 photos and videos scanned per day, I'm now getting 15-20,000 scanned per day! So it should be finished in a couple days, just like on my iPhone and iPad.

Speculation

Some people speculate it could be the videos taking so long—and videos may take a little longer than photos for scanning, depending on how Photos is scanning through them (whether it just scans a keyframe, or all frames of the video)—but I think there's some sort of major bug with the way the macOS Sierra version of Photos handles the optimized library for scanning faces.

So far there are three major annoyances with People in Photos, that I hope will be solved with future updates:

  • People are not synchronized in any helpful way between all my computers (I have three Macs, an iPhone and an iPad... and if I want People associated with my photos, I have to do it all manually... on every single device).
  • People have to be re-scanned if you migrate a Time Machine backup to a new (or existing) Mac. This was a really annoyance as I moved the existing library to my new Mac, and it started re-scanning everything. What a waste of CPU/power!
  • People scanning takes absolutely forever on macOS Sierra if you have 'Optimize Mac Storage' enabled.

Comments

Hey, great tip! I did this and now all my 50k photos are face scanned. But now my 500GB SSD is almost full. How can I force Photos to now only keep the low-res photos locally? I re-enabled Optimized storage a few days ago but it doesn't seem to have reduced the local storage requirements. I need to free up 25GB or so to create a VirtualBox VM.

Do you know how I can force Photos to delete a bunch of the locally-stored hi-res images?

Thanks

As far as I can tell, Photos will automatically start removing things as you fill up more space on the drive. On my Mac, I opened Storage Management.app and made sure all the relevant 'optimize storage' settings were turned on, and things 'just worked'.

In fact, if you click on your hard drive in Finder and choose File > Get Info, it will show you that 'x' amount of space is available with "x purgeable"—that purgeable space is, I think, all the photos that will be deleted as you fill up more of your drive.

Unfortunately, my drive Info says only 365MB purgeable, while the Manage Storage screen says I have 234GB of photos. I guess I will leave my laptop plugged in and running for a few days to see what happens.

You need to quit Photos App. The scanning is (relatively) faster when you quit Photos. The scanning takes place in the background. Whenever you use Photos App, the scanning stops or slows down considerably. So, try not using Photos app until the scanning is completed. I check once in two hours or so by launching Photos, note how many photos are yet to be scanned, quit Photos. Still it is slow (has taken 6 hours to scan 10K photos.

This didn't work. Not a single photo was scanned when I left the MacBook Pro on at night, after quitting Photos app, after reading this post. I will now leave the Photos app on, and use other apps in the day. That way, slower scanning will still go on, like earlier.

I had the same issue many others are reporting, after several weeks Photos had failed to continue the remaining 20% of my photos. After checking the logs I saw that photoanalysisd was stopping the scan attempt every time it came up due to thermal issues.

So, I put a small fan feeding air into the Macbook Pro's vents (internal fans are always on these days), turned my AC on, and rebooted w/o launching any apps. When I woke up in the morning the last of the photos were scanned.

I have this problem on Mojave. But all my ~81,000 pictures are on my Mac. Why don't the pictures which have been scanned show up in the people album? Does it make a difference that they are imported by reference, not physically in the Photos library? BTW, the slowness is even when plugged into power and Photos is not running.

I too have been waiting an eternity for photos to finishing scanning for faces but I wish to point out a flaw in the programme that this wonderful artucle doesnt cover. By default the ‘faces’ are named by the software. This overides user input. I have twins in my family and although I can tell them apart and name them according in the background the app decides they are the same person anf deletes one face and incorporates it into the other name. This is ridiculously poor programming for Apple. User input should overide the softwares ‘best guess’ and to have this happening in the background means you don’t notice immediately. I thought I was losing it when people kept dissappearing from my people list and then I found them under thier very similar looking family members but even after I manually named them correctly they disappeared back to where the software feels they belong. Its frustrating when the family member see mislabelled photos and thinks I got it wrong. I have had to resort to putting names as keywords to overcome this issue until Apple sorts this and preferably fixes the scanning bug too! Thanks for a great article.

This helps quite a bunch! Will try all those tips. Thanks!

Apple is totally unclear as to whether "running in the background" means "start and then close the app" or "start and then minimise the app". In fact, it means "when Photos is not running in the foreground", ie. when you're not actively using it. As it is its own process you can run it standalone from the Terminal. It even has a man page, though without any commands listed this isn't that helpful.

You can check whether it's running by looking for "photoanalysisd" in the console. If it isn't you can start it manually `/System/Library/PrivateFrameworks/PhotoAnalysis.framework/Versions/A/Support/photoanalysisd start &` but unfortunately this is unlikely to help. :-/

The notes about iCloud are also slightly erroneous. Much as Apple, et al. would love us to move everything online, some of us don't and I can tell you that even with iCloud disabled, performance is poor. However, when I look at individual photos I can see that the faces have been recognised simply not tagged.