gpt-image-1.5移行ガイド:DALL-E 3からの変更点とコード例【Party on Slack実装例付き】
はじめに
2025年12月にOpenAIが発表した gpt-image-1.5 は、従来の DALL-E 3 と比較して 生成速度が最大4倍 になり、テキストレンダリングや指示追従性も大幅に改善されています。
ただし、APIの仕様が結構変わっているので、移行時にハマるポイントがあります。
この記事では、私が開発・運用している Slack アプリ「Party on Slack」での実装経験をもとに、移行時の注意点と具体的なコード例を紹介します。
Party on Slackとは?
Party on Slack は、Slack上で複数の生成AIモデル(ChatGPT、Claude、Gemini、Grokなど)を利用できる無料アプリケーションです。
主な特徴:
-
@Party on SlackとメンションするだけでAIと会話開始 - PDF・Word・画像・音声ファイルの要約・分析
- Slack内の会話ログを検索・要約する「Slackにきく」機能
- 画像生成機能(DALL-E、Stable Diffusion、gpt-image-1.5対応)
画像生成機能では、Slackのチャンネル上で簡単にAI画像を生成できます。
画像生成機能の使い方
アプリをメンションすると、スレッドにメニューが表示されます。

「🖼画像を生成」ボタンからダイアログを開く
「🖼画像を生成」ボタンをクリックすると、画像生成ダイアログが開きます。

モデル、サイズ、プロンプトを入力して生成
対応モデル:
- dall-e-3
- dall-e-2
- gpt-image-1
- gpt-image-1.5(最新・おすすめ)
- stability.stable-diffusion-xl-v1
- imagen-4.0-generate-001

複数の画像生成モデルから選択可能
プロンプトを英語に自動翻訳するオプションもあるので、日本語でプロンプトを書いても大丈夫です。
生成例
gpt-image-1.5 で生成した画像の例です。テキストの描画精度が高く、日本語のテロップもしっかり再現されています。

