外观
Image-2 生图接口
本页介绍 OpenSky API 中 Image-2 生图模型的使用方式,包括文生图和图生图。接口采用原生 OpenAI 兼容格式,调用时只需要把 Base URL 换成 OpenSky API 的地址,并使用你自己的 API Key。
具体可用模型名称、价格和权限,请以控制台「模型广场」和你的账号分组权限为准。
特别说明:如果遇到生图超时的问题,请使用流式调用!
接口概览
| 场景 | 接口 |
|---|---|
| 文生图 | POST /v1/images/generations |
| 图生图 / 图片编辑 | POST /v1/images/edits |
完整请求地址:
text
https://api.oskyi.com/v1/images/generations
https://api.oskyi.com/v1/images/edits请求头:
http
Authorization: Bearer 你的API-Key文生图
文生图用于根据文字描述生成图片。
请求地址
text
POST https://api.oskyi.com/v1/images/generationsJSON 请求示例
bash
curl https://api.oskyi.com/v1/images/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer 你的API-Key" \
-d '{
"model": "gpt-image-2",
"prompt": "一张干净的科技风产品海报,蓝紫色灯光,高清,细节丰富",
"size": "1024x1024",
"quality": "auto",
"n": 1
}'常用参数
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
model | string | 是 | 生图模型名称,例如 gpt-image-2。实际名称以模型广场为准。 |
prompt | string | 是 | 图片生成提示词,描述你想要的画面、风格、主体、背景、构图等。 |
size | string | 否 | 图片尺寸。常用值:1024x1024、1536x1024、1024x1536、auto。Image-2 也可支持 WIDTHxHEIGHT 形式的自定义尺寸。 |
response_format | string | 否 | 图片返回的方式。默认值b64_json,支持返回图片URL:URL。 |
quality | string | 否 | 图片质量。常用值:auto、low、medium、high。质量越高,通常耗时和消耗越高。 |
background | string | 否 | 背景模式:auto、opaque、transparent。透明背景需要配合支持透明的格式。 |
output_format | string | 否 | 输出格式:png、jpeg、webp。 |
output_compression | number | 否 | 输出压缩质量,适用于 jpeg 或 webp,范围通常为 0 到 100。 |
moderation | string | 否 | 内容安全过滤强度,常用值:auto、low。 |
stream | boolean | 否 | 是否使用流式返回。碰到超时请使用该参数并填写 true。 |
尺寸说明
推荐优先使用以下尺寸:
| 尺寸 | 适合场景 |
|---|---|
1024x1024 | 方图、头像、图标、商品图 |
1536x1024 | 横图、海报、封面、横向展示图 |
1024x1536 | 竖图、手机壁纸、人物海报 |
auto | 让模型自动选择合适尺寸 |
Image-2 支持 WIDTHxHEIGHT 格式的自定义分辨率,例如:
json
{
"size": "1536x864"
}使用自定义尺寸时建议注意:
- 宽高必须为 16 的倍数。
- 宽高比例不要过于极端。
- 分辨率越大,生成时间和消耗通常越高。
- 如果请求失败,先改回
1024x1024、1536x1024或1024x1536测试。
图生图
图生图用于在已有图片的基础上生成新图片,也可以用于图片编辑、风格迁移、补充元素、改背景、组合多张参考图等。
请求地址
text
POST https://api.oskyi.com/v1/images/editsmultipart 请求示例
图生图通常使用 multipart/form-data 上传图片。
bash
curl https://api.oskyi.com/v1/images/edits \
-H "Authorization: Bearer 你的API-Key" \
-F "model=gpt-image-2" \
-F "image[]=@input.png" \
-F "prompt=保留主体人物不变,将背景改成未来科技城市夜景,整体风格写实,高清细节" \
-F "size=1024x1024" \
-F "quality=auto" \
-F "n=1"多图参考示例
如果接口和上游模型支持多张参考图,可以传入多个 image[]:
bash
curl https://api.oskyi.com/v1/images/edits \
-H "Authorization: Bearer 你的API-Key" \
-F "model=gpt-image-2" \
-F "image[]=@person.png" \
-F "image[]=@style-reference.png" \
-F "prompt=参考第二张图片的色彩和光影风格,重绘第一张人物照片,保持人物身份特征" \
-F "size=1024x1536" \
-F "quality=high"常用参数
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
model | string | 是 | 图生图模型名称,例如 gpt-image-2。实际名称以模型广场为准。 |
image[] | file | 是 | 输入图片。可上传一张或多张,是否支持多图以模型实际能力为准。 |
prompt | string | 是 | 编辑要求或生成目标,说明要保留什么、修改什么、生成什么。 |
size | string | 否 | 输出尺寸,例如 1024x1024、1536x1024、1024x1536、auto 或自定义尺寸。 |
response_format | string | 否 | 图片返回的方式。默认值b64_json,支持返回图片URL:URL。 |
quality | string | 否 | 输出质量:auto、low、medium、high。 |
background | string | 否 | 背景模式:auto、opaque、transparent。 |
input_fidelity | string | 否 | 对输入图的保真度控制,常用值:high、low。想尽量保留原图主体时可尝试 high。 |
mask | file / image reference | 否 | 蒙版图,用于指定需要编辑的区域。是否可用取决于上游模型支持情况。 |
output_format | string | 否 | 输出格式:png、jpeg、webp。 |
output_compression | number | 否 | 输出压缩质量,适用于 jpeg 或 webp。 |
moderation | string | 否 | 内容安全过滤强度,常用值:auto、low。 |
stream | boolean | 否 | 是否使用流式返回。碰到超时请使用该参数并填写 true。 |
返回结果
Image-2 通常返回 base64 图片数据。常见结构如下:
json
{
"created": 1780000000,
"data": [
{
"b64_json": "iVBORw0KGgoAAAANSUhEUgAA..."
}
],
"usage": {
"input_tokens": 120,
"output_tokens": 800,
"total_tokens": 920
}
}使用时可以将 data[0].b64_json 解码为图片文件。
Node.js 示例:
js
import fs from 'node:fs'
const b64 = response.data[0].b64_json
fs.writeFileSync('output.png', Buffer.from(b64, 'base64'))Python 示例:
python
import base64
b64 = response["data"][0]["b64_json"]
with open("output.png", "wb") as f:
f.write(base64.b64decode(b64))提示词建议
为了获得更稳定的图片结果,建议提示词包含:
- 主体:要生成什么,例如人物、产品、建筑、海报。
- 场景:在哪里,例如室内、街道、未来城市、摄影棚。
- 风格:写实、插画、二次元、产品摄影、电影感等。
- 构图:近景、全身、俯视、居中、留白等。
- 光线:自然光、柔光、霓虹灯、逆光等。
- 质量要求:高清、细节丰富、干净背景等。
- 需要避免的内容:不要水印、不要文字错误、不要多余手指等。
示例:
text
一张高端智能手表产品海报,黑色表身,金属材质,深灰背景,柔和棚拍灯光,居中构图,高清细节,商业广告风格,不要水印,不要多余文字。注意事项
- 生图请求通常比文本对话更慢,等待几十秒属于正常情况。
- 图片尺寸、质量、数量都会影响生成速度和消耗。
quality=high通常更慢,也可能消耗更多。n越大,一次请求生成图片越多,消耗也会增加。- 如果需要透明背景,建议使用
background=transparent并设置output_format=png或webp。 - 图生图时,输入图片越清晰,主体越明确,结果通常越稳定。
- 如果想保留原图主体,请在提示词里明确写出“保留主体不变”“保持人物身份特征”等要求。
- 如果请求失败,优先检查模型名称、图片格式、图片大小、尺寸参数和账号余额。
- 具体计费规则以模型广场和控制台显示为准。
常见问题
为什么生图请求比较慢?
图片生成需要排队、推理和返回图片数据,通常比普通文本对话更慢。如果长时间无响应,可以稍后重试,或降低尺寸、质量、生成数量后再试。亦或者使用流式调用。
为什么提示模型不存在?
请确认 model 名称和控制台模型广场完全一致,包括大小写、横线和版本号。如果模型广场显示的名称不是 gpt-image-2,请使用模型广场里的实际名称。
为什么返回的是一长串字符?
这是 base64 图片数据。将 b64_json 解码后即可得到图片文件。 或者使用“response_format”参数请求“URL”链接返回图片。
为什么图生图没有按原图改?
可以尝试:
- 使用更清晰的输入图片。
- 在提示词中明确“保留主体不变”。
- 设置
input_fidelity=high。 - 减少一次请求中的修改目标,先完成主要变化,再分步骤微调。
为什么透明背景没有生效?
请确认同时满足:
background设置为transparent。output_format使用png或webp。- 生成内容本身适合透明背景,例如图标、产品主体、贴纸等。
