# Nano Banana Synthesize low-cost and resource-friendly images in seconds for mobile apps and rapid prototyping processes using the nano-banana model. ## API Information - **Model Slug:** nano-banana - **Branded URL:** https://www.eachlabs.ai/google/nano-banana/nano-banana - **Provider:** Google - **Category:** Text to Image - **Output Type:** array - **Status:** active - **Version:** 0.0.1 - **Base Cost:** Charge $0.04 per image generation - **Estimated Processing Time:** 5 seconds - **Last Updated:** 2026-05-25 - **Interactive Demo:** https://www.eachlabs.ai/ai-models/nano-banana ## Pricing - **Charge Type:** dynamic - **Estimated Price (default example):** $0.0400 - **Pricing Details:** Charge $0.04 per image generation ### Pricing Rules | Rule | Condition | Price | | --- | --- | --- | | multiply_numeric | num_images (per unit) | $0.0400 | ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | prompt | string | Yes | - | - | - | | num_images | integer | Yes | 1 | 1–4 | - | | aspect_ratio | string | No | 1:1 | 21:9,1:1,4:3,3:2,2:3,5:4,4:5,3:4,16:9,9:16 | Output format for the images | | output_format | string | No | png | jpeg,png | Output format for the images | | limit_generations | boolean | No | true | - | Experimental parameter to limit the number of generations from each round of prompting to 1. Set to True to to disregard any instructions in the prompt regarding the number of images to generate. | ## Example Request ```bash curl -X POST https://api.eachlabs.ai/v1/prediction/ \ -H "X-API-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "nano-banana", "input": { "num_images": "1", "prompt": "a cool banana with sunglesses" } }' ``` ## Output Schema Response returned by `GET /v1/prediction/{id}` when the job completes: ```json { "status": "success", "predictionID": "string", "output": "array", "metrics": { "predict_time": "number (seconds)" } } ``` ## Polling ```bash curl https://api.eachlabs.ai/v1/prediction/{PREDICTION_ID} \ -H "X-API-Key: YOUR_API_KEY" ``` | Status | Meaning | |--------|---------| | `processing` | Still running — poll again | | `success` | Done — read `output` | | `error` | Failed — read `message` / `details` | ## Webhook (alternative to polling) Pass `"webhook_url": "https://your.host/path"` in the create request. Eachlabs POSTs this payload when the job ends: ```json { "exec_id": "prediction-uuid", "status": "succeeded", "output": "https://...", "error": "" } ``` `status` is `"succeeded"` or `"failed"`. `exec_id` equals the `predictionID` from create. Return 2xx within 30 seconds. ## Errors Error body: `{ "status": "error", "message": "...", "details": "..." }` | Code | Meaning | |------|---------| | `400` | Invalid input | | `401` | Missing / invalid `X-API-Key` | | `404` | Unknown model or prediction id | | `429` | Rate limit — 100 creates / min, 10 concurrent per key | | `5xx` | Retry with backoff | ## Overview **nano-banana — Text-to-Image AI Model** Developed by Google as part of the **nano-banana** family, nano-banana is a text-to-image AI model powered by the Gemini 2.5 Flash Image architecture, designed for rapid, low-latency image generation ideal for mobile apps and prototyping workflows. This **Google text-to-image** solution excels in producing high-quality visuals in seconds, supporting resolutions up to 1K for efficient, resource-friendly outputs that prioritize speed without sacrificing detail. Users searching for a **text-to-image AI model** with conversational editing capabilities will find nano-banana's multimodal processing—handling text prompts alone or combined with images—enables unprecedented control for iterative design. ## Usage Notes - API Base URL: `https://api.eachlabs.ai/v1` - Authentication: send `X-API-Key: YOUR_API_KEY`. Generate a key from the Eachlabs dashboard at https://www.eachlabs.ai/dashboard/api-keys. - File-typed parameters (`*_url`, `image_url`, `video_url`, `audio_url`, etc.) accept publicly-reachable HTTPS URLs only. Upload your asset first (GCS / S3 / your CDN) and pass the resulting URL. Data-URIs and localhost URLs are rejected. - For structured parameters (arrays / objects) send real JSON values, not stringified payloads. - Monetary values are reported in USD; per-token / per-megapixel rates may be billed in micro-cents internally. - Prefer `webhook_url` over polling for long-running predictions — see the Webhook Callback section.