Skip to main content

概要

スタンドアロンの text-to-image / image-edit エンドポイントに加えて、APIYI は 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 を経由しなければならない場合にのみ使用してください(たとえば、Agent 会話の中で gpt-5.5 が描画するかどうかを自律的に判断させる場合など)。画像 1 枚あたり約 $0.20 の固定の tool-call 手数料が追加されます。

2つの方式の比較

コアな違いは、ネイティブツール方式では画像 1 枚ごとに固定の ≈$0.20 のツール料金が追加されるのに対し、images API は実際の使用量のみに基づいて課金されるため、ほとんどのケースでより安価です。

最小リクエスト

cURL

Python (requests)

オプションパラメータは tools 項目に入ります: {"type": "image_generation", "output_format": "png|jpeg|webp", "size": "1024x1024", ...}。省略すると、デフォルト(png)が使われます。

レスポンス構造(主要フィールド)

成功時(HTTP 200)は、レスポンス本文に次が含まれます:
画像が実際に生成されたかどうかを見分ける方法:
  • 成功: output には type="image_generation_call" が含まれ、result\x89PNG で始まる有効な画像としてデコードできます。
  • ⚠️ サイレントで除去: HTTP 200 ですが、outputimage_generation_call がなく、テキストのみです(チャネルがこのツールをサポートしていない場合によくあります)。
  • エラー: non-200、または unknown tool / no available channels などを返します。後者 2 つの場合は、/v1/images/generations にフォールバックしてください。

💰 課金

実際の 1 回の呼び出しを例にすると、(入力 2347 token、出力 74 token、1122×1402 の PNG を 1 枚生成)最終請求額 = $0.213954 となり、これは正しいです。内訳は次のとおりです。
換算: 500,000 quota = \$1106977 quota = \$0.213954 から算出)。
コンソールの詳細ページにおける表示上の癖(これを顧客に事前に説明してください)APIYI の「条件付き課金詳細」ページでは:
  • 上部には、計算式の Text portionbase cost = (2347 + 74×6) × 2.5 = 6977.50)しか表示されません。
  • Image tool 呼び出し料金(≈100,000 quota / ≈$0.20)は、詳細一覧では空白行として表示されますが、描画されません。
  • ただし、下部の「最終 quota 106977 / $0.213954」には 正しく反映されています
結論: 課金は正常かつ正確です。詳細 UI が「image tool」の行を表示しないだけなので、各明細を合計しても最終合計と一致しません。顧客には、合計金額は正しいこと、差分はこの画像のツール料金(≈$0.20/image)であり、個別の項目として表示されていないだけだと強調してください。

コストの注意点

  • 生成料金は 1 枚あたり固定(≈$0.20/image)で、prompt の長さによって変動しません。text token のコストはそれに比べると小さいです。
  • 各画像の生成には約 60〜90 秒かかるため、クライアントのタイムアウトは 300 秒以上に設定してください。
  • 画像だけが必要で、モデルに自律的な判断をさせる必要がない場合は、単独の /v1/images/generations エンドポイントのほうが、より安く、より制御しやすい可能性があります。

トラブルシューティング

関連ドキュメント