API 参考
图像生成 Images Generations
POST /v1/images/generations 的参数、请求与响应示例。格式与 OpenAI 图像生成接口一致,一套代码调用 GPT Image、Gemini、Flux、豆包 Seedream 等绘图模型,本站按原格式转发请求。
POST /v1/images/generations 根据文字描述生成图片,格式与 OpenAI Images API 一致。目录里的 GPT Image、Gemini(Nano Banana)、Flux、豆包 Seedream 等绘图模型都可以用这个接口调用。本站把请求按原格式转发给模型服务,不同模型支持的尺寸、画质等取值不一样,以对应模型的官方说明为准。很多绘图模型按次计费,具体看下方价格表或模型详情页。
POST
https://open.tutujin.com/v1/images/generations请求头
| 请求头 | 必填 | 说明 |
|---|---|---|
Authorization | 是 | Bearer sk-...,控制台创建的 API Key |
Content-Type | 是 | application/json |
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 模型名,例如 gpt-image-2 |
prompt | string | 是 | 图片描述。写清主体、场景、风格、构图和光线,出图更稳定 |
n | integer | 否 | 生成几张,默认 1。部分模型一次只能出 1 张,需要多张时并发发起多次请求 |
size | string | 否 | 尺寸,例如 1024x1024、1536x1024、1024x1536。可选值因模型而异 |
quality | string | 否 | 画质,GPT Image 系列可选 low、medium、high、auto;其他模型可能忽略 |
response_format | string | 否 | url 返回图片链接,b64_json 返回 base64 数据。部分模型只支持其中一种 |
output_format | string | 否 | 输出文件格式,例如 png、jpeg、webp,仅部分模型支持 |
background | string | 否 | 设为 transparent 生成透明背景,仅部分模型支持 |
aspect_ratio | string | 否 | 部分非 OpenAI 模型支持的画幅比例参数,例如 16:9、3:4 |
请求示例
curl https://open.tutujin.com/v1/images/generations \
-H "Authorization: Bearer $TUTUJIN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "白色背景上的一只陶瓷保温杯,柔和棚拍光,产品摄影,正面略俯视",
"size": "1024x1024"
}'import base64
import os
from openai import OpenAI
client = OpenAI(base_url="https://open.tutujin.com/v1", api_key=os.environ["TUTUJIN_API_KEY"], timeout=300)
resp = client.images.generate(
model="gpt-image-2",
prompt="白色背景上的一只陶瓷保温杯,柔和棚拍光,产品摄影,正面略俯视",
size="1024x1024",
)
img = resp.data[0]
if img.b64_json:
with open("cup.png", "wb") as f:
f.write(base64.b64decode(img.b64_json))
else:
print(img.url) # 临时链接,拿到后尽快下载保存import fs from 'node:fs'
import OpenAI from 'openai'
const client = new OpenAI({ baseURL: 'https://open.tutujin.com/v1', apiKey: process.env.TUTUJIN_API_KEY, timeout: 300_000 })
const resp = await client.images.generate({
model: 'gpt-image-2',
prompt: '白色背景上的一只陶瓷保温杯,柔和棚拍光,产品摄影,正面略俯视',
size: '1024x1024',
})
const img = resp.data[0]
if (img.b64_json) fs.writeFileSync('cup.png', Buffer.from(img.b64_json, 'base64'))
else console.log(img.url) // 临时链接,拿到后尽快下载保存生图比文本对话慢得多,客户端超时建议设长一些,示例里设为 300 秒。
响应示例
JSON
{
"created": 1794000000,
"data": [
{
"url": "https://example.com/generated/cup.png",
"revised_prompt": "..."
}
]
}| 字段 | 说明 |
|---|---|
data[].url | 图片的临时链接,会过期,拿到后及时下载并存到自己的存储里 |
data[].b64_json | base64 编码的图片数据,response_format 为 b64_json 或模型只返回这种格式时出现 |
data[].revised_prompt | 部分模型会改写提示词,这里返回实际使用的版本 |
usage | 按 token 计费的图像模型会返回输入、输出 tokens;按次计费的模型可能没有这个字段 |
解析结果时同时处理 url 和 b64_json 两种情况最稳妥。
注意事项
- 这个接口是原样转发,没有在本站单独实测。每个绘图模型的参数取值不同,接入前先用一两次请求确认尺寸、返回格式。
- 返回的图片链接是临时地址,不要直接存进数据库长期引用,下载后转存到自己的对象存储。
- 计费方式看模型:有的按次(每次请求的价格),有的按 tokens。实际扣费以控制台「用量明细」为准。
- 提示词触发内容安全策略时会返回错误,修改提示词后再请求,原样重试不会成功。
- 需要多张图时,
n不生效的模型可以并发发起多次请求,并控制好并发数。
支持此接口的模型
| 模型 | 厂商 | 最低价分组 | 输入 ¥/百万 | 输出 ¥/百万 | 按次 ¥/次 |
|---|---|---|---|---|---|
| gpt-image-2 | OpenAI | 标准 | — | — | ¥0.12 |
| nano-banana-pro | 标准 | — | — | ¥0.4 | |
| flux-schnell | Flux 绘图 | 标准 | — | — | ¥0.02 |
| flux | Flux 绘图 | 标准 | — | — | ¥0.02 |
| flux-dev | Flux 绘图 | 标准 | — | — | ¥0.06 |
| gpt-image-2-all | OpenAI | 标准 | — | — | ¥0.08 |
| dall-e-3 | OpenAI | 标准 | — | — | ¥0.08 |
| flux-pro | Flux 绘图 | 标准 | — | — | ¥0.1 |
价格为人民币,取各模型最低价分组;价格更新于 2026年11月12日 20:17。
共 54 个模型支持此接口,上表列出其中一部分。 在模型广场查看全部
没找到答案?加客服微信 JsnonoChat,发送报错信息里的 request id,我们帮你排查。