图片生成 API
图片 API 兼容 OpenAI Images 协议。下面是精选、已核验的十六个模型:全部可通过 generations 文生图;只有明确标注支持 /edits 的模型才能调用编辑端点。 GPT Image 2、2.5 和 2.6 的静态图用法,以及 2.6 的 GIF 用法,见下方对应小节。
提供两个端点:
/v1/images/generations— 生成图片;部分模型也可在此端点提交参考图/v1/images/edits— 用于有编辑支持的模型,兼容 OpenAI 原生edits调用习惯
| 模型 | 支持的端点 | 保守限制 | 分辨率 |
|---|---|---|---|
gpt-image-2 | /generations、/edits | 支持参考图编辑 | 1K / 2K / 4K |
gpt-image-2.5-flare | /generations、/edits | 支持参考图的图生图和编辑 | 1K / 2K / 4K |
gpt-image-2.5-sunburst | /generations、/edits | 支持参考图的图生图和编辑 | 1K / 2K / 4K |
gemini-3.1-flash-image-preview | /generations、/edits | 最多 4 张有效参考图 | 1K / 2K / 4K |
gemini-2.5-flash-image | /generations、/edits | 最多 4 张有效参考图 | 仅 1K |
gemini-3-pro-image-preview | /generations、/edits | 最多 4 张有效参考图 | 1K / 2K / 4K |
grok-imagine-1.0 | /generations | 仅生成;未公开承诺参考图能力 | 未公开分辨率档位 |
seedream-5-0-flash | /generations | 最多 8 张参考图;仅 generations | 1K / 1.5K / 2K |
seedream-5-0-pro | /generations | 最多 8 张参考图;仅 generations | 1K / 1.5K / 2K |
seedream-4-5 | /generations | 最多 8 张参考图;仅 generations | 2K / 4K |
seedream-4-0 | /generations | 最多 8 张参考图;仅 generations | 1K / 2K / 4K |
doubao-seedream-5-0-lite | /generations | 参考图能力取决于有效且受支持的生成请求 | 未公开分辨率档位 |
flux-2-pro | /generations | 参考图能力取决于有效且受支持的生成请求 | 未公开分辨率档位 |
flux-3-image | /generations | 支持参考图(最多 8 张);仅 generations | 768sq / 1K / 1.5K / 2K / 4K |
flux-3-image-klein | /generations | 支持参考图(最多 8 张);仅 generations | 768sq / 1K / 1.5K / 2K / 4K |
midjourney | /generations | 仅提示词;不支持参考图 | 未公开分辨率档位 |
GPT Image 2、2.5 和 2.6 静态图
这三个版本都支持 1K、2K、4K 静态图。文生图用 POST /v1/images/generations。参考图编辑用 POST /v1/images/edits,通过 image_urls 传入公开 HTTPS 图片链接或 data:image/...;base64,...。2.6 最多支持 8 张参考图。Image 2.6 的 2K 和 4K 静态图参考图须为 PNG、JPEG 或 WebP。
用 image_size 选择分辨率。Image 2 用 size 指定比例,例如 16:9。Image 2.5 和 2.6 可用 aspect_ratio。2.6 静态图使用 output_format: "png" 和 n: 1。
| 版本 | 模型 ID | 静态图价格(人民币 / 张) |
|---|---|---|
| GPT Image 2 | gpt-image-2 | 参考价 1K ¥0.0833、2K ¥0.147、4K ¥0.2156,按实际用量结算。 |
| GPT Image 2.5 | gpt-image-2.5-flare, gpt-image-2.5-sunburst | 参考价 1K ¥0.0833、2K ¥0.294、4K ¥0.392,参考图不额外收费。 |
| GPT Image 2.6 | gpt-image-2.6-flare, gpt-image-2.6-sunburst | 每个成功结果 1K ¥0.0833、2K ¥0.294、4K ¥0.392。 |
GPT Image 2 文生图(同步)
curl -X POST https://api.icodeeasy.cc/v1/images/generations \
-H "Authorization: Bearer sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "一只橘猫坐在窗台上看夕阳,水彩画风格"
}'
GPT Image 2.5 文生图(2K)
curl -X POST "https://api.icodeeasy.cc/v1/images/generations?sync=1" \
-H "Authorization: Bearer sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2.5-flare",
"prompt": "一只戴着宇航员头盔的橘猫,电影感灯光",
"aspect_ratio": "16:9",
"image_size": "2K"
}'
GPT Image 2.5 图生图(参考图编辑)
curl -X POST "https://api.icodeeasy.cc/v1/images/edits?sync=1" \
-H "Authorization: Bearer sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2.5-sunburst",
"prompt": "把背景替换成日落海滩,保留人物姿势和服装",
"aspect_ratio": "3:2",
"image_size": "1K",
"image_urls": ["https://example.com/photo.png"]
}'
GPT Image 2.6 参考图编辑(4K)
下例使用 Sunburst。使用 Flare 时,将 model 改为 gpt-image-2.6-flare。将示例链接替换为自己的参考图链接。
curl -X POST 'https://api.icodeeasy.cc/v1/images/edits?async=1' \
-H "Authorization: Bearer sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2.6-sunburst",
"prompt": "把背景换成浅蓝色墙面,保留参考图中杯子的形状和构图。",
"output_format": "png",
"aspect_ratio": "16:9",
"image_size": "4K",
"n": 1,
"image_urls": [
"https://example.com/reference.png"
]
}'
GPT Image 2.6 GIF 生成
gpt-image-2.6-flare 和 gpt-image-2.6-sunburst 均可通过 POST /v1/images/generations 生成 GIF。设置 output_format: "gif"、size: "auto" 和 n: 1,每次生成一个 GIF,动画尺寸和帧参数自动设置。
纯文生 GIF 省略 image_urls。带图生成时,image_urls 可传最多 8 张参考图,支持公网可访问的 HTTPS 图片链接或 data:image/...;base64,...。
下例使用 Flare。将示例链接替换为自己的参考图链接。使用 Sunburst 时,把 model 改为 gpt-image-2.6-sunburst。
curl -X POST 'https://api.icodeeasy.cc/v1/images/generations?async=1' \
-H "Authorization: Bearer sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2.6-flare",
"prompt": "让参考图中的纸灯笼随风轻摆,保持原有构图,无缝循环。",
"output_format": "gif",
"size": "auto",
"n": 1,
"image_urls": [
"https://example.com/reference.png"
]
}'
异步提交返回 task_id。使用 GET /v1/images/tasks/{task_id} 查询,任务完成后从 result_url 下载 GIF。
- 纯文生 GIF的标准价为 ¥0.0833/个。Flare 在使用备用服务时为 ¥0.30/个。
- 参考图 GIF按实际用量结算,最终金额以用量记录为准。
FLUX 2 Pro / Max / Flex
按分辨率的参考价(人民币 / 张)。按实际生成用量结算,最终金额以账单为准: 费用随输出尺寸和参考图而变化。
| Model | 1MP | 2MP | 3MP | 4MP |
|---|---|---|---|---|
flux-2-pro | ¥0.2352 | ¥0.3528 | ¥0.4704 | ¥0.588 |
flux-2-max | ¥0.5488 | ¥0.784 | ¥1.0192 | ¥1.2544 |
flux-2-flex | ¥0.392 | ¥0.784 | ¥1.176 | ¥1.568 |
Seedream 系列
以下新型号支持基础文生图和参考图编辑,最多 8 张参考图。使用 size / aspect_ratio 明确比例、image_size 选择下表分辨率、image_input 提交参考图。每任务只生成一张;绘画页面多张功能会拆成独立任务。5 Flash/Pro 的比例为 1:1、4:3、3:4、16:9、9:16、3:2、2:3、2:1、1:2、21:9;4.5/4.0 另支持 9:21。4.0 提示词最多 1000 字。未开放图层、透明背景等高级参数。旧 Lite 仍为 2K ¥0.30 / 3K ¥0.45。
参考价;成功任务按实际生成费用结算,最终费用以使用明细为准。 仅 Seedream 5 Pro:第 2 张参考图起每张参考约 ¥0.01911;实际任务费用优先。
| Model | image_size | 基础参考价(人民币 / 张) |
|---|---|---|
seedream-5-0-flash | 1K / 1.5K / 2K | ¥0.134358 |
seedream-5-0-pro | 1K / 1.5K → 2K | ¥0.28665 → ¥0.5733 |
seedream-4-5 | 2K / 4K | ¥0.2548 |
seedream-4-0 | 1K / 2K / 4K | ¥0.1911 |
FLUX 3 Image 与 Klein
flux-3-image 与 flux-3-image-klein 使用 image_size 指定 768sq / 1K / 1.5K / 2K / 4K,用 aspect_ratio 显式指定 1:1 / 9:16 / 16:9 / 2:3 / 3:2 / 4:5 / 5:4。不要传 auto 或像素尺寸;这两个模型不受旧 FLUX2 的 2048 像素边长限制。参考图使用 image_input(URL 或 base64 data URL),最多 8 张;不支持框选编辑。单个任务只生成一张,绘画页面的多张功能会拆为独立任务。Image 不支持 seed;Klein 支持 seed(0–4294967295)。两者都不支持 prompt_upsampling、style 或 negative_prompt。
参考价;成功任务按实际生成费用结算,最终费用以使用明细为准。
| 型号 | 768 | 1K | 1.5K | 2K | 4K |
|---|---|---|---|---|---|
flux-3-image | ¥0.4018 | ¥0.4704 | ¥0.686 | ¥0.98 | ¥5.9486 |
flux-3-image-klein | ¥0.0784 | ¥0.0882 | ¥0.1078 | ¥0.1372 | ¥0.3528 |
{
"model": "flux-3-image",
"prompt": "A watercolor landscape",
"aspect_ratio": "16:9",
"image_size": "4K",
"image_input": []
}
端点与认证
POST https://api.icodeeasy.cc/v1/images/generations
POST https://api.icodeeasy.cc/v1/images/edits
主 Base URL 使用 https://api.icodeeasy.cc。https://jp.icodeeasy.cc 与 https://sg.icodeeasy.cc 是备用 / fallback 域名,切换时路径保持不变。
请求头:
- Authorization:
Bearer <你的 API Key>(必填,sk_开头) - Content-Type:
application/json(JSON 形式)或multipart/form-data(文件上传形式)
也接受不带
/v1前缀的POST /images/generations、POST /images/edits,效果相同。
两种入站形式
接口同时支持两种请求体:
- JSON(
Content-Type: application/json):参考图以 URL 或 base64 放进image_urls字段。最常用。 - multipart/form-data:参考图以
image[]文件上传,其它参数走 form 字段。与 OpenAI 原生edits一致,适合直接上传本地图片。
请求参数
以下参数用于静态图请求。GIF 请求请使用 GPT Image 2.6 GIF 生成小节的参数。
- model(必填):使用上表十六个精选模型 ID 之一。 也可使用 GPT Image 2.6 静态图小节列出的模型 ID。
- prompt(必填):图像描述,中英文均可。上游会做内容安全审核,违规直接拒绝、不扣费。
- n(默认
1):生成张数,按张累计计费。 GPT Image 2 按实际任务总费用结算时,不再另乘张数。 - size(默认
1:1):输出比例,见下方。也接受auto(按1:1处理)或像素串(如1536x1024)。 - aspect_ratio(可选,默认
1:1):GPT Image 2.5 和 2.6 的输出比例,如16:9。 - image_size(可选,默认
1K):GPT Image 2 / 2.5 / 2.6 的清晰度档位,可选1K/2K/4K。 - quality:GPT Image 2 可选
low/medium/high/auto,但不按质量分档计价。GPT Image 2.5 按张和分辨率计费,不提供独立质量档位;旧请求中的该字段仅兼容接收,不影响出图参数或价格。 - image_urls / image_input(可选,JSON 形式):图生图参考图,最多 4 张(FLUX 3 和 GPT Image 2.6 为 8 张)。元素可为
https://...URL(须公网可访问的 https)或data:image/...;base64,...,可混填。两个字段是别名,效果相同。 - image[](可选,multipart 形式):图生图参考图文件,可多个,等价于
image_urls的文件上传写法。
参考图链路提示:URL 必须是
https://(http 会被拒绝);base64 必须是合法的data:image/*;base64,格式。
支持的比例与分辨率
支持的比例(size):1:1 / 3:2 / 2:3 / 4:3 / 3:4 / 5:4 / 4:5 / 16:9 / 9:16 / 2:1 / 1:2 / 21:9 / 9:21 / auto。
GPT Image 2.5 的 aspect_ratio 支持:1:1 / 3:2 / 2:3 / 4:3 / 3:4 / 5:4 / 4:5 / 16:9 / 9:16 / 21:9。
gemini-2.5-flash-image 仅支持 1k;表中的 Gemini 3.x 支持 1k / 2k / 4k。gpt-image-2 用 size 控制输出比例或像素尺寸,并提供 1K / 2K / 4K 分辨率参考价。
同步 / 异步模式
默认同步:请求阻塞到出图,直接返回 OpenAI 兼容结构 data[].url,一次拿图。
异步:在 URL 加 ?async=1(也接受 true / yes),立即返回 task_id,再自行轮询任务结果。适合不想长时间挂住连接、需要进度反馈、或批量提交的场景。
| 默认(同步) | ?async=1(异步) | |
|---|---|---|
| 返回时机 | 等几十秒,出图后返回 | 立即(< 1 秒)返回 |
| 状态码 | 200 | 202 |
| 返回体 | {"created":...,"data":[{"url":"..."}],"id":"..."} | {"status":"pending","task_id":"..."} |
| 拿图方式 | 一次拿到 | 轮询 GET /v1/images/tasks/{task_id} |
请求示例
使用 Gemini 3.x 指定比例与 2K
curl -X POST https://api.icodeeasy.cc/v1/images/generations \
-H "Authorization: Bearer sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3.1-flash-image-preview",
"prompt": "a corgi astronaut on the moon, cinematic",
"aspect_ratio": "16:9",
"image_size": "2K"
}'
Gemini 文生图
curl -X POST https://api.icodeeasy.cc/v1/images/generations \
-H "Authorization: Bearer sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-3.1-flash-image-preview",
"prompt": "一间未来感咖啡馆,清晨阳光,写实摄影风格",
"aspect_ratio": "16:9",
"image_size": "1K"
}'
图生图:用图片 URL(JSON)
curl -X POST https://api.icodeeasy.cc/v1/images/edits \
-H "Authorization: Bearer sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "把这个人物改成 70 岁",
"size": "1536x1024",
"image_urls": ["https://example.com/photo.png"]
}'
图生图:上传本地图片(multipart)
curl -X POST https://api.icodeeasy.cc/v1/images/edits \
-H "Authorization: Bearer sk_xxxxxxxx" \
-F "model=gpt-image-2" \
-F "prompt=把这个人物改成 70 岁" \
-F "size=1536x1024" \
-F "image[]=@/path/to/photo.png"
图生图:多参考图融合(URL + base64 混填)
curl -X POST https://api.icodeeasy.cc/v1/images/edits \
-H "Authorization: Bearer sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "把这两张照片融合成一张海报",
"size": "4:3",
"image_urls": [
"https://example.com/photo-a.jpg",
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
]
}'
异步提交 + 轮询
# 1) 提交,立即拿 task_id
curl -X POST "https://api.icodeeasy.cc/v1/images/edits?async=1" \
-H "Authorization: Bearer sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "把这个人物改成 70 岁",
"image_urls": ["https://example.com/photo.png"]
}'
# → {"status":"pending","task_id":"d142c93a-..."}
# 2) 轮询直到 completed
curl "https://api.icodeeasy.cc/v1/images/tasks/d142c93a-..." \
-H "Authorization: Bearer sk_xxxxxxxx"
# → {"status":"completed","result_url":"https://...png","cost":0.2,...}
响应结构
同步成功(HTTP 200,OpenAI Images 兼容):
{
"id": "3e0c77bb-9cbd-4c44-9549-bff1b4060623",
"created": 1781599773,
"data": [
{
"url": "https://api.icodeeasy.cc/v1/images/files/gpt-image-2/20260616/3e0c77bb-...-1.png"
}
]
}
异步提交(HTTP 202):
{ "status": "pending", "task_id": "d142c93a-de26-40c9-be62-0de840d10960" }
异步任务查询(GET /v1/images/tasks/{task_id}):
{
"task_id": "d142c93a-de26-40c9-be62-0de840d10960",
"status": "completed",
"model": "gpt-image-2",
"cost": 0.2,
"result_url": "https://api.icodeeasy.cc/v1/images/files/gpt-image-2/20260616/d142c93a-...-1.png"
}
- status:
pending/completed/failed - data[].url / result_url:图片链接,可直接
<img src>展示 - id / task_id:任务 ID,便于客服排查
接口固定返回 URL,不支持
response_format: b64_json。如需图片字节请自行下载。
图片链接行为
data[].url 形如 https://api.icodeeasy.cc/v1/images/files/gpt-image-2/YYYYMMDD/<id>-<seq>.png:
- 直接打开:
GET返回 302,自动跳转到实际图片地址,浏览器无感 - 强制下载:URL 加
?download=1触发附件下载 - 长期有效:该链接长期可用
- 访问控制:该路径不需要 API Key,链接本身即凭据。请勿把生成结果链接发到公开场合,任何人持有完整 URL 都能下载
同步语义与超时
默认同步模式下,请求会一直挂到出图:
- 客户端 HTTP 超时建议 ≥ 200 秒
- 单张图典型 30~60 秒,图生图、2K、多张可能更长
- 不想长时间等待时,改用异步模式(
?async=1)立即拿task_id,再轮询
错误响应
错误体统一为:
{
"error": {
"type": "server_error",
"message": "...",
"provider": "icodeeasy.cc"
}
}
常见状态:
- 400 invalid_request_error:参数错误(比例不支持、参考图超 4 张、参考图非 https/非合法 base64 等)
- 401 authentication_error:API Key 缺失或无效
- 402 payment_required:余额不足 / 月卡额度用尽
- 429 rate_limit_error:调用频率超限
- 5xx:服务暂时不可用或生成失败,可稍后重试
失败请求不计费,余额不会被扣除。
计费
GPT Image 2、2.5 和 2.6 的静态图价格以及 GIF 计费规则见上方对应小节。
Gemini 图片模型按模型固定价计费:
| 模型 | 价格 |
|---|---|
gemini-2.5-flash-image | ¥0.20 / 张 |
gemini-3.1-flash-image-preview | ¥0.30 / 张 |
gemini-3-pro-image-preview | ¥0.50 / 张 |
在「用量明细」中请求会记录实际 model,cost_breakdown 含 image_count / image_cost_rmb / image_urls,可在历史里直接复制链接、下载。
与 OpenAI Images API 的差异
- 模型:使用上表或 GPT Image 2.6 静态图小节列出的模型 ID
- 端点:所有精选模型都支持
generations;支持编辑的模型可使用edits - size:推荐用纵横比(
16:9等);像素串也可用 - aspect_ratio:GPT Image 2.5 和 2.6 使用该字段指定输出比例。
- image_size:GPT Image 2 / 2.5 / 2.6 支持
1K/2K/4K;Gemini 2.5 仅支持1K;表中的 Gemini 3.x 支持1K/2K/4K - quality:GPT Image 2 可选
low/medium/high/auto,但不按质量分档计价。GPT Image 2.5 按张和分辨率计费,不提供独立质量档位;旧请求中的该字段仅兼容接收,不影响出图参数或价格。 - response_format:不支持
b64_json,固定返回 URL - 参考图:按各模型的支持范围使用;支持的请求使用
image_urls/image_input(JSON)或image[](multipart),具体限制以模型为准 - 异步:OpenAI 无此模式;本接口
?async=1返回task_id,轮询/v1/images/tasks/{id}取结果 - 任务 ID:响应里透传
id/task_id,便于排错