Files
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

69 lines
2.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
## インストール
```bash
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