Florian, our in-house videographer, shipped a tool that generates product photos for e-commerce sites · a few cents per photo instead of a photographer's shoot. When I saw it, I thought · if it works for products, why not for faces? I built the equivalent for personal branding. Two weeks of tinkering later, I'm using my own photos on LinkedIn and we even ran a full set for one of our teammates for €0.80. Here's the story · what works, what fails shamelessly, and the source code I'm selling on pre-order for anyone who just wants to use it for themselves and their team.
I needed photos. Not a thousand, just 5 or 6 good photos of me, usable on LinkedIn, my site, as a newsletter hero, on a sales page. You know the problem: the last real photo session you did was years ago, your selfies are from 2022, and everything you post looks a little washed out.
Two classic options · pay a photographer (around €500 a session in Lyon or Paris for a decent set), or take out a subscription to an off-the-shelf generator like Klayn.ai (about €200/month). I found both too expensive for a need that comes up once a quarter.
So I did what I do every time I find a product too expensive · I looked under the hood. Klayn really just stacks three or four AI image models available on platforms like fal.ai. Per unit, each photo costs between $0.04 and $0.20 · not $200 a month. The rest is just interface, marketing and margin.
So I built my own tool. Here's the photo I'm proudest of (generated from 4 selfies shot on my iPhone):
You absolutely can replace the photo session with a homemade tool. But not in one evening · it takes two weeks to dial in the right settings. If you don't feel like grinding through the learning curve, I sell my code on pre-order for €39 · you read the article and decide whether you want to build it yourself or grab mine.
To be honest, the idea isn't mine. It was Florian, our in-house videographer-photographer, who kicked the whole thing off.
A few months ago, Florian built a tool that generates product photos for e-commerce sites. The idea is dead simple · instead of organizing a shoot (gear, studio, photographer, post-production · easily €1,000 for a handful of products), you upload a photo of your product, describe the scene you want ("our cream in close-up on a black marble counter, golden light"), and the AI hands you 5-10 pro photos of your product in that scene. For a few cents each.
When I saw his first results on products, something clicked · if it works for products, why not for faces?
Because we all have the same problem · a LinkedIn profile photo from 2022, no portrait for the site's "about" page, nothing usable as a newsletter hero, no visual for sales pages. And between the €500 photo session and the €200/month Klayn subscription, there's a gap nobody fills. Especially for teams · if you have 5 people who each need 10 photos, it costs you an arm and a leg the classic way (the logistics of getting a photographer to the office, a whole day blocked off, a €2,000-3,000 final bill).
So I took Florian's same architecture, forked it, and rethought the whole thing for faces · handling identity references, prompts specific enough that people actually recognize the person, a "natural iPhone" mode by default to avoid the fake-magazine look.
Two weeks later, I had my photos. And then we said "hey, we should try it for other people at the company" · you'll get a glimpse a bit further down in the article.
I built a dead-simple website. Four steps, in order:
No gear needed. You take 4 selfies in daylight · front, left profile, right profile, close-up of the face. In photo lingo these are called polas · the reference photos so the AI learns your face.
Count on 2 minutes in front of a light-colored wall.
You type in plain English: "I want a photo of me in a cozy café with a MacBook" · or "on a rooftop at sunset with my phone". If you're out of ideas, an "Inspire me" button offers 8 ready-made settings.
Under the hood, Gemini 2.5 Pro (a Google model) reads your selfies and your brief, then proposes 5 different shots · face close-up, chest shot, wide-scene shot, and so on. You can tweak them or drop one before you launch.
The image model (by default Seedream 4.5, a Chinese model that's ultra-good at producing several consistent photos in one go) does its thing. 30-60 seconds later, you've got your 5 photos. If one of them doesn't work for you, you click "regenerate this shot" · it only redoes that one photo without touching the others.
In the dashboard, you also get a cost counter in the top right · today $X.XX, this month $Y.YY. So you don't burn through €30 without noticing (more on that below, because that's exactly what happened to me at the start).
So you can see just how ridiculously simple step 01 is · here are exactly the 4 photos I uploaded into the tool to generate every photo you see in this article. 4 iPhone selfies, a light-colored wall, shot in 2 minutes:




