Stop shipping gray boxes.
Real-looking placeholder images from a single URL. Generated once by Gemini, cached forever, served from the edge. No SDK, no keys in your page.
This image is real output — prompt=sunlit modern coffee roastery interior
Paste that prompt → get this page.
Every image below is generated by the Banana Stand API from the prompt baked into its URL. No stock photos, no licensing, no gray rectangles.
One URL. Generated once. Cached forever.
Write a URL
Put the size and a plain-language prompt right in the path. Drop it into an <img> tag or a CSS background.
Generated on first hit
A server-side prompt layer turns terse prompts into clean web imagery, sized to exactly what you asked for.
Cached & served fast
Identical URLs always return the same image from the CDN — stable across reloads and deploys, near-zero cost after the first.
Teach Claude Code once.
Drop this into your project's CLAUDE.md and Claude uses Banana Stand automatically whenever it adds images — no reminding, no copy-paste per page.
The anatomy of a Banana Stand URL.
https://your-instance.vercel.app/i/{width}x{height}
?prompt=team+collaborating+in+a+bright+modern+office
&style=photographic # web (default) | photographic
&seed=2 # change for a different image, same prompt
&fmt=webp&q=82 # webp | jpeg | pngstyle=web
style=photographic
Exact sizes
Ask for 1200x600, get exactly 1200×600. Each side clamps to 64–2048.
Deploy your own in one click.
Bring your own Google Cloud credentials and Vercel Blob token. You run the instance, you control the cost.
Keep generation to yourself.
Generating a new image costs a Gemini call. Set a GEN_TOKENon your instance and only requests carrying it can create new images — while everything you've already made keeps serving to everyone, free.
Cache hits — open
Any URL you've already generated is served from the CDN to anyone, no token needed. Embedded <img> tags never break.
New generation — gated
With GEN_TOKEN set, a cache miss needs a matching X-Gen-Token header — otherwise it returns 401. No token, no surprise bill.
# New image — only works with the secret curl -H "X-Gen-Token: $GEN_TOKEN" \ "https://your-instance.vercel.app/i/1200x600?prompt=team+in+a+bright+office"
Set GEN_TOKEN in your Vercel project (Production scope) and redeploy. The hosted instance at bananastandai.com runs with it set, so only the maintainer can trigger new generations.