跳转到主要内容

概述

除了独立的 文生图 / 图片编辑 端点外,API易 还支持 OpenAI Responses API 的原生 image_generation 工具:由主线模型 gpt-5.5 在对话中自主决定何时画图,内部自动选用 GPT Image 模型,图片以 base64 形式回传在响应的 output 数组里。
实测可用(2026-06-17)gpt-5.5 + POST /v1/responses + tools: [{"type": "image_generation"}],返回合法 base64 PNG。两条出图链路均走 OpenAI 官网直转。
怎么选? 绝大部分「我就是要张图」的场景,请优先用独立端点 /v1/images/generations——只按实际用量计费,更划算也更可控。仅当你的链路必须走 Responses(例如让 gpt-5.5 在 Agent 对话中自主决定是否画图)时,才用本页的原生工具方式——它每次出图额外固定收一笔约 $0.20 的工具调用费。

两种出图方式对比

对比项原生工具方式(本页)images API
渠道来源OpenAI 官网直转OpenAI 官网直转
调用端点/v1/responses/v1/images/generations/v1/images/edits
调用工具image_generation无(直接传 prompt)
计费方式按量计费 + 工具调用费按量计费
计费明细文本/图片输入输出费用官网同价;工具调用费固定约 $0.20/次文本/图片输入输出费用官网同价
适合场景必须用 Responses 的场景(如 Agent 自主决策)绝大部分出图场景,计费更合理
根本差异:原生工具方式每次出图额外固定约 $0.20 工具费;images API 只按实际用量计费,所以多数场景更划算。

最简调用

cURL

curl https://api.apiyi.com/v1/responses \
  -H "Authorization: Bearer $APIYI_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.5",
    "input": "Generate an image of a gray tabby cat hugging an otter with an orange scarf",
    "tools": [
      { "type": "image_generation" }
    ]
  }'

Python(requests)

import base64, requests

resp = requests.post(
    "https://api.apiyi.com/v1/responses",
    headers={
        "Authorization": "Bearer $APIYI_KEY",
        "Content-Type": "application/json",
    },
    json={
        "model": "gpt-5.5",
        "input": "Generate an image of a gray tabby cat hugging an otter with an orange scarf",
        "tools": [{"type": "image_generation"}],
    },
    timeout=300,           # 出图慢,务必给足超时(单张约 60~90s)
)
data = resp.json()

# 从 output 数组里取出图片工具的结果
for item in data["output"]:
    if item.get("type") == "image_generation_call":
        raw = base64.b64decode(item["result"])   # result 字段是 base64 图
        with open("output.png", "wb") as f:
            f.write(raw)
        print("已保存 output.png,", len(raw), "bytes")
可选参数放进 tools 项里:{"type": "image_generation", "output_format": "png|jpeg|webp", "size": "1024x1024", ...}。不写则用默认(png)。

响应结构(关键字段)

成功时 HTTP 200,响应体里:
{
  "id": "resp_...",
  "model": "gpt-5.5-2026-04-23",
  "status": "completed",
  "output": [
    {
      "type": "image_generation_call",   // ← 关键:工具真的被触发了
      "result": "<很长的 base64 PNG 串>"  // ← 图片本体,base64,默认 png
    },
    { "type": "message", "content": [ /* 可能为空,出图时不一定带文字 */ ] }
  ],
  "usage": { "input_tokens": 2347, "output_tokens": 74 }
}
判断是否真出图:
  • 成功output 里有 type="image_generation_call",且 result 解码出 \x89PNG 开头的合法图。
  • ⚠️ 被静默剥离:HTTP 200 但 output没有 image_generation_call,只有一段文字(常见于渠道不支持)。
  • 报错:非 200,或返回 unknown tool / no available channels 等。后两种可改走 /v1/images/generations 兜底。

💰 计费说明

以一次真实调用为例(输入 2347 token、输出 74 token、生成 1 张 1122×1402 PNG),最终扣费 = $0.213954,计费正确。拆解如下:
组成配额计算折合美金
文本部分(输入 2347 + 输出 74×补全倍率 6) × 输入倍率 2.5 = 6977.5 配额≈ $0.014
图片工具部分≈ 100,000 配额(按张计,与 token 无关)≈ $0.20 / 张
合计106,977 配额$0.213954
换算关系:500,000 配额 = \$1(由 106977 配额 = \$0.213954 反推)。
控制台明细页的展示问题(需主动向客户说明)在 APIYI 的「条件计费详情」页面里:
  • 上半部分只展示了文本部分的计算(基础成本 = (2347 + 74×6) × 2.5 = 6977.50);
  • 画图工具调用的那一笔费用(≈100,000 配额 / ≈$0.20)在明细列表里是一行空白,没有渲染出来
  • 但它已经被正确计入底部的「最终配额 106977 / $0.213954」。
结论:计费是正常、准确的——只是明细 UI 漏显示了「图片工具」这一行,导致明细各行相加 ≠ 最终总额。向客户解释时强调:总额无误,差额就是这张图的工具费(约 $0.20/张),只是没单独列出来。

成本提示

  • 出图费用是按张固定(约 $0.20/张),不随 prompt 长短变化;文本 token 费相比之下很小。
  • 单张耗时约 60~90s,代码里超时建议设 ≥300s。
  • 如果只是要图、不需要模型自主决策,用独立端点 /v1/images/generations 可能更省也更可控。

排错速查

现象可能原因处理
200 但无 image_generation_call当前渠道不支持该工具(静默剥离)换 key/渠道,或改用 /v1/images/generations
no available channels该 key 分组下无对应渠道换有 GPT/图片渠道的 key 分组
请求超时出图慢客户端超时设 300s
result 解码后不是 PNG输出格式被改 / 渠道异常检查 output_format,核对魔数

相关文档