外观
GPT-Image-2 Curl 使用说明
本文说明如何通过 iToo AI API 使用下面这条 curl 命令调用 GPT-Image-2 图片生成接口,并将返回的 Base64 图片数据解码保存为本地文件。
完整示例
bash
curl -X POST "https://itoo.me/v1/images/generations" \
-H "Authorization: Bearer <你的 API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "A clean product photo of a minimalist ceramic mug on a wooden desk",
"output_format": "png"
}' | jq -r '.data[0].b64_json' | base64 --decode > image.png这条命令做了什么
这条命令一共完成了 3 件事:
- 向图片生成接口发送一个
POST请求。 - 从接口返回的 JSON 中提取图片的 Base64 数据。
- 将 Base64 数据解码为二进制图片,并保存为当前目录下的
image.png。
执行前准备
在运行命令前,请确认以下条件已经满足:
- 已获取可用的 API Key。
- 当前系统已安装
curl。 - 当前系统已安装
jq,用于从 JSON 响应中提取字段。 - 当前系统支持
base64 --decode命令。
如果你的系统是 macOS,通常默认自带 curl 和 base64;如果没有安装 jq,可以通过以下命令安装:
bash
brew install jq命令逐段说明
1. 发送请求
bash
curl -X POST "https://itoo.me/v1/images/generations"curl:用于发送 HTTP 请求。-X POST:指定请求方法为POST。"https://itoo.me/v1/images/generations":图片生成接口地址。
2. 设置请求头
bash
-H "Authorization: Bearer <你的 API_KEY>"
-H "Content-Type: application/json"Authorization:用于携带你的身份凭证。Bearer <你的 API_KEY>:请将<你的 API_KEY>替换为你自己的真实密钥。Content-Type: application/json:表示请求体采用 JSON 格式。
示例:
bash
-H "Authorization: Bearer sk-xxxxxx"3. 设置请求体
json
{
"model": "gpt-image-2",
"prompt": "A clean product photo of a minimalist ceramic mug on a wooden desk",
"output_format": "png"
}各字段含义如下:
model:指定使用的模型,这里为gpt-image-2。prompt:图片生成提示词,用于描述你想要生成的内容。output_format:指定输出图片格式,这里为png。
prompt 怎么写
prompt 决定了图片内容,建议尽量写清楚以下信息:
- 主体是什么。
- 场景在哪里。
- 风格是什么。
- 光线、构图、背景有什么要求。
- 是否需要写实、插画、极简、商业海报等效果。
例如:
json
"prompt": "A realistic product photo of a white ceramic mug on a wooden table, soft morning light, minimal background"4. 提取返回结果中的图片数据
bash
| jq -r '.data[0].b64_json'接口通常会返回 JSON 数据,其中图片内容位于类似下面的字段中:
json
{
"data": [
{
"b64_json": "iVBORw0KGgoAAA..."
}
]
}这里的含义是:
|:将前面命令的输出传递给下一个命令。jq -r:使用jq提取字段,并以原始文本形式输出。.data[0].b64_json:取返回结果中第一张图片的 Base64 内容。
5. 解码并保存为文件
bash
| base64 --decode > image.pngbase64 --decode:将 Base64 文本解码为真实图片二进制数据。> image.png:将解码结果写入当前目录下的image.png文件。
执行完成后,你会在当前目录看到生成好的图片文件。
推荐的实际使用方式
你可以直接复制下面这份模板,只替换 API Key 和 prompt:
bash
curl -X POST "https://itoo.me/v1/images/generations" \
-H "Authorization: Bearer sk-xxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "A realistic product photo of a glass bottle on a marble table, studio lighting, premium commercial style",
"output_format": "png"
}' | jq -r '.data[0].b64_json' | base64 --decode > image.png使用步骤
- 将命令中的
<你的 API_KEY>替换为真实密钥。 - 按需修改
prompt。 - 保留
model为gpt-image-2。 - 保留或修改输出文件名,例如
image.png、result.png。 - 在终端执行命令。
- 打开生成后的图片文件查看结果。
常见改法
修改输出文件名
将最后的输出重定向改成其他文件名即可:
bash
> my-image.png修改提示词
例如改成生成插画风格图片:
json
"prompt": "A cute illustrated cat astronaut floating in space, colorful children's book style"保存为其他格式
如果接口支持其他输出格式,可以调整:
json
"output_format": "png"例如改成:
json
"output_format": "jpeg"是否支持对应格式,以接口实际能力为准。
常见问题
1. 提示认证失败
可能原因:
- API Key 填写错误。
Bearer后面没有正确拼接空格和密钥。- API Key 已失效或无权限。
2. 提示 jq: command not found
说明本机未安装 jq,请先安装后再执行命令。
3. 生成的文件打不开
可能原因:
- 接口报错,返回的并不是图片数据,而是错误 JSON。
jq提取的字段为空。- 命令执行过程中被截断。
建议先去掉最后的管道,直接查看原始响应:
bash
curl -X POST "https://itoo.me/v1/images/generations" \
-H "Authorization: Bearer <你的 API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "A clean product photo of a minimalist ceramic mug on a wooden desk",
"output_format": "png"
}'确认返回结构中确实存在 .data[0].b64_json 后,再加回后续处理命令。
总结
这条命令的核心流程可以概括为:
发送图片生成请求 -> 提取 Base64 图片数据 -> 解码保存为本地 PNG 文件
如果你只是想快速使用,最少只需要修改两处:
- 替换
API Key - 修改
prompt
