# n8nでGPT Image 2.5：ノードとHTTPの使い分け

> n8nのOpenAIノードは品質high・1024系サイズまで。xhigh・2K以上・使用量の記録が要るならHTTP RequestとConvert to Fileで組みます。

- URL: https://blog.laozhang.ai/ja/posts/gpt-image-2-5-n8n
- Published: 2026-09-21
- Updated: 2026-09-25
- Author: LaoZhang AI Team (https://blog.laozhang.ai/ja/about)
- Topic: AI 画像生成
- Tags: GPT Image 2.5, n8n, 画像生成API, ワークフロー

---
n8nからGPT Image 2.5を呼ぶ方法は2つあります。OpenAIノードの「Generate an Image」「Edit Image」でモデルIDを指定する方法と、HTTP RequestノードでImage APIを直接呼ぶ方法です。品質はhighまで、サイズは1024x1024・1024x1536・1536x1024のどれか、出力はPNGでよく、使用量を記録しなくて構わないなら、OpenAIノードで足ります。xhighやmax、2K・4Kや任意の縦横比、透過背景の新規生成、使用量（usage）の記録のどれかが必要なら、HTTP Requestに切り替えます。

モデルIDは`gpt-image-2.5-flare`と`gpt-image-2.5-sunburst`の2つで、`gpt-image-2.5`というIDはありません（[OpenAIのモデルページ](https://developers.openai.com/api/docs/models/gpt-image-2.5-flare)）。OpenAI互換の中継APIを使う場合は、そのAPIが画像をどんな形で返すかによって、後ろにつなぐノードが変わります。

## OpenAIノードで足りるか、HTTP Requestに切り替えるか

OpenAIノードで設定できる項目は、ノードに組み込まれた選択肢で決まります。GPT Image 2.5はAPIとしてはquality `low`／`medium`／`high`／`xhigh`／`max`／`auto`（既定は`auto`）を受け付け、サイズも条件を満たせば自由に指定できますが、ノードの選択肢はそれより狭くなっています。

下の表の内容は、n8nの公開ソースコード（`master`、2026年9月25日時点）にある設定定義に基づきます。Generate an Imageの該当ファイルは2026年5月20日から変わっておらず、2026年9月24日公開の`n8n@2.40.6`も同じ動きになるはずですが、手元のバージョンでは次の段落の方法で確かめてください。

| 必要なこと | Generate an Image | Edit Image | HTTP Request |
|---|---|---|---|
| 2.5のモデルIDを指定 | ノードのtypeVersion 2.2以上 | typeVersion 2.3以上 | 可能 |
| quality | high／medium／low | auto／high／medium／low | xhigh・maxを含む全値 |
| サイズ | 1024x1024、1024x1536、1536x1024 | 256・512・1024の正方形、1024x1536、1536x1024、auto | 2K・4K、任意の縦横比 |
| 透過背景 | 設定項目なし | Backgroundで指定可 | `background`で指定可 |
| 出力形式 | PNGのみ（項目なし） | png／jpeg／webp | png／jpeg／webp |
| 参照画像の複数指定・マスク | — | 可能 | Form-Dataで可能 |
| 使用量（usage） | 捨てられる | 捨てられる | 応答に残る |
| 画像の受け取り | `b64_json`だけをデコード | `b64_json`をデコード | どの形でも受けて後段で処理 |

判断はこうなります。

- **OpenAIノードのままでよい**：1024系の3サイズで、品質はhighまで、PNGで足り、1枚ごとの使用量を残す必要がない場合。Generate an Imageは結果をそのまま画像ファイル（バイナリデータ）として出すので、ノード数がいちばん少なく済みます。
- **HTTP Requestに切り替える**：xhigh・max・auto（Generateの場合）を使いたい、2048x1152のような2Kサイズや4K、1:3〜3:1の縦長・横長を作りたい、透過背景で新規生成したい、生成時点でjpeg・webpにしたい、使用量を記録して費用を把握したい、のどれかに当てはまる場合。
- **中継APIがURLやジョブ方式で返す場合**：OpenAIノードは`b64_json`しかデコードしないため、HTTP Requestで受けてダウンロードやポーリングを後ろに足します（詳しくは後述）。

手元のノードで確かめるには、OpenAIノードのOptionsで「Add Option」からQualityとResolutionを追加し、選択肢を開きます。QualityがHigh・Medium・Lowの3つしかなければ、表のとおりxhighとmaxには届きません。モデル欄に「From List」と「ID」の切り替えがなく、DALL·EとGPT Image 1しか選べない場合は、ノードのtypeVersionが古いままです。typeVersionはn8n本体のバージョンとは別の番号で、ノードを選択してコピーし、テキストエディタに貼り付けると`"typeVersion"`の値が見えます。古い場合はノードを新しく追加し直します。

もう一つ、Generate an ImageでQualityをOptionsに追加しなかった場合、ソースコード上はqualityがリクエストに含まれないため、API側の既定値`auto`が使われます。`auto`ではモデルが品質を選ぶので、同じプロンプトでも1枚ごとの消費トークンが変わることがあります。費用をそろえたいならQualityを明示します。

## 認証情報とモデルID：OpenAI直接と中継APIの違い

n8nのOpenAI認証情報（Credentials）には、API Key、Organization ID（任意）、Base URL（既定は`https://api.openai.com/v1`）、Add Custom Headerの欄があります。ノードは「Base URL＋エンドポイント」に送るので、OpenAI互換の中継APIに向けるときはBase URLを書き換えるだけで済みます。Organization IDを入れるべきかどうかは、[OpenAI API Key と Organization ID: 2026年に本当に必要なもの](https://blog.laozhang.ai/ja/posts/openai-api-key-organization-id)で判断できます。

モデル欄を「From List」にすると、n8nはBase URLの`/models`を呼び、IDに`dall-e`か`gpt-image`を含むモデルだけを一覧に出します。2.5の2つのIDは`gpt-image`を含むので、`/models`が返していれば一覧に出ます。一覧にない場合は「ID」に切り替えて`gpt-image-2.5-flare`などを手入力します。Generate an Imageは一覧モードの初期値が`gpt-image-1-mini`なので、変え忘れると別のモデルで生成されます。

OpenAIを直接使う場合、GPT Image系のモデルは開発者コンソールで組織の本人確認（[API Organization Verification](https://help.openai.com/en/articles/10910291-api-organization-verification)）を済ませないと使えないことがあります。403が返る、あるいはモデルが使えないと言われるときは、キーより先にここを確認します。

中継APIを使う場合は、Base URLのほかに2点を確かめます。

1. **モデルIDがOpenAIと同じか**。事業者によっては両モデルを1つの独自IDにまとめていたり、回数課金用に別名を付けていたりします。一覧に出ないIDを推測で入れるのではなく、その事業者のドキュメントにあるIDをID欄に入れます。
2. **画像をどの形で返すか**。次の節の表で、自分のAPIがどれに当たるかを見ます。

一例として、LaoZhang APIの場合はBase URLが`https://api.laozhang.ai/v1`で、公式転送のルートはOpenAIと同じ`gpt-image-2.5-flare`／`gpt-image-2.5-sunburst`をトークン課金で使えます（`Sora2Official`グループはOpenAIと同じ単価）。1回ごとの定額で使う`-vip`付きのIDもあり、2026年9月16日に一時停止したあと9月22日に再開していますが、こちらはマスクに対応していません。`gpt-image-2.5-web`はFlareとSunburstを選べません。返り値が前置き付きのBase64や期限付きURLになる場合があるので、次の節の処理を入れておきます（[LaoZhangのGPT Image 2.5ドキュメント](https://docs.laozhang.ai/api-capabilities/gpt-image-2-5)）。

*注記：[laozhang.ai は当ブログ運営チームの自社サービスです](https://blog.laozhang.ai/ja/about#laozhang)。その料金は中立的な比較ではなく、自社の提示価格です。*

## 画像の返り方で決まるn8nのつなぎ方

HTTPステータスが200でも、画像がファイルになっているとは限りません。APIが返す形は大きく4つあり、それぞれ後ろにつなぐノードが違います。

| 返り値の形 | 見分け方 | n8nでのつなぎ方 |
|---|---|---|
| 素のBase64 | `data[].b64_json`が`iVBOR…`のように始まる。OpenAIのImage APIはこの形 | OpenAIノードでそのまま使える。HTTP RequestならEdit Fields→Convert to File |
| 前置き付き・末尾の`=`が欠けたBase64 | `data:image/png;base64,`で始まる、または長さが4の倍数でない | Codeノードで前置きを外し`=`を補ってからConvert to File |
| 期限付きURL | `data[].url`にURLが入る | もう1つのHTTP Request（Response Format：File）ですぐにダウンロード |
| ジョブ投入＋状態確認 | 最初の応答がタスクIDだけ | Wait→状態確認のHTTP Request→IFで繰り返し、完了後にURLをダウンロード |

OpenAIノードは応答の`data[].b64_json`をバイナリに変換する処理しか持っていないため、URLやジョブ方式で返すAPIでは画像を作れません（ソースコードからの推論で、実際の失敗の仕方は事業者によって異なります）。ジョブ方式の例としては、HiAPIの[n8n向け手順](https://www.hiapi.ai/en/blog/gpt-image-2-n8n-workflow)が、タスクIDを受け取ってから5秒おきに最大36回状態を確認し、完了後に結果のURLを受け取る構成を紹介しています。この手順でもファイルの保存は別工程として扱われています。

期限付きURLは時間がたつと開けなくなるので、応答を受けたワークフローの中ですぐダウンロードし、URLそのものを保存先に残すだけで終わらせないようにします。

## HTTP Requestで生成して画像ファイルにする手順

ここではOpenAIを直接呼び、2Kの横長画像を1枚作ってPNGファイルにするところまでを組みます。中継APIでもURLとキーを差し替えれば同じ形で動きます。

**1. HTTP Requestノード**

- Method：`POST`
- URL：`https://api.openai.com/v1/images/generations`
- ヘッダー：`Authorization`に`Bearer <APIキー>`。キーはワークフローに直接書かず、認証情報として保存します
- Send Body：JSON

```json
{
  "model": "gpt-image-2.5-flare",
  "prompt": "木のデスクに置いた白いマグカップ、やわらかな自然光、余白の多い構図",
  "size": "2048x1152",
  "quality": "high",
  "output_format": "png",
  "n": 1
}
```

前のノードからプロンプトを受け取るときは、`"prompt": {{ JSON.stringify($json.prompt) }}`のように書くと、プロンプト内の引用符や改行でJSONが壊れません。gpt-image系では`response_format`を送る必要はなく、中継APIによってはパラメータエラーになります。

サイズは幅・高さとも16の倍数、縦横比は1:3〜3:1、長辺3840px以下、総ピクセル数655,360〜8,294,400の範囲なら指定できます。`2048x1152`は16:9で約236万ピクセルなので条件内です。2560x1440を超える解像度はOpenAIが「experimental」としているので、4Kは仕上がりを見てから本番に回します。透過背景にするなら`"background": "transparent"`を加え、出力形式を`png`か`webp`にします（[OpenAIの画像生成ガイド](https://developers.openai.com/api/docs/guides/image-generation)）。4Kのサイズ指定と保存後の寸法確認は、GPT Image 2向けですが[GPT Image 2 4K APIガイド：3840x2160を生成・保存・検証する](https://blog.laozhang.ai/ja/posts/gpt-image-2-4k-image-generation)の手順がそのまま参考になります。

**2. 使用量を先に記録する**

応答には`data`と並んで`usage`が入り、`input_tokens`、`output_tokens`、`total_tokens`、`input_tokens_details`（テキストと画像の内訳）が読めます。GPT Image 2.5はトークン課金で、FlareとSunburstの単価は同じでも、モデルや品質によって1枚あたりの消費トークンは変わります。1枚の費用は、この`usage`から計算するしかありません。単価と1枚あたりの目安は[GPT Image 2.5 Sunburstの料金：公式単価と1回$0.03のAPIを比較](https://blog.laozhang.ai/ja/posts/gpt-image-2-5-api-pricing)にあります。

この記録は、次のConvert to Fileより前に済ませます。Convert to Fileの出力はJSONが空になり、画像ファイルだけが残るためです。HTTP Requestの出力をGoogle スプレッドシートやData Tableなどの記録用ノードにも分岐させ、`{{ $json.usage.total_tokens }}`などを書き込んでおきます。

**3. Edit FieldsでBase64を取り出す**

Edit Fieldsで新しいフィールド`image_base64`を作り、値に`{{ $json.data[0].b64_json }}`を入れます。

**4. Convert to Fileでファイルにする**

操作は「Move Base64 String to File」を選びます。Base64 Input Fieldには`image_base64`という**フィールド名**を入れ、Base64の中身や式は入れません。Put Output File in Fieldは既定の`data`のままでよく、OptionsでFile Name（例：`mug-2048x1152.png`）とMIME Type（`image/png`）を設定すると、後ろの保存先で扱いやすくなります。

![HTTP Requestの応答にあるb64_jsonをEdit Fieldsでimage_base64というフィールドに移し、Convert to FileでPNGのバイナリデータにする4段階の流れ](https://blog.laozhang.ai/posts/ja/gpt-image-2-5-n8n/img/base64-to-file.webp)

図のConvert to File欄は簡略化した表記で、実際の画面の項目名はBase64 Input FieldとPut Output File in Fieldです。

HTTP RequestのOptionsで「Include Response Headers and Status」をオンにしている場合は、応答の本文が`body`の下に入るので、式は`{{ $json.body.data[0].b64_json }}`、使用量は`{{ $json.body.usage }}`になります。

### 中継APIの返り値を整えるCodeノード

前置き付きのBase64やURLを返すAPIでは、手順3のEdit Fieldsの代わりにCodeノード（JavaScript）を置きます。次のコードは、前置きと空白を取り除いて末尾の`=`を補い、`n`が2以上のときは1枚ずつ別のアイテムに分けます。URLで返ってきたものは`image_url`に入れるので、IFノードで分岐させ、URL側はHTTP Request（Response Format：File）でダウンロードします。

```javascript
const out = [];
for (const item of $input.all()) {
  // Include Response Headers and Status がオンなら body の下にある
  const res = item.json.body ?? item.json;
  const usage = res.usage ?? null;
  (res.data ?? []).forEach((entry, index) => {
    if (entry.b64_json) {
      let b64 = entry.b64_json;
      if (b64.startsWith('data:')) b64 = b64.split(',')[1];
      b64 = b64.replace(/\s/g, '');
      b64 += '='.repeat((4 - (b64.length % 4)) % 4);
      out.push({ json: { index, image_base64: b64, usage } });
    } else if (entry.url) {
      out.push({ json: { index, image_url: entry.url, usage } });
    }
  });
}
return out;
```

`usage`をアイテムごとに持たせてあるので、記録用ノードはこのCodeノードの後ろに分岐させても構いません。Convert to Fileが前置き付きのBase64をそのまま受け付けるかは公開情報に記載がないため、前置きは変換前に外しておきます。

## 参照画像やマスクを使う編集

OpenAIノードのEdit Imageは、typeVersion 2.3以上ならモデル欄で2.5のIDを指定できます。Imagesに複数のバイナリフィールドを追加すると、それぞれが`image[]`として送られます。Image Maskを指定すると、マスクは1枚目の画像に適用されます。品質はhighまで、サイズは長辺1536までなので、大きなサイズで編集したい場合はHTTP Requestを使います。

HTTP Requestで編集するときは、URLを`https://api.openai.com/v1/images/edits`にし、Send BodyをForm-Dataにします。パラメータの種類で「n8n Binary File」を選び、Nameに`image[]`、Input Data Field Nameに手前のノードのバイナリフィールド名（既定なら`data`）を入れます。参照画像が複数あるときは、同じ`image[]`のパラメータを枚数分追加します。`model`、`prompt`、`size`、`quality`は通常のForm Dataとして並べます。

マスクについては、次の点を守ります。

- 元画像とマスクは形式とサイズをそろえ、マスクにはアルファチャンネルを持たせる
- マスクは目安として扱われ、モデルが境界どおりに塗り分けるとは限らない。OpenAIはGPT Imageのマスクを「プロンプトに基づく」と説明している
- ファイルサイズの上限は、OpenAIのガイド（50MB未満）とn8nノードのヒント（マスクPNGは4MB未満）で書き方が違う。使うAPIのドキュメントの値に合わせる
- Edit ImageのOptionsにあるInput Fidelityは、OpenAIが古いGPT Imageモデル向けとしてしか説明していないため、2.5では設定しない

中継APIでは、同時に送れる参照画像の数やマスク対応が事業者ごとに違います。たとえばLaoZhang APIの公式転送ルートは参照画像を最大16枚まで受け付けますが、`-vip`付きのモデルはマスクに対応していません。どちらのモデルが編集に向くかは、[GPT Image 2.5 FlareとSunburstの違い](https://blog.laozhang.ai/ja/posts/gpt-image-2-5-sunburst-vs-flare)が参考になります。

*注記：[laozhang.ai は当ブログ運営チームの自社サービスです](https://blog.laozhang.ai/ja/about#laozhang)。その料金は中立的な比較ではなく、自社の提示価格です。*

## まとめて生成するときの間隔とタイムアウト

スプレッドシートの行ごとに画像を作るような一括処理では、OpenAIの利用枠（Usage Tier）ごとの1分あたりの画像枚数（IPM）が先に効きます。FlareとSunburstの既定の上限は同じで、1分に1枚ずつ送るならリクエストの間隔は「60,000 ÷ IPM」ミリ秒以上あればIPMを超えません。

| Tier | IPM | TPM | Batch Intervalの下限 |
|---|---|---|---|
| Tier 1 | 5 | 100,000 | 12,000ms |
| Tier 2 | 20 | 250,000 | 3,000ms |
| Tier 3 | 50 | 800,000 | 1,200ms |
| Tier 4 | 150 | 3,000,000 | 400ms |
| Tier 5 | 250 | 8,000,000 | 240ms |

IPMとTPMはOpenAIのモデルページの既定値、Batch Intervalはそこから計算した値です。HTTP RequestのOptionsでBatchingを追加し、Items per Batchを`1`、Batch Intervalを表の値以上にします。この計算は1リクエスト1枚（`n: 1`）で、同じ組織のキーをほかで使っていない場合の話です。ほかのワークフローも同じキーを使うなら、そのぶん間隔を広げます。大きなサイズや高品質では1枚あたりのトークンが増えるので、TPMの上限に先に当たることもあります。中継APIにはそれぞれ別の制限があるので、その事業者の値で計算し直します。

タイムアウトについて、OpenAIは複雑なプロンプトの処理に最大2分程度かかることがあると書いています。n8nのHTTP RequestのTimeoutは、サーバーが応答ヘッダーを返し始めるまでの待ち時間（ミリ秒）です。生成に2分近くかかる可能性がある以上、それより短い値では生成中のリクエストを打ち切るおそれがあります。120,000ms（2分）に余裕を足した値を目安に設定します。

## 再試行してよいエラーと止めるべきエラー

ノードのSettingsにある「Retry On Fail」をオンにすると、エラーの種類を問わず同じリクエストを繰り返します。レート制限なら再試行で通りますが、内容の問題で断られたリクエストは何度送っても通りません。HTTP RequestのOptionsで「Never Error」と「Include Response Headers and Status」をオンにし、IFノードでステータスコードと`error`の中身を見て分岐させると、区別して扱えます。

| 状況 | 見分け方 | 対応 |
|---|---|---|
| レート制限 | 429、レート制限超過のエラー | 間隔を空けて再試行し、Batch Intervalを見直す |
| サーバー側の一時的な障害 | 5xx | 間隔を空けて再試行 |
| クォータ・残高不足 | クォータ超過・残高不足のエラー | 自動で再試行しない。支払いや利用上限を確認する |
| 内容による拒否 | `image_generation_user_error`、`error.code`が`moderation_blocked` | 自動で再試行しない。プロンプトや入力画像を直す |
| 組織の認証が必要 | 403、モデルが使えないという応答 | 再試行しない。Organization Verificationを確認する |
| タイムアウト | n8n側で応答が途中で切れた | すぐ再送しない。先にAPI側のログを確認する |

`moderation_blocked`の応答には、入力と出力のどちらで止まったかを示す`moderation_details.moderation_stage`と大まかなカテゴリが含まれることがあるので、ログに残しておくと直すべき箇所が分かります。OpenAIの推奨どおり、ステータスとエラーの種類に加えてリクエストIDも記録しておきます。

タイムアウトは「生成されなかった」という証拠にはなりません。LaoZhang APIは、クライアント側でタイムアウトや切断が起きてもサーバー側の生成は止まらず、完了すれば課金されると明記しています。OpenAIがこの場合をどう課金するかは公開情報に記載がありません。どちらにしても、再送する前に呼び出しログを見て、生成済みでないかを確かめます。

*注記：[laozhang.ai は当ブログ運営チームの自社サービスです](https://blog.laozhang.ai/ja/about#laozhang)。その料金は中立的な比較ではなく、自社の提示価格です。*

## 生成・ファイル・配信を分けて確認する

画像ワークフローが「成功」と表示されても、見るべき段階は3つあります。どこで止まったかを段階ごとに見れば、直す場所がすぐ分かります。

![API応答、画像ファイル、保存・配信の3段階を順に確認するチェックリスト。下部に「生成できた、開ける、届いた」の流れ](https://blog.laozhang.ai/posts/ja/gpt-image-2-5-n8n/img/delivery-checkpoints.webp)

図の応答例は一般的なAPIの形で、OpenAIのGPT Image 2.5は`data[0].b64_json`と`usage`を返します。

1. **API応答**：ステータスが200で、`data`に`b64_json`か`url`が入っているか。直接呼んだ場合は`usage`も入っているか。
2. **画像ファイル**：Convert to Fileやダウンロードの出力にバイナリがあり、MIME TypeとFile Nameが意図どおりか。n8nの画面でプレビューし、実際に開けるか。開けない場合はBase64の前置きや`=`の欠けを疑います。
3. **保存・配信**：Google ドライブやメールなどの保存先ノードが、正しいバイナリフィールド名（既定は`data`）を参照しているか。届いたファイルを開き、寸法が`size`で指定した値と合っているか。

よくある食い違いは次のとおりです。

- **ワークフローは成功したのにファイルがない**：Convert to FileのBase64 Input Fieldにフィールド名ではなく値や式を入れている、またはOpenAIノードのPut Output in Fieldで既定の`data`を別名に変え、後ろのノードが`data`を探している。
- **OpenAIノードで使用量が0や空になる**：n8nのOpenAIノードは画像の操作で`usage`を捨てています。n8n 2.38.6、typeVersion 2.3、`gpt-image-2.5-flare`で再現したという報告が[issue #38482](https://github.com/n8n-io/n8n/issues/38482)にあり、2026年9月25日時点で未解決です。式やCodeノードでは取り戻せないので、使用量が要るならHTTP Requestで呼びます。記録されていなくても、課金されていないわけではありません。
- **画像がざらつく、色むらが出る**：ワークフローではなく生成結果の問題です。[GPT Image 2.5 のざらつき・市松模様の対処法](https://blog.laozhang.ai/ja/posts/gpt-image-2-5-noise-grainy)で原因を切り分けます。

## よくある質問

### n8nを最新版にすればOpenAIノードでxhighや4Kを選べますか？

2026年9月25日時点の公開ソースコードでは選べません。Generate an Imageの設定を定義するファイルは2026年5月20日から変わっておらず、QualityはHigh・Medium・Low、サイズは1024系の3種類のままです。更新後はOptionsのQualityの選択肢を開き、増えていなければHTTP Requestを使います。

### GPT Image 2から移行すると、ワークフローのどこを変えますか？

OpenAIノードでもHTTP Requestでも、モデルIDを`gpt-image-2.5-flare`か`gpt-image-2.5-sunburst`に変えるのが基本です。Edit ImageでInput Fidelityを設定していた場合は外します。移行するかどうかの判断材料は[GPT Image 2.5とGPT Image 2：移るか残るか](https://blog.laozhang.ai/ja/posts/gpt-image-2-5-vs-gpt-image-2)にあります。

### n8nではなくComfyUIで使う場合も同じ設定ですか？

モデルIDやサイズの条件はAPI側の仕様なので共通ですが、ComfyUIではノードの構成も設定できる項目もn8nとは異なります。手順は[ComfyUIでGPT Image 2.5を使う方法と料金](https://blog.laozhang.ai/ja/posts/gpt-image-2-5-comfyui)にあります。

## 参考資料

本文で参照している外部ページを、登場順に並べています。最終更新日：2026-09-25。

- [OpenAIのモデルページ](https://developers.openai.com/api/docs/models/gpt-image-2.5-flare) (developers.openai.com)
- [API Organization Verification](https://help.openai.com/en/articles/10910291-api-organization-verification) (help.openai.com)
- [n8n向け手順](https://www.hiapi.ai/en/blog/gpt-image-2-n8n-workflow) (hiapi.ai)
- [OpenAIの画像生成ガイド](https://developers.openai.com/api/docs/guides/image-generation) (developers.openai.com)
- [issue #38482](https://github.com/n8n-io/n8n/issues/38482) (github.com)
