This commit is contained in:
zyc123 2026-05-14 14:27:07 +08:00
parent 9d93215e36
commit 57d5110ec4
5 changed files with 237 additions and 381 deletions

View File

@ -36,8 +36,8 @@ CodeX 是基于 GPT-5 架构的智能编程助手,为开发者提供卓越的
1. 打开 CC-Switch 应用程序 1. 打开 CC-Switch 应用程序
2. 点击顶部的「Codex」标签页 2. 点击顶部的「Codex」标签页
3. 点击右上角橙色「+」按钮添加新配置 3. 点击右上角橙色「+」按钮添加新配置
g
![CC-Switch Codex 标签页](https://minio.oneinai.com/oneinai/images/docs/codex/codex01.png) ![CC-Switch Codex 标签页](https://minio.oneinai.com/oneinai/images/docs/codex/codex01.pn)
**2. 填写 CodeX 提供商配置** **2. 填写 CodeX 提供商配置**

View File

@ -1,437 +1,293 @@
# ![NanoBanana](https://minio.oneinai.com/oneinai/images/docs/nano-banana/nano-banana01.png) NanoBanana 图像生成部署指南 # ![NanoBanana](https://minio.oneinai.com/oneinai/images/docs/nano-banana/nano-banana01.png) NanoBanana 图像生成部署指南
**通过 OneinAI 调用 Gemini 原生图像生成 API** **通过 oneinai 调用 Gemini 原生图像生成 API**
资源| 地址 | 资源 | 地址 |
---|--- | --- | --- |
OneinAI 平台| [api.ikuncode.cc](<https://api.oneinai.com>) | oneinai 平台 | <https://api.oneinai.com> |
| oneinai 控制台 | <https://api.oneinai.com/console/token> |
📋 简介
NanoBanana 是 OneinAI 提供的 Gemini 图像生成模型系列。通过 OneinAI 的 API Key 即可直接调用,无需科学上网,无需谷歌账号。 ## 📋 简介
## 🎯 模型介绍 NanoBanana 是 oneinai 提供的 Gemini 图像生成模型系列。通过 oneinai 的 API Key 即可直接调用,无需科学上网,无需谷歌账号。
OneinAI 提供两个 NanoBanana 模型: ## 🎯 模型介绍
模型| 模型 ID| 特点| 适用场景 oneinai 提供两个 NanoBanana 模型:
---|---|---|---
**NanoBananaPro**| `gemini-3-pro-image-preview`| 效果最佳,支持高清输出| 高质量海报、商业素材、精细创作
**NanoBanana2**| `gemini-3.1-flash-image-preview`| 速度快、价格低| 快速预览、批量生成、日常使用
💡 如何选择
* 追求**画质** :选 NanoBananaProPro 版) | 模型 | 模型 ID | 特点 | 适用场景 |
* 追求**速度和性价比** :选 NanoBanana2Flash 版) | --- | --- | --- | --- |
| **NanoBananaPro** | `gemini-3-pro-image-preview` | 效果最佳,支持高清输出 | 高质量海报、商业素材、精细创作 |
| **NanoBanana2** | `gemini-3.1-flash-image-preview` | 速度快、价格低 | 快速预览、批量生成、日常使用 |
## 📐 支持的宽高比 > 💡 **如何选择**
> - 追求**画质**:选 NanoBananaProPro 版)
> - 追求**速度和性价比**:选 NanoBanana2Flash 版)
两个模型均支持以下 **10 种宽高比** ## 📐 支持的宽高比
宽高比| 说明| 宽高比| 说明 两个模型均支持以下 **10 种宽高比**
---|---|---|---
**1:1**| 正方形图片| **3:2**| 相机常用比例(横)
**16:9**| 横屏标准比例| **2:3**| 相机常用比例(竖)
**9:16**| 竖屏标准比例| **21:9**| 超宽屏比例
**4:3**| 传统横屏比例| **5:4**| 显示器比例(横)
**3:4**| 传统竖屏比例| **4:5**| 显示器比例(竖)
## 📏 支持的分辨率
每种宽高比支持三种分辨率等级: | 宽高比 | 说明 | 宽高比 | 说明 |
| --- | --- | --- | --- |
| **1:1** | 正方形图片 | **3:2** | 相机常用比例(横) |
| **16:9** | 横屏标准比例 | **2:3** | 相机常用比例(竖) |
| **9:16** | 竖屏标准比例 | **21:9** | 超宽屏比例 |
| **4:3** | 传统横屏比例 | **5:4** | 显示器比例(横) |
| **3:4** | 传统竖屏比例 | **4:5** | 显示器比例(竖) |
### 1K 分辨率(快速预览) ## 📏 支持的分辨率
宽高比| 分辨率| 宽高比| 分辨率 每种宽高比支持三种分辨率等级。
---|---|---|---
1:1| 1024×1024| 3:2| 1232×816
16:9| 1376×768| 2:3| 816×1232
9:16| 768×1376| 21:9| 1584×672
4:3| 1200×896| 5:4| 1136×896
3:4| 896×1200| 4:5| 896×1136
### 2K 分辨率(推荐使用)
宽高比| 分辨率| 宽高比| 分辨率 ### 1K 分辨率(快速预览)
---|---|---|---
1:1| 2048×2048| 3:2| 2464×1632
16:9| 2752×1536| 2:3| 1632×2464
9:16| 1536×2752| 21:9| 3168×1344
4:3| 2400×1792| 5:4| 2272×1792
3:4| 1792×2400| 4:5| 1792×2272
### 4K 分辨率(超高清)
宽高比| 分辨率| 宽高比| 分辨率 | 宽高比 | 分辨率 | 宽高比 | 分辨率 |
---|---|---|--- | --- | --- | --- | --- |
1:1| 4096×4096| 3:2| 4928×3264 | 1:1 | 1024×1024 | 3:2 | 1232×816 |
16:9| 5504×3072| 2:3| 3264×4928 | 16:9 | 1376×768 | 2:3 | 816×1232 |
9:16| 3072×5504| 21:9| 6336×2688 | 9:16 | 768×1376 | 21:9 | 1584×672 |
4:3| 4800×3584| 5:4| 4544×3584 | 4:3 | 1200×896 | 5:4 | 1136×896 |
3:4| 3584×4800| 4:5| 3584×4544 | 3:4 | 896×1200 | 4:5 | 896×1136 |
## 🔧 API 请求格式 ### 2K 分辨率(推荐使用)
| 宽高比 | 分辨率 | 宽高比 | 分辨率 |
| --- | --- | --- | --- |
| 1:1 | 2048×2048 | 3:2 | 2464×1632 |
| 16:9 | 2752×1536 | 2:3 | 1632×2464 |
| 9:16 | 1536×2752 | 21:9 | 3168×1344 |
| 4:3 | 2400×1792 | 5:4 | 2272×1792 |
| 3:4 | 1792×2400 | 4:5 | 1792×2272 |
### 4K 分辨率(超高清)
| 宽高比 | 分辨率 | 宽高比 | 分辨率 |
| --- | --- | --- | --- |
| 1:1 | 4096×4096 | 3:2 | 4928×3264 |
| 16:9 | 5504×3072 | 2:3 | 3264×4928 |
| 9:16 | 3072×5504 | 21:9 | 6336×2688 |
| 4:3 | 4800×3584 | 5:4 | 4544×3584 |
| 3:4 | 3584×4800 | 4:5 | 3584×4544 |
## 🔧 API 请求格式
NanoBanana 使用**谷歌原生格式** API与 OpenAI 格式不同。 NanoBanana 使用**谷歌原生格式** API与 OpenAI 格式不同。
### 基本请求结构 ### 基本请求结构
json ```json
{
"contents": [{
{ "parts": [
"contents": [{ { "text": "你的图片描述" }
"parts": [ ]
{ "text": "您的图片描述" } }],
] "generationConfig": {
}], "responseModalities": ["IMAGE"],
"generationConfig": { "imageConfig": {
"responseModalities": ["IMAGE"], "aspectRatio": "16:9",
"imageConfig": { "image_size": "2K"
"aspectRatio": "16:9", }
"image_size": "2K" }
} }
```
### 参数说明
| 参数 | 说明 | 可选值 |
| --- | --- | --- |
| `responseModalities` | 响应类型,必须设为图片 | `["IMAGE"]` |
| `aspectRatio` | 宽高比 | `1:1``16:9``9:16``4:3``3:4``3:2``2:3``21:9``5:4``4:5` |
| `image_size` | 分辨率等级 | `1K``2K``4K` |
### API 端点
```
POST https://api.oneinai.com/v1beta/models/{模型ID}:generateContent
```
- NanoBananaPro`gemini-3-pro-image-preview`
- NanoBanana2`gemini-3.1-flash-image-preview`
## 📝 示例代码
### cURL 示例
```bash
curl -X POST "https://api.oneinai.com/v1beta/models/gemini-3-pro-image-preview:generateContent" \
-H "Authorization: Bearer sk-你的oneinai密钥" \
-H "Content-Type: application/json" \
-d '{
"contents": [{
"parts": [
{"text": "一只可爱的小猫咪坐在花园里,油画风格,高清,细节丰富"}
]
}],
"generationConfig": {
"responseModalities": ["IMAGE"],
"imageConfig": {
"aspectRatio": "16:9",
"image_size": "2K"
} }
} }
}'
```
1 ### Python 示例
2
3
4
5
6
7
8
9
10
11
12
13
14
### 参数说明 ```python
import requests
import base64
参数| 说明| 可选值 API_KEY = "sk-你的oneinai密钥"
---|---|--- API_URL = "https://api.oneinai.com/v1beta/models/gemini-3-pro-image-preview:generateContent"
`responseModalities`| 响应类型,必须设为图片| `["IMAGE"]`
`aspectRatio`| 宽高比| `1:1``16:9``9:16``4:3``3:4``3:2``2:3``21:9``5:4``4:5`
`image_size`| 分辨率等级| `1K``2K``4K`
### API 端点
POST https://api.oneinai.com/v1beta/models/{模型ID}:generateContent
1 payload = {
"contents": [{
* NanoBananaPro`gemini-3-pro-image-preview` "parts": [
* NanoBanana2`gemini-3.1-flash-image-preview`
## 📝 示例代码
### cURL 示例
bash
curl -X POST "https://api.oneinai.com/v1beta/models/gemini-3-pro-image-preview:generateContent" \\
-H "Authorization: Bearer sk-你的OneinAI密钥" \\
-H "Content-Type: application/json" \\
-d '{
"contents": [{
"parts": [
{"text": "一只可爱的小猫咪坐在花园里,油画风格,高清,细节丰富"} {"text": "一只可爱的小猫咪坐在花园里,油画风格,高清,细节丰富"}
] ]
}], }],
"generationConfig": { "generationConfig": {
"responseModalities": ["IMAGE"], "responseModalities": ["IMAGE"],
"imageConfig": { "imageConfig": {
"aspectRatio": "16:9", "aspectRatio": "16:9",
"image_size": "2K" "image_size": "2K"
}
}
}'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
### Python 示例
python
import requests
import base64
API_KEY = "sk-你的OneinAI密钥"
API_URL = "https://api.oneinai.com/v1beta/models/gemini-3-pro-image-preview:generateContent"
payload = {
"contents": [{
"parts": [
{"text": "一只可爱的小猫咪坐在花园里,油画风格,高清,细节丰富"}
]
}],
"generationConfig": {
"responseModalities": ["IMAGE"],
"imageConfig": {
"aspectRatio": "16:9",
"image_size": "2K"
}
} }
} }
}
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
response = requests.post(API_URL, headers=headers, json=payload, timeout=600)
if response.status_code == 200:
data = response.json()
image_base64 = data["candidates"][0]["content"]["parts"][0]["inlineData"]["data"]
# 保存图片
with open("output.png", "wb") as f:
f.write(base64.b64decode(image_base64))
print("图片已保存为 output.png")
else:
print(f"请求失败: {response.status_code}")
print(response.text)
1 headers = {
2 "Authorization": f"Bearer {API_KEY}",
3 "Content-Type": "application/json"
4 }
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
### Node.js 示例 response = requests.post(API_URL, headers=headers, json=payload, timeout=600)
javascript if response.status_code == 200:
data = response.json()
image_base64 = data["candidates"][0]["content"]["parts"][0]["inlineData"]["data"]
const fs = require('fs');
const API_KEY = 'sk-你的OneinAI密钥';
const API_URL = 'https://api.oneinai.com/v1beta/models/gemini-3-pro-image-preview:generateContent';
async function generateImage() {
const response = await fetch(API_URL, {
method: 'POST',
headers: {
'Authorization': \`Bearer \${API_KEY}\`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
contents: [{
parts: [
{ text: '一只可爱的小猫咪坐在花园里,油画风格,高清,细节丰富' }
]
}],
generationConfig: {
responseModalities: ['IMAGE'],
imageConfig: {
aspectRatio: '16:9',
image_size: '2K'
}
}
})
});
const data = await response.json();
const imageBase64 = data.candidates[0].content.parts[0].inlineData.data;
fs.writeFileSync('output.png', Buffer.from(imageBase64, 'base64'));
console.log('图片已保存为 output.png');
}
generateImage().catch(console.error);
1 with open("output.png", "wb") as f:
2 f.write(base64.b64decode(image_base64))
3 print("图片已保存为 output.png")
4 else:
5 print(f"请求失败: {response.status_code}")
6 print(response.text)
7 ```
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
## 🖼️ 图生图编辑 ### Node.js 示例
NanoBananaPro 还支持**图生图** 功能,上传一张图片并描述编辑指令,即可对图片进行修改。 ```javascript
const fs = require('fs');
json const API_KEY = 'sk-你的oneinai密钥';
const API_URL = 'https://api.oneinai.com/v1beta/models/gemini-3-pro-image-preview:generateContent';
{ async function generateImage() {
"contents": [{ const response = await fetch(API_URL, {
"parts": [ method: 'POST',
{ headers: {
"inlineData": { 'Authorization': `Bearer ${API_KEY}`,
"mimeType": "image/png", 'Content-Type': 'application/json'
"data": "图片的Base64编码字符串" },
} body: JSON.stringify({
}, contents: [{
{ "text": "将背景改为星空,保持人物不变" } parts: [
{ text: '一只可爱的小猫咪坐在花园里,油画风格,高清,细节丰富' }
] ]
}], }],
"generationConfig": { generationConfig: {
"responseModalities": ["IMAGE"], responseModalities: ['IMAGE'],
"imageConfig": { imageConfig: {
"aspectRatio": "16:9", aspectRatio: '16:9',
"image_size": "2K" image_size: '2K'
} }
} }
})
});
const data = await response.json();
const imageBase64 = data.candidates[0].content.parts[0].inlineData.data;
fs.writeFileSync('output.png', Buffer.from(imageBase64, 'base64'));
console.log('图片已保存为 output.png');
}
generateImage().catch(console.error);
```
## 🖼️ 图生图编辑
NanoBananaPro 还支持**图生图**功能,上传一张图片并描述编辑指令,即可对图片进行修改。
```json
{
"contents": [{
"parts": [
{
"inlineData": {
"mimeType": "image/png",
"data": "图片的Base64编码字符串"
}
},
{ "text": "将背景改为星空,保持人物不变" }
]
}],
"generationConfig": {
"responseModalities": ["IMAGE"],
"imageConfig": {
"aspectRatio": "16:9",
"image_size": "2K"
} }
}
}
```
1 > 💡 **图生图使用技巧**
2 > - 编辑指令要**具体明确**,说清楚保留什么、修改什么
3 > - 支持换背景、改风格、加元素、去水印等操作
4 > - 图片需要转为 Base64 编码后放入 `inlineData.data` 字段
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
💡 图生图使用技巧 ## 🤖 在 Claude Code 中使用
* 编辑指令要**具体明确** ,说清楚保留什么、修改什么 如果你已安装 [oneimage Skill](/skills/oneimage),可以在 Claude Code 对话中直接使用自然语言生成图片,无需手动调用 API。
* 支持换背景、改风格、加元素、去水印等操作
* 图片需要转为 Base64 编码后放入 `inlineData.data` 字段
## 🤖 在 Claude Code 中使用 ```
> 用 oneinai 画一张赛博朋克风格的城市夜景16:9 比例2K 分辨率
如果您已安装 [ikunimage Skill](</skills/ikunimage>),可以在 Claude Code 对话中直接使用自然语言生成图片,无需手动调用 API。 > oneinai 生成一张水墨风格的山水画,竖屏 9:16
> 用 ikun 画一张赛博朋克风格的城市夜景16:9 比例2K 分辨率
> ikun 生成一张水墨风格的山水画,竖屏 9:16
> 用 ikun 编辑这张图片 /path/to/image.png把背景换成海边日落
1 > 用 oneinai 编辑这张图片 /path/to/image.png把背景换成海边日落
2 ```
3
4
5
详细安装和使用说明请参考:[ikunimage AI 生图](</skills/ikunimage>) 详细安装和使用说明请参考:[oneimage AI 生图](/skills/oneimage)
## ⏱️ 性能建议 ## ⏱️ 性能建议
### 推荐超时时间 ### 推荐超时时间
不同分辨率的处理时间差异较大,建议设置合理的超时: 不同分辨率的处理时间差异较大,建议设置合理的超时:
分辨率| 推荐超时| 适用场景 | 分辨率 | 推荐超时 | 适用场景 |
---|---|--- | --- | --- | --- |
**1K**| 360 秒6 分钟)| 快速预览、测试效果 | **1K** | 360 秒6 分钟) | 快速预览、测试效果 |
**2K**| 600 秒10 分钟)| 日常使用(推荐) | **2K** | 600 秒10 分钟) | 日常使用(推荐) |
**4K**| 1200 秒20 分钟)| 超高清输出、商业用途 | **4K** | 1200 秒20 分钟) | 超高清输出、商业用途 |
### 带宽注意 ### 带宽注意
图片数据使用 Base64 编码传输,数据量较大: 图片数据使用 Base64 编码传输,数据量较大:
* 建议使用**稳定高速的网络连接** - 建议使用**稳定高速的网络连接**
* 4K 图片的 Base64 数据可能超过 **10MB** - 4K 图片的 Base64 数据可能超过 **10MB**
* 避免在网络高峰时段生成 4K 图片 - 避免在网络高峰时段生成 4K 图片
## ⚠️ 注意事项 ## ⚠️ 注意事项
1. **API Key** :需从 [OneinAI 平台](<https://api.oneinai.com>) 创建支持图像模型的令牌 1. **API Key**:需从 [oneinai 平台](https://api.oneinai.com) 创建支持图像模型的令牌
2. **API 格式** NanoBanana 使用**谷歌原生格式** ,不是 OpenAI 兼容格式,请注意区分 2. **API 格式**NanoBanana 使用**谷歌原生格式**,不是 OpenAI 兼容格式,请注意区分
3. **分辨率与耗时** :分辨率越高,生成时间越长,请根据实际需求选择 3. **分辨率与耗时**:分辨率越高,生成时间越长,请根据实际需求选择
4. **文字渲染** :支持在图片中渲染中文文字(如招牌、海报文案),在 prompt 中直接写明即可 4. **文字渲染**:支持在图片中渲染中文文字(如招牌、海报文案),在 prompt 中直接写明即可
5. **价格差异** :不同模型和分辨率价格不同,详见 OneinAI 平台定价页面 5. **价格差异**:不同模型和分辨率价格不同,详见 oneinai 平台定价页面

View File

@ -17,7 +17,7 @@ CC-Switch 是一款跨平台桌面应用程序,统一管理 Claude Code、Code
• 一键切换不同 AI 工具的提供商配置 • API 端点速度测试与质量指示器 • 多预设系统提示管理 • MCP 服务器统一架构管理 • Claude Skills 发现与安装系统 • 配置备份/恢复自动保留最近10个 • 深度链接协议支持(`ccswitch://` • 环境变量冲突检测 • 一键切换不同 AI 工具的提供商配置 • API 端点速度测试与质量指示器 • 多预设系统提示管理 • MCP 服务器统一架构管理 • Claude Skills 发现与安装系统 • 配置备份/恢复自动保留最近10个 • 深度链接协议支持(`ccswitch://` • 环境变量冲突检测
![CC-Switch 软件界面](https://docs.ikuncode.cc/images/tu6.png) ![CC-Switch 软件界面](https://minio.oneinai.com/oneinai/images/docs/cc-switch/cc-switch01.png)
## 📦 安装方法 ## 📦 安装方法