Skip to content

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 件事:

  1. 向图片生成接口发送一个 POST 请求。
  2. 从接口返回的 JSON 中提取图片的 Base64 数据。
  3. 将 Base64 数据解码为二进制图片,并保存为当前目录下的 image.png

执行前准备

在运行命令前,请确认以下条件已经满足:

  • 已获取可用的 API Key。
  • 当前系统已安装 curl
  • 当前系统已安装 jq,用于从 JSON 响应中提取字段。
  • 当前系统支持 base64 --decode 命令。

如果你的系统是 macOS,通常默认自带 curlbase64;如果没有安装 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 &gt; image.png
  • base64 --decode:将 Base64 文本解码为真实图片二进制数据。
  • > image.png:将解码结果写入当前目录下的 image.png 文件。

执行完成后,你会在当前目录看到生成好的图片文件。

推荐的实际使用方式

你可以直接复制下面这份模板,只替换 API Keyprompt

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 &gt; image.png

使用步骤

  1. 将命令中的 <你的 API_KEY> 替换为真实密钥。
  2. 按需修改 prompt
  3. 保留 modelgpt-image-2
  4. 保留或修改输出文件名,例如 image.pngresult.png
  5. 在终端执行命令。
  6. 打开生成后的图片文件查看结果。

常见改法

修改输出文件名

将最后的输出重定向改成其他文件名即可:

bash
&gt; 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 &lt;你的 API_KEY&gt;" \
  -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