Google's Nano Banana Pro (Gemini 3.0 Pro Image) is a next-generation text-to-image model capable of generating multiple high-quality images in a single run. Extremely low cost — only $0.07 per image. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
대기 중


$0.07실행당·~14 / $1

High-end beauty editorial photography. A graceful fashion model with flawless, dewy, glowing skin and gently pulled-back wet-look hair is sitting amidst the mossy, natural stone surface. Her elegant hand, with natural manicured nails, is gently dipping into the open clear glass jar of luxurious, rich white moisturizing cream. Dewy white orchid petals, green leaves, and splashing clear water droplets surround her and the product. Soft, natural diffused daylight illuminating her face and the creamy texture. Serene expression, eyes slightly closed in enjoyment. Organic, pure hydration concept. 8k details, shot on Hasselblad.

Architectural visualization, interior design photography. A spacious, high-end living room in a luxury penthouse with a Wabi-sabi and Japandi aesthetic. Floor-to-ceiling glass windows overlooking a foggy city skyline at sunrise. The room features a curved cream-colored bouclé sofa, a rough-hewn travertine coffee table, and a large indoor olive tree in a clay pot. The walls are textured micro-cement in warm beige tones. Soft, volumetric morning sunlight streams in, casting long, soft shadows across the floor. Minimalist, serene, photorealistic, Unreal Engine 5 render style, 8k resolution.

Commercial macro photography of a luxury jewelry piece. A platinum engagement ring with a massive, flawless cushion-cut blue sapphire surrounded by a halo of tiny diamonds. The ring is resting on a piece of jagged, black volcanic rock, creating a texture contrast between the smooth metal and rough stone. Sharp focus on the facets of the sapphire. Realistic light caustics and spectrum dispersion (rainbow sparkles) visible. Studio lighting with softbox reflections on the metal. 8k resolution, highly detailed, elegant atmosphere.

Commercial automotive photography. A sleek, silver electric hypercar (similar to Porsche Taycan concept) driving fast on the winding Pacific Coast Highway at sunset. Panning shot action, creating dramatic motion blur on the asphalt road and the ocean cliffs in the background. The car is in sharp focus. Golden hour light reflecting intensely off the polished metallic car body. Ocean spray hitting the rocks. Luxurious, energetic, cinematic color grading.

