Nano Banana Generation
Image
by Henri Huotari · Sep 18, 2025
Generate Images with Google Nano Banana
This file couldn't be loaded. The link may have expired.
Run it yourself
Set IMMERSIVE_API_KEY to an API key from your account. Create a free account to get one.
curl -X POST 'https://ai.im.inc/api/v1/images/generate' \
-H "Authorization: Bearer $IMMERSIVE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "Futuristic cinematic artwork with deep dark tones and glowing neon accents, abstract digital waves flowing across a smooth gradient background. Subtle light streaks, holographic textures, and a modern high-tech atmosphere. Minimalistic composition with a sense of depth and motion, featuring the text “IMMERSIVE HENRI” in bold, sleek, futuristic typography at the center.",
"generator": "nano_banana",
"output_format": "png"
}'
# Set JOB_ID to the response's "id", then poll every few seconds until the job has finished:
curl "https://ai.im.inc/api/v1/images/$JOB_ID" \
-H "Authorization: Bearer $IMMERSIVE_API_KEY"
# The finished response has the result at output.generated_image_url.
const headers = { Authorization: `Bearer ${process.env.IMMERSIVE_API_KEY}` };
const response = await fetch("https://ai.im.inc/api/v1/images/generate", {
method: "POST",
headers: { ...headers, "Content-Type": "application/json" },
body: JSON.stringify({
"prompt": "Futuristic cinematic artwork with deep dark tones and glowing neon accents, abstract digital waves flowing across a smooth gradient background. Subtle light streaks, holographic textures, and a modern high-tech atmosphere. Minimalistic composition with a sense of depth and motion, featuring the text “IMMERSIVE HENRI” in bold, sleek, futuristic typography at the center.",
"generator": "nano_banana",
"output_format": "png"
}),
});
const job = await response.json();
// Poll every few seconds while the job is still running.
const running = ["pending", "queued", "submitted", "starting", "processing", "running", "streaming", "in_queue", "in_progress"];
let result;
do {
await new Promise((resolve) => setTimeout(resolve, 5000));
result = await (await fetch(`https://ai.im.inc/api/v1/images/${job.id}`, { headers })).json();
} while (running.includes(String(result.status).toLowerCase()));
console.log(result.output.generated_image_url);
import os
import time
import requests
headers = {"Authorization": f"Bearer {os.environ['IMMERSIVE_API_KEY']}"}
job = requests.post(
"https://ai.im.inc/api/v1/images/generate",
headers=headers,
json={
"prompt": "Futuristic cinematic artwork with deep dark tones and glowing neon accents, abstract digital waves flowing across a smooth gradient background. Subtle light streaks, holographic textures, and a modern high-tech atmosphere. Minimalistic composition with a sense of depth and motion, featuring the text “IMMERSIVE HENRI” in bold, sleek, futuristic typography at the center.",
"generator": "nano_banana",
"output_format": "png",
},
timeout=300,
).json()
# Poll every few seconds while the job is still running.
running = {"pending", "queued", "submitted", "starting", "processing", "running", "streaming", "in_queue", "in_progress"}
while True:
time.sleep(5)
result = requests.get(f"https://ai.im.inc/api/v1/images/{job['id']}", headers=headers, timeout=60).json()
if str(result.get("status", "")).lower() not in running:
break
print(result["output"]["generated_image_url"])
{
"id": "rf85p4xg4xrmc0cs9kd8yqrb20",
"meta": "{\"input\": {\"prompt\": \"Futuristic cinematic artwork with deep dark tones and glowing neon accents, abstract digital waves flowing across a smooth gradient background. Subtle light streaks, holographic textures, and a modern high-tech atmosphere. Minimalistic composition with a sense of depth and motion, featuring the text “IMMERSIVE HENRI” in bold, sleek, futuristic typography at the center.\", \"image_input\": [], \"output_format\": \"png\"}}",
"seed": -1,
"error": null,
"output": {
"prompt": "Futuristic cinematic artwork with deep dark tones and glowing neon accents, abstract digital waves flowing across a smooth gradient background. Subtle light streaks, holographic textures, and a modern high-tech atmosphere. Minimalistic composition with a sense of depth and motion, featuring the text “IMMERSIVE HENRI” in bold, sleek, futuristic typography at the center.",
"generated_image_url": "https://s3.huotari.ai/images/a7Lr9I0qhR8xQWKkR7qDAg0l3SFXWmvprnxm0Ikq.png",
"all_generated_image_urls": []
},
"status": "succeeded",
"num_outputs": 0,
"nsfw_detected": false,
"generator_used": "nano_banana"
}
Your browser blocked the clipboard. Select the text and copy it by hand.
How the job runs
- POST returns the job's id and status right away.
- Poll GET /api/v1/images/{id} every few seconds while the job is running.
- When status is succeeded, download output.generated_image_url. Failed jobs are refunded automatically.
- Endpoint
- POST /api/v1/images/generate
- Output
- Image · PNG