"Analysing your photos" is one of those phrases that sounds either trivial or ominous depending on your mood, and almost nobody explains what it means. It is worth knowing, because the answer determines whether your photos left your phone.
I build a photo app that does this analysis, so I will explain it the way I would want it explained to me: what the computation actually is, how you can check where it is happening, and what it costs when you insist on doing it on the device.
Do photo apps upload your photos to the cloud?
Some do, some do not, and the app is under no obligation to make it obvious. The honest general answer is that any app doing image recognition has to run that recognition somewhere, and "somewhere" is either the phone in your hand or a machine belonging to the developer.
Cloud processing is the easier engineering choice. You can run enormous models, you do not care about battery or memory, and you can improve the model without shipping an app update. The cost is that a copy of your library — or at least of everything you asked it to look at — travels across the internet and exists, however briefly, on hardware you do not control.
On-device processing is harder to build and strictly bounded: the photos have nowhere to go.
What does "analysing" a photo actually mean?
Two quite different things, and it helps to separate them.
Perceptual hashing — finding the same photo twice
The app reduces each image to a short fingerprint that survives resizing and re-compression, so two files that look identical produce nearly identical fingerprints even if the bytes differ. This is cheap, fast, and involves no artificial intelligence in any meaningful sense. It is how duplicates and re-imports get found.
Neural embeddings — recognising the same scene
This is the part people mean when they say AI. A neural network — in Curator's case a CLIP inference model — converts each photo into a list of a few hundred numbers describing what is in it. Photos of the same scene end up with similar lists, even when the framing, angle and distance are different, which is what lets the app group six goes at the same group photo from different depths and angles, rather than only catching literal copies.
The important detail is what the network hands back. It does not produce a description, a name, or a record of anything. It produces an array of numbers that is only useful for comparing one photo against another in the same library. That array is stored on the phone alongside the photo it came from, and never sent anywhere, because there is nowhere for it to be sent.
How can you check for yourself?
Turn on airplane mode and run a scan. If it completes, the work is happening on your device.
This is a better test than any privacy policy, because it cannot be spun. Curator runs entirely offline — you can install it on a plane, scan 20,000 photos at 35,000 feet, and it will behave identically. Not as a fallback mode, and not with reduced quality: there is no network code path in the analysis at all.
If you want to be more thorough, iOS Settings shows you cellular data usage per app, and Screen Time can report network activity. But airplane mode answers the question in the time it takes to swipe down.
What does on-device analysis cost you?
Time, battery, and app size — and I would rather give you real numbers than reassurances.
On my own library of about 23,000 photos, on an iPhone 14 Pro, the initial scan takes a little over 30 minutes and uses roughly 30% of the battery. That happens once. After that the results persist, and subsequent scans only process photos that are new, which takes seconds rather than half an hour.
The app itself is around 170 MB, which is larger than a utility ought to be. That is the model living on your phone instead of on a server.
Both numbers used to be considerably worse, and the work to improve them is the least glamorous and most valuable thing I have done on this app:
- Half-precision weights. The CLIP model shipped originally at 32-bit precision. Testing at 16-bit showed no measurable loss in scan quality (it was working to the 5th decimal, highly granular), so the model moved to FP16 — which cut the app from around 360 MB to 170 MB, and reduced GPU load and peak memory at the same time.
- Running on the Neural Engine. Apple's dedicated machine-learning silicon, rather than the GPU. That took roughly 20% off the scan time, cut memory use by about 60%, and reduced thermal throttling — which matters more than it sounds, because a phone that gets hot slows itself down and the scan gets slower the longer it runs.
Why not just use a server, or a smaller model?
Because both options make the product worse in ways the user pays for.
A server would make the first scan fast and would mean uploading your entire photo library to me — which is precisely the thing I did not want to build, and which would also cost me money per user forever, on a one-time-purchase app.
A smaller model would shrink the download and speed up the scan, at the cost of the thing the model is actually for. Grouping genuinely different photographs of the same moment is the hard case; a weaker network reverts to finding near-identical copies, which is a problem your phone already solves for free. If the grouping is not good, there is not much point in the app.
If you see that a photo cleaner app's install size is in the ballpark of 10MB or so, it's either using AI and processing on a server somewhere, or it's not producing a real quality scan.
So the first scan stays relatively slow for now, I do not love it, but it was the best compromise.
Do you have to sit and wait for it?
No, and this is the part of the design that took the most thought.
The scan works backwards through your library month by month, most recent first, and checkpoints as it goes. Within a minute or two your latest photos are done and fully usable — you can review suggestions, delete, build an album — while the older years continue processing in the background. Progress is saved as each month completes, so closing the app does not throw the work away.
That does not make the computation faster. It does mean you are never staring at a progress bar with the app open, unable to do anything, which was the failure mode I was determined to avoid. A slow first scan you can ignore is a very different experience from a slow first scan you have to supervise.
The short version
An app analysing your photos is doing one of two things: comparing fingerprints to find copies, or running a neural network to recognise scenes. Either can happen on your phone or on a server, the difference matters, and airplane mode will tell you which one you have in under a minute.
If you want the wider checklist for evaluating one of these apps, it is in are photo cleaner apps safe?.
Curator is a one-time-purchase iPhone app that finds duplicates, similar shots and oversized videos, and builds albums by trip and time — all of it on your device, offline, with no servers and no data collection. Get it on the App Store, see how it works, or read the FAQ.