That's it. No gear, no session, no suit. That is enough for the tool to understand my face and reproduce it in 50 different settings. The talent is in the prompt, not in the input photo.
Here's what it looks like once deployed. No terminal, no YAML, just a UI. You click, you paste in your 3 keys, you generate your photos.

The wizard you'll have on your end · home, example showcase, the "Start" button that kicks off the 4 steps (selfies → scene → proposals → renders). It's the page you see first when you land on your Vercel URL.

The Settings page that tells you in green that everything works · you get here from anywhere via the topbar. A "how it works" diagram, 3 cards for the 3 keys (fal.ai, OpenRouter, Admin token), a "Test connection" button under each field. When everything is green, you're ready.

Close-up on the cards · on the left the status (✓ Configured with the value masked as ••••XXXX, or ✗ Missing), on the right the "Test connection" button that pings fal.ai's billing endpoint. You expand "How to get it" if you're looking for the docs to follow.

And if you want to run it locally · same page, further down. Step-by-step instructions to clone the repo, run npm install, create your .env.local. It's the only moment in the tool where anyone mentions an env file · otherwise everything goes through the UI.
Because 80% of the "AI tools" sold today are cobbled-together Python scripts shipped in a ZIP with a 200-line README. This is a real Next.js product with its own topbar, its pages, its design system, its callouts. You deploy it on Vercel, you set your custom domain, you change the name · you've got an app of your own.
Let me show you two results · it gives you an idea of what you get when everything lines up.
Why this one works · the AI kept my real face (skull shape, beard structure, gaze), the light is soft and natural (no harsh flash), and black-and-white hides the sometimes too-smooth AI skin. It's the kind of portrait I can use as a profile photo without anyone asking questions.
Why this one works · the setting (rooftop at sunset) stays plausible, I'm holding the phone in a natural way, and the golden light masks the imperfections the AI sometimes puts on skin. Perfect as a sales-page or newsletter hero.
Each Seedream 4.5 render costs me $0.04. For these 2 photos I actually generated about fifteen (I keep the ones I like and toss the rest). Total: about $0.60. A full "every set for the year" session costs me €30.
So you don't stop at 2 photos · here's what the tool produces across 8 typical use cases for solid personal branding. Each time I give you the target use, the real cost, and why it works (because understanding why is what lets you replicate it on your end).
Before we go through the cases one by one, just look at the contact sheet. 9 results side by side, like a photo studio handing you the sheet of thumbnails after the session. This is what an hour of generation at $0.04 a render looks like:






Now let's run through the cases in detail.

1 · Corporate LinkedIn (profile photo + About page)

2 · Speaker / stage (talk announcement, conference recap post, bio slide)

3 · Café lifestyle (LinkedIn carousel, newsletter background)

4 · Premium office tower (About hero, team page, pro photo)
5 · Rooftop hero (homepage hero, pre-order page, newsletter hero)
6 · Timeless B&W portrait ("main" profile photo, interview, press)

7 · Library café variant (podcast cover, "about" header)

8 · Morning home office (casual LinkedIn post, personal blog photo, course hero)
So you can gauge the raw delta, here side by side is an input iPhone selfie and an AI result generated from it:

Before · iPhone selfie, 2 sec, light-colored wall
After · generated B&W portrait, $0.04
That's exactly the jump · on the left, what's already in your phone's camera roll, on the right, what you can put on LinkedIn Monday morning. No haircut change, no shave, no studio. Just 4 cents and 30 seconds.
The 9 photos above together add up to less than $2 of AI credits (including the flops I threw out). In a studio, the same set would cost you between €500 and €1,500 depending on the city and the photographer's level · not counting the half-day you have to block off in your calendar and the 6 outfit changes.
That's where the tool gets really interesting. Once it was dialed in for my face, we could reuse it as-is for everyone else's faces at the company.
Here's a portrait generated for one of our teammates · 4 selfies sent as input, the brief "neutral black-and-white studio, direct gaze into the camera, understated suit," and a few renders later we had his full set of pro photos:
What this changes in practice · if you lead a team, you no longer need to bring a photographer to the office for everyone (a logistics nightmare, a price that climbs fast · between €1,500 and €3,000 for 5-10 people depending on the city). Each person sends their 4 selfies from home, you run the tool for 5 minutes, and everyone has their set. Once the tool is set up, the marginal cost of an extra teammate is around €0.80-1.
It's also the moment when the argument "I buy the code once instead of subscribing" makes complete sense · across 5-10 people to kit out, the software's ROI is immediate.
I'm not going to sell you a dream. For every 1 photo that works, I throw out 4. Here are 3 characteristic flops · they give you an idea of the kind of traps to avoid.

