Nano Banana 2
nano-banana-2
Google's fast image model for scaled-up image generation, supporting 512px up to native 4K and multiple aspect ratios, generating with real-time information from Search, suitable for high-frequency creation
Try nano-banana-2
Input
Showcases
View all showcasesOutput
imagePricing
nano-banana-2 per image
| Specifications | Unit Price |
|---|---|
| 1K | $0.036 |
| 2K | $0.057 |
| 4K | $0.086 |
Overview
nano-banana-2 is an image generation model from Google that supports both text-to-image and image-reference editing. It lets developers generate an image at a chosen aspect ratio and resolution in a single call, using a prompt of up to 20,000 characters together with up to 14 reference images. It is suited to teams that need to produce marketing assets in bulk, rapidly iterate on creative drafts, or enforce stylistic consistency with reference images, and it can be called through the unified HiAPI.ai interface.
Key Highlights
- Up to 14 reference images per request——The image-to-image workflow can accept up to 14 reference images in a single call, using multiple images to constrain characters, style, or layout, which reduces the stitching cost of generating in batches.
- Three resolution tiers, direct output——Output resolution can be selected among 1K, 2K, and 4K, so high-resolution images need no additional upscaling step.
- 15 aspect ratio options——From 1:1 square to 8:1 ultra-wide and 9:16 portrait, all can be specified directly in the parameters, or left to auto for adaptive selection.
Capabilities
Text-to-image and reference-image editing: The prompt is the primary input, and reference images can optionally be attached for transformation or style transfer; the same interface covers both generation from scratch and rewriting based on source material.
Parameterized control of output specifications: Resolution, aspect ratio, and output format are all explicitly declared in the request parameters, and the response returns jpg or png, making it easy to feed results directly into downstream asset pipelines after integration.
Long prompt capacity: The prompt field accepts up to 20,000 characters, allowing fairly complete scene descriptions, style constraints, and composition instructions without heavy trimming for length.
Unified interface access: Image results are obtained through the unified calling method of HiAPI.ai, so developers do not need to maintain separate upstream integration logic for a single image capability.
Use Cases
- Batch image production for marketing teams——Generate promotional images at platform-specific sizes from copy prompts, outputting at 1:1, 16:9, and 9:16 for direct use in social media and ad creatives.
- Multi-image style consistency exploration for designers——Upload multiple reference images to constrain characters or visual style and produce a stylistically consistent series for concept pitches and proposal iterations.
- 4K output for print and display materials——Generate images at 4K resolution and a specified aspect ratio for posters, display boards, and other materials with clear requirements for sharpness and aspect ratio.
Limitations and Selection Advice
Capability boundaries follow the current parameters: each request outputs only one image, with no controls for batch count, generation duration, or video-like output, and no reproducible parameters such as seeds are exposed; the prompt is required, and generation is impossible without one. Reference images are passed in via URL, up to 14. If a task requires strict pixel-level editing, reproducible random control, or batch multi-image output, it is advisable to validate results on a small number of samples first before deciding whether to include it in the production workflow.
Frequently asked questions
View all FAQs →-
What is Nano Banana 2 best for?
Create or remix images with optional references, broad aspect ratios, and higher-resolution output.
-
Does Nano Banana 2 accept reference images?
Yes, up to 14 optional references. Omit them for text-only generation.
-
Which output settings are supported?
The page exposes 1K, 2K, 4K and 1:1, 1:4, 1:8, 2:3, 3:2, 3:4, 4:1, 4:3, 4:5, 5:4, 8:1, 9:16, 16:9, 21:9, auto; use the Playground contract for the final available set.
-
How is Nano Banana 2 billed?
Billing is per successful generated image. Resolution or quality differences, when present, are reflected by the live page price.
Create a generation task
https://api.hiapi.ai/v1/tasks Headers
AuthorizationstringRequiredAccount API key. Required on every request. Example: Bearer YOUR_HIAPI_API_KEY. Get your API key
Content-TypestringOptionalThe request body is always parsed as JSON; when sent, only application/json (optionally with charset) is accepted — any other value returns 415. Example: application/json.
Idempotency-KeystringOptionalIdempotency key, up to 255 bytes. Retries with the same key from the same account create the task only once; replays return the original taskId.
On network timeouts or client retries, the same key creates the task only once — no double charges (scope: the API key's account). Use a business-unique identifier as the key (e.g. "order-42"); replays return the original taskId, and keys expire 24 hours after the first request. See the Unified Async API overview for the full scenario matrix.
Body
modelstringRequiredCurrent fixed value: nano-banana-2
routestringOptionalCurrent fixed value: default
inputobjectRequired
Business parameters for nano-banana-2 and route default — see the parameter table below.
promptstringRequiredmaxLength 20000Text prompt describing the image to generate, providing the content basis for image generation.
resolutionstringOptionalDefault: "1K"Controls the resolution of the generated image, provided as a string, default 1K.
1K2K4Kimage_inputarrayOptionalmaxItems 14Optional array of input image URLs, used for image transformation or as reference images, supporting up to 14 images.
Array [ string ]
aspect_ratiostringOptionalDefault: "auto"Controls the aspect ratio of the generated image, provided as a string, default auto.
1:11:41:82:33:23:44:14:3Show all (7)
4:55:48:19:1616:921:9autooutput_formatstringOptionalDefault: "png"Controls the format of the output image, provided as a string, default png.
jpgpngcallbackobjectOptional
Terminal-state notification config. When omitted, no callback is delivered — poll the task yourself. See the callback note below.
Provide callback.url when creating a task and HiAPI POSTs to your service once the task reaches a terminal state — no polling needed. The callback payload mirrors the task detail structure; signature verification, delivery retries and idempotency are documented on the Unified Async API overview page.
urlstringRequiredRequired when callback is present. A POST is sent to this URL once the task reaches a terminal state; must be a valid http(s) URL.
whenstringOptionalDefault: "final"Only final is supported today — notified on both success and fail.
finalstoragestringOptionalDefault: "temp"Artifact storage tier: temp (default, retained about 7 days) or persistent (long-term, billed by size). Insufficient balance or exceeding the storage cap silently downgrades to temp; the effective tier is shown in the task detail response.
temppersistentRequest examples
# Submit an async task; returns a taskId immediately (no waiting for generation)
curl -X POST "https://api.hiapi.ai/v1/tasks" \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana-2",
"input": {
"prompt": "…",
"resolution": "1K",
"aspect_ratio": "auto",
"output_format": "png"
}
}' const res = await fetch("https://api.hiapi.ai/v1/tasks", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.HIAPI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "nano-banana-2",
input: {
"prompt": "…",
"resolution": "1K",
"aspect_ratio": "auto",
"output_format": "png"
}
}),
});
const task = await res.json();
// { code: 200, message: "success", data: { taskId } } import os, requests
res = requests.post(
"https://api.hiapi.ai/v1/tasks",
headers={"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"},
json={
"model": "nano-banana-2",
"input": {
"prompt": "…",
"resolution": "1K",
"aspect_ratio": "auto",
"output_format": "png"
}
},
)
print(res.json()) # { code, message, data: { taskId } } 200 OK
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR"
}
} 400 Bad Request
{
"code": 400,
"message": "invalid request",
"data": null,
"error_code": "INVALID_REQUEST"
} Get task detail
https://api.hiapi.ai/v1/tasks/:id Response fields
taskIdstringRequiredTask ID, always prefixed with tk-hiapi-.
modelstringRequiredResolved full model name. Tasks submitted with the route parameter return base@route (e.g. gpt-image-2/text-to-image@ext); otherwise identical to the name passed at creation.
routestringOptionalPresent only when the task was submitted with an explicit route parameter; echoes the submitted value.
statusstringRequiredTask status.
queued Queued, not started yet.
handling Being processed.
archiving Processing finished, artifacts being prepared.
success Terminal: completed, artifacts available (output returned).
fail Terminal: failed (error returned).
After submission, check status: success and fail are terminal, everything else is non-terminal. Poll every 1–3 seconds until terminal. On success, download artifacts from output[].url and transfer them before expireAt; pass storage: "persistent" at creation time when long-term retention is needed.
creatednumberRequiredTask creation time (Unix seconds).
completednumberRequiredUnix seconds when the task reached a terminal state; fixed to 0 while not terminal.
outputarrayOptional
Present only when status == success. Artifact list — always an array; a single task may return multiple types at once (e.g. video + first_frame).
Array [ object ]
Array items
urlstringRequiredArtifact URL, directly downloadable.
typestringRequiredCurrent possible values: video, image, audio, first_frame, last_frame, thumbnail; more may be added later.
expireAtnumberRequiredUnix seconds until which the artifact remains accessible; download or transfer before it expires.
errorobjectOptional
Present only when status == fail.
codestringRequiredBusiness error code.
messagestringRequiredError description.
Response examples
Success
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR",
"model": "happyhorse-1-0",
"status": "success",
"created": 1777282033,
"completed": 1777282099,
"output": [
{
"url": "https://cdn.hiapi.ai/tasks/.../video.mp4",
"type": "video",
"expireAt": 1777886899
}
]
}
} Processing (non-terminal)
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "archiving",
"created": 1777282033,
"completed": 0
}
} Failed
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "fail",
"created": 1777282033,
"completed": 1777282099,
"error": {
"code": "TASK_FAILED",
"message": "task failed"
}
}
} Articles
View all articles →Related Models
View all models →Same Type
-
FLUX.2 Klein 4B Black Forest Labs $0.0004 /image -
FLUX 1.1 Pro Black Forest Labs $0.050 /image -
FLUX.1 Kontext Max Black Forest Labs $0.071 /image -
Grok Imagine Quality xAI $0.070 /image -
Wan 2.7 Image Alibaba $0.035 /image -
FLUX 3 Image Black Forest Labs $0.041 /image -
Ideogram V4 Ideogram $0.050 /image -
Google Virtual Try-On Google $0.107 /image -
BRIA Product Shot Bria $0.058 /image -
Nano Banana Google $0.021 /image -
Seedream 4.5 ByteDance $0.045 /image -
Nano Banana Pro Google $0.057 /image
Same Provider
-
Veo 3.1 Lite Google $0.060 /second -
Lyria 3 Pro Google $0.140 /song -
Gemini Omni Google -- -
Nano Banana 2 Lite Google $0.033 /image -
Gemini Omni 1.1 Flash Google $0.450 /video -
Lyria 3.5 Google $0.090 /song -
Google Virtual Try-On Google $0.107 /image -
Imagen 4 Google $0.030 /image -
Veo 3.1 Fast Google $0.170 /second -
Nano Banana Pro Google $0.057 /image -
Nano Banana Google $0.021 /image -
Gemini 3.1 Flash TTS Google --














