Nano Banana Pro is Google's flagship image-generation and editing model, released 2025-11, built on Gemini 3 Pro. It extends the original Nano Banana with stronger multimodal reasoning, real-world grounding, and high-fidelity synthesis, including text rendering, multi-image blending, and identity preservation across up to five subjects. The model supports fine-grained editing and 4K output, and suits design, product visualization, and storyboarding workflows.
Channels
Every channel serves the same model, but they differ in price and stability. On each API key in the Platform, you pick a primary and a backup channel per vendor, and each billing line shows which channel served the request.
Context pricing
This model’s price depends on how much input context a request carries. The headline price is the cheapest band, and a longer prompt moves the whole request into a higher one.
Capabilities
Parameters
Request parameters this model accepts through the API.
Quick start
POST /v1beta/models/{model}:generateContentcurl https://api.mirapi.ai/v1beta/models/gemini-3-pro-image-preview:generateContent \ -H "x-goog-api-key: $MIRAPI_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "contents": [{"parts": [{"text": "A red bicycle leaning on a white wall"}]}], "generationConfig": { "responseModalities": ["TEXT", "IMAGE"], "imageConfig": {"aspectRatio": "1:1"} } }' # the image is base64 in candidates[0].content.parts[].inlineData.data
import os, base64, requests url = "https://api.mirapi.ai/v1beta/models/gemini-3-pro-image-preview:generateContent" resp = requests.post( url, headers={"x-goog-api-key": os.environ["MIRAPI_API_KEY"]}, # changed json={ "contents": [{"parts": [{"text": "A red bicycle leaning on a white wall"}]}], "generationConfig": { "responseModalities": ["TEXT", "IMAGE"], "imageConfig": {"aspectRatio": "1:1"}, }, }, ).json() for part in resp["candidates"][0]["content"]["parts"]: if "inlineData" in part: open("image.png", "wb").write(base64.b64decode(part["inlineData"]["data"]))
import fs from "node:fs"; const url = "https://api.mirapi.ai/v1beta/models/gemini-3-pro-image-preview:generateContent"; const res = await fetch(url, { method: "POST", headers: { "x-goog-api-key": process.env.MIRAPI_API_KEY!, "Content-Type": "application/json" }, // changed body: JSON.stringify({ contents: [{ parts: [{ text: "A red bicycle leaning on a white wall" }] }], generationConfig: { responseModalities: ["TEXT", "IMAGE"], imageConfig: { aspectRatio: "1:1" }, }, }), }); const { candidates } = await res.json(); const img = candidates[0].content.parts.find((p) => p.inlineData); fs.writeFileSync("image.png", Buffer.from(img.inlineData.data, "base64"));
Links
1M free tokens to start, no card required. It’s OpenAI-compatible, so you only change the base URL.