Nano Banana 2.1
Learn how to build and deploy AI applications with iCreat.
Nano Banana 2.1
Nano Banana 2.1(Gemini Nano Banana 2.1)是 Google 推出的高保真多模态 AI 图像生成与图像编辑模型。该模型具备强大的角色与主体一致性保持、精细的指令遵循、自然语言理解以及多参考图引导能力,能够在保持极快生成速度的同时,完成高质量的视觉内容创作与局部/全局编辑。
基础 URL
https://api.icreat.ai
身份验证
所有 API 请求都必须使用 API Key 进行身份验证。你可以从控制台获取 API Key。
export ICREAT_API_KEY="your-api-key-here"
HTTP 请求头
import os
API_KEY = os.environ.get("ICREAT_API_KEY")
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer " + API_KEY,
}
保护你的 API Key 切勿在客户端代码或公共代码仓库中暴露 API Key。请使用环境变量或后端代理保存并使用 API Key。
代码示例
图像生成和编辑采用两步异步调用流程:首先提交任务并获取 task_id,然后通过查询任务结果接口轮询任务状态。响应中包含 status 和 result。任务处理期间,result 为 [];当任务状态变为 SUCCEEDED 时,result 包含生成的资源,同时响应中会包含 costUSD。
以下示例在提交和查询步骤中使用相同的 task_id。
1. 提交任务
向任务提交接口发送图像生成或编辑请求。
2. 查询任务结果(轮询)
使用提交接口返回的 task_id 查询任务状态。重复发送查询请求,直到任务进入终止状态。
响应中包含 status 和 result。任务处理期间,result 为 [];当任务状态变为 SUCCEEDED 时,result 包含生成的资源,并且响应中会包含 costUSD。状态为 FAILED 表示任务执行失败。
输入参数
提交任务 — 输入
参数总数:4,必填参数:4,可选参数:0
描述待生成图像或待执行编辑操作的文本提示词,支持多行文本。
用于图像生成或编辑的参考图片 URL 列表,单次请求最多支持传入 4 张参考图。
每一项都必须是可公开访问的图片 URL(单图最大 20 MB)。
分辨率档位,目前支持 1K、2K,4K。
输出图像的宽高比。支持的值:1:1、2:3、3:2、3:4、4:3、4:5、5:4、9:16、16:9、21:9。
默认使用第一张上传图片的宽高比。
查询任务结果 — 输入
参数总数:1,必填参数:1,可选参数:0
提交任务接口返回的任务 ID。
输出参数
提交任务 — 输出
参数总数:1
异步任务标识符。
查询任务结果 — 输出
参数总数:不固定
当前任务状态。在任务成功之前,result 通常为 []。当状态为 SUCCEEDED 时,result 包含生成的资源,并且响应中会包含 costUSD。
生成的资源列表。任务处理期间或任务失败时,该字段为空数组;任务成功后,该字段包含生成的图像资源。
任务消耗的美元金额。该字段仅在 status 为 SUCCEEDED 时返回。
LLM 提示词
你可以将下面的 Markdown 复制到 Cursor、ChatGPT 等 AI 助手中,帮助它们理解该模型的 API、调用流程和参数。使用复制给 AI按钮,或直接复制下面代码块中的内容。
# google/gemini-nano-banana-2-1
> Nano Banana 2.1(Gemini Nano Banana 2.1)是 Google 推出的高保真多模态 AI 图像生成与图像编辑模型,具备优秀的主体一致性保持、精细指令遵循及多参考图引导能力,支持快速创建与编辑高质量视觉内容。
## 概述
使用 iCreat 两步异步任务 API:先提交图像生成或编辑任务,再轮询任务结果查询接口。任务成功后,从 `result` 中读取生成的图像资源。成功响应中还会包含 `costUSD`。
## API 信息
- **基础 URL**:`https://api.icreat.ai`
- **提交接口(POST)**:`/v1/task/submit/google/gemini-nano-banana-2-1`
- **查询结果接口(POST)**:`/v1/task/result`
- **模型 ID**:`google/gemini-nano-banana-2-1`
- **身份验证**:`Authorization: Bearer ${ICREAT_API_KEY}`
## 调用流程
1. **提交任务**:向 `/v1/task/submit/google/gemini-nano-banana-2-1` 发送 POST 请求。请求体包含 `prompt`、`image`、`image_size` 和 `aspect_ratio`,响应格式为 `{ "task_id": "..." }`。
2. **查询结果**:向 `/v1/task/result` 发送 POST 请求,请求体为 `{ "task_id": "..." }`。
3. **轮询状态**:当 `status` 为 `SUBMITTED` 且 `result` 为 `[]` 时,继续查询任务结果。
4. **读取结果**:当 `status` 为 `SUCCEEDED` 时,从 `result` 中类型为 `Image` 的资源读取 `url` 或 `download_url`。
5. **处理失败**:`FAILED` 是终止状态,表示任务执行失败。
### 输入示例
```json
{
"prompt": "示例多行\n文本",
"image": [
"[https://example.com/example.png](https://example.com/example.png)"
],
"image_size": "1K",
"aspect_ratio": "1:1"
}
输入说明
- 请求体使用顶层扁平字段。
- 必填字段:
prompt、image、image_size和aspect_ratio。 prompt:描述待生成图像或待执行编辑操作的文本提示词,支持多行文本。image:由可公开访问的参考图片 URL 组成的数组,最多支持 4 张。image_size:分辨率档位,支持1K、2K。aspect_ratio:输出图像的宽高比。支持的值包括1:1、2:3、3:2、3:4、4:3、4:5、5:4、9:16、16:9和21:9。默认使用第一张上传图片的宽高比。
输出说明
- 任务处理期间,
status通常为SUBMITTED,result为[]。 - 任务成功后,
status为SUCCEEDED。 - 成功响应中包含
result和costUSD。 result的格式为:[{ "type": "Image", "url": "...", "download_url": "..." }]。FAILED是终止状态,表示任务执行失败。
注意事项
- 每次轮询必须使用同一个
task_id。 - 当任务仍在处理且
result为空时,应继续轮询。 - 使用
url访问生成的图像,或使用download_url下载图像。 - 如果任务返回
FAILED,请检查提示词、图片 URL、图片格式、宽高比以及其他请求参数。 - API Key 必须保存在服务端,切勿在客户端代码中暴露。
