> ## Documentation Index
> Fetch the complete documentation index at: https://docs.anyfast.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Gemini Nano Banana 2.1 (Stream)

> 通过 Gemini API 流式接口调用 Gemini Nano Banana 2.1 生成图片并接收响应数据块。

Gemini Nano Banana 2.1 可以通过原生 Gemini `streamGenerateContent` 接口返回生成内容。该接口使用 Server-Sent Events（SSE），应用可以在响应数据块到达时逐步处理。

## 核心能力

* **SSE 流式输出** — 接收模型生成的 `GenerateContentResponse` 数据块。
* **文生图** — 根据文本提示生成图片。
* **图片编辑** — 在同一请求中传入参考图片和编辑指令。
* **图片设置** — 通过 `imageConfig` 设置输出宽高比和分辨率。

## SSE 响应格式

接口以 SSE 事件返回数据。每条 `data:` 行都包含一个 JSON 格式的 `GenerateContentResponse` 数据块。读取每个数据块中的 `candidates[].content.parts[]`；内容部分可以包含文本或图片数据。图片数据位于 `inlineData`，包含 MIME 类型和 Base64 编码的 `data`。数据块也可能包含用量信息。数据块的数量和顺序可能因响应而异。

```text theme={null}
data: {"candidates":[{"content":{"role":"model","parts":[{"text":"..."}]}}]}

data: {"candidates":[{"content":{"role":"model","parts":[{"inlineData":{"mimeType":"image/png","data":"<base64>"}}]}}]}

data: {"usageMetadata":{"promptTokenCount":24,"candidatesTokenCount":1024,"totalTokenCount":1048}}
```

> [!NOTE]
>
> 请求字段采用原生 Gemini API 格式。流式响应中的生成图片数据通过 `inlineData.data` 以 Base64 编码返回。

## 文生图示例

```bash cURL theme={null}
curl --no-buffer \
  "https://www.anyfast.ai/v1beta/models/gemini-nano-banana-2.1:streamGenerateContent?key=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{
      "role": "user",
      "parts": [{
        "text": "生成一张绿色数据中心的简洁等距插画。"
      }]
    }],
    "generationConfig": {
      "responseModalities": ["TEXT", "IMAGE"],
      "imageConfig": {"aspectRatio": "16:9", "imageSize": "1K"}
    }
  }'
```

```python Python theme={null}
import base64
import json
import requests

url = "https://www.anyfast.ai/v1beta/models/gemini-nano-banana-2.1:streamGenerateContent"
response = requests.post(
    url,
    params={"key": "YOUR_API_KEY"},
    json={
        "contents": [{
            "role": "user",
            "parts": [{"text": "生成一张绿色数据中心的简洁等距插画。"}],
        }],
        "generationConfig": {
            "responseModalities": ["TEXT", "IMAGE"],
            "imageConfig": {"aspectRatio": "16:9", "imageSize": "1K"},
        },
    },
    stream=True,
)
response.raise_for_status()

for line in response.iter_lines():
    if not line or not line.startswith(b"data:"):
        continue
    chunk = json.loads(line[len(b"data:"):].strip())
    for candidate in chunk.get("candidates", []):
        for part in candidate.get("content", {}).get("parts", []):
            if part.get("thought"):
                continue
            if "text" in part:
                print(part["text"], end="")
            if "inlineData" in part:
                image = base64.b64decode(part["inlineData"]["data"])
                with open("output.png", "wb") as image_file:
                    image_file.write(image)
                print("\n图片已保存至 output.png")
```

## 图片编辑示例

将编辑指令和参考图片放在同一个 `parts` 数组中。请求使用 `inlineData` 传入 Base64 图片数据。

```bash cURL theme={null}
curl --no-buffer \
  "https://www.anyfast.ai/v1beta/models/gemini-nano-banana-2.1:streamGenerateContent?key=YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{
      "role": "user",
      "parts": [
        {"text": "保持产品不变，将背景替换为温暖的木质桌面。"},
        {"inlineData": {"mimeType": "image/png", "data": "YOUR_BASE64_IMAGE_DATA"}}
      ]
    }],
    "generationConfig": {
      "responseModalities": ["TEXT", "IMAGE"],
      "imageConfig": {"aspectRatio": "4:3", "imageSize": "2K"}
    }
  }'
```

## 参数说明

| 参数 | 类型 | 必填 | 说明 |
| - | - | -: | - |
| `key` | string | 是 | AnyFast API 密钥，通过查询参数传入。 |
| `alt` | string | 否 | 设为 `sse` 可显式请求 SSE 模式。 |
| `contents` | array | 是 | 对话内容，包含文本和可选的参考媒体。 |
| `generationConfig.responseModalities` | array | 否 | 选择 `IMAGE`，或 `TEXT` 和 `IMAGE`。 |
| `generationConfig.imageConfig.aspectRatio` | string | 否 | 输出宽高比，例如 `1:1`、`4:3` 或 `16:9`。 |
| `generationConfig.imageConfig.imageSize` | string | 否 | 输出尺寸：`1K`、`2K` 或 `4K`。 |

> **[API 参考](https://docs.anyfast.ai/zh/api-reference/model-api/google/gemini-nano-banana-2-1-stream.md)**
>
> 查看 Gemini Nano Banana 2.1 流式接口的请求与响应字段。

## 官方参考

* [Gemini Nano Banana 2.1 模型页面](https://ai.google.dev/gemini-api/docs/models/gemini-nano-banana-2.1?hl=zh-cn)
* [Google 图片生成指南](https://ai.google.dev/gemini-api/docs/generate-content/image-generation?hl=zh-cn)
* [Google 流式内容生成指南](https://ai.google.dev/gemini-api/docs/generate-content/text-generation?hl=zh-cn)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.