# GPT Image 2で1024×576がinvalid sizeになる理由と直し方

> 1024×576は16の倍数でも、GPT Image 2の最小ピクセル数を満たしません。1280×720で生成して正確な1024×576に縮小する手順と、サイズ変更後も失敗するときの確認箇所を解説します。

- Source: https://www.aifreeapi.com/ja/posts/gpt-image-2-invalid-size
- Language: ja
- Published: 2026-09-08
- Updated: 2026-09-12
- Publisher: AI Free API (https://www.aifreeapi.com)

GPT Image 2に`size: "1024x576"`を指定して`invalid size`になる場合、まず確認したいのは総ピクセル数の下限です。1024×576は589,824ピクセルで、OpenAIの直接APIが定める最小値655,360ピクセルに届きません。幅と高さが16の倍数で、アスペクト比が16:9でも、この条件で不適合になります。

最終的に1024×576のサムネイルが必要なら、1280×720で生成し、保存後に1024×576へ縮小する方法が使えます。どちらも16:9なので、画像の一部を切り取ったり、上下に余白を加えたりする必要はありません。

以下は2026年9月8日時点の[OpenAI公式の画像出力仕様](https://developers.openai.com/api/docs/guides/image-generation#customize-image-output)と、その条件に基づく計算です。掲載コードは実装例であり、この記事のために有料APIを呼び出して成功率や処理時間を測定したものではありません。

## 1024×576は、どの条件に引っかかるのか

![横長の画像と比較バーで総ピクセル数の下限を説明する図](https://www.aifreeapi.com/posts/ja/gpt-image-2-invalid-size/img/pixel-area.webp)

直接のOpenAI APIで`model: "gpt-image-2"`を使う場合、具体的な幅と高さの指定には次の条件がすべて適用されます。

| 条件 | 1024×576の場合 | 判定 |
| --- | --- | --- |
| 幅と高さが正の16の倍数 | 1024÷16＝64、576÷16＝36 | 適合 |
| 長い辺が3840ピクセル以下 | 長い辺は1024 | 適合 |
| 長辺÷短辺が3以下 | 1024÷576≒1.778 | 適合 |
| 総ピクセル数が655,360以上、8,294,400以下 | 1024×576＝589,824 | 下限未満 |

「16刻みで指定すればよい」と覚えていると、最後の条件を見落としがちです。APIは幅と高さだけでなく、その積も判定します。プロンプトに「16:9」「横長」と追加しても、送信する`size`が変わらなければ総ピクセル数は条件を満たしません。

また、`1024x576`と`1024×576`は、リクエスト内では同じ文字列ではありません。本文では読みやすい掛け算記号を使っていますが、APIの`size`には半角の英字`x`を使います。正しい区切り文字に直すことと、サイズ自体を有効にすることは別の確認です。

## 16:9のまま生成するなら1280×720から

必要なのが16:9の構図なら、幅だけを固定して高さを少し増やすより、比率を保てる寸法を選ぶ方が後処理を簡単にできます。

| 生成時の指定 | 総ピクセル数 | 比率・用途上の注意 | 公式の寸法条件 |
| --- | ---: | --- | --- |
| `1024x576` | 589,824 | 16:9だが小さすぎる | 不適合 |
| `1024x640` | 655,360 | 8:5。16:9の代わりにはならない | 適合 |
| `1280x720` | 921,600 | 16:9で生成し、1024×576へ縮小できる | 適合 |
| `1536x864` | 1,327,104 | 16:9。より大きい原稿が必要な場合の候補 | 適合 |
| `1920x1080` | 2,073,600 | 16:9だが1080は16の倍数ではない | 不適合 |
| `2048x1152` | 2,359,296 | 16:9。1024×576の縦横2倍 | 適合 |

ここでの「適合」は、公開仕様にある寸法条件を満たすという意味です。接続先のサービスや利用ツールがその値を受け付けるかは、別に確認が必要です。

1280×720は、厳密な16:9と16の倍数という条件を満たす中で、総ピクセル数の下限を超える最小のサイズです。16:9の寸法を幅16n・高さ9nとすると、高さも16の倍数にするにはnが16の倍数でなければなりません。そのため候補は幅256k・高さ144kとなります。k＝4の1024×576は下限未満、次のk＝5が1280×720です。

一方、1024×640なら最小ピクセル数には届きますが、16:9ではありません。これをそのまま1024×576に押しつぶすと形が変わります。縦横比を維持して変換するなら切り抜きか余白の追加が必要になるため、最初から16:9で生成する方が目的に合います。

## 生成した画像を正確な1024×576に仕上げる

処理を「APIで受け付けられるサイズ」と「納品・掲載に必要なサイズ」の2段階に分けます。直接APIでは`size`を`"1280x720"`にし、返された画像をローカルで縮小します。プロンプトには画像に描いてほしい内容を書き、ファイル寸法はパラメーターと画像処理で指定します。

### 1. 直接APIには1280x720を送る

[Images APIの公式ガイド](https://developers.openai.com/api/docs/guides/image-generation)に沿ったPythonの例です。既にOpenAI APIの認証情報を設定済みの環境を想定しています。実行すると画像生成のAPIリクエストが発生します。

```bash
python -m pip install openai pillow
```

```python
import base64
from pathlib import Path
from openai import OpenAI

client = OpenAI()  # 環境変数 OPENAI_API_KEY を使用

result = client.images.generate(
    model="gpt-image-2",
    prompt="静かな朝の書斎。窓際の机と観葉植物を写した横長の写真。",
    size="1280x720",
    output_format="png",
)

Path("generated.png").write_bytes(
    base64.b64decode(result.data[0].b64_json)
)
```

これはOpenAIの`/v1/images/generations`に接続する例です。他社サービスのAPIキーをそのまま入れ替える例ではありません。別の接続先を使う場合は、そのサービスが定めるエンドポイント、モデル名、サイズの指定形式に合わせてください。

### 2. 保存したファイルの比率を確かめて縮小する

次のコードはAPIを呼ばず、手元の`generated.png`だけを処理します。実際の画像が16:9か確認してから、PillowのLANCZOSフィルターで1024×576に縮小します。

```python
from PIL import Image

with Image.open("generated.png") as image:
    image.load()
    width, height = image.size
    print("生成された寸法:", image.size)

    if width * 9 != height * 16:
        raise ValueError(
            f"生成画像が16:9ではありません: {width}x{height}"
        )
    if width < 1024 or height < 576:
        raise ValueError("生成画像が目標サイズより小さいため処理を停止します")

    image = image.convert("RGBA" if "A" in image.getbands() else "RGB")
    resized = image.resize((1024, 576), Image.Resampling.LANCZOS)
    resized.save("thumbnail-1024x576.png")

with Image.open("thumbnail-1024x576.png") as saved:
    assert saved.size == (1024, 576)
    print("保存後の寸法:", saved.size)
```

1280×720からなら縦横とも80％に縮小されます。切り抜きは行わないので、構図全体が残ります。ただし、細かな文字や細線は縮小で読みにくくなることがあります。ファイル寸法の確認後、掲載時の大きさでも見ておくと用途に合うか判断できます。

ファイル名を変えただけでは画像の寸法は変わりません。また、WebページのCSSで幅を1024ピクセルに設定しても、元ファイルの画素数はそのままです。アップロード先が1024×576のファイルを要求する場合は、上のように画像そのものを保存し直してください。

## サイズを直しても失敗するときの確認順序

![入力欄から送信データ、API、保存ファイルまで確認箇所をたどる図](https://www.aifreeapi.com/posts/ja/gpt-image-2-invalid-size/img/request-size-trace.webp)

1280×720に変えてもエラーになる場合、さらに大きな値を試す前に、どこで拒否されているかを確認します。入力欄の制限、実際に送信された値、接続先のAPI仕様は一致するとは限りません。

1. エラーの発生箇所を確認する。 入力欄が720を受け付けないなら、APIに届く前の制約です。HTTPレスポンスが返っているなら、ステータスコードとエラー本文を保存します。`invalid size`という一部の文言だけで、認証やモデル指定の問題までサイズのせいにしないようにします。
2. 送信されたモデル名と`size`を確認する。 設定画面で1280×720を選んでも、送信データがその値になっているとは限りません。ツールのログや開発者向け表示で、`model`、`size`、リクエスト先を見ます。ログを共有するときはAPIキーや認証ヘッダーを除いてください。
3. 接続先のサイズ形式を確認する。 直接のOpenAI APIでは`size: "1280x720"`ですが、サービスによっては比率と解像度を別フィールドで指定します。`size: "16:9"`や`aspect_ratio`の例を、異なるAPIにそのまま移さないでください。
4. 返された画像も確認する。 APIが成功しても、保存した画像が意図した寸法とは限りません。上のコードで実寸を読み、16:9でなければ送信内容とツール側の処理を再確認します。

日本語の[ComfyUI公式ノード文書](https://docs.comfy.org/ja/built-in-nodes/OpenAIGPTImage1)では、`Custom`、`custom_width`、`custom_height`に加え、幅と高さそれぞれの下限1024が記載されています。同じページは非推奨ノードの文書でもあるため、この入力欄の下限をOpenAI API全体の制限と解釈することはできません。

たとえば、使っているノードが実際に高さ720を入力できない場合、1280×720がAPIの寸法条件に適合することと、その画面で指定できることは別です。両辺1024以上の入力が必要で、その接続先がカスタムサイズをサポートしているなら、2048×1152は16:9を保つ候補になります。まず使用中のノードの説明と送信値を確認し、仕様が分からないまま更新や置き換えを繰り返さない方が原因を追いやすくなります。

APIへの基本的な接続手順や生成・編集の使い分けは、[GPT Image 2 APIガイド](/ja/topics/gpt-image)で確認できます。

## autoを使えば1024×576で保存できる？

`size: "auto"`は、プロンプトに応じたサイズ選択をモデルに任せる設定です。1024×576という最終ファイル寸法を保証する指定ではありません。出力サイズが固定された用途では、16:9の有効な寸法を指定し、生成後に実寸を確認して縮小する手順を使うと、構図と保存後の画像寸法を分けて管理できます。

`quality`や`output_format`も、幅・高さの不適合を解消するパラメーターではありません。今回の589,824ピクセルという問題は、生成時の寸法を変更することで解消します。1024×576は生成リクエストには小さすぎても、ローカルで仕上げる最終出力としては使えます。
