# Nano Banana 2.1 Text-to-Image — Atlas Cloud API

> Google's Nano Banana 2.1, built on Gemini 3.6 Flash, delivers Pro-level image generation at Flash-level speed, turning text prompts into well-composed 1K-4K images with precise multilingual text rendering, adjustable thinking and optional Google Search grounding.

This is the machine-readable API reference for **Nano Banana 2.1 Text-to-Image** on Atlas Cloud,
a unified API platform for 400+ AI models across text, image, video, audio and 3D.

- **Model ID**: `google/nano-banana-2.1/text-to-image`
- **Built by**: Google
- **Modality**: Image
- **Model page**: https://www.atlascloud.ai/models/google/nano-banana-2.1/text-to-image
- **API key**: https://www.atlascloud.ai/console/api-keys
- **Docs**: https://www.atlascloud.ai/docs

## Pricing on Atlas Cloud

- $0.04 per image
- Pay-as-you-go. No minimum spend, no subscription required.

> **These are the authoritative Atlas Cloud rates for this model.** Any price that
> appears in the vendor description further down refers to a different platform or
> a different model variant and does not apply here.

## Use this model from an AI agent

Atlas Cloud ships three first-party integration surfaces. All three authenticate
with the same API key via the `ATLASCLOUD_API_KEY` environment variable.

### MCP server

The official MCP server (`atlascloud-mcp`) exposes this model to any
MCP-compatible host — Claude Code, OpenAI Codex, Cursor, Gemini CLI, Goose,
Claude Desktop. One-line install:

```bash
# Claude Code
claude mcp add atlascloud -- npx -y atlascloud-mcp

# OpenAI Codex CLI
codex mcp add atlascloud -- npx -y atlascloud-mcp

# Gemini CLI
gemini mcp add atlascloud -- npx -y atlascloud-mcp

export ATLASCLOUD_API_KEY="your-api-key"
```

Then ask in plain English; the agent calls `atlas_generate_image` with `model: "google/nano-banana-2.1/text-to-image"`.
The server fetches each model's schema and validates parameters before submitting,
so invalid requests fail fast without spending credits.

MCP docs: https://www.atlascloud.ai/docs/mcp-server

### Agent Skills

`atlas-cloud-skills` is a portable skill package (API reference, code templates in
Python / Node.js / cURL, model IDs with pricing) for Claude Code, Cursor, Codex and
12+ other agents:

```bash
npx skills add AtlasCloudAI/atlas-cloud-skills
export ATLASCLOUD_API_KEY="your-api-key"
```

Skills docs: https://www.atlascloud.ai/docs/skills

### CLI

The `atlas` binary runs Atlas Cloud from a terminal or CI script. Async media jobs
are polled and downloaded automatically (use `--no-download` when a script only
needs the output URLs):

```bash
# Install (Homebrew, npm, or shell installer)
brew install AtlasCloudAI/tap/atlascloud
# npm install -g atlascloud-cli
# curl -fsSL https://raw.githubusercontent.com/AtlasCloudAI/cli/main/install.sh | sh

atlas auth login
atlas generate image google/nano-banana-2.1/text-to-image -p "Your prompt here"
```

CLI docs: https://www.atlascloud.ai/docs/cli

## HTTP API reference

- **Submit endpoint (POST)**: `https://api.atlascloud.ai/api/v1/model/generateImage` — start an async generation; returns a `prediction_id`
- **Poll endpoint (GET)**: `https://api.atlascloud.ai/api/v1/model/prediction/{prediction_id}` — poll this until the prediction finishes
- **Model ID**: `google/nano-banana-2.1/text-to-image`


## API Information

This model can be used via our HTTP API or more conveniently via our client libraries.
See the input and output schema below, as well as the usage examples.


### Input Schema

The API accepts the following input parameters:

- **`model`** (`string`, _required_):
  model name
  - Default: `"google/nano-banana-2.1/text-to-image"`