Dynamic commercial food photography. A chef tossing fresh ingredients in a smoking hot cast iron wok. Shrimp, bright red chili peppers, green basil leaves, and noodles are caught mid-air in a fiery toss. Flames (wok hei) licking the edges of the wok. Visible steam rising, backlit by warm light to highlight the vapor. Rich, vibrant colors, glistening oil textures. Shallow depth of field. Authentic, rustic kitchen setting. Mouth-watering, high speed capturing.
Nano Banana Pro Text-to-Image Multi (Gemini 3.0 Pro Image) is Google’s next-generation text-to-image model with true multi-image generation. One prompt can return several high-quality images in a single run, perfect for rapid exploration, A/B testing, and storyboard creation. On WaveSpeedAI, this multi-image endpoint is offered at a flat $0.07 per image, with industry-leading cost efficiency.
True multi-image generation
Use the num_images style control in the UI to generate multiple images from one prompt in a single request, instead of looping over separate calls.
First-class multi-image support on WaveSpeedAI WaveSpeedAI is the first platform to expose Nano Banana Pro with genuine multi-image batching, combined with streamlined UI controls for aspect ratio, format, and sync mode.
Powerful prompt understanding Handles detailed, editorial-style prompts with nuanced control over subject, composition, lighting, and mood.
Aspect ratio and format flexibility Supports common ratios like 1:1, 3:2, 4:5, 16:9, and 9:16, plus multiple output formats, so images are ready for feeds, ads, banners, and mobile stories.
Fast and affordable at scale Batched generation plus a flat per-image price makes it ideal for campaigns, design sprints, and large creative pipelines.
A/B testing ad creatives Produce multiple variations of a campaign visual, then pick the best-performing one.
Thumbnail and banner exploration Quickly generate several layout and color options for social posts, storefronts, and landing pages.
Storyboards and keyframes Create multiple frames from a shared prompt to sketch out sequences for video, animation, or presentations.
Brand style development Lock in a consistent stylistic direction while exploring slight changes in pose, background, or framing.
Concept art and moodboards Batch-generate different interpretations of a scene to speed up early-stage visual ideation.
num_images.Use Google Nano Banana Pro Text-to-Image Multi when:
Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/google/nano-banana-pro/text-to-image-multi with your input as JSON. The endpoint returns a prediction id. Start polling the result endpoint around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. On completed, read output values from data.outputs. Examples for Nano Banana Pro Text To Image Multi below.
set -euo pipefail
: "${WAVESPEED_API_KEY:?Set WAVESPEED_API_KEY}"
REQUEST_BODY=$(cat <<'JSON'
{
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"aspect_ratio": "3:2",
"num_images": 2,
"output_format": "png"
}
JSON
)
# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
-X POST "https://api.wavespeed.ai/api/v3/google/nano-banana-pro/text-to-image-multi" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $WAVESPEED_API_KEY" \
-d "$REQUEST_BODY")
TASK=$(printf '%s' "$SUBMIT_RESPONSE" | jq 'if has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "$TASK" | jq -r '.id')
if [ -z "$PREDICTION_ID" ] || [ "$PREDICTION_ID" = "null" ]; then
printf 'Submission response did not contain a prediction id
' >&2
exit 1
fi
RESULT_URL=$(printf '%s' "$TASK" | jq -r '.urls.get // empty')
if [ -z "$RESULT_URL" ]; then
RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/$PREDICTION_ID/result"
fi
# 2. Poll until the prediction finishes.
while true; do
RESPONSE=$(curl --silent --show-error --fail-with-body "$RESULT_URL" \
-H "Authorization: Bearer $WAVESPEED_API_KEY")
RESULT=$(printf '%s' "$RESPONSE" | jq 'if has("data") then .data else . end')
STATUS=$(printf '%s' "$RESULT" | jq -r '.status')
case "$STATUS" in
completed) printf '%s\n' "$RESULT" | jq '.outputs'; break ;;
failed|cancelled|timeout) printf '%s\n' "$RESULT" | jq . >&2; exit 1 ;;
created|processing) sleep 2 ;;
*) printf 'Unexpected status: %s
' "$STATUS" >&2; exit 1 ;;
esac
doneconst submitUrl = "https://api.wavespeed.ai/api/v3/google/nano-banana-pro/text-to-image-multi";
const apiKey = process.env.WAVESPEED_API_KEY;
if (!apiKey) throw new Error('Set WAVESPEED_API_KEY');
async function requestJson(url, options = {}) {
const response = await fetch(url, options);
if (!response.ok) throw new Error(await response.text());
return response.json();
}
// 1. Submit the prediction.
const body = await requestJson(submitUrl, {
method: "POST",
headers: {
"Authorization": `Bearer ${apiKey}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"aspect_ratio": "3:2",
"num_images": 2,
"output_format": "png"
}),
});
const task = body.data ?? body;
if (!task.id) throw new Error("Submission response did not contain a prediction id");
const resultUrl = task.urls?.get ||
`https://api.wavespeed.ai/api/v3/predictions/${task.id}/result`;
// 2. Poll until the prediction finishes.
while (true) {
const resultBody = await requestJson(resultUrl, {
headers: { "Authorization": `Bearer ${apiKey}` },
});
const result = resultBody.data ?? resultBody;
if (result.status === "completed") {
console.log(result.outputs);
break;
}
if (["failed", "cancelled", "timeout"].includes(result.status)) throw new Error(JSON.stringify(result));
if (!["created", "processing"].includes(result.status)) throw new Error("Unexpected status: " + result.status);
await new Promise(resolve => setTimeout(resolve, 2000));
}import json
import os
import time
from urllib.request import Request, urlopen
api_key = os.environ["WAVESPEED_API_KEY"]
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
payload = {
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"aspect_ratio": "3:2",
"num_images": 2,
"output_format": "png"
}
def request_json(url, data=None):
request = Request(url, data=data, headers=headers, method="POST" if data else "GET")
with urlopen(request) as response:
return json.load(response)
# 1. Submit the prediction.
body = request_json("https://api.wavespeed.ai/api/v3/google/nano-banana-pro/text-to-image-multi", json.dumps(payload).encode())
task = body.get("data", body)
if not task.get("id"):
raise RuntimeError("Submission response did not contain a prediction id")
result_url = task.get("urls", {}).get("get") or f"https://api.wavespeed.ai/api/v3/predictions/{task['id']}/result"
# 2. Poll until the prediction finishes.
while True:
result_body = request_json(result_url)
result = result_body.get("data", result_body)
status = result.get("status")
if status == "completed":
print(result.get("outputs", []))
break
if status in {"failed", "cancelled", "timeout"}:
raise RuntimeError(result)
if status not in {"created", "processing"}:
raise RuntimeError(f"Unexpected status: {status}")
time.sleep(2)Nano Banana Pro Text To Image Multi is a Google model for image generation, exposed as a REST API on WaveSpeedAI. Google's Nano Banana Pro (Gemini 3.0 Pro Image) is a next-generation text-to-image model capable of generating multiple high-quality images in a single run. Extremely low cost — only $0.07 per image. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing. You can call it programmatically or try it from the playground above.
POST your input parameters to the model's REST endpoint (shown in the API tab of this playground) with your WaveSpeedAI API key in the Authorization header. Submission returns a prediction ID. Poll the result endpoint starting around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. The playground generates production-oriented Python, JavaScript, and cURL examples with timeouts, transient-error handling, and safe GET retries. Full request/response shape is documented at https://wavespeed.ai/docs/docs-api/google/google-nano-banana-pro-text-to-image-multi.
Nano Banana Pro Text To Image Multi starts at $0.070 per run. That figure is the base price — the final charge scales with the parameters you set in the form (output size, length, count, references, or whatever knobs this model exposes), so a higher-quality or larger output costs more than a minimal one. The exact cost for your current input is shown live next to the Generate button before you submit, and the actual per-call charge is recorded on the prediction afterwards.
Key inputs: `prompt`, `aspect_ratio`, `enable_base64_output`, `enable_sync_mode`, `num_images`, `output_format`. The full JSON schema (types, defaults, allowed values) is rendered above the Generate button and mirrored in the API reference at https://wavespeed.ai/docs/docs-api/google/google-nano-banana-pro-text-to-image-multi.
Median end-to-end generation time on WaveSpeedAI is around 66 seconds per request, based on recent successful runs. Queue time varies with global demand; live status is visible in the prediction record.
Commercial usage rights depend on the model's license, set by its provider (Google). The license summary appears on the model card above; see WaveSpeedAI's Terms of Service for platform-level conditions.