平安時代のかぐや姫をニュース風に生成した例
詳しい使い方や他の生成例は、以下の記事で紹介しています。
この画像生成機能を gpt-image-1.5 に対応させる際に、いくつかの変更が必要でした。
対象読者
- OpenAI の画像生成 API を使っている方
- DALL-E 3 から gpt-image-1 / gpt-image-1.5 への移行を検討している方
- Python で画像生成機能を実装している方
環境
- Python 3.11
- openai 1.x(公式ライブラリ)
モデルの違い
まず、各モデルの概要を整理します。
| モデル | リリース時期 | 特徴 |
|---|---|---|
| dall-e-2 | 2022年 | 初代商用モデル |
| dall-e-3 | 2024年後半 | 高品質版 |
| gpt-image-1 | 2025年4月 | GPT-4oベースの画像生成 |
| gpt-image-1.5 | 2025年12月16日 | 4倍高速化、テキスト描画改善 |
最大のハマりポイント:response_format が使えない
DALL-E 3 の場合
from openai import OpenAI
client = OpenAI()
response = client.images.generate(
model="dall-e-3",
prompt="A cute cat",
n=1,
size="1024x1024",
response_format="url" # ← URL形式で取得可能
)
image_url = response.data[0].url # URLを取得
gpt-image-1.5 の場合
from openai import OpenAI
import base64
client = OpenAI()
response = client.images.generate(
model="gpt-image-1.5",
prompt="A cute cat",
n=1,
size="1024x1024"
# response_format は指定できない!
)
# 常に b64_json で返される
image_base64 = response.data[0].b64_json # url は None
image_bytes = base64.b64decode(image_base64)
# ファイルに保存
with open("output.png", "wb") as f:
f.write(image_bytes)
response_format を指定すると、以下のようなエラーが発生します。
{
"error": {
"message": "Unknown parameter: 'response_format'.",
"type": "invalid_request_error",
"param": "response_format",
"code": "unknown_parameter"
}
}
APIパラメータの違い
| パラメータ | DALL-E 2/3 | gpt-image-1/1.5 |
|---|---|---|
response_format |
✅ url / b64_json 選択可 |
❌ 非対応(常にb64_json) |
quality |
standard / hd
|
low / medium / high / auto
|
size |
1024x1024, 1792x1024, 1024x1792 |
auto, 1024x1024, 1536x1024, 1024x1536 |
background |
❌ 非対応 | ✅ transparent / opaque / auto
|
output_format |
❌ 非対応 | ✅ png / jpeg / webp
|
output_compression |
❌ 非対応 | ✅ 0-100(JPEG/WebPのみ) |
style |
✅ vivid / natural
|
❌ 非対応 |
stream |
❌ 非対応 | ✅ ストリーミング対応 |
サイズオプションの違い
| モデル | サポートサイズ |
|---|---|
| dall-e-2 | 256x256, 512x512, 1024x1024 |
| dall-e-3 | 1024x1024, 1792x1024, 1024x1792 |
| gpt-image-1/1.5 | auto, 1024x1024, 1536x1024, 1024x1536 |
DALL-E 3 の 1792x1024 は gpt-image-1.5 では使用できないので注意が必要です。
料金体系の違い
gpt-image-1 はトークンベースの料金体系になっています。品質設定によって消費トークン数が大きく変わります。
| モデル | 品質 | サイズ | 料金/画像 |
|---|---|---|---|
| DALL-E 3 | Standard | 1024x1024 | $0.04 |
| HD | 1024x1024 | $0.08 | |
| gpt-image-1 | Low | 1024x1024 | $0.011 |
| Medium | 1024x1024 | $0.042 | |
| High | 1024x1024 | $0.167 |
quality="low" を使えば DALL-E 3 Standard より安く済みますが、品質は落ちます。用途に応じて使い分けましょう。
移行時の実装パターン
両方のモデルに対応する関数を作成する場合、以下のように分岐処理が必要です。
import base64
import requests
from openai import OpenAI
def generate_image(
prompt: str,
model: str,
api_key: str,
size: str = "1024x1024"
) -> bytes:
"""DALL-E と gpt-image 両対応の画像生成関数"""
client = OpenAI(api_key=api_key)
if "gpt-image" in model:
# gpt-image-1/1.5: response_format 非対応、常に b64_json
response = client.images.generate(
model=model,
prompt=prompt,
n=1,
size=size
# quality="high" など追加パラメータも可
)
image_base64 = response.data[0].b64_json
return base64.b64decode(image_base64)
else:
# DALL-E 2/3: URL形式で取得
response = client.images.generate(
model=model,
prompt=prompt,
n=1,
size=size,
response_format="url"
)
image_url = response.data[0].url
return requests.get(image_url).content
新機能:透過背景
gpt-image-1.5 では透過背景がサポートされています。
response = client.images.generate(
model="gpt-image-1.5",
prompt="A 2D pixel art sprite of a cat",
size="1024x1024",
background="transparent", # 透過背景を有効化
quality="high", # medium/high推奨
output_format="png" # png/webpのみ対応
)
ゲームのスプライトやアイコン作成に便利です。
新機能:ストリーミング
生成途中の画像を段階的に取得できます。
stream = client.images.generate(
model="gpt-image-1.5",
prompt="A beautiful sunset over the ocean",
stream=True,
partial_images=2 # 途中経過を何回取得するか
)
for event in stream:
if event.type == "image_generation.partial_image":
idx = event.partial_image_index
image_base64 = event.b64_json
image_bytes = base64.b64decode(image_base64)
with open(f"progress_{idx}.png", "wb") as f:
f.write(image_bytes)
移行チェックリスト
-
response_formatパラメータを削除 -
レスポンスを
b64_jsonから取得するように変更 -
sizeパラメータを新しいオプションに合わせる(1792x1024 → 1536x1024) -
UIのモデル選択肢に
gpt-image-1/gpt-image-1.5を追加 -
品質パラメータ(
low/medium/high)の検討 - 透過背景オプションの追加を検討
- 料金体系の変更をドキュメントに反映
gpt-image-1.5 の改善点
DALL-E 3 と比較して、以下の点が改善されています。
| 項目 | DALL-E 3 | gpt-image-1.5 |
|---|---|---|
| 生成速度 | 標準 | 最大4倍高速 |
| テキストレンダリング | 苦手 | 大幅改善 |
| 指示追従性 | 標準 | 高精度 |
| 透過背景 | ❌ | ✅ |
| 画像編集 | 基本的 | 精密編集対応 |
| 顔の一貫性 | 不安定 | 安定 |
| C2PAメタデータ | ❌ | ✅(著作権保護) |
特にテキストを含む画像の生成精度が格段に上がっています。看板やロゴを含む画像を生成する際に効果を実感できます。
まとめ
DALL-E 3 から gpt-image-1.5 への移行で押さえておくべきポイント:
-
response_formatが使えない - 常に Base64 で返される - サイズオプションが異なる - 1792x1024 は使えない
-
品質パラメータが変更 -
low/medium/high/auto -
透過背景に対応 -
background="transparent"が使える - 生成速度が4倍に向上 - 体感でもかなり速い
移行作業自体はそれほど大変ではありませんが、response_format の違いを知らないと最初にエラーで詰まります。
gpt-image-1.5 は速度・品質ともに優れているので、積極的に移行していくのがおすすめです。
Party on Slackのインストール
Party on Slack は Slack Marketplace から無料でインストールできます。
インストール手順
- 以下のリンクから Slack Marketplace にアクセス
-
「Slackに追加」ボタンをクリック
-
ワークスペースを選択して認証
-
アプリのホーム画面で OpenAI API キーを設定
-
チャンネルで
@Party on Slackとメンションして画像生成を試す
料金について
Party on Slack 自体は無料で利用できます。
ただし、各AI(OpenAI、Anthropic、Google など)の API 利用料金は別途発生します。API キーを持ち込む形式なので、利用量に応じた従量課金となります。
API 経由での利用なので、入力データが学習データとして取り込まれる心配はありません。
参考リンク
この記事が移行作業の参考になれば幸いです。
使い倒せ、テクノロジー。(MAX OUT TECHNOLOGY)をミッションに掲げる、株式会社リバネスナレッジのチャレンジを共有するブログです。Buld in Publichの精神でオープンに綴ります。 Qiita:qiita.com/organizations/leaveanest
Discussion