- **`prompt`** (`string`, _required_):
  The positive prompt for the generation. Describe the subject, scene, composition and style; put any exact text to render (e.g., for posters, infographics, menus or diagrams) in quotes.

- **`aspect_ratio`** (`string`, _optional_):
  The aspect ratio of the generated image. "auto" lets the model decide: it matches the input image when editing, otherwise it generates a 1:1 image. Ultra-wide and ultra-tall ratios (21:9, 4:1, 1:4, 8:1, 1:8) are supported.
  - Default: `"auto"`
  - Options: "auto", "1:1", "3:2", "2:3", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "21:9", "4:1", "1:4", "8:1", "1:8"

- **`resolution`** (`string`, _optional_):
  The resolution of the output image: 1k (about 1 megapixel), 2k (about 4 megapixels) or 4k (about 16 megapixels).
  - Default: `"1k"`
  - Options: "1k", "2k", "4k"

- **`thinking_level`** (`string`, _optional_):
  Controls the amount of internal reasoning the model performs before generating the image. Higher levels improve quality on complex prompts (e.g., infographics, multi-character scenes, dense text) but increase latency. "default" uses the model's default level (medium); "minimal" is the fastest.
  - Default: `"default"`
  - Options: "default", "minimal", "medium", "high"

- **`enable_web_search`** (`boolean`, _optional_):
  If enabled, the model will use Google web search to ground the generation with real-time information (e.g., current events, weather, stock charts).
  - Default: `false`

- **`enable_image_search`** (`boolean`, _optional_):
  If enabled, the model will use images retrieved via Google Image Search as visual context for the generation. Can be used alone or together with web search. Real-world images of people from search results are not used.
  - Default: `false`

- **`top_p`** (`number`, _optional_):
  Probability threshold for top-p sampling
  - Default: `0.95`
  - Min: 0
  - Max: 1

- **`temperature`** (`number`, _optional_):
  Creativity allowed in the responses. Best results at default 1.0. Lower values may impact reasoning.
  - Default: `1`
  - Min: 0
  - Max: 1

- **`seed`** (`integer`, _optional_):
  Random seed. Does not guarantee determinism but may improve repeatability. -1 means a random seed will be used.
  - Default: `-1`

- **`enable_sync_mode`** (`boolean`, _optional_):
  If set to true, the function will wait for the result to be generated and uploaded before returning the response. It allows you to get the result directly in the response. This property is only available through the API.
  - Default: `false`

- **`enable_base64_output`** (`boolean`, _optional_):
  If enabled, the output will be encoded into a BASE64 string instead of a URL. This property is only available through the API.
  - Default: `false`



**Required Parameters Example**:

```json
{
  "model": "google/nano-banana-2.1/text-to-image",
  "prompt": ""
}
```


**Full Example**:

```json
{
  "model": "google/nano-banana-2.1/text-to-image",
  "prompt": "",
  "aspect_ratio": "auto",
  "resolution": "1k",
  "thinking_level": "default",
  "enable_web_search": false,
  "enable_image_search": false,
  "top_p": 0.95,
  "temperature": 1,
  "seed": -1,
  "enable_sync_mode": false,
  "enable_base64_output": false
}
```


### Output Schema

The API returns the following output format:


- **`code`** (`integer`, _optional_):
  HTTP status code of the response.

- **`message`** (`string`, _optional_):
  Human-readable message; non-empty on failure.

