main
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>
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
Languages
Python
100%