ComfyUI-OpenAI-Image-API
ComfyUI custom node for direct OpenAI image generation API calls using user-provided API key, with automatic text-to-image/image-to-image switching. (Description by CC)
ComfyUI-OpenAI-Image-API
OpenAI の画像生成 API を、ユーザー指定の API key で直接呼び出す ComfyUI カスタムノード。
入力画像の有無で text-to-image / image-to-image を自動切替する 1 ノード構成。
参考 API ドキュメント:
- https://developers.openai.com/api/docs/guides/image-generation
インストール
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