How AI Portrait Generators Actually Work (And Why Some Outputs Still Look Fake)
Three years ago, generating photorealistic images of a specific person required either a research lab or a very patient GPU. Today it costs less than a dinner and takes about twenty minutes. That shift did not come from one breakthrough. It came from a change in how personalisation gets bolted onto a diffusion model, and understanding that change explains both why these tools got cheap and why a portion of their output still lands in the uncanny valley.
The base problem: diffusion models do not know you
A text-to-image diffusion model learns to reverse a noising process. Feed it random noise and a text prompt, and it iteratively denoises toward an image that matches the prompt. It is very good at “a man in a coffee shop” and completely useless at “this specific man in a coffee shop,” because your face is not in its training distribution.
Personalisation means teaching the model a new concept — you — without retraining the whole thing and without the model forgetting everything else it knows. Three generations of approaches have tried to solve this.
Full fine-tuning (DreamBooth-style). Take the base model, fine-tune it on a handful of images of the subject, bind that subject to a rare token. It works well. It also produces a multi-gigabyte checkpoint per person and takes serious compute, which makes per-user economics painful.
Textual inversion. Instead of touching the model weights, learn a new embedding vector that represents the subject in the text encoder’s space. Tiny output files. Weaker likeness, especially across varied poses.
Low-rank adaptation (LoRA). Freeze the base model, inject small trainable rank-decomposition matrices into the attention layers, and train only those. The trained artefact is measured in megabytes instead of gigabytes, training runs in minutes rather than hours, and likeness holds up well enough for production.
LoRA is the reason this category has consumer pricing. It changed the marginal cost of “learn a new face” from a fine-tuning job to something closer to a database write.
Why 5 to 20 input photos, and why they matter more than the model
Almost every one of these products asks for a similar input set: several selfies, different angles, different lighting, no sunglasses. That requirement is not arbitrary.
The adaptation is learning what is invariant about your face across conditions. If every input photo is shot from the same angle in the same light, the model cannot separate “this is his jawline” from “this is what that jawline looks like under a kitchen ceiling light.” It bakes the lighting into the identity. You then get outputs that look like you were photoshopped into scenes, because in a sense the model learned a lighting condition as part of who you are.
Input diversity is the single biggest quality lever available to the end user, and it is the one most people skip.
Where the outputs break, and why
Failures cluster in predictable places, and each has a mechanical explanation.
Hands. Hands have high articulation, appear at wildly varying scales, and are frequently occluded in training data. The model has seen millions of hands in inconsistent configurations and has weak priors on how many fingers should be visible from a given angle.
Ears and asymmetry. Ears are structurally complex, often partially hidden by hair, and rarely the subject of attention in captions. Low caption signal means low fidelity.
Skin that reads as plastic. Real skin exhibits subsurface scattering: light enters the surface, bounces around, and exits diffusely. Models trained heavily on retouched imagery learn the retouched distribution, which has already suppressed pore texture and scatter. The result is a face that is anatomically fine and materially wrong, which is exactly the signal the human visual system is tuned to catch.
Eye focus. Gaze direction and pupil convergence need to agree with the implied camera distance. When they do not, viewers report that something is off without being able to name it.
The pattern across all four: humans are extremely good at detecting violations in faces specifically, because we run dedicated neural machinery on them. A landscape with a physically impossible shadow passes unnoticed. A face with slightly wrong specular highlights does not.
How consumer products handle it
Given that a meaningful fraction of output will fail, the practical design answer is not to make every generation perfect. It is to generate at volume and filter.
That is the shape most of these services take. A consumer ai dating headshots generator will return 80 to 180 images across dozens of scenes in roughly 20 to 30 minutes for a one-time fee between $29 and $79, then score each output on how natural it appears on a 0 to 100 scale so the obviously synthetic frames can be dropped before anything gets published.
Architecturally this is a familiar trade. Inference is cheap and parallel; human judgement is expensive and serial. So you spend compute to produce a wide candidate set, then use an automated scorer to approximate the judgement step and hand a shortlist to the user. The scorer does not need to be as good as a person. It needs to be good enough to remove the bottom quartile.
What this means if you are building rather than buying
A few things follow for anyone considering this stack in their own product.
Per-user adaptation is now cheap enough to be a feature rather than a business model. The differentiator is no longer whether you can train a face; it is the pipeline around it — input validation, prompt library, scene coverage, and output filtering.
The quality ceiling is set by your training images, not your base model. Teams underestimate how much of the perceived quality gap between competing products comes from input guidance rather than architecture.
Budget for rejection. If your product assumes an 80% usable rate, you will ship a bad experience. Assume something closer to a third, design the UI around curation, and the same underlying model suddenly feels much better.
The short version
These tools got cheap because LoRA moved personalisation from a training job to an inference-time detail. They still produce visible failures because human face perception is unusually sensitive, and because the artefacts cluster in exactly the regions our visual system audits hardest.
The interesting engineering is no longer in generating the image. It is in deciding which generated images are fit to leave the building.


Leave a Reply