Google's Nano Banana models turn a single hero shot into an entire on-brand campaign — same product, endless contexts. This guide takes you from zero to a repeatable pipeline, one level at a time.

One product master → three different worlds. The world changes; the product stays itself.
Mint one master image, then attach it to everything. That single reference — not the model you pick — is what keeps your product looking like itself across every ad, format, and language. Everything in this guide is a variation on that one move.
One key from either provider below reaches the same models. Grab one — it takes a minute.
Paste the onboarding prompt (next section) into Claude Code. It walks you through the rest and generates your first image.
Make one clean product image, then drop it into any scene. That's the method — the rest is practice.
One key reaches Nano Banana Pro / 2 / Lite and 1,000+ other models. Works with the official MCP and the CLI in this repo. ~$0.08 per image on model 2.
Nano Banana straight from Google, often the cheapest route. Free tier to get going, then pay-as-you-go. Use the GenAI SDK or a community MCP.
Don't want to read docs? Paste this into Claude Code. It asks which key you have, tells you where to get one if you don't, wires up the fastest path, and generates your first master — one step at a time.
I want to start generating on-brand product/campaign images using the nano-banana-campaign workflow (Google's Nano Banana models). Set me up from zero: 1. Ask whether I already have a fal.ai key or a Google Gemini key. If I have neither, tell me exactly where to get one, roughly what it costs, and help me pick between them. 2. Based on my choice, set up the fastest way to call the models from here: - fal.ai -> add the official fal MCP server, or use the nb.js CLI in this repo. - Gemini -> point me at a Nano Banana MCP or the Google GenAI SDK. 3. Once a key works, generate my first PRODUCT MASTER (from a photo I give you, or a text prompt), then make one variation from it to prove consistency. Go one step at a time, and never print my API key.
This makes every fal model a native Claude tool — no code. The key is sent per request and never stored.
claude mcp add --transport http fal-ai https://mcp.fal.ai/mcp \ --header "Authorization: Bearer YOUR_FAL_KEY"
Before you make a single ad, lock one product image — ideally a multi-view master (front, three-quarter, label detail). This is the reference every downstream image inherits from. Lock the logo and label here, once.

The master. One product, three angles, one logo — generated once, then attached to everything that follows.
The nb.js CLI ships in the repo: dependency-free, reproducible, and it's what produced this guide. Install the skill, then:
node nb.js gen --model 2 --aspect 3:2 --out master.png \ --prompt "studio product reference sheet: three views of the SAME bottle, front / three-quarter / label detail"
node nb.js edit --model pro --ref master.png --aspect 4:5 --out poster.png \ --prompt "campaign poster, keep the product identical, headline exactly: \"SLOW BREW. FAST MORNINGS.\""

Text rendered in-image, product held on-brand by the attached master — a finished poster in a single generation.
Once the basics click, the depth is here: pick the right tier, stack multiple references, localize, and choose how you drive the models — a Claude skill, the CLI, or a native MCP server.
Attach the master to every model and the comparison measures rendering, not label invention. The headline finding: with a reference attached, all four tiers hold the same brand.


| Tier | Endpoint | Time | Price | Controls |
|---|---|---|---|---|
| Pro | fal-ai/nano-banana-pro | ~33s | $0.15/img | 1K/2K/4K · web-search grounding |
| 2 · value pick | fal-ai/nano-banana-2 | ~22s | $0.08/img | 0.5K–4K · thinking_level |
| Lite | google/nano-banana-lite | ~7s | $1.00/unit | none (fixed ~1K) |
The nano-banana-campaign skill teaches Claude the endpoints, the queue pattern, the master-first method, and the CLI — so it can drive the whole workflow on request.
cp -r skills/nano-banana-campaign ~/.claude/skills/ export FAL_KEY=… # the CLI reads it from the environment
| Option | Setup | Best for |
|---|---|---|
| Official fal MCPnative tools, no code | claude mcp add --transport http fal-ai https://mcp.fal.ai/mcp --header "Authorization: Bearer YOUR_FAL_KEY" | Conversational use. Key sent per request, never stored; pay only for runs. |
| The nb.js CLI | cp -r skills/nano-banana-campaign ~/.claude/skills/ | Scripted / batch runs, exact control, reproducibility. |
| Gemini direct | Key → GenAI SDK or a Nano Banana MCP. IDs: gemini-3-pro-image, gemini-3.1-flash-image | Bring your own Google key. No official Google MCP yet — vet community ones. |