1K
48
credits / image
= $0.048 USD / image
100 images ≈ $4.80 · 1,000 images ≈ $48.00
Official: $0.067−28%
- resolution
- 1K
High-efficiency image generation and editing with faster iteration, precise text, and 1K, 2K, or 4K delivery.
nano-banana-2New accounts start with $0.20 in free credits, about 4 images at the starting price.
Compare all Nano Banana API versionsNano Banana 2 is developed by Google. Wizzx provides API access to it and does not own the model. All trademarks belong to their respective owners.
Next: turn the image into a video with
Model Guide
High-efficiency image generation and editing with faster iteration, precise text, and 1K, 2K, or 4K delivery.
Nano Banana 2 is Google’s Gemini 3.1 Flash Image model. It combines the high-throughput direction of the Flash family with stronger reasoning, text rendering, and editing control, making it a practical production tier between the original Nano Banana and Nano Banana Pro.
| Core strength | Best fit |
|---|---|
| High-efficiency generation | Production workflows that need speed without staying at the base model’s output tier |
| 1K, 2K, and 4K delivery | Draft, web, and high-resolution assets from one model key |
| Text and layout handling | Social graphics, product cards, diagrams, and campaign variations |
| Reference-guided editing | Preserve people, objects, or visual direction while changing selected details |
Define the deliverable, subject, layout, exact text, palette, and output ratio. For edits, separate what must remain unchanged from the requested change. Use references with a single purpose each rather than adding images without a clear role.
The Playground supports text-to-image and image-to-image with up to 14 reference images, 1K / 2K / 4K resolution, and aspect ratios including 1:4, 4:1, 1:8, and 8:1. It defaults to 1K, automatic aspect ratio, and PNG. Use publicly accessible JPEG, PNG, or WebP references no larger than 10 MB each for channel compatibility.
Prices come from the live backend catalog and vary by resolution. Wizzx generates one image per request; 0.5K output and Google Search grounding are not exposed. The backend prompt limit is 20,000 UTF-8 bytes.
Backend pricing
Model identity, billing unit and every price tier below are read from the backend catalog.
48
credits / image
= $0.048 USD / image
100 images ≈ $4.80 · 1,000 images ≈ $48.00
Official: $0.067−28%
72
credits / image
= $0.072 USD / image
100 images ≈ $7.20 · 1,000 images ≈ $72.00
Official: $0.101−29%
108
credits / image
= $0.108 USD / image
100 images ≈ $10.80 · 1,000 images ≈ $108.00
Official: $0.151−28%
| Tier | Official from | Wizzx | Savings |
|---|---|---|---|
| 1K | $0.067 | $0.048 | −28% |
| 2K | $0.101 | $0.072 | −29% |
| 4K | $0.151 | $0.108 | −28% |
1 credit = $0.001 USD. The final deduction returned by the API is authoritative.
Back to all modelsEvery request is asynchronous: submit the task, keep the task ID, then poll for the result. The body below uses the model's default settings.
Sign in and create a key in the dashboard. Set WIZZX_API_KEY in your server environment; never expose it in browser code.
Send a POST request to the model endpoint. A successful submission returns data.task_id; keep that ID before polling. Submission is not generation completion.
Replace YOUR_TASK_ID with the returned ID and query /api/v1/task/status. Wait for SUCCEEDED and read the output URLs. Stop on FAILED or REVIEW_REQUIRED; do not automatically resubmit an uncertain task.
curl -X POST \
https://api.wizzx.ai/api/v1/task/submit/nano-banana-2 \
-H "Authorization: Bearer $WIZZX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"aspect_ratio": "auto",
"resolution": "1K",
"output_format": "png",
"prompt": "A ceramic coffee cup on a wooden table, soft morning light, product photography"
}'const response = await fetch("https://api.wizzx.ai/api/v1/task/submit/nano-banana-2", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.WIZZX_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"aspect_ratio": "auto",
"resolution": "1K",
"output_format": "png",
"prompt": "A ceramic coffee cup on a wooden table, soft morning light, product photography"
}),
});
const payload = await response.json();
const task = payload.data ?? payload;
const taskId = task.task_id;import os
import requests
response = requests.post(
"https://api.wizzx.ai/api/v1/task/submit/nano-banana-2",
headers={
"Authorization": f"Bearer {os.environ['WIZZX_API_KEY']}",
},
json={
"aspect_ratio": "auto",
"resolution": "1K",
"output_format": "png",
"prompt": "A ceramic coffee cup on a wooden table, soft morning light, product photography"
},
)
payload = response.json()
task = payload.get("data", payload)
task_id = task["task_id"]curl -X POST \
https://api.wizzx.ai/api/v1/task/status \
-H "Authorization: Bearer $WIZZX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"task_id": "YOUR_TASK_ID"
}'const response = await fetch("https://api.wizzx.ai/api/v1/task/status", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.WIZZX_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ task_id: "YOUR_TASK_ID" }),
});
const payload = await response.json();
const task = payload.data ?? payload;import os
import requests
response = requests.post(
"https://api.wizzx.ai/api/v1/task/status",
headers={
"Authorization": f"Bearer {os.environ['WIZZX_API_KEY']}",
},
json={"task_id": "YOUR_TASK_ID"},
)
payload = response.json()
task = payload.get("data", payload)The fields this endpoint accepts on Wizzx, read from the same schema as the Playground form.
| Parameter | Type | Default | Allowed values | Description |
|---|---|---|---|---|
promptPromptrequired | string | — | — | — |
image_urlsReference Images | url[] ≤ 14 | — | — | Up to 14 reference images (JPEG, PNG, or WebP). |
aspect_ratioAspect Ratio | string | auto | auto · 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 | — |
resolutionResolution | string | 1K | 1K · 2K · 4K | — |
output_formatOutput Format | string | png | png · jpg | — |
Wizzx API
New accounts get $0.20 in free credits. Pay as you go with no subscription, and failed tasks are refunded.