- **`data`** (`object`, _optional_):
  - Properties:
    - **`id`** (`string`, _optional_):
      Unique identifier for the prediction.

    - **`model`** (`string`, _optional_):
      Model ID used for the prediction.

    - **`outputs`** (`array[string]`, _optional_):
      Array of URLs to the generated content. Null when status is not completed.

    - **`urls`** (`object`, _optional_):
      Object containing related API endpoints.
      - Properties:
        - **`get`** (`string`, _optional_):
          URL to poll for the prediction result.


    - **`status`** (`string`, _optional_):
      Status of the task: created, processing, completed, timeout, or failed.

    - **`created_at`** (`string`, _optional_):
      ISO timestamp of when the request was created (e.g., "2023-04-01T12:34:56.789Z").

    - **`error`** (`string`, _optional_):
      Error message if the task failed, empty string otherwise.

    - **`error_code`** (`integer`, _optional_):
      Error code if the task failed.

    - **`executionTime`** (`number`, _optional_):
      Total execution time in milliseconds.

    - **`timings`** (`object`, _optional_):
      Detailed timing breakdown.
      - Properties:
        - **`inference`** (`number`, _optional_):
          Inference time in milliseconds.





**Example Response**:

```json
{
  "code": 0,
  "message": "",
  "data": {
    "id": "",
    "model": "",
    "outputs": [
      ""
    ],
    "urls": {
      "get": ""
    },
    "status": "",
    "created_at": "",
    "error": "",
    "error_code": 0,
    "executionTime": 0,
    "timings": {
      "inference": 0
    }
  }
}
```


## Usage Examples

### cURL

```bash
# Step 1: Start generation (async)
curl -X POST "https://api.atlascloud.ai/api/v1/model/generateImage" \
  -H "Authorization: Bearer $ATLASCLOUD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "google/nano-banana-2.1/text-to-image",
  "prompt": "",
  "aspect_ratio": "auto",
  "resolution": "1k",
  "thinking_level": "default",
  "enable_web_search": false,
  "enable_image_search": false,
  "top_p": 0.95,
  "temperature": 1,
  "seed": -1,
  "enable_sync_mode": false,
  "enable_base64_output": false
}'

# Response will contain: {"code": 200, "data": {"id": "prediction_id", "status": "processing"}}

# Step 2: Poll for result (replace {prediction_id} with the id returned above)
curl -X GET "https://api.atlascloud.ai/api/v1/model/prediction/{prediction_id}" \
  -H "Authorization: Bearer $ATLASCLOUD_API_KEY"

# Keep polling until status is "completed", "succeeded" or "failed"
# When completed, outputs will contain the generated content URL(s)
```

## Additional Resources

### Documentation

- [Model Playground](https://www.atlascloud.ai/models/google/nano-banana-2.1/text-to-image)

## About this model

_Vendor-supplied description. Any pricing or endpoint mentioned below refers to_
_other platforms — use the Atlas Cloud values above._

#### Google Nano Banana 2.1 — Text-to-Image

**Nano Banana 2.1** (`gemini-nano-banana-2.1`) is Google DeepMind's latest image generation and editing model, released and made generally available on October 6, 2026 as the successor to Nano Banana 2 (Gemini 3.1 Flash Image). Built on **Gemini 3.6 Flash** and part of the Gemini 3 model family, it delivers **Pro-level image generation and editing at Flash-level speed**. It is a multimodal reasoning image model: it understands text, images and video, and thinks through complex spatial and compositional instructions before it generates an image. Compared with Nano Banana 2, Google reports better instruction following, generation consistency, multi-reference composition and visual factuality. In Google's side-by-side human evaluations it outperforms both Nano Banana 2 and Nano Banana Pro across every published text-to-image and editing benchmark, with the biggest gains in visual design, mask-based editing, subject consistency and infographic factuality.

This **Text-to-Image** endpoint drives the model with a natural-language prompt alone. It runs the same model as the Edit and Reference-to-Image endpoints; only the inputs differ. From a single prompt you get the model's improved visual design, precise multilingual text rendering, real-world knowledge and optional Google Search grounding.

#### 🌟 What's New in Nano Banana 2.1

_(Description truncated. Full text on the model page.)_

---

Atlas Cloud — one API for 400+ AI models. Model page: https://www.atlascloud.ai/models/google/nano-banana-2.1/text-to-image · Docs: https://www.atlascloud.ai/docs
