fudosanitandClaude Opus 4.7 01951f3842 Initial commit: OpenAI t2i / i2i ComfyUI custom node
OpenAI 画像生成 API を直接呼び出す ComfyUI カスタムノード。
- OpenAIImage: image 入力の有無で t2i / i2i を自動切替
  - 未接続: /v1/images/generations (JSON)
  - 接続あり: /v1/images/edits (multipart)
- gpt-image / dall-e のパラメータ違いを自動調整
- API key はノードパラメータで渡す
- moderation / auth / quota などのエラーを分類して ComfyUI に表示

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-27 16:39:05 +09:00

ComfyUI-OpenAI-Image-API

OpenAI の画像生成 API を、ユーザー指定の API key で直接呼び出す ComfyUI カスタムノード。

入力画像の有無で text-to-image / image-to-image を自動切替する 1 ノード構成。

参考 API ドキュメント:

インストール

cd ComfyUI/custom_nodes
git clone https://github.com/fudosanit/ComfyUI-OpenAI-Image-API.git
cd ComfyUI-OpenAI-Image-API
pip install -r requirements.txt   # 実質 requests のみ

ComfyUI を再起動するとカテゴリ OpenAI にノードが現れます。

ノード

OpenAI Image t2i/i2i (OpenAI API) — OpenAIImage

入力 内容
api_key OpenAI API key (パスワード入力)
prompt プロンプト
model gpt-image-1 / -mini / gpt-image-2 / gpt-image-1.5 / dall-e-3 / dall-e-2
size auto / 1024x1024 / 1536x1024 / 1024x1536 / 2048x2048 / 1792x1024 / 1024x1792 / 512x512 / 256x256
quality auto / low / medium / high (gpt-image) / standard / hd (dall-e)
background auto / opaque / transparent (gpt-image のみ)
n 出力枚数 (1–10)
image (任意) 接続あり → i2i (/v1/images/edits)、接続なし → t2i (/v1/images/generations)

出力: IMAGE, STRING (revised_prompt)

モデル別の挙動の自動調整

  • gpt-image-* の場合: response_format パラメータを送らない (gpt-image は受け付けない)
  • dall-e-* の場合: response_format=b64_json を明示
  • background は gpt-image でのみ送信
  • auto 値はリクエストから除外して API 側のデフォルトに任せる

無効な組み合わせ (例: dall-e-2 で 1536x1024) は OpenAI 側のエラーとして そのままノードに返ってきます。

エラーハンドリング

OpenAI のエラー (Moderation / 認証 / 課金枠 / レート制限など) は 種類ごとに分類し、ComfyUI の赤バナーに次のように表示されます:

[OpenAI Image t2i] OpenAI Content Moderation (HTTP 400, code=moderation_blocked): Your request was rejected as a result of our safety system.
[OpenAI Image i2i] OpenAI Auth Error (HTTP 401, code=invalid_api_key): Incorrect API key provided.
[OpenAI Image t2i] OpenAI Rate Limit / Quota (HTTP 429, code=insufficient_quota): You exceeded your current quota.

詳細はコンソールログ (ComfyUI-OpenAI-Image-API ロガー) にも WARNING で出力されます。

⚠️ API key の取り扱い注意

  • ノードの api_key フィールドは UI 上はマスク表示されますが、保存されたワークフロー JSON にはプレーンテキストで残ります。
  • ワークフローを共有・公開する前に、必ず api_key 欄を空にしてください。

ライセンス

MIT

S
Description
No description provided
Readme
30 KiB
Languages
Python 100%