Comparison

Nano Banana Pro vs Nano Banana 2: which image API to use

Google now has a whole family of Nano Banana image models, and the two most people compare are Nano Banana Pro and Nano Banana 2. This guide sets them side by side on price, sizes, shapes and inputs, and shows how to call either one with the same request.

The short answer

Nano Banana Pro and Nano Banana 2 are both Google image models that make pictures from a prompt and edit pictures you send. On Revana they take the same request format, so switching between them is a one-word change to the model field. The practical differences are price per image, the sizes and shapes each one offers, and how many routes stand behind it:

  • Pick Nano Banana Pro when the picture carries text that has to be right (packaging, posters, menus, slides) or when you combine many reference images into one scene. It is Google's top image model and its price is flat at every size: $0.04 per image from 1K to 4K.
  • Pick Nano Banana 2 for volume work, extreme banner shapes or whenever you want a cheaper image at 1K or 2K: $0.03 per image at 1K and 2K, $0.04 at 4K.
  • Pick Nano Banana 2 Lite for thumbnails, drafts and test runs at 1K, at $0.02 per image.

Neither of these is a quality ranking. We do not publish scores, and the honest test is to run ten of your own prompts through both models and compare the results side by side. At these prices that test costs well under a dollar.

Nano Banana Pro vs Nano Banana 2, side by side

Everything in this table comes from the live catalogue (models.json), which is the same file the API checks requests against.

Nano Banana Pro, Nano Banana 2, 2.1 and 2 Lite compared
Nano Banana ProNano Banana 2Nano Banana 2.1Nano Banana 2 Lite
Model idnano-banana-pronano-banana-2nano-banana-2.1nano-banana-2-lite
Taskstext to image, image editingtext to image, image editingtext to image, image editingtext to image, image editing
Sizes1K, 2K, 4K0.5K, 1K, 2K, 4K1K, 2K, 4K1K
Aspect ratios10 shapes, 21:9 to 9:1614 shapes, including 1:4, 4:1, 1:8 and 8:114 shapes, including 1:4, 4:1, 1:8 and 8:110 shapes, 21:9 to 9:16
Reference imagesup to 14up to 14up to 14up to 14
Price from$0.04 / image$0.03 / image$0.03 / image$0.02 / image
Routesone routetwo routesthree routestwo routes

Two things stand out. First, all four models accept up to 14 reference images, so multi-image composition is not a reason on its own to pay for Pro. Second, Nano Banana 2 and 2.1 support very tall and very wide shapes (1:8 and 8:1) that Pro does not, which matters for web banners, vertical story strips and long infographics.

Price per image at every size (October 2026)

Images are billed once per picture. The table shows the listed price and what a batch of 100 and 1,000 images costs at each size.

Nano Banana price per image and per batch
ModelSizePer image100 images1,000 images
Nano Banana Pro1K$0.04$4.00$40.00
Nano Banana Pro2K$0.04$4.00$40.00
Nano Banana Pro4K$0.04$4.00$40.00
Nano Banana 21K$0.03$3.00$30.00
Nano Banana 22K$0.03$3.00$30.00
Nano Banana 24K$0.04$4.00$40.00
Nano Banana 2.12K$0.03$3.00$30.00
Nano Banana 2 Lite1K$0.02$2.00$20.00

At 4K the gap closes: Nano Banana Pro and Nano Banana 2 both list $0.04. If you print, crop heavily or upscale for retail screens, Pro costs no more than Nano Banana 2 at that size. For the same prices elsewhere, see the Nano Banana Pro price comparison.

Which one to use for common jobs

Which Nano Banana model to use by job
JobStart withWhy
Product shots with legible labelsNano Banana ProText accuracy is what Pro is known for, and the price is flat up to 4K.
Social posts and ad variants in bulkNano Banana 2Lower price at 1K and 2K; same request format, so you can move up to Pro for the winners.
Wide banners and tall stripsNano Banana 2 or 2.1Only these two offer 1:4, 4:1, 1:8 and 8:1.
Thumbnails, drafts and prompt testingNano Banana 2 LiteThe lowest price in the family, 1K only.
Busy production pipelineNano Banana 2.1The most routes in the family, so a busy route is less likely to slow you down.

A sensible pattern is to draft with Nano Banana 2 or Lite, pick the images you like, and then run those prompts again on Nano Banana Pro at 2K or 4K. Because the request body is identical apart from model, the switch is trivial in code.

Call Nano Banana Pro or Nano Banana 2

Send POST /v1/generations with a model id and an input. The response is a 202 with a generation id; poll it until the status is succeeded or failed. Images usually finish in seconds. This 2K Nano Banana Pro image costs $0.04; change the model to nano-banana-2 and the same request costs $0.03.

cURL
export REVANA_API_KEY="sr_live_..."

# 1. Submit the job (returns 202 with the generation id)
curl https://api.revana.si/v1/generations \
  -H "Authorization: Bearer $REVANA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "nano-banana-pro",
    "input": {
      "prompt": "A matte black coffee bag on a light oak counter, morning light from the left. The label reads NORTHLINE ROASTERS in white capitals, with SINGLE ORIGIN ETHIOPIA in smaller type below.",
      "resolution": "2K",
      "aspect_ratio": "4:5"
    },
    "max_cost_usd": 0.1
  }'

