File size: 7,392 Bytes
852e525 | 1 2 3 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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 | # Gemini 3 Pro Image 模型调用指南
本文档详细说明了在 **Antigravity** 项目中调用 Google `gemini-3-pro-image` (Imagen 3) 模型的方法。本项目已对该模型进行了 OpenAI 协议的完全兼容封装,并扩展支持了原生的摄影宽高比、人物生成安全策略,以及**图生图 (Image-to-Image)** 功能。
## 1. 基础信息
* **模型 ID**: `gemini-3-pro-image` (支持别名 `gemini-3-pro-image-preview`)
* **接口路径**:
* `/v1/images/generations` (文生图 Text-to-Image)
* `/v1/images/edits` (图生图 Image-to-Image / 编辑)
* `/v1/chat/completions` (兼容模式)
* **底层模型**: Google Imagen 3 (Gemini Native)
---
## 2. 文生图 (Text-to-Image)
调用 `/v1/images/generations`,支持以下参数:
### 2.1 画幅与宽高比 (Size / Aspect Ratio)
`size` 参数支持两种输入格式,系统会自动解析并映射到 Gemini 支持的标准比例:
1. **直接输入比例 (推荐)**:如 `"16:9"`, `"4:3"`, `"1:1"`。这种方式最直观,且 100% 准确映射。
2. **输入分辨率 (兼容)**:如 `"1920x1080"`, `"1024x1024"`。系统会自动计算其宽高比(例如 1920/1080 ≈ 1.77),并将其归一化为最接近的标准比例(16:9)。
**⚠️ 重要说明**:Gemini (Imagen 3) **不支持自定义任意像素大小**。
无论您在 `size` 中输入 `"1920x1080"` 还是 `"16:9"`,最终生成的**实际物理分辨率**仅由以下两个因素决定:
1. **宽高比**(由 `size` 解析得出)
2. **画质等级**(由 `quality` 参数决定:`1k`/`2k`/`4k`)
*示例:输入 `size: "1920x1080"` (16:9) 且 `quality: "standard"` (1k),实际生成的图片尺寸为 **1376x768** (16:9 下的 1K 分辨率),而不是 1920x1080。*
| 目标比例 | 适用场景 | `size` 参数示例 (分辨率) | 备注 |
| :--- | :--- | :--- | :--- |
| **16:9** | 宽屏、电影感 | `1920x1080`, `1280x720` | 标准宽屏 |
| **9:16** | 手机壁纸、Stories | `1080x1920`, `720x1280` | 竖屏全屏 |
| **1:1** | 头像、Instagram | `1024x1024` | 默认比例 |
| **4:3** | 传统摄影、显示器 | `1024x768`, `800x600` | |
| **3:4** | 纵向摄影 | `768x1024`, `600x800` | |
| **21:9** | 超宽屏、电影 | `2560x1080` | 电影银幕 |
| **3:2** | **[新增]** 全画幅单反 | `1500x1000` | 经典摄影比例 |
| **2:3** | **[新增]** 竖构图摄影 | `1000x1500` | 海报、立绘 |
| **5:4** | **[新增]** 大画幅 | `1280x1024` | 艺术摄影 |
| **4:5** | **[新增]** 社交媒体竖图 | `1024x1280` | Ins 最佳展示比例 |
> **提示**: 您不需要精确匹配像素值,只需宽高比接近上述比例(容差 0.05)即可自动识别。
### 2.2 画质与分辨率 (Quality)
通过 `quality` 参数控制生成的精细度。
| 参数值 (`quality`) | 对应 Gemini 设置 | 说明 |
| :--- | :--- | :--- |
| `standard` / `1k` | Image Size: `1K` | 生成速度快,适合快速验证 (默认) |
| `medium` / `2k` | Image Size: `2K` | 平衡质量与速度 |
| `hd` / `4k` | Image Size: `4K` | **极高画质**,细节最丰富,耗时稍长 |
#### 分辨率对照表 (Gemini 3 Pro Image)
| 宽高比 | 1K 分辨率 (Standard) | 2K 分辨率 (Medium) | 4K 分辨率 (HD) |
| :--- | :--- | :--- | :--- |
| **1:1** | 1024x1024 | 2048x2048 | 4096x4096 |
| **2:3** | 848x1264 | 1696x2528 | 3392x5056 |
| **3:2** | 1264x848 | 2528x1696 | 5056x3392 |
| **3:4** | 896x1200 | 1792x2400 | 3584x4800 |
| **4:3** | 1200x896 | 2400x1792 | 4800x3584 |
| **4:5** | 928x1152 | 1856x2304 | 3712x4608 |
| **5:4** | 1152x928 | 2304x1856 | 4608x3712 |
| **9:16** | 768x1376 | 1536x2752 | 3072x5504 |
| **16:9** | 1376x768 | 2752x1536 | 5504x3072 |
| **21:9** | 1584x672 | 3168x1344 | 6336x2688 |
### 调用示例 (Python)
```python
import requests
url = "http://localhost:8045/v1/images/generations"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer <token>"
}
data = {
"model": "gemini-3-pro-image",
"prompt": "A futuristic city with flying cars, cinematic lighting, 8k",
"size": "16:9",
"quality": "hd",
"n": 1
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
```
## 3. 图生图 (Image-to-Image / Edits) 🔥 [新增]
调用 `/v1/images/edits` 接口,支持通过参考图生成。
* **Content-Type**: `multipart/form-data`
* **支持多图**: 可同时上传多张参考图。
### 表单字段说明
| 字段名 | 类型 | 必填 | 说明 |
| :--- | :--- | :--- | :--- |
| `prompt` | String | 是 | 文本提示词 |
| `image1`...`imageN` | File | 是 | **参考图文件**。支持 `image1`, `image2` 等任意名称的文件字段 (非 standard `image` 或 `mask`)。 |
| `image` | File | 否 | (兼容 OpenAI 标准) 主图像 |
| `mask` | File | 否 | (兼容 OpenAI 标准) 遮罩图像 |
| `aspect_ratio` | String | 否 | 显式指定比例,如 `"16:9"` (优先级高于 `size`) |
| `image_size` | String | 否 | 显式指定分辨率,如 `"2K"`, `"4K"` (优先级高于 `quality`) |
| `style` | String | 否 | 风格描述,会自动追加到 Prompt 中 |
| `n` | Integer | 否 | 生成数量 (默认 1) |
| `model` | String | 否 | 模型名称 (默认 `gemini-3-pro-image`) |
### 调用示例 (Python)
```python
import requests
url = "http://localhost:8045/v1/images/edits"
headers = {
"Authorization": "Bearer <token>"
}
# 支持多张参考图 (image1, image2, ...)
files = {
"image1": open("/path/to/reference_1.jpg", "rb"),
"image2": open("/path/to/reference_2.jpg", "rb")
}
data = {
"prompt": "A cyberpunk city street based on this layout",
"aspect_ratio": "16:9",
"image_size": "4K",
"style": "watercolor"
}
response = requests.post(url, headers=headers, files=files, data=data)
print(response.json())
```
---
## 4. 后缀魔法 (Magic Suffix)
除了标准的 JSON 参数外,本项目还支持在 **模型名称** 中直接指定参数(方便在不支持自定义参数的客户端中使用)。
**格式**: `gemini-3-pro-image-{比例}-{画质}`
* **比例后缀**: `-16x9`, `-9x16`, `-4x3`, `-3x4`, `-3x2`, `-2x3` 等。
* **画质后缀**: `-4k` (对应 hd), `-2k` (对应 medium)。
**示例**:
使用模型名 `gemini-3-pro-image-16x9-4k` 等同于:
* `size`: "1920x1080" (16:9)
* `quality`: "hd"
> **注意**: 如果 JSON Body 中显式传递了 `size` 或 `quality`,Body 中的参数优先级 **高于** 模型名后缀。
---
## 5. 常见问题
1. **Q: 为什么我设置了 `size: "1234x5678"` 但生成的图片比例不对?**
* **A**: 系统会将您输入的尺寸归一化为 Gemini 支持的 10 种标准比例(见 2.1 节)。如果您的比例非常特殊且不匹配任何标准比例(容差 > 0.05),系统将回退到默认的 **1:1**。建议直接使用示例中的分辨率。
2. **Q: 支持一次生成多张图片吗?**
* **A**: 支持。虽然 Gemini 上游单次请求限制生成 1 张,但 Antigravity 代理层会自动并发处理 `n` 参数。例如设置 `n: 4`,系统会并行发起 4 个请求并合并结果返回。
3. **Q: `person_generation` 参数报错?**
* **A**: 请确保该参数位于 JSON 的**根层级**(与 `prompt`, `model` 同级),而不是嵌套在其他字段中。支持 `snake_case` (`person_generation`) 和 `camelCase` (`personGeneration`)。
|