GPT Image 2で横長4Kを作るなら、Image APIのsizeに3840x2160を指定します。縦長なら2160x3840です。プロンプトに「4K」と書くだけでは、ファイルの幅と高さは決まりません。
ただし、ここでいう「対応」は「本番素材として常に安定する」という意味ではありません。OpenAIの画像生成ガイドでは、2560x1440を超える出力は実験的とされています。APIが成功しても、base64をデコードして保存し、実ファイルのピクセル寸法を測り、さらにCMSやCDNが作る配信画像まで確認して初めて4Kとして受け入れられます。
最初に、混同しやすい三つを分けてください。
| 用語 | 決めるもの | 4K確認の方法 |
|---|---|---|
size | APIに要求する幅×高さのピクセル数 | 保存した原本が指定値と一致するか測る |
| アスペクト比 | 横長・縦長・正方形などの形 | 幅÷高さを確認する。16:9だけでは4Kを意味しない |
| アップスケール | 生成済み画像を後工程で拡大した結果 | 生成時サイズと拡大後サイズを別々に記録する |
結論:4Kが必要なら「要求・保存・配信」の3段階で確認する
実装の最短ルートは次のとおりです。
- 直接生成ならImage APIを選ぶ。
model: "gpt-image-2"とsize: "3840x2160"を明示する。- 返されたbase64を画像ファイルとして保存する。
- 保存した原本の幅・高さ・形式を画像ライブラリで読む。
- CMSやCDNを通す場合は公開URLの画像も同じように測る。
- どこか一つでも寸法が違えば、4K完了とは記録しない。
この手順なら、「生成モデルが4Kを返さなかった」のか、「保存時に壊れた」のか、「配信側で縮小された」のかを分けられます。
会話や複数ツールを含む処理ではResponses APIを使えますが、画像だけを1枚作って保存するならImage APIの方が短く、原因も追いやすいです。ChatGPTの画像作成画面はさらに別の製品面です。アプリ上で選べる比率や利用枠を、そのままAPIの正確なピクセル指定や請求条件として扱うことはできません。
GPT Image 2のサイズは四つの条件を同時に満たす
gpt-image-2は固定プリセットだけでなくカスタム寸法を受け付けます。ただし、有効なsizeには次の四条件があります。
- 長辺は
3840px以下 - 幅と高さの両方が
16pxの倍数 - 長辺÷短辺が
3以下 - 総ピクセル数が
655,360以上8,294,400以下
一つでも外れれば無効です。「UHD」「シネマ4K」「16:9」といった呼び名だけでは判定できません。たとえば3840x2160は総ピクセル数がちょうど8,294,400で、四条件を満たします。一方、4096x2160は長辺と総ピクセル数の両方が上限を超えます。
| 指定値 | 判定 | 理由 |
|---|---|---|
3840x2160 | 有効・実験的 | 16:9の横長4K。総ピクセル数は上限と同じ |
2160x3840 | 有効・実験的 | 縦長4K。後段の自動cropに注意 |
2560x1440 | 有効 | 4K前の確認用として扱いやすい上限 |
2048x2048 | 有効 | 正方形の高解像度案に向く |
4096x2160 | 無効 | 長辺3840pxと総ピクセル上限を超える |
3840x1200 | 無効 | 長辺と短辺の比率が3.2:1になる |
1920x1081 | 無効 | 高さが16の倍数ではない |
2026年7月22日時点で、公式の画像生成ガイドは3840x2160と2160x3840を代表サイズとして掲載しています。一方、公式のプロンプトガイドには最大辺を3840未満として解釈する場合の注意もあり、3824x2144への切り下げ例が示されています。実際の組織で3840辺が拒否されたら、同じリクエストを無限に再送せず、エラーを保存した上で3824x2144のような四条件内の値を試してください。
入力前に判定しておくと、サイズ違反をプロンプト不良と誤診しません。
hljs jsfunction validateGptImage2Size(width, height) {
const longEdge = Math.max(width, height);
const shortEdge = Math.min(width, height);
const pixels = width * height;
const checks = {
maxEdge: longEdge <= 3840,
multiplesOf16: width % 16 === 0 && height % 16 === 0,
aspectRatio: longEdge / shortEdge <= 3,
pixelCount: pixels >= 655_360 && pixels <= 8_294_400,
};
return {
valid: Object.values(checks).every(Boolean),
checks,
pixels,
};
}
console.log(validateGptImage2Size(3840, 2160));
Image APIで4Kを生成し、base64を保存する
単発生成、画像編集、バッチ処理の入口として最も分かりやすいのはImage APIです。GPT Image 2のモデルページでは、現在のスナップショットがgpt-image-2-2026-04-21、対応エンドポイントが画像生成・画像編集・Batchとされています。
次のNode.js例は、生成だけで終わらず、PNGとして保存した後にsharpで実寸を検査します。sharpは別途インストールしてください。
hljs jsimport OpenAI from "openai";
import { writeFile } from "node:fs/promises";
import sharp from "sharp";
const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
const requested = { width: 3840, height: 2160 };
const outputPath = "gpt-image-2-3840x2160.png";
const result = await openai.images.generate({
model: "gpt-image-2",
prompt: [
"日本の夏の夕方、海辺の小さな書店を写した広告用の横長写真。",
"左側に見出し用の余白を広く取り、人物や文字は追加しない。",
"自然な逆光、実写調、落ち着いた青と橙の配色。"
].join("\n"),
size: `${requested.width}x${requested.height}`,
quality: "high",
output_format: "png",
});
const b64 = result.data?.[0]?.b64_json;
if (!b64) throw new Error("画像データがありません");
await writeFile(outputPath, Buffer.from(b64, "base64"));
const metadata = await sharp(outputPath).metadata();
const accepted =
metadata.width === requested.width &&
metadata.height === requested.height &&
metadata.format === "png";
console.log({ outputPath, requested, metadata, accepted });
if (!accepted) throw new Error("保存ファイルが4K受け入れ条件を満たしません");
qualityにはlow、medium、high、autoがあり、既定値はautoです。sizeはピクセル契約、qualityは描画にかける処理量なので、役割が違います。highにしても、文字の正確さ、人物の同一性、厳密な配置が保証されるわけではありません。
まずlowまたはmediumと小さめのサイズで構図を決め、採用候補だけを4K・highで出すと、試行錯誤の費用を抑えやすくなります。ただし、これは後述する「2Kからのアップスケール」とは別です。最終リクエスト自体を4Kにする場合、最終ピクセルはImage APIが生成します。
Responses APIを選ぶのは画像が会話フローの一部であるとき
Responses APIは、画像生成の前後にテキスト判断、検索、ファイル処理、追加ツールなどがある場合に向きます。たとえば「商品説明を読み、広告の訴求を整理し、画像を作り、公開担当者向けの注意点も返す」という処理です。
ここで重要なのは、Responses APIのトップレベルmodelにgpt-image-2を入れないことです。gpt-image-2は画像生成処理に使われますが、Responses APIでは画像生成ツールを利用できるメインラインモデルを選びます。さらに、画像ツールに存在しないmodel: "gpt-image-2"パラメータを足さないでください。
hljs jsimport OpenAI from "openai";
import { writeFile } from "node:fs/promises";
const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
const response = await openai.responses.create({
model: "gpt-5.5",
input: "春の新商品キャンペーン用に、横長4Kのキービジュアルを1枚作成してください。画像内に文字は入れず、最後に制作メモも返してください。",
tools: [{
type: "image_generation",
size: "3840x2160",
quality: "high",
}],
});
const imageCall = response.output.find(
(item) => item.type === "image_generation_call"
);
if (!imageCall?.result) throw new Error("画像ツールの出力がありません");
await writeFile(
"campaign-4k.png",
Buffer.from(imageCall.result, "base64")
);
保存後の寸法検査はImage APIと同じです。Responses APIでは、画像出力に加えてメインラインモデルの入力・出力トークンも請求対象になり得ます。画像だけが必要なら、処理を複雑にする理由はありません。
PNG、JPEG、WebP、圧縮をどう選ぶか
Image APIの返却はbase64形式です。既定の画像形式はPNGで、JPEGとWebPも選べます。output_compressionはJPEGまたはWebPで0から100を指定します。
選択基準は単純です。
- 文字、細線、編集用の母版を残すならPNG
- 写真中心で転送時間を短くしたいならJPEG
- Web配信の容量を抑えたいならWebP
幅と高さが同じでも、強い圧縮で文字や細線が崩れれば公開素材としては不合格です。ピクセル寸法の検査と、見た目の検査を別々に残してください。
また、直接のgpt-image-2 APIはbackground: "transparent"をサポートしません。APIでは不透明または自動の背景として扱い、透明化が必要なら背景除去を別工程にします。ChatGPT Imagesの画面で透明背景を指示できることは、APIパラメータの対応範囲を広げる根拠にはなりません。
編集とマスクを4Kワークフローに入れるときの注意
GPT Image 2は、1枚または複数の参照画像を使った編集とインペインティングに対応します。複数画像とマスクを渡す場合、マスクは最初の入力画像に適用されます。
マスクと対象画像は同じ形式・同じサイズにそろえ、マスクにはアルファチャンネルを持たせます。マスクの境界は厳密な切り抜き線ではなく、モデルへの目安です。商品ラベルや人物の顔など「絶対に変えない領域」は、プロンプトにも明記し、生成後に差分を確認してください。
gpt-image-2では画像入力が自動的に高忠実度で処理されるため、input_fidelityは指定しません。参照画像が増えるほど入力画像トークンも増え得るので、料金見積もりには編集入力を含めます。
直接4Kと2Kからのアップスケールは、どちらが正解か
「4K画像」には少なくとも二つの作り方があります。
- Image APIに
3840x2160を要求し、4K原本を直接生成する 2560x1440や2048x1152で候補を作り、選んだ画像を後処理で4Kへ拡大する
前者は最終キャンバスが決まっている広告、ヒーロー画像、映像素材に向きます。後工程が短く、生成時点のピクセル契約も明確です。一方で4K領域は実験的なので、構図や文字が固まっていない段階で何度も再生成すると費用と待ち時間が増えます。
後者は、候補数が多い、レイアウトを何度も直す、まず構図を選びたい場合に向きます。ただし、アップスケーラーは存在しない細部を推定します。日本語の文字、ロゴ、顔、商品形状、細い罫線が変わっていないかを確認しなければなりません。
| 制作条件 | 先に選ぶ方法 | 合格条件 |
|---|---|---|
| 1回のAPI呼び出しで4K原本が必要 | Image APIで直接4K | 保存原本が指定寸法と一致 |
| 会話・判断・複数ツールの中で生成 | Responses API | ツール出力を保存し実寸確認できる |
| 構図案を多数比較したい | 2Kで探索後、採用案だけ再生成または拡大 | 最終画像の文字・形状・寸法を再審査 |
| 配信先が自動リサイズする | どちらでも可 | 公開URLの派生画像まで寸法確認 |
制作記録にはgeneration_route: direct-4kまたはgeneration_route: 2k-upscaledのように経路を残します。「最終ファイルが3840×2160」という結果だけでは、どの工程がそのピクセルを作ったのか分からないためです。
保存原本とCMS/CDNの派生画像を分けて検証する
APIの200レスポンスは、公開画像の合格証ではありません。検証点を四つに分けます。
| 検証点 | 記録するもの | 失敗時に見る場所 |
|---|---|---|
| API応答 | request ID、モデル、要求size、quality | アクセス、サイズ条件、レート制限 |
| 保存原本 | 幅、高さ、形式、バイト数、ハッシュ | base64 decode、保存先、拡張子 |
| CMS取込後 | オリジナル保持の有無、派生サイズ | アップロード設定、最大辺、圧縮 |
| 公開URL | 実配信の幅、高さ、形式、srcset | CDN変換、フロントエンド画像最適化 |
特にNext.jsなどの画像最適化を使う画面では、ブラウザが表示幅に合う小さなsrcset候補を取得することがあります。それ自体は表示最適化として正常です。ダウンロード用原本まで縮小されていないか、用途を分けて確認してください。
実寸が違ったときは、次の順番で調べると早く切り分けられます。
- リクエストログの
sizeは期待値か - 四つのカスタムサイズ条件を満たしているか
- base64を保存した直後の原本は期待値か
- CMSがオリジナルを置き換えていないか
- CDNパラメータや画像最適化が縮小していないか
- ブラウザが別の
srcset候補を選んでいないか
原本が4Kなら配信層の問題です。原本の時点で違えば、フロントエンドを直しても解決しません。
4Kの料金は「1枚いくら」で固定されていない
GPT Image 2の公式API料金はトークンベースです。2026年7月22日時点の標準料金は、100万トークン当たり画像入力$8.00、キャッシュ済み画像入力$2.00、画像出力$30.00、テキスト入力$5.00、キャッシュ済みテキスト入力$1.25です。Batchには別の低い料金があります。
ただし、公式ガイドの1枚当たり例は1024x1024など指定された比較サイズのもので、4Kに共通する固定単価ではありません。最終費用には少なくとも次が関係します。
sizeとqualityから決まる画像出力トークン- プロンプトのテキスト入力
- 編集に使う参照画像の入力
- Responses APIを使う場合のメインラインモデル利用
- 再試行、部分画像、Batchの有無
実際の見積もりは公式の画像料金計算ツールで対象サイズと品質を選びます。料金計算そのものを詳しく行う場合は、別記事のGPT Image 2 APIの1枚当たり料金を参照してください。
APIアクセス、レート制限、ChatGPTの利用枠は別契約
GPT Image 2のAPI Free usage tierはサポート対象外です。現在のモデルページに掲載されたTier 1〜5の画像リクエスト上限は5 / 20 / 50 / 150 / 250 IPMですが、実際の上限は組織とプロジェクトのLimits画面が優先されます。利用に組織確認が必要な場合もあります。
したがって、コードを直す前に次を確認します。
- APIキーが想定したorganization/projectに属しているか
- その組織で
gpt-image-2へアクセスできるか - Limits画面の現在値と利用量
- 組織確認が必要という表示が出ていないか
- 小さなサイズの単発テストが通るか
429やクォータの扱いはGPT Image 2の使用制限ガイド、無料APIの境界はGPT Image 2 APIは無料かに分けています。
一方、ChatGPT Images 2.0は2026年7月22日時点ですべてのChatGPTプランで利用でき、Web、iOS、Androidに提供されています。これは「OpenAI APIを無料で呼べる」という意味ではありません。ChatGPTの利用回数、思考機能、画面上の比率指定、透明背景の指示、保存方法はコンシューマー製品の契約です。APIのsize、IPM、トークン料金、背景パラメータとは分けてください。
よくある失敗と止める条件
「4K」と書いたのに小さい
プロンプトではなく、まずsizeと保存原本を確認します。sizeが未指定ならautoが使われるため、4Kの実寸契約にはなりません。
4096x2160や4096x4096が通らない
GPT Image 2の長辺上限は3840pxです。一般的なシネマ4Kや正方形4Kという呼び名を、そのままAPIの有効値にはできません。3840x2160など四条件内の値を選びます。
成功したが公開ページでは小さい
保存原本、CMS取込後、公開URLを別々に測ります。原本が正しければ、CMS、CDN、srcsetの順に確認します。
4Kで結果が不安定
4K領域は実験的です。同じ失敗を無制限に再試行せず、2560x1440以下で構図を確定する、3824x2144へ切り下げる、採用した2K原本を別工程で拡大する、のいずれかを選びます。どの経路を選んだかは成果物に記録します。
Responses APIでモデルエラーになる
トップレベルmodelには画像生成ツール対応のメインラインモデルを使います。gpt-image-2をResponses APIのトップレベルモデルにしたり、画像ツールへ非対応のmodelフィールドを足したりしないでください。
FAQ
GPT Image 2は4Kをネイティブ生成できますか?
Image APIのsizeに3840x2160または2160x3840を指定できます。ただし2560x1440を超える領域は実験的です。保存原本の実寸が指定値と一致した場合に限り、直接4K生成として受け入れます。
4Kと16:9は同じ意味ですか?
違います。16:9は形の比率で、4Kはピクセル寸法の話です。1920x1080も3840x2160も16:9ですが、同じ解像度ではありません。
quality: "high"にすれば4Kになりますか?
なりません。qualityは描画にかける処理量、sizeは要求ピクセルです。4Kには有効なsize指定と保存後の実寸確認が必要です。
Image APIとResponses APIのどちらを使うべきですか?
画像の生成や編集が主目的ならImage API、画像生成が会話や複数ツールの一部ならResponses APIです。どちらでも最終画像を保存して測ります。
透明背景の4K PNGを直接作れますか?
直接のgpt-image-2 APIは透明背景に対応していません。不透明な画像を生成し、必要なら背景除去を別工程にします。ChatGPT Imagesの透明背景機能とは契約が別です。
ChatGPT Freeで使えるならAPIも無料ですか?
いいえ。ChatGPT Images 2.0のプラン内利用とOpenAI APIの課金・アクセスは別です。API Free usage tierではgpt-image-2はサポートされていません。
APIが成功したら4K生成は完了ですか?
まだ完了ではありません。base64を保存し、原本の幅・高さ・形式を確認します。配信するならCMS/CDN後の公開画像も確認し、どこかで縮小されていれば4K配信とは記録しません。



