If you've ever searched for a celebrity look-alike tool, you've probably noticed most of them fall into one of two camps: quiz-style pages that ask you five vague questions about your own face ("is your jaw pointed or round?"), or apps that quietly outsource the heavy lifting to a third-party face recognition API and slap a UI on top. Neither approach sat right with me. Self-assessment is unreliable — people are bad at judging their own proportions, especially in a mirror where everything is flipped and inconsistently lit. And outsourcing the model means you're limited by whatever a generic library was trained to do.
So I built ** StarDoppel**, a suite of AI-powered face-analysis tools, with the matching engine written entirely in-house in Python rather than wrapped around an off-the-shelf face recognition library.
The idea is simple in concept, harder in execution: read a photo, extract measurable structure, and turn that structure into a comparable score.
Once the landmark-detection pipeline existed, extending it to other structural questions was a natural next step. StarDoppel now includes:
A few choices that came up repeatedly during development:
No account requirement. Every tool works with zero signup. This meant designing the backend to be fully stateless per-request — no user session tied to a stored photo, no persistence layer for images at all.
Photos are deleted immediately after processing. Each image exists on the server only long enough to generate a result. This shaped a lot of the architecture: no caching of uploaded images, no logging of raw photo data, and processing pipelines that explicitly discard the file reference once a result object is returned.
Handling ambiguous input gracefully. If more than one face is detected in a frame, the system doesn't try to guess which one the user meant — it returns an error and asks for a new photo. Same behavior when no face is detected at all (blur, extreme angle, poor lighting). Silent wrong guesses are worse than an explicit "please try again."
What doesn't break the model. Interestingly, makeup and facial hair don't meaningfully affect results, since the underlying bone/cartilage structure is what's being measured rather than surface texture. Masks are a different story — they remove too many reference points for a reliable read.
The celebrity database currently reflects the actor set it was built with, sourced from IMDb — expanding and refreshing that dataset is an ongoing task, along with extending coverage beyond actors. If you're interested in the technical side of facial landmark detection, distance-based similarity scoring, or just want to see the tools in action, you can try them at stardoppel.com.
Happy to answer questions about the implementation in the comments.