curl --request POST \
--url https://models.kapon.cloud/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "gpt-image-2",
"prompt": "A futuristic skyline at dusk",
"size": "1024x1024",
"quality": "medium"
}
'
{
"created": 1762789802,
"data": [
{
"b64_json": "iVBORw0KGgoAAAANSUhEUg...",
"revised_prompt": "A futuristic skyline at dusk with neon lights"
}
],
"usage": {
"input_tokens": 12,
"output_tokens": 4096,
"total_tokens": 4108
}
}图像
图像生成与编辑(Token 计费)
通过 OpenAI 兼容接口使用 gpt-image-2 token 计费通道进行图像生成与编辑
POST
/
v1
/
images
/
generations
curl --request POST \
--url https://models.kapon.cloud/v1/images/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "gpt-image-2",
"prompt": "A futuristic skyline at dusk",
"size": "1024x1024",
"quality": "medium"
}
'
{
"created": 1762789802,
"data": [
{
"b64_json": "iVBORw0KGgoAAAANSUhEUg...",
"revised_prompt": "A futuristic skyline at dusk with neon lights"
}
],
"usage": {
"input_tokens": 12,
"output_tokens": 4096,
"total_tokens": 4108
}
}本文适用于
SVG 要求
显式非空
记录返回的
Multipart 上传使用同一组参数;多参考图按顺序重复
同步成功响应的
用创建响应中的
两款模型的标准价格按每百万 token 计算:文字输入 $5、图片输入 $8、图片输出 $30;账号的人工价格和折扣仍按配置生效。SVG 的参考图用量和
Python SDK:
文生图
常用值:
具体可用尺寸仍以账号实际路由到的通道能力为准。
平台对 URL 输出采用本地托底策略:
改图
多参考图示例:
查询任务:
异步任务要求平台已配置公开可访问的对象存储。未配置时,创建任务会返回
单张预估只用于成本预估,实际账单以消费日志和控制台「模型价格」页面为准。
gpt-image-2 token 计费通道,以及需要更完整 OpenAI Images API 兼容能力的账号。
如果你的账号开通的是按张计费 SKU,请优先参考 图像生成与编辑(按张计费)。按张计费 SKU 只承诺稳定尺寸、quality=low/auto、PNG、URL 输出和 n=1。
本文不适用按张计费逆向渠道准入验收。按张渠道验收以按张计费文档中的稳定参数、edit 能力和异步任务标准为准。
GPT Image 2.6
使用准确模型名gpt-image-2.6-flare 或 gpt-image-2.6-sunburst,调用 /v1/images/generations、/v1/images/edits,或者在这两个路径后加 /async 创建平台图片任务。官方与 Summer 渠道需要分别开通模型和对应格式权限;实际能力以各自渠道验证结果为准。
| 参数 | 用法 |
|---|---|
complexity | low、medium 或 high;省略时由上游采用默认 high。它控制构思复杂度,与 quality 独立。 |
quality | low、medium、high、xhigh、max 或 auto,显式值原样传递。 |
stream、partial_images | 同步栅格图可设 stream=true,仅支持 n=1,并用 0–3 指定中间图片数量;响应是逐条事件流。异步接口不接受 stream=true;非流式多图仍取决于渠道配置。 |
markup | 仅编辑接口:与第一张图同尺寸、包含透明像素的 PNG 标注层。可用文件上传,或用 JSON 的 {"image_url":"..."} 引用 HTTPS 或数据 URL。不能与 mask 或 prompt_rewriter 同时使用。 |
output_format | png、jpeg、webp;具备相应权限的 2.6 渠道也支持 SVG 生图、GIF 生图和 GIF 编辑。编辑仍不支持 SVG。 |
frame_count | 仅 GIF 生图或编辑;整数 2–16,省略时由上游采用默认 9。 |
frame_duration_ms | 仅 GIF 生图或编辑;整数 20–2000 毫秒,省略默认 200;上游编码为最接近的 10 毫秒,平台保留请求原值。 |
svg | 仅 SVG 生图,可用 {"model":"作者模型名"} 显式选择作者,也可指定 reasoning.effort。未传 svg、svg: null、空对象、缺省 model 或空白 model 时使用渠道配置的平台默认作者,保留已传的 reasoning。 |
n=1;SVG 和 GIF 不支持流式、partial_images、output_compression 或 prompt_rewriter。svg.model 的可选值与权限由上游账号决定,平台需要该准确模型的价格才能结算;请勿将图像模型与 SVG 作者模型混为一谈。
管理员可在渠道的自定义参数中按公开图像模型配置平台默认作者;Flare 与 Sunburst 分别配置,不共享默认值。例如:
{
"image_capabilities": {
"gpt-image-2.6-sunburst": {
"svg_default_author_model": "<已核实可用的作者模型 ID>"
}
}
}
svg.model 优先于该默认值,非法或缺价的显式作者不会回退。平台在调用上游前按当前用户及模型分组解析作者 Token 价格,冻结后将同一作者明确写入上游 svg.model;渠道普通参数覆盖、执行中改价或异步排队期间修改默认配置不会替换该请求已冻结的作者。结算继续核对回包的 svg_usage.model,作者用量与图像用量合并为一笔消费。
缺少或无效的默认配置返回 503 / svg_default_author_missing,作者有效 Token 价格无法解析返回 503 / svg_author_price_missing;均为平台配置错误,在上游调用及生成预扣之前拦截。默认值不会从价格表猜选,也不是上游隐式默认值。渠道须具备上游 SVG 作者选择权限;仅允许省略 svg 的账号不在此默认作者模式的支持范围内。上游权限约束参见 Images generate API。
GIF 编辑也不支持 mask;本接口不承诺 markup 与 GIF 的组合。透明背景请使用 PNG 或 WebP。GIF 的 size 指每一完成帧,可选 auto 或宽高均为正 16 倍数的 WIDTHxHEIGHT。帧数、每帧尺寸及 n 共同受模型的总请求像素预算限制;官方未公开两款模型 GIF 的具体边长和预算数值,由上游校验并返回错误。不要将下文静态图片的最小像素数套到 GIF,或从静态图 4K 能力推断 GIF 也支持 4K。
上述 GIF 合同于 2026-11-06 核对 OpenAI Image generation guide 和 Images Edits Reference。Reference 的 655350 毫秒描述 GIF 编码时长上限,不是请求允许上限;请求遵循指南的 20–2000 毫秒范围。
同步请求默认返回 data[].b64_json;response_format=url 将 SVG 或 GIF 原字节存入对象存储,并返回带对应扩展名及文件类型的链接。异步任务完成后返回 data[].url,需配置对象存储;当前图片编辑任务不接受无法验证归属的 file_id,请使用上传文件或可访问的图片 URL。
若渠道只返回远程图片 URL,平台下载的单个上游文件不能超过 64 MiB;上游直接返回的 Base64 不受这个下载限制。
curl -N "https://models.kapon.cloud/v1/images/generations" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"model":"gpt-image-2.6-flare","prompt":"一只在窗边休息的猫","complexity":"high","quality":"medium","stream":true,"partial_images":2}'
curl "https://models.kapon.cloud/v1/images/edits" \
-H "Authorization: Bearer $TOKEN" \
-F "model=gpt-image-2.6-sunburst" -F "image=@base.png" -F "markup=@annotation.png" \
-F "prompt=将圈出的杯子改为蓝色" -F "complexity=medium"
curl "https://models.kapon.cloud/v1/images/generations" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"model":"gpt-image-2.6-flare","prompt":"简洁的树叶图标","output_format":"svg","n":1,"svg":{"model":"gpt-6-sol","reasoning":{"effort":"low"}}}'
curl "https://models.kapon.cloud/v1/images/generations/async" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"model":"gpt-image-2.6-flare","prompt":"一盏轻轻摇动的灯笼","output_format":"gif","frame_count":9,"frame_duration_ms":200}'
id,使用 GET /v1/images/generations/{id} 或 GET /v1/images/edits/{id} 查询对应任务。只有任务所属用户可以读取;生成结果和费用状态分别显示。
从静态参考图生成 GIF
下面两种输入都调用编辑接口,参考图会随请求传给上游。示例使用n=1;将 model 换为另一款 2.6 模型时,先确认该渠道已开通对应模型的 GIF 权限。
JSON 支持 HTTPS 参考图和 Base64 data URL。将示例地址替换为可访问的 PNG;内联时替换为 data:image/png;base64,<REFERENCE_PNG_BASE64>,其中占位部分须为原图完整 Base64:
curl "https://models.kapon.cloud/v1/images/edits" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2.6-flare",
"images": [{"image_url": "https://example.com/red-circle.png"}],
"prompt": "Animate the red circle from the reference image moving slowly across the white background. Keep the circle red and the background white.",
"size": "512x512", "quality": "low", "complexity": "low",
"output_format": "gif", "frame_count": 9, "frame_duration_ms": 100,
"n": 1, "response_format": "b64_json"
}'
image[]:
curl "https://models.kapon.cloud/v1/images/edits" \
-H "Authorization: Bearer $TOKEN" \
-F "model=gpt-image-2.6-sunburst" -F "image=@red-circle.png" \
-F "prompt=Animate the red circle moving slowly across the white background. Keep the circle red and the background white." \
-F "size=512x512" -F "quality=low" -F "complexity=low" \
-F "output_format=gif" -F "frame_count=9" -F "frame_duration_ms=100" \
-F "n=1" -F "response_format=b64_json"
data[].b64_json 是完整 GIF 的 Base64;解码后保存为 .gif,逐帧检查画布、帧数、时长和运动。请求其他合法参数(如 3 帧、230 毫秒)时仍按实际 GIF 编码核对;同时省略两个帧参数应由上游采用 9 帧、200 毫秒。不要把响应回写参数或一张静态图当作动画证据。
图生 GIF 平台异步任务
JSON 与 multipart 均可将上述路径改为POST /v1/images/edits/async,并使用 response_format=url;图像输入、顺序、质量、复杂度及帧参数会保存在任务快照中。以下为 JSON 示例:
curl "https://models.kapon.cloud/v1/images/edits/async" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2.6-sunburst",
"images": [{"image_url": "https://example.com/red-circle.png"}],
"prompt": "Animate the red circle moving slowly across the white background.",
"size": "512x512", "quality": "low", "complexity": "low",
"output_format": "gif", "frame_count": 9, "frame_duration_ms": 100,
"n": 1, "response_format": "url"
}'
id 查询 GET /v1/images/edits/{id}。completed 的 data[].url 可下载完整动画,文件扩展名为 .gif,MIME 为 image/gif;重复读取不会重新生成。failed 时查看 error,不要把失败终态当作有产物的成功。任务归属隔离及结算恢复沿用现有图片任务规则。此 /async 为 OneHub 平台扩展,需要已配置对象存储,不是 OpenAI 原生异步接口。
图生 GIF 渠道支持矩阵
| 渠道 | Flare / Sunburst | JSON HTTPS / data URL、multipart | 同步 / 平台异步 | 能力条件 |
|---|---|---|---|---|
| OpenAI 官方 | 两款准确模型名均接入 | 编辑入口保留参考图和帧参数 | Base64 / 托管 GIF URL | 上游账号须具备相应模型 GIF preview 权限;官方合同不代表每个账号均可用 |
| Summer | 两款准确模型名均接入 | 沿用编辑适配,保留参考图顺序和帧参数 | Base64 / 托管 GIF URL | 需逐模型、逐入口实测确认渠道支持,不能用文生 GIF 成功替代图生 GIF |
| 其他兼容渠道 | 以实际模型映射为准 | 取决于该渠道编辑协议及适配 | 取决于渠道与对象存储配置 | 未验证不承诺;保留上游权限不足、不支持及像素预算错误 |
svg_usage 中作者模型的用量分别按各自冻结的价格计算,并作为同一笔请求结算。上游缺少完整用量时不会套用 2.5 估算:图片结果仍可获取,同步响应的 billing_status=failed 或异步任务的 billing_status=settled_failure 及 billing_failure_reason 表明需要核对账务;流式请求会返回用量缺失错误事件。
若同步结果的响应头包含 X-OneHub-Billing-Status: pending,表示结果已返回、账务正在恢复处理;请通过消费日志核对,不要因该状态重复提交生成请求。流式请求在同一情况下会返回 billing_settlement_pending 错误事件。
若响应头为 X-OneHub-Billing-Status: failed,表示结果已返回但结算未完成,需人工核对。上游未明确多张流式结果的用量关系,因此平台在提交上游前拒绝 stream=true 且 n>1 的请求。
GPT Image 2.5
gpt-image-2.5-sunburst 和 gpt-image-2.5-flare 复用本文的生图、编辑及平台异步接口。使用前需要在 OpenAI 官方或兼容渠道开通对应模型;将示例中的 model 替换为准确模型名即可。
两款模型支持 low、medium、high、xhigh、max、auto。单次出图数量按各模型的渠道能力独立配置,未配置时最多 1 张。返回 URL 需要平台图片存储配置。
默认按 token 计费:文本输入 $5/M、缓存文本 $1.25/M、图片输入 $8/M、缓存图片 $2/M、图片输出 $30/M(M 为百万 tokens;客户价以账号配置为准)。2.5 不使用 gpt-image-2-low-* 按张 SKU。费率来源:OpenAI 定价。
有上游 usage 时按该用量结算;缺失时按成功返回图片数量、尺寸和 2.5 质量系数估算。auto 的用量取决于上游选择,缺失 usage 的结果只代表平台估算。实际模型供给和参数支持需以渠道验收为准。
快速开始
curl -X POST "https://models.kapon.cloud/v1/images/generations" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "A futuristic skyline at dusk",
"size": "1024x1024",
"quality": "medium",
"response_format": "b64_json"
}'
from openai import OpenAI
client = OpenAI(base_url="https://models.kapon.cloud/v1", api_key="$TOKEN")
result = client.images.generate(
model="gpt-image-2",
prompt="A futuristic skyline at dusk",
size="1024x1024",
quality="medium",
response_format="b64_json",
)
print(result.data[0].b64_json)
文生图 /v1/images/generations
参数表
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
prompt | string | 是 | 图像描述文本 |
model | string | 是 | 固定 gpt-image-2 |
n | integer | 否 | 生成数量,默认 1;部分兼容渠道仅支持 n=1 |
size | string | 否 | widthxheight 或 auto,默认 1024x1024 |
quality | string | 否 | low / medium / high / auto;平台默认 low |
background | string | 否 | transparent / opaque / auto |
output_format | string | 否 | png / jpeg;webp 为官方字段但不保证所有渠道可用 |
output_compression | integer | 否 | 0-100,仅 JPEG / WebP 生效 |
response_format | string | 否 | url / b64_json,默认 b64_json |
moderation | string | 否 | low / auto |
user | string | 否 | 终端用户标识 |
stream 和 partial_images 是 OpenAI 官方定义的字段,但 gpt-image-2 官方标注不支持流式图片生成。传入时不会返回可用图片流事件。分辨率规则
token 计费通道按 OpenAI 兼容能力处理静态图片尺寸。size 参数格式为 widthxheight 或 auto,常见约束如下;GIF 请使用上文的每帧尺寸和总请求预算规则。
| 约束 | 规则 |
|---|---|
| 最大边长 | 任一边不超过 3840 px |
| 最小总像素 | width x height 不低于 655,360 |
| 最大总像素 | width x height 不超过 8,294,400 |
| 对齐要求 | 宽和高都必须是 16 的倍数 |
| 宽高比限制 | 长边 : 短边不超过 3:1 |
size | 用途 |
|---|---|
auto | 模型根据 prompt 自动选择尺寸 |
1024x1024 | 通用方图 |
1536x1024 | 横版 3:2 |
1024x1536 | 竖版 2:3 |
2048x2048 | 2K 方图 |
2048x1152 | 2K 横版 16:9 |
1152x2048 | 2K 竖版 9:16 |
响应体
{
"created": 1762789802,
"data": [
{
"b64_json": "iVBORw0KGgoAAAANSUhEUg...",
"revised_prompt": "A futuristic skyline at dusk with neon lights"
}
],
"usage": {
"input_tokens": 12,
"output_tokens": 4096,
"total_tokens": 4108
}
}
| 字段 | 说明 |
|---|---|
created | 创建时间戳 |
data[].b64_json | Base64 编码图片,response_format=b64_json 时返回 |
data[].url | 图片 URL,response_format=url 时返回 |
data[].revised_prompt | 模型优化后的提示词 |
usage | token 用量;token 计费通道会优先按平台记录或上游返回的 usage 结算 |
URL 输出
设置response_format=url 可获取图片 URL:
result = client.images.generate(
model="gpt-image-2",
prompt="A clean studio product photo of a matte white ceramic mug",
size="1024x1024",
quality="low",
response_format="url",
)
print(result.data[0].url)
- 请求图片结果。
- 将图片转存到平台对象存储。
- 在
data[].url返回可访问 URL。
- 若平台已配置对象存储,返回
data[].url。 - 若未配置对象存储,返回
image_url_not_available。 - 不会静默降级为
b64_json。
改图 /v1/images/edits
JSON 请求体
通过images[].image_url 或 images[].file_id 指定底图:
curl -X POST "https://models.kapon.cloud/v1/images/edits" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "换种风格",
"size": "1024x1024",
"quality": "medium",
"images": [
{ "image_url": "https://example.com/base-image.png" }
]
}'
curl -X POST "https://models.kapon.cloud/v1/images/edits" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "参考第 1 张的主体轮廓、第 2 张的配色和第 3 张的材质,生成一张干净的电商主图",
"size": "1024x1024",
"quality": "high",
"images": [
{ "image_url": "https://example.com/reference-subject.png" },
{ "image_url": "https://example.com/reference-color.png" },
{ "image_url": "https://example.com/reference-texture.png" }
]
}'
Multipart 上传
curl -X POST "https://models.kapon.cloud/v1/images/edits" \
-H "Authorization: Bearer $TOKEN" \
-F "model=gpt-image-2" \
-F "image=@base.png" \
-F "mask=@mask.png" \
-F "prompt=在天空中加入热气球"
改图参数表
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
prompt | string | 是 | 编辑指令 |
model | string | 是 | 固定 gpt-image-2 |
images | array | 否 | 输入图像列表,最多 14 张 |
images[].image_url | string | 否 | 图像的公开可访问 URL |
images[].file_id | string | 否 | 通过 Files API 上传后获得的文件 ID |
mask | object | 否 | 蒙版,结构同图像引用 |
size | string | 否 | 输出尺寸,默认 1024x1024 |
quality | string | 否 | low / medium / high / auto,默认 low |
background | string | 否 | transparent / opaque / auto |
input_fidelity | string | 否 | high / low |
output_format | string | 否 | png / jpeg |
output_compression | integer | 否 | 0-100 |
moderation | string | 否 | low / auto |
response_format | string | 否 | url / b64_json |
n | integer | 否 | 生成数量,默认 1 |
user | string | 否 | 终端用户标识 |
images[].image_url 和 images[].file_id 二选一。部分兼容渠道会由平台在内部改写为 multipart 请求以保证可执行,不影响对外接口形态。异步图片任务
平台提供托管异步图片任务接口。异步接口不是 OpenAI 官方后台任务协议,而是平台先创建image_<ULID> 任务,再由后台 worker 执行同步图像请求,最后通过轮询接口返回托管图片 URL。
文生图任务
curl -X POST "https://models.kapon.cloud/v1/images/generations/async" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "A clean studio product photo of a matte white ceramic mug",
"size": "1024x1024",
"quality": "low",
"response_format": "url"
}'
curl -X GET "https://models.kapon.cloud/v1/images/generations/{id}" \
-H "Authorization: Bearer $TOKEN"
改图任务
curl -X POST "https://models.kapon.cloud/v1/images/edits/async" \
-H "Authorization: Bearer $TOKEN" \
-F "model=gpt-image-2" \
-F "prompt=将这张图片转换为干净的电商主图" \
-F "response_format=url" \
-F "image=@/path/to/base.png"
| 状态 | 说明 |
|---|---|
pending | 排队中 |
in_progress | 后台执行中 |
completed | 已完成,读取 data[].url |
failed | 失败,读取 error.code / error.message |
storage_not_configured。
计费
token 计费通道按平台记录或上游返回的 token 用量结算:| 类型 | 价格口径 |
|---|---|
| text input | 按输入文本 token |
| cached text input | 按缓存命中输入 token |
| image input | 改图或多模态图片输入 token |
| image output | 图片输出 token |
按张计费和 token 计费的折扣、单价、账单字段不同。对账时以消费日志中的实际金额为准,不要把展示用 token bucket 当成额外账单行。
错误码
| 错误码 | 说明 |
|---|---|
image_url_not_available | 请求 URL 输出但平台未配置对象存储 |
n_not_supported | 当前通道不支持 n>1,请拆分请求 |
unsupported_image_input | 异步改图暂不支持该输入形式 |
content_policy_violation | 内容审核未通过 |
suspected_black_image_from_upstream | 返回疑似纯黑图,已拦截 |
OpenAPI 参考
本文档的交互式 API 参考覆盖 token 计费通道的完整请求体和响应体 schema。账号实际可用参数仍以控制台开通能力和运行时错误返回为准。Body
application/json
gpt-image-2 文生图请求体(对齐 types.ImageGenerationRequestDoc)
Response
200 - application/json
图像生成成功
对齐 types.ImageResponse