The $3,500 problem
sellphotos.online is a marketplace where event and sports photographers upload their shots and guests buy the ones they appear in. The whole thing hinges on face search — a guest uploads a selfie, the platform finds every photo that person is in, and they can buy prints or downloads. It's a simple product, but the face recognition behind it is not cheap.
They were on AWS Rekognition. Every photo that got uploaded needed to be indexed. Every guest selfie search was a Rekognition call. At their volume — hundreds of thousands of photos a month across weddings, marathons, corporate events — the Rekognition bill had crept up to about $3,500 a month. And honestly, that wasn't even the worst part.
The worst part was the missed faces. Event photography means crowd shots, group photos, people at a distance. Rekognition's detector would pick up the big faces in the foreground just fine, but the smaller faces in the back rows? A lot of them got missed. And when a guest searches for themselves and their photos don't show up, they complain to the photographer, and the photographer complains to sellphotos.online. It was a real support headache.
Why they started looking
It wasn't one big moment, more like a slow build-up of frustrations. The bill kept going up every month as more photographers joined the platform. The support team kept getting the same complaint: "I was at this event, I can see myself in the group photo on the photographer's Instagram, but the app didn't find me." And every time they wanted to tune something — like adjusting the match threshold for a particular type of event — there was nothing to tune. Rekognition gives you what it gives you.
Someone on their team had come across SightRadar while looking at Rekognition alternatives. The pricing looked significantly cheaper, the batch indexing was a real thing (not just a wrapper around individual calls), and the API was compatible enough that they wouldn't have to rewrite their whole integration from scratch. That last part mattered a lot — they're a small team and a full rewrite was not something anyone had time for.
“I was at this event, I can see myself in the group photo on the photographer's Instagram, but the app didn't find me.”
What made SightRadar worth a look
Cheaper pricing
The per-photo pricing looked significantly cheaper than Rekognition.
Real batch indexing
A real batch pipeline, not just a wrapper around individual calls.
No full rewrite
Compatible enough that they didn't have to rewrite their integration from scratch.
How the move actually went
They didn't do a big-bang switch. Nobody in their right mind would with something this critical. Here's roughly how it played out, over about two days:
Step 1: Test on one wedding
First, they set up a test collection on SightRadar and indexed a batch of about 5,000 photos from a recent wedding. Compared the search results against what Rekognition returned for the same photos. The results were as good or better — and the batch indexing was genuinely faster because it's a real batch pipeline, not N individual HTTP calls.
Step 2: Re-index the back catalogue
Then they re-indexed their entire back catalogue using SightRadar's batch endpoint. This was the biggest chunk of work — hundreds of thousands of photos. But the batch API handles up to 1,000 photo URLs per call with webhook delivery, so it was a matter of scripting the submissions and letting it run overnight.
Step 3: Run both side by side
They ran both providers side by side for the next day. Every guest search hit both Rekognition and SightRadar. They compared the ranked results. SightRadar consistently found more faces in group shots — the multi-scale detector catches smaller faces that a single-scale pass misses. There were a few cases where the ranking order differed slightly, but every face Rekognition found, SightRadar found too, plus extras.
Step 4: Re-calibrate the thresholds
They re-calibrated their match thresholds on their own photo data. This is the step people skip and then blame the new provider when things look off. Rekognition scores on a 0-100 scale, SightRadar uses 0-1. The shim converts automatically, but the actual decision point — where you draw the line between 'yes this is the same person' and 'maybe, ask the guest' — needs to be re-derived from your own labelled pairs. They spent a day on this with a set of known match/non-match pairs from their test events.
Step 5: Flip the switch
Finally, they flipped the switch for new uploads. Existing photos were already indexed in both systems, so the cutover was just a config change pointing new index calls and searches at SightRadar.
What changed after the switch
The most obvious thing: the bill dropped. From roughly $3,500 a month on Rekognition to about $1,550 a month on SightRadar. That's the same volume of photos, the same number of searches. The difference is just the per-photo rate — SightRadar's batch rate is 38% under the Rekognition price, and that's where most of their volume is (indexing uploaded photos).
But the thing that surprised them more was the accuracy improvement. Not on clean, well-lit portraits — both providers handle those fine. The difference showed up on the hard photos: group shots at marathons with dozens of runners, wedding reception crowds, corporate conference audiences. SightRadar's multi-scale detection found faces that Rekognition was missing, especially smaller faces further from the camera.
The support ticket volume for "my photos didn't show up" dropped noticeably within the first month. They didn't track it scientifically — it was more like the support team saying "hey, we're not getting as many of those complaints anymore." Which, for a small team, is the metric that actually matters.
The other thing they appreciated: being able to see exactly what's happening in the SightRadar console. Per-operation costs, search results in a playground, collection sizes. With Rekognition it was all CloudWatch metrics and Cost Explorer tags, and half the time the numbers didn't line up with what they expected.
Before and after the switch
| What changed | Before: AWS Rekognition | After: SightRadar |
|---|---|---|
| Monthly bill | About $3,500 a month | About $1,550 a month, for the same photos and searches |
| Group and crowd photos | Small faces in the back rows often missed | Multi-scale detection finds the smaller faces too |
| "My photos didn't show up" tickets | A real support headache | Dropped noticeably within the first month |
| Seeing what's going on | CloudWatch metrics and Cost Explorer tags | Per-operation costs, a search playground and collection sizes in the console |
The honest bits
It wasn't all smooth. A few things that were annoying or hard:
Re-indexing still takes a while
Re-indexing the full catalogue took longer than they hoped. The batch API is fast, but when you've got hundreds of thousands of photos, it still takes a while. They had to run old and new in parallel during that period, which meant double the detection cost briefly.
The shim is Python-only
The Rekognition shim is Python-only. Their backend is mostly Python so it worked out, but if you're on Node or Java, you're mapping the API calls yourself. That's more work than swapping an import.
Threshold calibration is real work
Threshold calibration is real work. It's not hard, but it's not nothing either. You need a set of known pairs, you need to run searches, and you need to pick your cutoff. If you skip it and just carry over your Rekognition number, your match quality will be worse — not because the engine is worse, but because different models put the same decision at different score values.
What this means if you're in a similar spot
sellphotos.online is a photo marketplace doing real volume. They're not a test project or a side experiment. They process hundreds of thousands of event photos every month and their guests depend on face search to find and buy their pictures. The migration to SightRadar cut their bill roughly in half and improved their match quality on the photos that matter most — the crowded, messy, real-world shots that event photography is made of.
If you're running a similar workload on Rekognition and the bill is starting to sting, or you're frustrated by missed faces in group shots, their experience suggests the switch is worth the two days of work. The batch pricing makes the biggest difference on cost, and the multi-scale detection makes the biggest difference on accuracy.