IMAGE API
图像生成
GPT-Image-2 和 Gemini 文生图、图生图、分辨率和调用示例。
图像生成
RootFlow AI 的绘图接口兼容 OpenAI Images API。你可以用同一套 /v1/images/generations 调用 GPT-Image-2 和 Gemini 绘图模型,支持文生图、图生图、1K/2K/4K 输出。
简单说:
- 想要默认稳定的绘图体验,用
gpt-image-2-count - 想要 Gemini / Nano Banana 风格、角色或风格一致性,用
gemini-3.1-flash-image-count或gemini-3-pro-image-count - 想要高清图,就选带
hd-count的模型 - 想要 4K,就选带
4k-count的模型
功能特性
- 兼容 OpenAI
/v1/images/generations协议,现有 SDK 无缝接入 - 支持文生图(text-to-image)和图生图(image-to-image)
- 三档分辨率:1K / 2K / 4K
- GPT-Image-2 和 Gemini 两套绘图模型可选
- 常用画面比例可选,Gemini 3.1 Flash 还支持极端长图比例
- 按次计费,失败不扣费
可用模型与定价
创建令牌时,按你要用的模型选择对应分组:
- GPT-Image-2 模型:选择 GPT绘图计次
- Gemini 模型:选择 Gemini绘图计次
下列价格为 SVIP 用户分组参考价格。
GPT-Image-2
| 模型名 | 分辨率 | 默认质量 | 价格 | 说明 |
|---|---|---|---|---|
gpt-image-2-count | 1K | high | ¥0.10 / 次 | 标准分辨率,所有比例可用 |
gpt-image-2-hd-count | 2K | high | ¥0.25 / 次 | 高清分辨率,所有比例可用 |
gpt-image-2-4k-count | 4K | high | ¥0.50 / 次 | 超清分辨率,仅支持 6 种宽幅比例 |
Gemini 绘图
| 模型名 | 分辨率 | 价格 | 说明 |
|---|---|---|---|
gemini-2.5-flash-image-count | 1K | ¥0.10 / 次 | 便宜、快,适合草图和轻量生成 |
gemini-3.1-flash-image-count | 1K | ¥0.30 / 次 | Gemini 3.1 Flash 标准图 |
gemini-3.1-flash-image-hd-count | 2K | ¥0.40 / 次 | Gemini 3.1 Flash 高清图 |
gemini-3.1-flash-image-4k-count | 4K | ¥0.55 / 次 | Gemini 3.1 Flash 4K |
gemini-3-pro-image-count | 1K | ¥0.40 / 次 | Gemini 3 Pro 标准图 |
gemini-3-pro-image-hd-count | 2K | ¥0.40 / 次 | Gemini 3 Pro 高清图 |
gemini-3-pro-image-4k-count | 4K | ¥0.50 / 次 | Gemini 3 Pro 4K |
创建 API Key 时,分组要选对。GPT 模型用「GPT绘图计次」,Gemini 模型用「Gemini绘图计次」。分组选错时,模型列表可能看得到,但调用会失败。
质量控制
GPT-Image-2 支持 quality 参数,可以控制生成质量:
| 质量档位 | 说明 | 生成速度 | 适用场景 |
|---|---|---|---|
low | 低质量,细节较少 | 快(30-60s) | 快速预览、草图 |
medium | 中等质量,平衡速度与效果 | 中(40-80s) | 日常使用 |
high | 高质量,细节丰富(默认) | 慢(50-120s) | 最终成品、高要求场景 |
Gemini 模型不需要传 quality,直接选模型档位即可。
GPT-Image-2 示例:
# 快速预览(低质量)
curl https://api.rootflowai.com/v1/images/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-xxxxxxxxxxxxxxxx" \
-d '{
"model": "gpt-image-2-count",
"prompt": "一只橘猫坐在窗台上看夕阳",
"quality": "low",
"size": "1024x1024"
}'
# 最终成品(高质量,默认)
curl https://api.rootflowai.com/v1/images/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-xxxxxxxxxxxxxxxx" \
-d '{
"model": "gpt-image-2-4k-count",
"prompt": "赛博朋克风格的未来城市夜景,超精细细节",
"quality": "high",
"size": "2880x1680"
}'GPT-Image-2 的不同质量档位价格相同,仅影响生成速度和画面细节。建议先用 low 快速验证构图,确认后再用 high 生成最终版本。
支持的 size
支持标准 OpenAI 像素格式和比例格式,系统会自动转换:
| 像素格式 | 等效比例 | 类型 |
|---|---|---|
1024x1024 | 1:1 | 正方 |
1536x1024 | 3:2 | 横图 |
1024x1536 | 2:3 | 竖图 |
1792x1024 | 16:9 | 横图 |
1024x1792 | 9:16 | 竖图 |
也可以直接传比例格式: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
GPT-Image-2 的 4K 分辨率仅支持 16:9、9:16、2:1、1:2、21:9、9:21 六种宽幅比例。
Gemini 3.1 Flash 支持更宽的比例,包括 1:4、4:1、1:8、8:1 这类长图。gemini-2.5-flash-image-count 只提供 1K,不建议拿它做 2K/4K。
快速开始
文生图
curl https://api.rootflowai.com/v1/images/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-xxxxxxxxxxxxxxxx" \
-d '{
"model": "gpt-image-2-count",
"prompt": "一只橘猫坐在窗台上看夕阳,水彩画风格",
"n": 1,
"size": "1024x1024"
}'from openai import OpenAI
client = OpenAI(
api_key="sk-xxxxxxxxxxxxxxxx",
base_url="https://api.rootflowai.com/v1"
)
response = client.images.generate(
model="gpt-image-2-count",
prompt="一只橘猫坐在窗台上看夕阳,水彩画风格",
n=1,
size="1024x1024",
quality="high" # 可选:low / medium / high(默认)
)
print(response.data[0].url)import OpenAI from "openai";
const client = new OpenAI({
apiKey: "sk-xxxxxxxxxxxxxxxx",
baseURL: "https://api.rootflowai.com/v1",
});
const response = await client.images.generate({
model: "gpt-image-2-count",
prompt: "一只橘猫坐在窗台上看夕阳,水彩画风格",
n: 1,
size: "1024x1024",
quality: "high", // 可选:low / medium / high(默认)
});
console.log(response.data[0].url);高清文生图(2K)
使用 gpt-image-2-hd-count 模型获得 2K 分辨率输出:
curl https://api.rootflowai.com/v1/images/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-xxxxxxxxxxxxxxxx" \
-d '{
"model": "gpt-image-2-hd-count",
"prompt": "赛博朋克风格的未来城市夜景,霓虹灯倒映在雨水中",
"n": 1,
"size": "1792x1024"
}'Gemini 文生图
Gemini 的调用方式和 GPT-Image-2 一样,只要换模型名。不要传 quality。
curl https://api.rootflowai.com/v1/images/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-xxxxxxxxxxxxxxxx" \
-d '{
"model": "gemini-3.1-flash-image-count",
"prompt": "一张黑色陶瓷咖啡杯的商品主图,白色背景,干净高级",
"n": 1,
"size": "1:1"
}'Gemini 4K
curl https://api.rootflowai.com/v1/images/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-xxxxxxxxxxxxxxxx" \
-d '{
"model": "gemini-3-pro-image-4k-count",
"prompt": "高端腕表广告海报,棚拍灯光,细节清晰,质感高级",
"n": 1,
"size": "1:1"
}'图生图(URL 参考图)
如果参考图已经是公网可访问的 URL,使用 /v1/images/generations,通过 JSON 的 image 字段传入参考图数组:
curl https://api.rootflowai.com/v1/images/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-xxxxxxxxxxxxxxxx" \
-d '{
"model": "gpt-image-2-count",
"prompt": "把这张照片转换成油画风格",
"n": 1,
"size": "1024x1024",
"image": ["https://example.com/photo.png"]
}'image字段接受 URL 数组,最多 16 张参考图- Gemini 最多建议 14 张参考图
- 支持 HTTPS URL 和 base64 data URI 混填
- 不传
size时输出分辨率跟随输入图;传size则按指定尺寸出图
图片编辑(本地文件上传)
如果参考图是本地文件,客户端继续调用 /v1/images/edits,但请求必须改成 multipart/form-data,用 -F image=@file 上传文件:
curl https://api.rootflowai.com/v1/images/edits \
-H "Authorization: Bearer sk-xxxxxxxxxxxxxxxx" \
-F "model=gpt-image-2-count" \
-F "prompt=把这张照片转换成油画风格" \
-F "n=1" \
-F "size=1024x1024" \
-F "quality=medium" \
-F "image=@/path/to/photo.png;type=image/png"多张参考图可以重复传 image 字段:
curl https://api.rootflowai.com/v1/images/edits \
-H "Authorization: Bearer sk-xxxxxxxxxxxxxxxx" \
-F "model=gpt-image-2-count" \
-F "prompt=基于两张参考图生成一张产品海报" \
-F "n=1" \
-F "size=1024x1024" \
-F "image=@/path/to/reference-1.png;type=image/png" \
-F "image=@/path/to/reference-2.jpg;type=image/jpeg"不要把 Content-Type: application/json 的请求直接发送到 /v1/images/edits。如果参考图是 URL,请使用 /v1/images/generations + image 数组;如果参考图是本地文件,请使用上面的 multipart 写法。
连续图生图
如果要把上一轮结果继续作为下一轮参考图,推荐保存上一轮响应里的 data[0].url,下一轮继续传入参考图。
上一轮返回:
{
"data": [
{
"url": "https://cdn.rootflowai.com/images/2026/xx/xx/result.png"
}
]
}下一轮如果使用 URL 参考图,可以继续走 /v1/images/generations:
curl https://api.rootflowai.com/v1/images/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-xxxxxxxxxxxxxxxx" \
-d '{
"model": "gpt-image-2-count",
"prompt": "保持上一张图的主体和构图,给角色加一个透明太空头盔",
"n": 1,
"size": "1024x1024",
"quality": "low",
"image": ["https://cdn.rootflowai.com/images/2026/xx/xx/result.png"]
}'如果你的工作流已经把上一轮图片下载到了本地文件,下一轮使用 /v1/images/edits 的 multipart 上传方式:
curl https://api.rootflowai.com/v1/images/edits \
-H "Authorization: Bearer sk-xxxxxxxxxxxxxxxx" \
-F "model=gpt-image-2-count" \
-F "prompt=保持上一张图的主体和构图,给角色加一个透明太空头盔" \
-F "n=1" \
-F "size=1024x1024" \
-F "quality=low" \
-F "image=@/path/to/previous-result.png;type=image/png"每轮请求都建议保存返回的图片 URL。不要只依赖工作流平台的临时变量或上一轮上下文;跨工作流、跨服务商或长时间运行时,显式传入上一轮图片 URL 或文件最稳定。
Responses 多轮生图(高级)
如果你直接调用 /v1/responses 做多轮生图或连续编辑,每一轮都必须显式传入 image_generation 工具。previous_response_id 只负责引用上一轮上下文,不会自动继承上一轮的工具列表。
第一轮:
curl https://api.rootflowai.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-xxxxxxxxxxxxxxxx" \
-d '{
"model": "gpt-5.4-mini",
"instructions": "你是图像生成与图像编辑助手。用户要求生图时必须调用 image_generation 工具并返回图片。",
"input": "生成一张赛博朋克城市夜景海报",
"tools": [
{ "type": "image_generation" }
],
"tool_choice": "auto",
"store": true
}'保存第一轮返回的 id,例如 resp_xxx。第二轮继续编辑时继续传 tools,并把第一轮 id 放到 previous_response_id:
curl https://api.rootflowai.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-xxxxxxxxxxxxxxxx" \
-d '{
"model": "gpt-5.4-mini",
"instructions": "你是图像生成与图像编辑助手。用户要求生图时必须调用 image_generation 工具并返回图片。",
"input": "保持上一张图的主体和构图,改成雨夜霓虹风格",
"previous_response_id": "resp_xxxxxxxxxxxxxxxx",
"tools": [
{ "type": "image_generation" }
],
"tool_choice": "auto",
"store": true
}'- 每一轮都要传
tools: [{"type":"image_generation"}] - 需要使用
previous_response_id时,相关轮次建议传store: true previous_response_id不是图片 URL,也不会自动恢复工具列表- 如果返回体里是
tools: [],或output中没有image_generation_call,说明本轮没有真正触发生图工具,应检查请求参数 - 如果要跨工作流、跨服务商或长期复用图片,建议保存上一轮返回的图片 URL,并在下一轮作为参考图重新传入
响应格式
标准 OpenAI Images 响应格式:
{
"created": 1777026453,
"data": [
{
"url": "https://img.rootflowai.com/f/image/xxx.png"
}
]
}返回的是 RootFlowAI CDN 图片链接,可以直接打开和下载。建议你仍然把重要成品保存到自己的素材库里。
AI 编程工具集成
我们提供了开源的图像生成 Skill 工具包,可以集成到 Claude Code、Codex、Cherry Studio 等 AI 编程工具中,让 AI 助手直接帮你生成和编辑图片。
GitHub 仓库:RyanWeb31110/rootflowai-image
支持的平台:
| 平台 | 安装方式 |
|---|---|
| Claude Code | 下载 claude-compatible 包,放入 .claude/skills/ |
| Codex (Skill) | 下载 codex-skill 包,放入 skills 目录 |
| Codex (Plugin) | 下载 codex-plugin 包,放入 .codex-plugins/ |
| Cherry Studio | 下载 cherry-studio 包,按平台说明安装 |
安装后,AI 助手可以通过自然语言指令帮你生图:
帮我生成一张 16:9 的赛博朋克城市海报,2K 分辨率把这张照片转换成水彩画风格也可以直接点名 Gemini:
用 Gemini 3.1 Flash 给我生成一张 1:1 商品主图用 Gemini 3 Pro 4K 生成一张高端腕表广告海报详细安装和使用说明请参考 GitHub 仓库 README。
注意事项
1. 建议把 n 设为 1。要多张图时,多发几次请求更容易控制成本 2. 建议不要在 prompt 中重复描述比例,通过 size 字段控制即可 3. 生成时间:
- 1K/2K 分辨率:通常 30~90 秒
- 4K 分辨率:通常 50~150 秒
- GPT-Image-2 使用
quality=low可缩短 20-30% 生成时间
- 请设置足够的请求等待时间,建议 900 秒。这里指完整请求的 read/request timeout,不只是 connect timeout
- 如果你通过 Dify、workflow、Serverless、反向代理或本地代理访问,也要同步调大这些中间层的 idle/read timeout;任意一层 60 秒空闲断开,客户端都会拿不到图片 URL
- 本地
curl如果配置了代理且代理有 60 秒空闲限制,可以先用--noproxy '*'绕过代理验证:
curl --noproxy '*' --max-time 900 https://api.rootflowai.com/v1/images/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-xxxxxxxxxxxxxxxx" \
-d '{
"model": "gpt-image-2-count",
"prompt": "一只橘猫坐在窗台上看夕阳",
"n": 1,
"size": "1024x1024",
"quality": "low"
}'4. 内容会经过安全审核,违规内容会被拒绝且不计费 5. 失败请求不扣费