Train a tiny classifier on the latent vectors behind generated content — a few dozen swipes is enough — then run it backwards to synthesize what you'd score highest. No prompting. Built at SkinDeep.ai in 2018–19 against StyleGAN, patented, then open-sourced.
App + patent
Per-swipe retrain
StyleGAN latent
Open-sourced, MIT
"Tinder doesn't ask you to describe your perfect match."
People can't describe what they want. They can rate examples instantly.
Swipe on generated samples. Each one is fully described by the latent vector that produced it, so every rating labels a point in latent space — no prompts, no tags, no forms.
A single-layer classifier trains on those labeled vectors. It's a few hundred numbers, so it retrains in about a millisecond — after every swipe, per user, on device.
Run the classifier backwards: solve for the latent point it would score 100%, and decode it. That's your ideal — relax to 99% for endless distinct near-ideals.
Preferential generation: decode the optimum of a taste model — one ideal, a deck of near-ideals, or a blend of several people's models.
See it live →Run the model forward over encoded real-world data. Two people's models can score each other privately — matching without exposing photos.
See it live →Find the smallest latent change that reaches a target score, then decode the difference — the makeup-recommendation math.
See it live →Those three operations are the 2019 provisional patent's title, verbatim: "Latent space classifier for the purposes of preferential generative data, targeted modification of data, similarity matching and scoring." Read the filing
"Perfection is just a few swipes away"
The original SkinDeep.ai app: a mobile client served StyleGAN-generated faces, each swipe labeled a 512-dimensional latent vector, and a progress ring counted toward every 20th rating — when a GPU worker trained your personal classifier, ran it in reverse, and decoded the face you'd find most attractive. A person who doesn't exist. Then you kept swiping, and it sharpened.
The app, the API, the GPU engine, the patent filing, the demo videos, and an audio overview are all preserved and public.
The loop fits on a slide. The engineering is in the sampling, caching, and UX.
# the whole loop, schematically
z = uniform(-1, 1, size=(batch, 512)) # latent samples
imgs = G(z) # any generator with a latent space
y = user_rates(imgs) # 👍 / 👎 swipes
clf = LogisticRegression().fit(z, y) # per-user taste model (~1 ms)
z_star = t * sign(clf.coef_[0]) # reverse classification (linear case)
ideal = G(z_star) # decode the optimum
p = clf.predict_proba(E(photo)) # score real data via its encoding
dz = ((L_t - L_0) / (w @ w)) * w # minimal change to hit a target score
Everything is MIT-licensed. The parts nobody has shipped yet are documented and waiting.