Compare AI image generators side by side
This is the test bench inside birthday-cards.ai. Upload a photo, and two frontier image models will design a birthday card from it at the same time: Google's Nano Banana (gemini-3-pro-image) and OpenAI's gpt-image-2. Same photo, same prompt, two very different answers. Watch the timers, judge the results, keep whichever card you like.
Why this page exists
When I was building this site, I had to pick one image model to power it. I assumed I would read a few benchmarks and move on. Instead I learned that the “best” model depends entirely on what you are building, so I wired up a mode that races both engines on the same input and watched them compete with my own photos.
The rest of birthday-cards.ai runs on OpenAI. This page is the one place where both engines run, kept public because watching them race is the fastest way I know to understand how different two state of the art models can be. It is also just fun.
Run the race
Each race renders two images, which costs me real money, so be reasonable. If a card comes out weird, race again. That is half the fun.
What to watch for
- The clock. Nano Banana usually lands in about 30 seconds. OpenAI usually takes 2 to 3 minutes. In the race I recorded for the launch post it was 16 seconds against 45. Feel the difference, not just the numbers. Sixteen seconds feels like magic. Three minutes feels like waiting for a printer.
- The likeness. Does the person still look like themselves? Does the dog still look like that specific dog? This is where image models quietly fail, and no leaderboard measures it.
- The text. If you gave the card a message, check the spelling letter by letter. Lettering is still hard for image models, and unusual names are harder than common words.
- The feel. One card usually looks quick and clean. The other usually looks like something you would actually print and hand to someone. Which gap matters more depends on what you are making.
What surprised me
I expected a winner. I got a tradeoff. Nano Banana's speed genuinely changes how the tool feels, and OpenAI's detail genuinely changes how the card feels. For a birthday card, something that gets printed, folded, and kept, I chose quality and ate the slow renders. If this site showed live previews while you typed, I would have chosen speed and never looked back.
That is the real lesson this page teaches better than any spec sheet: there is no best model, only a best model for the job. If you are picking models for your own project, run them on your own inputs, side by side, and decide what you are actually optimizing for. This page is exactly that test, running in production.


One real race from my own photo: same prompt, both engines, timers as recorded.
How the prompts get written
Nobody types a prompt on this page. When you start a race, a vision model studies your photo first: who is in it, their energy, the pets, the details worth keeping. Then it writes a one-off creative brief around them, on the spot, and that exact brief goes to both engines at the same time. That is the prompt you can peek at under your race.
What you don't see is the set of production guardrails stacked on top: the rules that keep a face looking like the actual person, keep the card text spelled right, and stop the models from inventing strangers. Those took months of failed cards to get right, and they are the part I keep to myself.
I'm writing a full breakdown of this build: the architecture, the prompt patterns, what broke, and what I'd reuse for other products. Want it when it's out?
And if you'd rather have a pipeline like this built for your business, that is the consulting work I do at GLF Analytics.
Engine notes
Last updated July 2026. I update this section as the models change.
- Google Nano Banana (gemini-3-pro-image), tested June and July 2026: very fast (usually under 30 seconds here), clean stylized results, occasionally looser on likeness and fine detail. Renders at 1K on this page because of a hosting response-size limit, which is itself a lesson in how infrastructure constrains model choice.
- OpenAI gpt-image-2, tested June and July 2026: slow (2 to 3 minutes is normal), consistently stronger detail, composition, and likeness. The engine behind every other card on this site.
- Current verdict for this product: OpenAI for the keepsake, Nano Banana for the wow of watching it appear. Ask me again after the next model release.
Questions people ask
Is this really free?+
Yes, while the site is in its soft launch. Each race generates two images and that costs me real money, so there is no catch, just a hobbyist's budget. Make cards, share them, tell me what broke.
Which engine is better?+
For birthday cards, my honest answer after hundreds of renders: OpenAI, and it is closer than you would think. But better depends on the job. Run a race with your own photo and see which side you would ship. People disagree with me all the time, which is sort of the point of this page.
Why does the rest of the site only use OpenAI?+
Because a card is a keepsake. It gets printed and kept, and nobody remembers a two minute wait a week later. Quality won for this product. This page exists because that decision deserved a real test, not a guess, and the test turned out to be worth sharing.
What happens to my photo?+
Same as everywhere else on this site: your photo goes to the AI engines to make your card and is not stored on our own servers. The details live on the privacy page, in plain English.
Who built this?+
I'm Gabriel. I run a small analytics and AI consulting practice called GLF Analytics in LA, and this site is my side project and testing ground. Everything here, including the search pages that probably brought you in, was built with AI. The about page has the longer story.
If you came for the comparison and stayed for the cards: you can turn a photo into a birthday card, try the full card generator, or steal ideas for what to write inside. And if you make one you love, here is how to print it at home.