That guy isn't me. I'm bald, I don't wear earrings, I've never had that haircut. Why it happens · when the prompt is too vague (something like "business man on a rooftop"), the model invents the character. My 4 reference selfies weigh less than the thousands of corporate LinkedIn photos the model saw during training.
The fix that worked · forcing very precise identity anchors into the prompt · "bald, salt-and-pepper beard, square face structure, blue eyes." And running a mini-test of 1 photo before the batch, to see if the AI is really catching my face. If it confuses me with someone else, I adjust before generating 5 photos at once.

This one's a bit more subtle · it vaguely resembles me (skull shape OK), but it turned into a stock photo. A frozen pose, a stock beige suit, a catalog smile, real-estate-ad lighting. If I put that as my LinkedIn photo, my network would wonder whether I pivoted into a Big4 consultant.
Why it happens · image models have a default voice. When you don't give them very precise instructions, they lean toward what they've seen most during training · editorial magazine photos, corporate photos, Hawkesworth-Kinfolk stuff for the outdoors. And it's never what you want when you're going for natural.
The fix that worked · I created a "natural iPhone" mode by default. The prompt forces things like "24mm lens, mixed ambient light, slightly off-center, no film grain, no editorial composition." Result · the photos finally look like what you'd shoot with a modern iPhone, not like a magazine cover.

