Nano Banana Pro
Google's most careful model: complex scenes, posters and infographics with maximum detail.
Good for: posters, infographics, complex and detailed scenes
How to get a better result
"A ginger cat on a windowsill, rain outside, watercolor".
"Soft sunset", "neon light", "cozy, warm tones".
Refine the description and press "Another version" — every result is new.
Pass this model in the request nano-banana-pro
1. Create a task POST /api/v1/jobs/createTask
curl -X POST https://mixmedia.tech/api/v1/jobs/createTask \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order-123" \
-d '{
"model": "nano-banana-pro",
"callBackUrl": "https://your-app.example/callback",
"input": {
"prompt": "Infographic: how the solar system works, with labels",
"image_input": [],
"aspect_ratio": "auto",
"resolution": "1K",
"output_format": "png"
}
}'import time, requests
API = "https://mixmedia.tech/api/v1"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}
task = requests.post(f"{API}/jobs/createTask", headers=HEADERS, json={
"model": "nano-banana-pro",
"callBackUrl": "https://your-app.example/callback",
"input": {
"prompt": "Infographic: how the solar system works, with labels",
"image_input": [],
"aspect_ratio": "auto",
"resolution": "1K",
"output_format": "png"
}
}).json()
task_id = task["data"]["taskId"]
while True:
info = requests.get(f"{API}/jobs/recordInfo", headers=HEADERS, params={"taskId": task_id}).json()["data"]
if info["state"] in ("success", "fail"):
break
time.sleep(4)
print(info["state"], info.get("resultJson") or info.get("failMsg"))const API = "https://mixmedia.tech/api/v1";
const headers = { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" };
const { data } = await fetch(`${API}/jobs/createTask`, {
method: "POST", headers,
body: JSON.stringify({
"model": "nano-banana-pro",
"callBackUrl": "https://your-app.example/callback",
"input": {
"prompt": "Infographic: how the solar system works, with labels",
"image_input": [],
"aspect_ratio": "auto",
"resolution": "1K",
"output_format": "png"
}
}),
}).then((r) => r.json());
let info;
do {
await new Promise((r) => setTimeout(r, 4000));
info = (await fetch(`${API}/jobs/recordInfo?taskId=${data.taskId}`, { headers }).then((r) => r.json())).data;
} while (!["success", "fail"].includes(info.state));
console.log(info.state, info.resultJson ?? info.failMsg);Response: data.taskId. callBackUrl and Idempotency-Key are optional.
2. Status and result GET /api/v1/jobs/recordInfo
curl "https://mixmedia.tech/api/v1/jobs/recordInfo?taskId=TASK_ID" \
-H "Authorization: Bearer YOUR_API_KEY"
data.state: waiting, queuing, generating, success, fail. On success data.resultJson is a JSON string with resultUrls.
3. Upload a file POST /api/v1/files/upload
curl -X POST https://mixmedia.tech/api/v1/files/upload \
-H "Authorization: Bearer YOUR_API_KEY" -F "file=@photo.jpg"
The response has data.url. Pass that URL in the file field. Any public https URL works too.
About the model
Nano Banana Pro is Google's most capable image model for complex scenes, infographics, posters and photo-realistic pictures. You can add up to 8 of your photos.
It works through every detail, so it takes a little longer — usually 2–3 minutes.


