






PortraitDirector
An AI portrait tool where you light the subject like a photographer, and the app writes the prompt.
(opens in a new tab)AI team photos fall apart on the lighting.
At the agency I work with, clients kept asking for better team photos made with AI. I did a lot of them by hand, and two problems came up every time. The lighting drifted from one person to the next, so a team never looked like it was shot on the same day. And there was no reliable way to say where the light should come from.
So I studied how Nano Banana Pro reads the direction of light, what makes it work and what breaks it, and built a tool around what I found.
The Solution
Put the light where you want it.
PortraitDirector gives you a lighting stage instead of a prompt box. Upload a photo, place lights around a 3D head, and pick the backdrop, lens, colour temperature, expression, pose and framing. The app translates all of it into language the model follows.

A real lighting stage
Drag lights around the subject on a clock face, then set height, distance, size, modifier, intensity and colour. Add as many lights as the shot needs, or start from a preset.

Prompts written to be followed
Every setting maps to phrasing I tested against the model. Height and horizontal angle each need their own wording to land accurately, and lights are described by their effect so no lamps appear in the frame.

Settings that don't fight
Choices affect each other. Pick a navy backdrop with black and white turned on, and the prompt asks for dark grey, so no colour leaks into a mono portrait.

My role
Solo, from the first test prompt to launch. I ran the lighting research, designed the interface and the mascot, built the app, and wrote the prompt system behind it. It launched in August 2026.
Decisions
Lighting you can see
Nobody can describe a 35-degree key light from the front left in words, and the model needs very particular words anyway. So the interface is visual and the language lives in the code. The trade-off: every control needs a tested translation, and that layer has to be retuned when the model changes.
The prompt system stays on the server
The prompt layer is the product, so it runs in Vercel Functions and never reaches the browser. The trade-off: every generation goes through the server, and nobody can inspect or tweak the prompt from the client.
Credits priced by resolution
Portraits cost credits: 1 at 2K, 5 at 4K. It isn't something people need all the time: most people use it once, for themselves or for their team, so paying per portrait fits better than a subscription. An agency plan is the one place a subscription could make sense, but that stays on credits too, to keep things simple. The trade-off: less predictable revenue than a monthly plan.
Let's build something.
Launching a product, need a new site, or hiring? Tell me what you're working on.