图像(Images)
AI 图像生成与编辑按厂家原生协议调用:Google Gemini、OpenAI GPT Image、火山方舟 Seedream 与阿里云百炼 Qwen Image 分别使用各自的端点、请求体和参数。
模型概览
模型(model) | 文生图 | 图生图 / 编辑 | 输出格式 | 特色 |
|---|---|---|---|---|
gemini-2.5-flash-imagegemini-2.5-flash-image-previewgemini-3.1-flash-image-previewgemini-3-pro-image-preview | 支持 | 支持(在 contents.parts 中传入图片) | inlineData | Gemini 原生多模态生成,可同时返回文本与图片 |
gpt-image-2 | 支持 | 支持(含蒙版局部重绘) | png / jpeg / webp | 指令跟随强、文字渲染准、尺寸灵活、高保真图像输入 |
doubao-seedream-5-0-pro-260628 | 支持 | 支持(单图 / 多图) | png / jpeg | 交互编辑(任意标记、坐标定位)、中文场景表现好 |
qwen-image-3.0-pro | 支持 | 支持(1~3 张参考图) | png | 多图参考编辑、提示词智能改写、单次可出 1~6 张 |
参数集按厂家协议区分四类图像接口分别使用 Gemini、OpenAI、火山方舟和阿里云百炼的原生请求结构,端点、鉴权头、参数名与取值范围不可混用。请按对应章节调用。
Gemini 原生生图
Google Gemini 图像模型使用原生 generateContent 接口。模型 ID 放在 URL 路径中,请求内容放在 contents[].parts[],生成配置放在 generationConfig。
| 项 | 值 |
|---|---|
| 模型 ID | gemini-2.5-flash-imagegemini-2.5-flash-image-previewgemini-3.1-flash-image-previewgemini-3-pro-image-preview |
| 端点 | POST /v1beta/models/{model}:generateContent |
| Header | x-goog-api-key: sk-tokgate-你的APIKey |
| 返回方式 | candidates[].content.parts[].inlineData |
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
contents | array<object> | 必填 | Gemini 原生内容数组。用户输入通常使用 role: "user"。 |
contents[].parts[].text | string | 必填 | 生成或编辑指令,描述期望的最终画面。 |
contents[].parts[].inlineData | object | 可选 | 图生图输入,包含图片的 mimeType 与 Base64 data。可与文本 part 放在同一个 parts 数组。 |
generationConfig.responseModalities | array<string> | 可选 | 返回模态,生图时使用 ["TEXT", "IMAGE"];只需要图片时可仅保留 "IMAGE"。 |
generationConfig.imageConfig.aspectRatio | string | 可选 | 输出宽高比,例如 1:1、16:9、9:16。可用值以具体模型为准。 |
generationConfig.imageConfig.imageSize | string | 可选 | 输出尺寸档位,例如 1K、2K。支持范围以具体模型为准。 |
调用示例
curl -X POST "https://api.tokgate.io/v1beta/models/gemini-3.1-flash-image-preview:generateContent" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-***" \
-d '{
"contents": [{
"role": "user",
"parts": [{"text": "生成一张极简产品摄影:白色陶瓷香薰机放在浅色木桌上,清晨自然侧光,1:1 构图"}]
}],
"generationConfig": {
"responseModalities": ["TEXT", "IMAGE"],
"imageConfig": {"aspectRatio": "1:1", "imageSize": "2K"}
}
}'
curl -X POST "https://api.tokgate.io/v1beta/models/gemini-2.5-flash-image:generateContent" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-***" \
-d '{
"contents": [{
"role": "user",
"parts": [
{"text": "保留商品外形与 Logo,把背景改为清晨海边的木桌,自然侧光"},
{"inlineData": {"mimeType": "image/png", "data": "BASE64_IMAGE_DATA"}}
]
}],
"generationConfig": {"responseModalities": ["TEXT", "IMAGE"]}
}'
响应图片
{
"candidates": [{
"content": {
"role": "model",
"parts": [{
"inlineData": {
"mimeType": "image/png",
"data": "iVBORw0KGgoAAAANSUhEUgAA..."
}
}]
}
}]
}
遍历 candidates[].content.parts[],读取带有 inlineData 的 part;按 mimeType 解码 Base64 data 并保存图片。
上游参考:Gemini 图像生成文档
gpt-image-2
OpenAI 的图像生成模型,支持文生图与图像编辑,尺寸灵活、支持高保真图像输入。
| 项 | 值 |
|---|---|
| model_id | gpt-image-2 |
| 文生图端点 | POST /v1/images/generations |
| 图生图端点 | POST /v1/images/edits |
| 返回方式 | Base64(data[].b64_json) |
gpt-image-2 文生图
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 必填 | 固定 gpt-image-2。 |
prompt | string | 必填 | 图像文本描述,GPT Image 系列最长 32000 字符。 |
n | integer | 可选 | 生成张数,1 ~ 10,默认 1。 |
size | string | 可选 | 输出尺寸,默认 auto。常用档位:1024x1024、1536x1024、1024x1536、2048x2048、2048x1152、3840x2160、2160x3840。也可在约束范围内自定义 宽x高:长边 ≤ 3840px,宽高均为 16px 的整数倍,长边/短边比例 ≤ 3:1,总像素在 655,360 ~ 8,294,400 之间。方图生成最快。 |
quality | string | 可选 | auto(默认)/ low / medium / high。low 适合草稿、缩略图与快速迭代;medium/high 用于成品。总像素超过 2560x1440(约 368 万像素,俗称 2K)的输出目前仍属实验性。 |
output_format | string | 可选 | png(默认)/ jpeg / webp。延迟敏感场景优先 jpeg,比 png 更快。 |
output_compression | integer | 可选 | 压缩率 0 ~ 100,默认 100。仅 jpeg 与 webp 生效。 |
background | string | 可选 | opaque / auto(默认)。gpt-image-2 不支持透明背景,传 transparent 会直接报错。 |
moderation | string | 可选 | 内容审核强度,auto(默认,标准过滤)或 low(宽松过滤)。 |
user | string | 可选 | 终端用户标识,便于滥用排查。 |
需要透明 PNG 时换模型gpt-image-2 与其日期版本均不支持 background: "transparent"。需要透明底时请改用支持透明背景的 GPT Image 版本,或在后处理阶段抠图。
curl -X POST https://api.tokgate.io/v1/images/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-***" \
-d '{
"model": "gpt-image-2",
"prompt": "一只戴着飞行员护目镜的柯基坐在复古双翼飞机驾驶座上,胶片质感,暖色调,机身写着 tokgate.io",
"n": 1,
"size": "1536x1024",
"quality": "high",
"output_format": "png"
}'
import base64
from openai import OpenAI
client = OpenAI(
api_key="sk-***",
base_url="https://api.tokgate.io/v1",
)
resp = client.images.generate(
model="gpt-image-2",
prompt="一只戴着飞行员护目镜的柯基坐在复古双翼飞机驾驶座上,胶片质感,暖色调",
size="1536x1024",
quality="high",
output_format="png",
)
with open("corgi.png", "wb") as f:
f.write(base64.b64decode(resp.data[0].b64_json))
响应
{
"created": 1779348818,
"data": [
{ "b64_json": "iVBORw0KGgoAAAANSUhEUgAA..." }
],
"usage": {
"total_tokens": 1620,
"input_tokens": 52,
"output_tokens": 1568,
"input_tokens_details": { "text_tokens": 52, "image_tokens": 0 }
}
}
gpt-image-2 图生图
基于一张或多张源图 + 提示词生成编辑后的图像。请求体为 multipart/form-data,不是 JSON。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 必填 | 固定 gpt-image-2。 |
image | file / file[] | 必填 | 待编辑的源图。支持 PNG、WEBP、JPG。可传多张(多次传同名字段),多图时用于把不同图的元素组合到一张输出里。 |
prompt | string | 必填 | 编辑指令。要描述「最终整张图应该是什么样」,而不是只描述被擦掉的区域。 |
mask | file | 可选 | 蒙版 PNG,完全透明(alpha=0)的区域表示要重绘的位置。必须与待编辑图同格式、同尺寸,小于 50MB,且带 alpha 通道;传多图时蒙版只作用于第一张 image。 |
n | integer | 可选 | 生成张数,1 ~ 10,默认 1。 |
size | string | 可选 | 同文生图,默认 auto(跟随输入图)。 |
quality | string | 可选 | 同文生图。 |
output_format | string | 可选 | 同文生图。 |
output_compression | integer | 可选 | 同文生图,仅 jpeg / webp 生效。 |
background | string | 可选 | 同文生图,gpt-image-2 不支持 transparent。 |
user | string | 可选 | 终端用户标识。 |
蒙版是引导,不是像素级裁剪GPT Image 的蒙版编辑基于提示词理解,不保证严格贴合蒙版形状,有可能改动蒙版之外的区域。要保住不该动的内容,就在 prompt 里明确写出「保持 ×× 不变」。gpt-image-2 不支持 input_fidelity 参数——该模型对所有输入图像始终按最高保真度处理,无需也不允许配置;这也意味着带参考图的编辑请求,输入图像 Token 消耗可能更高。
curl -X POST https://api.tokgate.io/v1/images/edits \
-H "Authorization: Bearer sk-***" \
-F "model=gpt-image-2" \
-F "image=@product.png" \
-F "mask=@product-mask.png" \
-F "prompt=保持商品本体、Logo 与包装文字完全不变,把背景换成清晨海边的木质桌面,自然侧光,浅景深" \
-F "size=1024x1024" \
-F "output_format=png"
import base64
from openai import OpenAI
client = OpenAI(
api_key="sk-***",
base_url="https://api.tokgate.io/v1",
)
resp = client.images.edit(
model="gpt-image-2",
image=[open("product.png", "rb")],
mask=open("product-mask.png", "rb"),
prompt="保持商品本体、Logo 与包装文字完全不变,把背景换成清晨海边的木质桌面",
size="1024x1024",
)
with open("product-edited.png", "wb") as f:
f.write(base64.b64decode(resp.data[0].b64_json))
响应结构与文生图一致,usage.input_tokens_details.image_tokens 会计入输入图像的 Token 消耗。
使用限制与内容审核
- 延迟:复杂提示词的处理最长可能耗时约 2 分钟。
- 文字渲染:已大幅改善,但精确的文字排布与清晰度仍可能不稳定。
- 一致性:多次生成之间,重复出现的角色或品牌元素的视觉一致性无法完全保证。
- 构图控制:结构化或对布局敏感的构图中,元素的精确摆放仍可能有偏差。
- 内容审核:所有提示词与生成图像都会按内容政策过滤。命中审核时返回
error.type = "image_generation_user_error"、error.code = "moderation_blocked",并可能带error.moderation_details(含moderation_stage:input/output/unknown,以及粗粒度categories标签)。这类用户可纠正的错误不要自动重试,需先修改提示词或输入图像。
上游参考:OpenAI Image generation 指南
seedream-5-0
火山方舟 Doubao Seedream 5.0 pro。支持文生图与单 / 多图生图,并新增交互编辑:可用手绘标记或坐标标签精确指定编辑位置。
| 项 | 值 |
|---|---|
| model_id | doubao-seedream-5-0-pro-260628 |
| 端点 | POST /api/v3/images/generations |
| 返回方式 | url(默认,24 小时有效)或 b64_json |
能力矩阵
| 能力 | Seedream 5.0 pro |
|---|---|
| 文生图 | 支持 |
| 单图 / 多图生图 | 支持 |
| 交互编辑 | 支持(该系列独有) |
| 文生组图 | 暂不支持 |
| 单图 / 多图生组图 | 暂不支持 |
| 流式输出 | 暂不支持 |
| 联网搜索 | 暂不支持 |
| 分辨率档位 | 1K、2K(默认 2K) |
| 输出格式 | png、jpeg |
| 提示词优化模式 | 标准模式 standard、极速模式 fast |
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 必填 | doubao-seedream-5-0-pro-260628 |
prompt | string | 必填 | 生成或编辑指令。交互编辑时可内嵌 <point> / <bbox> 坐标标签。 |
image | string / array | 可选 | 参考图。传入即为图生图 / 编辑模式。支持公网 URL 或 Base64(data:image/png;base64,<数据>,MIME 需小写)。多图传数组。 |
size | string | 可选 | 两种写法,不可混用:① 分辨率档位 1K / 2K(推荐,默认 2K);② 具体像素 宽x高,需同时满足总像素 921600 ~ 4624220、宽高比 [1/16, 16]。 |
response_format | string | 可选 | url(返回下载链接)或 b64_json(返回 Base64)。 |
output_format | string | 可选 | png 或 jpeg。 |
watermark | boolean | 可选 | true 时在图片右下角加「AI生成」水印;false 不加。 |
optimize_prompt_options | object | 可选 | 提示词优化模式,如 {"mode": "fast"}。fast 出图更快,适合对时延敏感的业务。 |
分辨率档位对应的宽高像素
| 宽高比 | 1K | 2K |
|---|---|---|
| 1:1 | 1024 × 1024 | 2048 × 2048 |
| 4:3 | 1152 × 864 | 2368 × 1776 |
| 3:4 | 864 × 1152 | 1776 × 2368 |
| 16:9 | 1424 × 800 | 2816 × 1584 |
| 9:16 | 800 × 1424 | 1584 × 2816 |
| 3:2 | 1248 × 832 | 2496 × 1664 |
| 2:3 | 832 × 1248 | 1664 × 2496 |
| 21:9 | 1568 × 672 | 3136 × 1344 |
调用示例
curl -X POST https://api.tokgate.io/api/v3/images/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-***" \
-d '{
"model": "doubao-seedream-5-0-pro-260628",
"prompt": "国潮插画风格的中秋节礼盒主图,深青底色配烫金纹样,正中一盒月饼,光影柔和,画面留白规整",
"size": "2K",
"output_format": "png",
"watermark": false
}'
curl -X POST https://api.tokgate.io/api/v3/images/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-***" \
-d '{
"model": "doubao-seedream-5-0-pro-260628",
"prompt": "根据手绘草图编辑图像:在左下角标记区域添加一叠杂志,在右侧标记区域添加一杯带杯碟的咖啡,移除所有草图线条,保持构图不变,让新增物体自然融入原场景",
"image": "https://your-cdn.example.com/sketch.png",
"size": "2K",
"output_format": "png",
"watermark": false
}'
{
"model": "doubao-seedream-5-0-pro-260628",
"image": ["https://your-cdn.example.com/a.png", "https://your-cdn.example.com/b.png"],
"prompt": "将图1179 283 796 986 的主体放到图2118 331 933 871 位置",
"size": "2K"
}
交互编辑的两种定位方式① 任意标记 + 自然语言:在原图上画色块或圈注,再用「在蓝色框内添加一个电视机」这类描述指定位置;② 坐标精准定位:在 prompt 里用 <point> 或 <bbox> 标签给出坐标。
使用限制
- 参考图格式:jpeg、png、webp、bmp、tiff、gif、heic、heif。
- 参考图尺寸:宽高比 [1/16, 16];宽、高均需大于 14 px;总像素不超过 6000 × 6000(36,000,000 px)。
- 参考图大小:单张不超过 30 MB;最多传入 10 张。
- 数量约束:输入参考图数量 + 最终生成图片数量 ≤ 15 张。
- 产物有效期:
response_format: "url"返回的图片链接仅保留 24 小时,请及时下载转存。
上游参考:火山方舟 Doubao Seedream 5.0 pro 教程
qwen-image-3.0-pro
千问图像生成与编辑 3.0。同时支持文生图(T2I)与图生图 / 图像编辑(I2I),可基于 1 ~ 3 张参考图结合编辑指令做精确编辑。请求体结构与前两个模型不同:提示词和参考图都放在 input.messages 里,其余控制参数放 parameters。
| 项 | 值 |
|---|---|
| model_id | qwen-image-3.0-pro |
| 调用方式 | 同步返回(非异步任务) |
| 输出格式 | PNG |
| 分辨率范围 | 总像素 512×512 ~ 2048×2048;不指定 size 时由模型按提示词自动推荐 |
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 必填 | qwen-image-3.0-pro |
input.messages | array<object> | 必填 | 仅支持单轮,数组里有且只有一个对象,含 role 与 content。 |
input.messages[].role | string | 必填 | 固定 user。 |
input.messages[].content | array<object> | 必填 | 文生图:仅一个 {"text": "..."}。图生图:1 ~ 3 个 {"image": "..."} 加 1 个 {"text": "..."}。 |
…content[].image | string | 可选 | 参考图,公网 URL(HTTP / HTTPS)或 Base64(data:{MIME};base64,{数据})。多图时按数组顺序定义图像顺序。 |
…content[].text | string | 必填 | 正向提示词,中英文均可。只能传一个 text,不传或传多个会报错。 |
parameters.prompt_extend | boolean | 可选 | 提示词智能改写,默认 true(建议开启)。提示词较短时效果提升明显。 |
parameters.n | integer | 可选 | 输出张数,1 ~ 6,默认 1。 |
parameters.size | string | 可选 | 输出分辨率,格式为 宽*高(用星号,不是 x),如 1024*1024。像素范围 512*512 ~ 2048*2048。不传由模型自动推荐。 |
parameters.negative_prompt | string | 可选 | 反向提示词,描述不希望出现的内容。 |
parameters.seed | integer | 可选 | 随机种子,[0, 2147483647]。固定后生成结果相对稳定。 |
parameters.watermark | boolean | 可选 | 是否加水印,默认 false。 |
调用示例
curl -X POST https://api.tokgate.io/api/v1/services/aigc/multimodal-generation/generation \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-***" \
-d '{
"model": "qwen-image-3.0-pro",
"input": {
"messages": [
{
"role": "user",
"content": [
{ "text": "竖幅户外人像摄影,午后逆光的欧洲街角报刊亭,藤蔓与橙色小花从檐口垂落,画面右侧是被阳光照亮的街道,暖色胶片质感,细腻颗粒,浅景深" }
]
}
]
},
"parameters": {
"prompt_extend": true,
"n": 1,
"size": "1024*1536"
}
}'
curl -X POST https://api.tokgate.io/api/v1/services/aigc/multimodal-generation/generation \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-***" \
-d '{
"model": "qwen-image-3.0-pro",
"input": {
"messages": [
{
"role": "user",
"content": [
{ "image": "https://your-cdn.example.com/portrait.png" },
{ "text": "保留输入图中人物的面部特征与黑色长发,换成香槟色真丝衬衫外搭深灰西装外套,场景改为现代简约的高端咖啡店,午后侧光,背景自然虚化" }
]
}
]
},
"parameters": {
"prompt_extend": true,
"negative_prompt": "变形的手指,文字水印,低分辨率",
"seed": 42
}
}'
响应结构
{
"output": {
"choices": [
{
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": [
{ "image": "https://.../result.png?Expires=..." }
]
}
}
]
},
"usage": {
"width": 1024,
"height": 1536,
"image_count": 1
},
"request_id": "571ae02f-5c9d-436c-83c2-f221e6df0xxx"
}
{
"request_id": "31f808fd-8eef-9004-xxxxx",
"code": "InvalidApiKey",
"message": "Invalid API-key provided."
}
| 字段 | 说明 |
|---|---|
output.choices[].finish_reason | 自然结束时为 stop。 |
output.choices[].message.content[].image | 生成图像的 URL,格式为 PNG,链接有效期 24 小时。 |
usage.width / usage.height | 实际生成图像的宽高(像素)。 |
usage.image_count | 本次生成的图片张数。 |
request_id | 请求唯一标识,排查问题时请提供该值。 |
code / message | 仅失败时返回,指示错误原因。 |
使用限制
- 输入图格式:JPG、JPEG、PNG、BMP、TIFF、WEBP、GIF。
- 输入图分辨率:建议宽和高均在 384 ~ 2048 像素之间。
- 输入图大小:单张不超过 10 MB。
- 参考图数量:图生图场景 1 ~ 3 张,多图按数组顺序对应。
- 轮次:当前仅支持单轮,
messages里只能有一个对象。 - 产物有效期:任务数据与图像 URL 仅保留 24 小时,超时自动清除。
- 该模型在上游处于邀测阶段,若返回模型不可用,请通过联系页申请开通。
通用建议
- 及时转存产物:Seedream 与 Qwen Image 返回的 URL 仅保留 24 小时;Gemini 与 GPT Image 返回 Base64。生产环境都应及时解码或下载并转存。
- 合理设置客户端超时:图像生成是同步接口但耗时明显长于对话,高质量档位更慢,客户端超时不要设成几秒。
- 提示词写「最终画面」:尤其做编辑时,描述完成后的整张图应该是什么样,并显式写出要保持不变的部分。
- 先用低成本档位试:
gpt-image-2的quality: "low"、seedream的1K档、optimize_prompt_options.mode: "fast"都适合调提示词阶段使用,定稿后再切高质量档。 - Base64 传图注意 MIME:格式为
data:image/png;base64,<数据>,MIME 类型必须小写且与真实格式一致。
