About|Blog|FAQ|Privacy Policy|Terms of Service|Contact

© 2026 FaceTest. All rights reserved.

FaceTest
TestsBlogAbout
Home›Blog

How AI Look-Alike Tests Actually Work

Face detection, embeddings, cosine similarity: a plain-language tour of what happens between uploading a photo and seeing your match, and why the analysis never leaves your browser.

2026.09.06·Other

When you upload a photo to a look-alike test, nothing in the computer "sees" a face the way you do. It sees a grid of pixels: a few million numbers describing brightness and color. Everything that follows is about turning that grid into something a program can compare with other grids. Here is the whole pipeline, step by step, with no math beyond what fits in a sentence.

Step 1: From pixels to a list of numbers

The workhorse is a convolutional neural network. FaceTest uses a lightweight one from the MobileNet family that runs inside your browser through TensorFlow.js. The network was trained on millions of everyday photos, and along the way it learned a hierarchy of visual features. Early layers respond to edges and blobs of color. Middle layers respond to textures and simple shapes. Deep layers respond to combinations such as "a rounded contour above two dark ovals with a bright patch between them", which is a fair description of a face.

We stop just before the network's final decision layer and read out the activations there. The result is a vector: roughly a thousand numbers that summarize the shapes, proportions, and textures of the image. That vector is called an embedding. Two images with similar structure end up with similar embeddings even if the photos differ in lighting or background, and that property is the entire trick.

Step 2: Every character already has a vector

Before a test goes live, we run each character's in-scene stills through the same network and store the resulting vectors. A character with six stills has six vectors plus an average of them. This happens once, on our side, when the test is built. It is the reason the test can respond in a second: by the time you upload a photo, all the comparison targets are already computed.

Step 3: Comparing vectors

Your embedding is compared against every stored one using cosine similarity. Cosine similarity measures the angle between two vectors: identical direction scores 1.0, unrelated directions score near 0, and we show it as a percentage. We rank characters by their average vector, so a single unusual still can't carry a character to the top, and we show you the individual still that came closest to you as the result image. The runners-up appear as your "also close" list, and the gap between first and second place tells you how decisive the match was. What the percentage means has more on reading that number.

Why the analysis stays on your device

Because the network is small enough to run in a browser, there is no reason to send your photo anywhere. The model downloads once (a few megabytes, cached afterwards), the character vectors download with the test page, and everything else happens on your phone or laptop. You can verify this yourself: open your browser's developer tools, watch the network tab while you run a test, and you will see no upload of your image. The only thing that can leave your device is a result you choose to share, and even then the share card shows the character, not your photo. Our privacy checklist covers what to look for in any face app.

Why the same face gets different results

A neural network is sensitive to things you barely notice. A slight tilt of the head moves every contour. A wide grin reshapes the lower half of the face. Strong side lighting adds shadows that read as texture. A beauty filter erases exactly the fine texture the deeper layers rely on. That's why two selfies taken a minute apart can produce different runners-up, and occasionally a different winner. The fix is simple: try two or three photos and look at what stays constant. A match that survives a change of lighting is a real one. Our photo guide lists what matters most.

Human faces versus drawn faces

Here is a subtle point that explains a lot. The network we use was trained on general photographs, not specifically on face identity. A dedicated face-recognition model, the kind that unlocks your phone, is far better at telling two people apart, but it would refuse to see a face in a Shiba Inu or a Studio Ghibli character at all. A general image model instead compares shape language: contour, spacing of features, proportions, the rhythm of light and dark across the face. That is precisely what makes matching a human to an anime character or a dog breed possible, and it's also why we describe results as a measure of visual echo rather than identity. It's for fun, and it's honest about being for fun.

What it doesn't do

It doesn't judge attractiveness, it doesn't know who is famous, and it doesn't learn from your photo. Each analysis starts from scratch with the same fixed model, which is also why results are reproducible when the photo is the same.

Try it on your own face

See how this plays out for you. Photos are analyzed inside your browser and never uploaded anywhere.

Browse the tests →

Keep reading

All articles →
  • 2026.09.07

    Glasses, Bangs, Beards, Makeup: How Much Does Styling Change Your Match?

  • 2026.09.07

    Who Looks More Like Them? How to Run a Fair Face-Match Battle With Friends

  • 2026.09.06

    How to Take a Photo That Actually Matches Well