# 2. Poll with the id from step 1 until status is "succeeded" or "failed"
curl https://api.revana.si/v1/generations/gen_01JC2V8K5T \
  -H "Authorization: Bearer $REVANA_API_KEY"
Python
import os
import time

import requests

API = "https://api.revana.si/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['REVANA_API_KEY']}"}

resp = requests.post(f"{API}/generations", headers=HEADERS, json={
    "model": "nano-banana-pro",
    "input": {
        "prompt": "A matte black coffee bag on a light oak counter, morning light from the left. The label reads NORTHLINE ROASTERS in white capitals, with SINGLE ORIGIN ETHIOPIA in smaller type below.",
        "resolution": "2K",
        "aspect_ratio": "4:5",
    },
    "max_cost_usd": 0.1,
})
resp.raise_for_status()
job = resp.json()

while job["status"] in ("queued", "running"):
    time.sleep(5)
    job = requests.get(f"{API}/generations/{job['id']}", headers=HEADERS).json()

if job["status"] == "succeeded":
    print(job["output"]["urls"], job["cost_usd"])
else:
    print("Failed:", job["error"])
Node.js
// Node 18 or later. Save as generate.mjs and run: node generate.mjs
const API = "https://api.revana.si/v1";
const headers = {
  Authorization: `Bearer ${process.env.REVANA_API_KEY}`,
  "Content-Type": "application/json",
};

const res = await fetch(`${API}/generations`, {
  method: "POST",
  headers,
  body: JSON.stringify({
    model: "nano-banana-pro",
    input: {
      prompt: "A matte black coffee bag on a light oak counter, morning light from the left. The label reads NORTHLINE ROASTERS in white capitals, with SINGLE ORIGIN ETHIOPIA in smaller type below.",
      resolution: "2K",
      aspect_ratio: "4:5",
    },
    max_cost_usd: 0.1,
  }),
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
let job = await res.json();

while (job.status === "queued" || job.status === "running") {
  await new Promise((r) => setTimeout(r, 5000));
  job = await (await fetch(`${API}/generations/${job.id}`, { headers })).json();
}

if (job.status === "succeeded") console.log(job.output.urls, job.cost_usd);
else console.error("Failed:", job.error);

A finished job returns the image URL and the exact charge:

Response
{
  "id": "gen_01JC2V8K5T",
  "model": "nano-banana-pro",
  "status": "succeeded",
  "output": {
    "urls": [
      "https://cdn.revana.si/g/gen_01JC2V8K5T/0.png"
    ]
  },
  "cost_usd": 0.04,
  "attempts": 1,
  "error": null
}

Edit with reference images

To edit, or to combine several pictures into one, send them in image_urls (up to 14 for every model in this family) and describe the result you want. Use your own hosted files or upload them first with POST /v1/uploads. This wide banner on Nano Banana 2 costs $0.03:

Request body
{
  "model": "nano-banana-2",
  "input": {
    "prompt": "Place the sneaker from the first image on the rock from the second image, at sunset, with the sea behind. Keep the sneaker exactly as it is.",
    "image_urls": [
      "https://example.com/sneaker.png",
      "https://example.com/rock.jpg"
    ],
    "resolution": "2K",
    "aspect_ratio": "4:1"
  },
  "max_cost_usd": 0.1
}

max_cost_usd is a ceiling, not a charge. Routes priced above it are skipped, and you pay only the listed price of the job that succeeds. A failed image costs nothing.

See every image model on the models page, the full request reference in the docs, credit packs on the pricing page, or get an API key and run the sample above.

Frequently asked questions

Is Nano Banana Pro better than Nano Banana 2?

They are aimed at different jobs. Nano Banana Pro is Google's top image model and is known for accurate text and precise edits; Nano Banana 2 is cheaper at 1K and 2K and offers extra shapes such as 1:8 and 8:1. We do not publish quality scores, so test both with your own prompts.

How much does Nano Banana Pro cost compared with Nano Banana 2?

In October 2026, Nano Banana Pro costs $0.04 per image at every size. Nano Banana 2 costs $0.03 at 1K, $0.03 at 2K and $0.04 at 4K.

Can both models edit images?

Yes. Send the pictures in image_urls (up to 14) with a prompt that describes the result. Both also make images from a prompt alone.

Which Nano Banana model supports 4K?

Nano Banana Pro, Nano Banana 2 and Nano Banana 2.1 all go up to 4K. Nano Banana 2 Lite makes 1K images only.

What is Nano Banana 2 Lite for?

Drafts, thumbnails and prompt testing. It makes 1K images for $0.02 each, the lowest price in the family.

Do I pay for a failed image?

No. The price is held when you submit and released if the job fails. You are charged only for an image that is delivered.

Try every Nano Banana model with one key

One API key for Nano Banana Pro, Nano Banana 2 and every other image and video model. Prepaid credit from $10, charged only for images that are delivered.