At first glance, it's beautiful. Golden light, cream coat, yellow taxi in the background, a cinematic gesture of the phone to the ear · you'd think it cost €300 from a photographer.
Why I throw it out anyway · it's exactly the trap of flop 2, premium edition. Too editorial for personal use. If you put that on LinkedIn, your network immediately senses the "magazine shoot" and the photo loses all credibility of authenticity. It's pretty but it no longer looks like you · it looks like an Hermès ad from the 2023 season. The scripted movement (walking + phone) adds a layer of staging that reeks of a set.
The lesson · image models love magazine compositions. The "prettier" it is, the more suspicious you should be. A photo that really looks like you often seems less remarkable than a Vogue photo · and that's precisely why it works.
If you're thinking of building your own tool (or even just using a Klayn and friends), these 3 lessons will save you two weeks.
It's the most treacherous trap. You write a simple, neutral prompt and the model hands you Vogue. Not because you asked for it, but because it's what it saw most during training.
In practice · if you want natural iPhone, you have to impose it hard in the prompt (and even explicitly ban words like "Kodak Portra," "cinematic," "editorial"). If you don't do that, you'll always get fake-magazine and you won't understand why.
My reflex at the start · add context. More words = more precision, right? No, the opposite.
Image models have an optimal word count between 30 and 100. Above that, they average things out and forget half your instructions. I compressed my prompts from 470 words to 165 words · the results were immediately better.
There are about a dozen image models accessible through fal.ai. I mainly use 4 · Seedream 4.5 (the best for producing 5 consistent photos at once), Nano Banana Pro (the best for a single, very true-to-life photo), FLUX 2 (good for very precise outdoor scenes), GPT Image 2 (good for identity fidelity when you have a single reference photo).
None is better than the others in absolute terms · it depends on your face and what you're after. The only way to know is to generate the same scene with all 4 models on your selfies, and look. Budget $0.50 for that test, it's worth it.
If you're a developer or you have Claude Code installed, you can totally do this yourself. Here's the minimal stack:
3 non-negotiable tips if you get into it:
I wrote the full technical story (17 sections, every bug solved, every architecture decision) in a separate document. If you want to read it before you get started, tell me in a reply to the newsletter · I send it privately to anyone who asks.
You've got a team to kit out, or you want to redo your pro photos every three months without signing up for a €200/month subscription. I sell the source code · one-time purchase, no SaaS that can disappear, no per-user quota.
.env.local file, never a terminal.STORYTELLING.md (every technical decision + bugs already solved) + CLAUDE.md (so Claude Code modifies your fork cleanly).Your variable costs · your own API keys · fal.ai (~ €4 for 100 photos) + OpenRouter (~ €1 for 50 sessions). You pay as you go, directly to the providers, at a few cents a photo. No hidden subscription.
| Klayn (SaaS sub) | Photographer (1/quarter) | My tool | |
|---|---|---|---|
| Year 1 | €2,400 | €2,000 | ~ €130 |
| Year 2 | €2,400 | €2,000 | ~ €30 |
| 2-year total | €4,800 | €4,000 | ~ €160 |
A factor of 25-30, not a 10% saving. And you can redo 50 sets in a year at no extra cost — a new teammate joins? €1 of fal.ai credit and it's done.
Three things that would have kept me up at night if I'd signed with Klayn:
And the photographer, then? It's complementary, not competing. A good session once a year is still valuable. But between two sessions, your set goes stale after 4 months — and for a team of 5-10, bringing a photographer to the office (€1,500-3,000 + a day blocked off) becomes irrational when everyone can send 4 selfies from their couch in 2 min.
You pay once, the code is yours for life. Free updates, a private GitHub repo, a standalone ZIP, auto delivery in 2 minutes. 7-day money-back guarantee, no questions asked.
Not a developer? The Settings page walks you through it step by step, you never touch a terminal. Write to me directly if you'd rather pay another way (bank transfer, etc.).
A few links if you want to dig into the topic:
If you've built your own personal branding photo generator or tested Klayn, reply to the newsletter and tell me what you learned. That's how my next articles get better.
Expect around $0.04 per photo generated through an API like fal.ai with a model such as Seedream 4.5 or FLUX. A full set of 10 LinkedIn photos runs about $0.40, not counting prompt time. Compare that to €500 for a traditional photo session and €200/month for a service like Klayn. For a team of 5 people with 10 photos each, you're looking at €2 versus €2,000 to €3,000 the traditional way.
No single model wins universally, you have to test all four on your own face. In practice, Seedream 4.5 (Chinese) gives the best mix of multi-photo consistency and face fidelity for personal branding, so it's my default. FLUX gives more of a film-magazine look. Nano Banana (Google Gemini) shines at editing an existing photo rather than generating from scratch. GPT Image and Imagen are decent but often too smoothed out. Test all four with the same 5 prompts and pick the one that looks most like you.
4 selfies are enough to get a consistent result with today's models. That's what I use in my generator: 4 photos taken on your phone (front, slight left profile, slight right profile, chest shot) with neutral lighting, no glasses or accessories that change. Beyond 6 photos, you rarely see a quality gain. Below 3, the models invent a character that no longer looks like you.
For 80% of everyday uses (LinkedIn profile photo, newsletter hero, About page, sales page illustration), yes. The quality is good enough that it won't give away the AI origin if you take the time to pick the right setting and pose. For a book cover portrait, a press campaign, or any use where the image will be scrutinized at large size, the photographer still has the edge. The real savings show up with teams: 5 people with 10 photos each cost around €2 with AI versus €2,000 to €3,000 with an on-site photographer.
My stack: Next.js for the app (frontend + API routes), fal.ai as the gateway to the image models (Seedream, FLUX, Nano Banana), Vercel for hosting, and a homemade design system with a topbar, callouts and galleries. No Python, no Docker, no GPU to rent. The full code (17 sections of technical story, every bug solved) fits into a plain Next.js product you can deploy in one click on Vercel. Budget two weeks to dial in the settings if you start from scratch, or grab my code on pre-order for €39.
Yes, LinkedIn doesn't ban AI photos as long as they represent a real, existing person (you) and not a fictional avatar. Same for a résumé: it's legal and increasingly accepted. The ethical nuance is the same as for a retouched photographer's shot · as long as the photo looks like what people will see when they meet you in real life, it's acceptable visual home staging. Where it gets problematic · radically changing your apparent age, your body shape, or adding a haircut you don't have · that's misleading the person you'll meet.

I test AI for real and share what works, no jargon and no hype. If this article helped you, the easiest way to never miss anything is my Friday letter. And if you have a question or a doubt: reply to me, I read everything.