画图 API 对接
本接口完全兼容 OpenAI 官方 Images API,已有 OpenAI 集成的客户端只需替换 base_url 即可使用。
基础信息
| 项 | 值 |
|---|---|
| Base URL | https://api2.tabcode.cc/openai/draw/v1 |
| 认证方式 | Authorization: Bearer <你的 API Key> |
| 可用模型 | gpt-image-1 · gpt-image-1.5 · gpt-image-2(默认) |
Base URL 末尾不要加斜杠,避免某些 SDK 拼接出 //images/generations 导致 404。
快速开始
准备 API Key
在平台获取你的 API Key(sk- 开头)。
测试调用
复制下面的命令,把 sk-user-xxxx 替换成你的 Key 后执行:
curl -X POST https://api2.tabcode.cc/openai/draw/v1/images/generations \
-H "Authorization: Bearer sk-user-xxxx" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-image-2","prompt":"hello world cat"}' \
| jq -r '.data[0].b64_json' \
| base64 -d > out.png查看结果
用浏览器打开生成的 out.png 即可查看图片。
文生图
接口
POST https://api2.tabcode.cc/openai/draw/v1/images/generations请求示例
curl -X POST https://api2.tabcode.cc/openai/draw/v1/images/generations \
-H "Authorization: Bearer sk-user-xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "a cat sitting on a wooden table, soft morning light",
"n": 1,
"size": "1024x1024"
}'请求字段
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
prompt | string | ✅ | 图像描述文本 |
model | string | 否 | 默认 gpt-image-2 |
n | integer | 否 | 生成张数,默认 1 |
size | string | 否 | 图像尺寸,默认 1024x1024 |
支持的尺寸
| size | 档位 |
|---|---|
1024x1024 | 1K |
1536x1024 / 1024x1536 / 1792x1024 / 1024x1792 / auto | 2K |
| 更大尺寸 | 4K |
响应
{
"created": 1777024307,
"data": [
{ "b64_json": "iVBORw0KGgoAAAANSU..." }
]
}b64_json 即 Base64 编码的 PNG 图片,客户端可直接解码展示或保存。
图片编辑
接口
POST https://api2.tabcode.cc/openai/draw/v1/images/editsContent-Type:multipart/form-data(必须上传文件)
请求示例
curl -X POST https://api2.tabcode.cc/openai/draw/v1/images/edits \
-H "Authorization: Bearer sk-user-xxxxxxxxxxxxxxxx" \
-F "model=gpt-image-2" \
-F "prompt=make the sky purple and add stars" \
-F "image=@./input.png" \
-F "mask=@./mask.png"字段
| 字段 | 必填 | 说明 |
|---|---|---|
image | ✅ | 原图(PNG / JPEG / WEBP) |
prompt | ✅ | 编辑指令 |
mask | 否 | 遮罩图(透明区域为可编辑区) |
model / n / size | 否 | 同文生图 |
响应结构同 generations。
SDK 接入
🐍 Python
使用官方 OpenAI SDK:
from openai import OpenAI
import base64, pathlib
client = OpenAI(
base_url="https://api2.tabcode.cc/openai/draw/v1",
api_key="sk-user-xxxxxxxxxxxxxxxx",
)
resp = client.images.generate(
model="gpt-image-2",
prompt="a cat sitting on a wooden table",
n=1,
size="1024x1024",
)
# 保存到本地
pathlib.Path("out.png").write_bytes(base64.b64decode(resp.data[0].b64_json))计费规则
费用 = 档位单价 × 张数 × 用户倍率| 尺寸 | 档位 |
|---|---|
1024x1024 | 1K |
1536x1024 等 | 2K |
| 更大尺寸 | 4K |
- ✅ 请求成功才扣费
- ✅ 上游报错(5xx / 401 等)不扣费
- ✅ 「模型广场」可实时查看每个图像模型的三档单价
错误码
| HTTP | 含义 | 排查方向 |
|---|---|---|
400 | 参数错误 | prompt 是否为空、n 是否正整数、edits 是否上传 image |
401 | API Key 无效 | 检查 Key 是否正确 / 未过期 / 未禁用 |
402 | 余额不足 | 充值或激活套餐 |
429 | 限流 | 稍后重试 |
503 | 服务不可用 | 联系平台运营,可能未配置图像渠道 |
5xx | 上游错误 | 不会扣费,可重试 |
错误响应格式:
{
"error": {
"type": "invalid_request_error",
"message": "prompt is required",
"code": "..."
}
}常见问题
| 问题 | 解决方案 |
|---|---|
| 报 404 | 检查 Base URL 是否为 /openai/draw/v1,末尾不要带斜杠 |
| 返回的图片在哪? | 在响应体的 data[0].b64_json,Base64 解码后即为 PNG |
| 想要 URL 不要 b64? | 当前网关返回 b64,客户端自行存储后生成 URL 即可 |
| 多张图片如何获取? | 设置 n: 3,响应 data 数组里会有 3 项 |
| 大图被拒绝 | 上传文件大小限制 50MB |
如有其他问题,请联系平台技术支持。
Last updated on