快速说明
gpt-image-2 是 LaoZhang API 提供的图像生成与图像编辑模型,适合需要 OpenAI 兼容接口、希望同时覆盖文生图和图改图的开发场景。
价格
gpt-image-2 按次计费,价格为 $0.03/次。
接口怎么选
| 你的需求 | 推荐接口 | 返回方式 |
|---|
| 已经在用 Chat Completions,希望少改代码 | /v1/chat/completions | Markdown 图片 URL,位于 choices[0].message.content |
| 只做文生图,并希望使用标准 Images API 结构 | /v1/images/generations | 默认 data[0].b64_json,也可返回 data[0].url |
| 需要 multipart 上传本地图片做图改图 | /v1/images/edits | 默认 data[0].b64_json,也可返回 data[0].url |
| 源图已经是 CDN 地址或 base64 data URL | /v1/chat/completions | Markdown 图片 URL |
如果你的应用只是“输入提示词,拿到一张图片 URL”,优先使用 /v1/chat/completions。如果你需要标准 Images API 响应结构,或已有 OpenAI Images API 代码,可以使用 /v1/images/generations 和 /v1/images/edits。
基础配置
export LAOZHANG_API_KEY="sk-你的许可"
export BASE_URL="https://api.laozhang.ai/v1"
OpenAI 兼容调用使用统一网关地址 https://api.laozhang.ai/v1,不要把 base URL 写成模型级路径。
Chat Completions 文生图
这是最简单的接入方式:把 model 设置为 gpt-image-2,把图片需求写进 messages。
curl "$BASE_URL/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $LAOZHANG_API_KEY" \
-d '{
"model": "gpt-image-2",
"messages": [
{
"role": "user",
"content": "生成一张白色陶瓷马克杯放在灰色桌面上的产品图,柔和自然光,简洁背景"
}
],
"stream": false
}'
返回中的图片通常在 choices[0].message.content 里,以 Markdown 图片链接形式出现:
{
"choices": [
{
"message": {
"role": "assistant",
"content": ""
}
}
]
}
Chat Completions 图改图
当源图是可访问的 CDN 图片地址,或者你已经把图片转成了 base64 data URL,可以继续使用 /v1/chat/completions。messages[].content 需要改成数组,同时传入文字指令和图片。
使用图片 URL
curl "$BASE_URL/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $LAOZHANG_API_KEY" \
-d '{
"model": "gpt-image-2",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "使用提供的图片作为源图。保留主体、构图和文字,只把杯身贴纸改成红色,并给杯口加一条很细的金色边。"
},
{
"type": "image_url",
"image_url": {
"url": "https://example.com/source.png"
}
}
]
}
],
"stream": false
}'
使用 base64 data URL
curl "$BASE_URL/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $LAOZHANG_API_KEY" \
-d '{
"model": "gpt-image-2",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "使用提供的图片作为源图。保留主体、构图和文字,只把贴纸改成绿色。"
},
{
"type": "image_url",
"image_url": {
"url": "data:image/png;base64,这里放图片base64"
}
}
]
}
],
"stream": false
}'
Images Generations 文生图
如果你的代码已经使用 OpenAI Images API,可以调用 /v1/images/generations。
默认返回 data[0].b64_json:
curl "$BASE_URL/images/generations" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $LAOZHANG_API_KEY" \
-d '{
"model": "gpt-image-2",
"prompt": "生成一张简洁产品海报:木质桌面上一张白色卡片,卡片右下角印有 IMG-42"
}'
如果你希望直接拿图片 URL,添加 response_format:
curl "$BASE_URL/images/generations" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $LAOZHANG_API_KEY" \
-d '{
"model": "gpt-image-2",
"prompt": "生成一张简洁产品海报:木质桌面上一张白色卡片,卡片右下角印有 IMG-42",
"response_format": "url"
}'
Images Edits 图改图
如果源图在本地文件中,使用 /v1/images/edits 的 multipart 表单上传方式更直接。
默认返回 data[0].b64_json:
curl "$BASE_URL/images/edits" \
-H "Authorization: Bearer $LAOZHANG_API_KEY" \
-F "model=gpt-image-2" \
-F "prompt=使用提供的图片作为源图。保留桌面、卡片和 IMG-42 标签,只给卡片加一条很细的红色边框。" \
-F "image=@source.png"
返回 URL:
curl "$BASE_URL/images/edits" \
-H "Authorization: Bearer $LAOZHANG_API_KEY" \
-F "model=gpt-image-2" \
-F "prompt=使用提供的图片作为源图。保留桌面、卡片和 IMG-42 标签,只给卡片加一条很细的蓝色边框。" \
-F "image=@source.png" \
-F "response_format=url"
返回结果解析
提取 Chat Completions 图片 URL
import re
content = response["choices"][0]["message"]["content"]
match = re.search(r"!\[[^\]]*\]\((https?://[^)\s]+)\)", content)
image_url = match.group(1) if match else None
保存 Images API 的 b64_json
import base64
value = response["data"][0]["b64_json"]
if value.startswith("data:"):
value = value.split(",", 1)[1]
with open("output.png", "wb") as f:
f.write(base64.b64decode(value))
读取 Images API 的 URL
image_url = response["data"][0]["url"]
图改图提示词写法
图改图的关键是明确“保留什么”和“只改什么”。推荐写法:
使用提供的图片作为源图。保留主体、构图、镜头角度和关键文字。只修改一个明确细节:把 X 改成 Y。
更稳定的写法:
- 保留商品、背景、镜头角度,只替换颜色或局部装饰。
- 保留卡片位置和文字,只增加边框、标签或小图标。
- 避免写“生成一张类似图片”,这会让模型更容易重绘整张图。
常见问题
为什么 Chat Completions 里没有 data[0].url?
/v1/chat/completions 返回的是对话补全结构。图片 URL 在 choices[0].message.content 的 Markdown 图片链接里。data[0].url 是 Images API 的返回结构。
先检查返回值是否包含 data:image/png;base64, 前缀。包含前缀时,先按第一个逗号切分,再对后半段做 base64 解码。
gpt-image-2 按次计费,价格为 $0.03/次。