実録ケーススタディ

gpt-image-2でオリジナルキャラ画像を作る実録手順

  • 更新日: 2026年7月15日
  • 読了目安: 約15分
  • 生成の実測: 1枚 約1〜2分
gpt-image-2でオリジナルキャラのシーン画像を作った実録を表すヒーロー画像
この記事の結論

gpt-image-2の画像編集API(/v1/images/edits)に、キャラの参照画像をimage[]で渡すと、同じキャラの顔のまま別シーンの画像を量産できます。quality=mediumなら1枚約1〜2分です。

これは2026年7月14日に、Team Agentのオリジナルキャラ「バグル君」のシーン画像2枚を実際に作った実録です。成功手順だけでなく、切断・400エラー・文字崩れの失敗ログまで実測のまま載せています。

先にお断りを1つ

この記事にはAPIやcurlなどの専門用語が出てきますが、出てくるたびにその場で一言ずつ説明します。プログラミング経験がなくても大丈夫です。

この記事で分かること

「gpt-image-2 キャラクター」「AI画像生成 キャラ 一貫性」で検索している人が知りたいのは、たぶんモデルの性能紹介ではありません。

自分のキャラの顔が、生成のたびに別人にならない方法はあるのか。
APIには具体的に何をどう送ればいいのか。
文字入れはどこまで実用になるのか。
失敗した時、何をどう直せばいいのか。

この記事は、実際にバグル君のシーン画像2枚を作った作業ログをもとに、その全部に答えます。

ゴール

この記事のcurl例とプロンプトをコピペして、自分のオリジナルキャラの「顔を保ったままのシーン画像」を1枚作れる状態になることです。登場する数字はすべて2026年7月14日の実測値です。

キャラの「顔」を保ったまま、シーンだけ変えて量産する。それが1枚1〜2分でできます。

完成品:gpt-image-2で作ったバグル君のシーン画像2枚

先に完成品です。この2枚が、この記事の手順で実際に生成した画像です。

1枚目。バグル君が「この戦争を終わらせに来た!!」と宣言するシーン。有名漫画の頂上決戦をオマージュした構図で、日本語のセリフはgpt-image-2が吹き出しごと描いています。

gpt-image-2で生成した、バグル君が戦いを終わらせに来たと宣言するシーン画像

2枚目。「もうやめましょうよ」と戦いを止めに入るシーン。同じ参照画像から生成しているので、1枚目とキャラの顔・配色が揃っています。

gpt-image-2で生成した、バグル君が戦いを止めに入るシーン画像

実測データはこうです。

項目 実測値
生成日2026年7月14日
モデルgpt-image-2(/v1/images/edits)
サイズ1536x1024(横長)
quality=high2回とも数分待った末にOpenAI側から切断
quality=medium1枚約1〜2分で成功
生成直後のファイルサイズ約2.9〜3.0MB
magick最適化後約2.7〜2.8MB
日本語の吹き出し崩れず成功
腕章の英字「Claude」やや崩れた
先に覚えておく結論

最初からquality=mediumを選んでいれば、この2枚は合計5分もかからずに完成していました。

gpt-image-2とは?ChatGPTの画像生成との違い

gpt-image-2とは、OpenAIの画像生成モデルをAPI(プログラムからサービスを直接使うための入口)経由で呼び出す時に指定するモデル名です。ChatGPTの画面で使える画像生成機能(Image Generator 2)と同じ系統の画像生成を、チャット画面を通さずに直接実行できます。

「ChatGPTの画面で作れるなら、それでよくない?」と思うかもしれません。実際、1枚だけ作るならChatGPTの画面で十分です。プロンプトの実例は、下のプロンプト30選にまとめてあります。

APIを使う理由は3つあります。

条件を完全に固定できる 参照画像・サイズ・品質を毎回まったく同じ条件で指定でき、キャラの再現が安定する。
量産できる スクリプト化すれば、表情差分やシーン違いを同じ設定で連続生成できる。
ファイルが直接手元に残る 生成画像がそのまま保存され、ブログやSNSへの反映まで自動化できる。

Team Agentではバグル君の表情差分を34種類運用していて、ブログ・SNS・動画で同じキャラとして使い回しています。この「同じキャラとして」を支えているのが、今回紹介する参照画像方式です。

なお、gpt-image-2はOpenAIのAPIで全プラン制限なしで使えます(2026年7月時点)。料金は生成品質とサイズによって変わる従量課金なので、最新の単価は公式料金ページで確認してください。

Image Generator 2の画像生成プロンプト30選のヒーロー画像
Image Generator 2|画像生成プロンプト30選 ChatGPTの画面だけで完結する画像づくりは、こちらのコピペプロンプト集からどうぞ。

最初に送るプロンプト(CodexやClaude Codeに丸ごと作らせる)

この後の手順ではcurl(ターミナルからWebサービスへ直接送信するコマンド)を1行ずつ説明しますが、「仕組みごとAIに作らせたい」人は、このプロンプトをCodexかClaude Codeに貼れば、量産スクリプトまで一気に作れます。

オリジナルキャラの画像をOpenAIの画像API(gpt-image-2)で量産する仕組みを作ってください。

目的:
- 手元にあるキャラクターの参照画像を使って、同じキャラの別シーン画像を生成する
- 生成結果をファイルとして保存し、SNSやブログで使える状態にする

前提:
- このパソコンで作業します(Node.jsかPython、入っている方を使ってください)
- OpenAIのAPIキーは .env ファイルの OPENAI_API_KEY に入れます(コードに直書き禁止)

作ってほしいもの:
- ref/ フォルダの参照画像を読み込み、/v1/images/edits に model=gpt-image-2 で送るスクリプト
- プロンプト、サイズ(既定 1536x1024)、quality(既定 medium)を実行時に変えられるようにする
- レスポンスの b64_json をデコードして、output/ に日付つきファイル名で保存する

エラー時の動き:
- 接続が途中で切れたら、quality を medium に落として1回だけ自動で再試行する
- 400エラーが出たら、送ったパラメータの一覧を表示して止まる(勝手に再送しない)

最後に:
- テスト実行のコマンドと、成功した時に何がどこへ保存されるかを教えてください
- 秘密のキーが画面やログに表示されないことを確認してください

このプロンプトの中身が何をしているのかは、ここから先の手順で1つずつ分かります。仕組みを任せる場合でも、手順2の「何を送っているか」だけは読んでおくと、失敗した時に自分で直せます。Claude Codeがまだの人はインストール記事からどうぞ。

事前準備:APIキー・参照画像・作業フォルダ

必要なものは3つだけです。

  • OpenAIのAPIキー(APIを使うための秘密の合言葉)
  • キャラの参照画像(1枚以上。正面で特徴が分かるもの)
  • ターミナル(Macの黒い画面。curlは最初から入っています)

APIキーはOpenAIのダッシュボードで発行して、環境変数(パソコンに覚えさせる設定値)として読み込みます。ターミナルで次を実行してください。sk-で始まる部分は自分のキーに置き換えます。

export OPENAI_API_KEY="sk-ここに自分のキーを貼る"
キーの扱いで守ること

キーを人に見せない。キーをコードやプロンプトに直書きしない。この2つだけは必ず守ってください。ファイルで管理したい人は1Passwordで.envを管理する記事の方式が安全です。

作業フォルダはこの形にしておくと、後のコマンドがそのまま使えます。

mkdir -p baguru-scenes/ref baguru-scenes/output
cd baguru-scenes

refに参照画像、outputに生成結果を入れる、それだけの構成です。

手順1:参照画像を選ぶ(キャラ一貫性はここで決まる)

gpt-image-2でキャラの顔を保つ方法は、プロンプトで頑張ることではありません。参照画像を渡すことです。

/v1/images/editsというエンドポイント(APIの送信先住所)は、image[]という形で画像を添付できます。ここにキャラの公式画像を渡すと、gpt-image-2は「この見た目のキャラを描く」という前提で新しいシーンを生成します。

今回はバグル君の公式プロフィール画像を参照として渡しました。参照画像は複数枚渡すこともできるので、顔アップと全身など、角度の違うものを組み合わせるとさらに安定します。

参照画像選びの基準は3つです。

  • 顔・配色・特徴がはっきり写っている(後ろ姿や小さすぎる絵はNG)
  • 背景がシンプル(背景が濃いと、背景ごと引き継がれることがある)
  • 公式として固定した1枚を使い続ける(毎回変えると、キャラも毎回ブレる)
ポイント

3つ目が地味に一番効きます。Team Agentではバグル君の「公式プロフィール画像」を1枚決めて、シーン生成は常にそこから作っています。参照画像を正本として固定する。これがキャラ運用の土台です。

まだキャラ自体がない人は、先にChatGPTの画面で「うちのマスコットキャラ」を1枚作り込んで、それを参照画像に昇格させてください。キャラの作り込みから動画化までの流れは、下の記事が詳しいです。

CodexとImageGen2で漫画を動画化する初心者向け手順のヒーロー画像
CodexとImageGen2で漫画を動画化する初心者向け手順 キャラの安定生成から素材整理、Remotionでの動画化まで、キャラ運用の次のステップです。

手順2:/v1/images/editsに1枚目を作らせる

準備ができたら、いよいよ生成です。まずプロンプトを見てください。実際に使った指示の構造をそのまま公開します。

参照画像のキャラクター(バグル君)の顔・体型・配色を変えずに、
次のシーンを描いてください。

シーン:
荒れた戦場の空の下、キャラクターが静かに立ちはだかり、
戦いを終わらせに来た場面。劇画調のオマージュ構図で、迫力を重視する。

セリフ:
「この戦争を終わらせに来た!!」という日本語の吹き出しを大きく入れる。

スタイル:
アニメ調。キャラクターのかわいさは保ちつつ、背景はドラマチックにする。

避けたいこと:
実在の作品のキャラクター、ロゴ、作品名は描かない。

ポイントは最初の1行です。「参照画像のキャラクターの顔・体型・配色を変えずに」と明示すると、シーンの演出に引っ張られてキャラが変質するのを防げます。

このプロンプトを、curlでAPIに送ります。ターミナルに貼る形はこうです。

curl -s https://api.openai.com/v1/images/edits \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -F "model=gpt-image-2" \
  -F "image[]=@ref/buguru-profile.png" \
  -F "size=1536x1024" \
  -F "quality=medium" \
  -F "prompt=参照画像のキャラクターの顔・体型・配色を変えずに、荒れた戦場の空の下で戦いを終わらせに来たシーンを劇画調のオマージュ構図で描く。「この戦争を終わらせに来た!!」という日本語の吹き出しを大きく入れる。アニメ調。実在の作品のキャラクター、ロゴ、作品名は描かない。" \
  --max-time 300 \
  -o response.json

1行ずつの意味はこうです。

  • image[]=@ref/buguru-profile.png: 参照画像の添付。キャラ一貫性の心臓部
  • size=1536x1024: 横長。縦長なら1024x1536、正方形なら1024x1024(対応サイズの最新は公式リファレンスで確認)
  • quality=medium: 品質設定。この記事の実測ではmediumが正解でした(次の手順で詳しく)
  • --max-time 300: 5分で打ち切る保険。画像生成は分単位で時間がかかるため必須
Terminal
送信すると1〜2分、静かな待ち時間があります
hashshnet@MacBook-Air baguru-scenes % curl -s https://api.openai.com/v1/images/edits ...
(quality=medium: 約1〜2分待つ)
response.json に結果が保存されました

結果はresponse.jsonにb64_json(画像を文字列化した形式)で入っています。次のコマンドでPNGに復元します。

python3 -c "import json,base64;open('output/scene-01.png','wb').write(base64.b64decode(json.load(open('response.json'))['data'][0]['b64_json']))"

output/scene-01.pngが開けたら、1枚目の完成です。quality=mediumなら、実測で約1〜2分で返ってきます。

手順3:実録・quality=highの切断をmediumで回避する

ここが今回一番の「実際にやったから書ける」部分です。

最初、せっかくの完成画像なので最高品質にしようと、quality=highで送りました。結果はこうです。

  • 1回目: 数分待たされた末に、OpenAI側から接続が切断(RemoteDisconnected)
  • 2回目: 同じく数分待って切断。画像は1枚も届かない

2回連続で同じ挙動だったので、パラメータの問題ではなく、high品質の生成が時間内に返せていないと判断しました。そこでquality=mediumに落として再送したところ、約1〜2分で1枚目が成功。2枚目も同じ設定で通りました。

先に結論を書いた通り、この記事の2枚はどちらもquality=mediumです。完成画像を見て分かる通り、ブログやSNSで使う分にはmediumで品質は十分でした。

切断された時の対処は、効いた順にこの3つです。

01

qualityをmediumに下げる

今回はこれで解決

生成時間が大幅に短くなり、切断の前に画像が返ってきます。品質もブログ・SNS用途なら十分です。

02

ストリーミング配信を検討する

環境による

途中経過を分割で受け取る呼び方に変えると、長い生成でも切断に強くなる場合があります。対応状況は公式リファレンスで確認してください。

03

モデルをgpt-image-1に切り替える

最後の逃げ道

それでもダメなら、旧世代モデルでまず流れだけ通します。設定と手順が正しいことを確認してから、gpt-image-2に戻ります。

実測で分かった注意点

input_fidelityという「参照画像への忠実度」を指定するパラメータを付けたところ、gpt-image-2では400エラー(非対応パラメータ)で弾かれました。旧モデル向けの設定例をコピーしてくる時は、このパラメータを外してください。参照画像への忠実さは、パラメータではなくプロンプトの「顔・体型・配色を変えずに」で指示します。

手順4:magickで軽くしてから公開場所へ

生成直後のPNGは、1536x1024で約2.9〜3.0MBありました。ブログやSNSにそのまま貼るには少し重いサイズです。

ImageMagick(画像をコマンドで変換できる無料ツール)で余分なデータを削って圧縮します。

magick output/scene-01.png -strip -define png:compression-level=9 output/scene-01-min.png

今回の実測では、2.9〜3.0MBが2.7〜2.8MBになりました。PNGのまま無劣化で削れるのはこの程度なので、もっと軽くしたい場合は、横幅を1200pxに縮小するか、WebPという軽い形式への変換を組み合わせてください。

magick output/scene-01.png -resize 1200x -quality 85 output/scene-01.webp

仕上がった画像を自分のブログやサイトの画像置き場にアップロードすれば、公開まで完了です。Team Agentではこの2枚をCloudflareの画像配信にアップロードして、ブログとSNSの両方で使い回しています。

ここまでの確認
  • output/にシーン画像が保存されている
  • 参照画像とキャラの顔・配色が揃っている
  • ファイルサイズを軽量化してからアップロードした

1つでも詰まっていたら、下のエラー対処セクションに全部の脱出路があります。

実録の気づき:日本語の吹き出しは成功、英字腕章は崩れた

文字入れの結果は、事前の予想と逆でした。

崩れると思っていた日本語の吹き出し「この戦争を終わらせに来た!!」は、感嘆符まで含めて一発で崩れず描画されました。漢字・ひらがな混在の10文字超でこの精度は、正直驚きました。

一方で、簡単だと思っていた腕章の英字「Claude」は、やや崩れました。小さい面積に短い英単語という条件が、むしろ苦手のようです。

この実測から引けるルールはこうです。

  • 大きく見せたい文字(吹き出し・タイトル)は、gpt-image-2に直接描かせてよい
  • 小物に入る小さい文字(腕章・バッジ・看板の隅)は、崩れる前提で設計する
  • 小さい文字がどうしても必要なら、画像編集ツールで後から文字だけ載せる方が確実
2026年7月時点の実用ライン

「AI画像は文字が崩れる」と一括りにせず、文字の大きさと役割で切り分ける。大きい文字は直接生成、小さい文字は後入れです。

よくあるエラーと対処法

今回踏んだものを中心に、キャラ画像生成で詰まりやすい7パターンをまとめます。

数分待った末に接続が切れる

症状: コマンドを実行して数分待ったあと、画像が届かないままエラーで終了する。RemoteDisconnectedのような表示が出る。

原因: quality=highなど生成に時間のかかる設定で時間切れになっている。通信環境やAPI側の混雑。

  • qualityの指定がhighになっていないか確認する
  • --max-timeを付けているか確認する(付けないと延々待ち続ける)

対処: quality=mediumに下げて再実行(この記事の実測ではこれで解決)。--max-time 300で待ち時間の上限を決める。同じ設定で2回失敗したら、設定を変えずに再送し続けず、品質を下げるか時間を置く。

input_fidelityを付けたら400エラー

症状: リクエストが即座に400エラーで返り、パラメータが不正という趣旨のメッセージが出る。

原因: input_fidelityがgpt-image-2では非対応(2026年7月14日に実測)。旧モデル向けの設定例をそのままコピーした。

対処: input_fidelityの行を削除して再送する。参照への忠実さは「顔・体型・配色を変えずに」とプロンプト側で指示する。他の見慣れないパラメータも公式リファレンスと突き合わせる。

401エラーでキーが拒否される

症状: Unauthorizedやinvalid_api_keyという表示が出て、生成が始まらない。

原因: APIキーの貼り間違い、期限切れ、環境変数の未設定。ターミナルを開き直すとexportした値は消えます。

対処: exportをやり直してから再実行する。直らなければダッシュボードでキーを作り直す。キーをコードやチャットに貼っていた場合は、そのキーを無効化して新しいキーに替える。

キャラが別人になる

症状: 生成はできたが、顔つき・配色・頭身が参照画像と違う。

原因: 参照画像が小さい、後ろ姿、特徴が読み取りにくい。プロンプトに「変えない」指示がなく、シーン演出に引っ張られた。

対処: 参照画像を公式の1枚に固定し、角度違いをもう1枚追加する。プロンプト先頭に「参照画像のキャラクターを変えない」指示を入れる。1回の生成で変えるのはシーンだけにして、衣装替えとシーン替えを同時にやらない。

画像の中の文字が崩れる

症状: セリフやロゴの文字が、読めない形に崩れる。

原因: 小さい面積への文字入れは崩れやすい(実測では腕章の英字が崩れた)。入れる文字の指定があいまい。

対処: 入れる文字はカギ括弧で正確に指定し、「大きく入れる」と添える。小さい文字は生成に任せず、画像編集ツールで後から載せる。大事な1枚は、文字なしで生成して文字を後入れする設計に切り替える。

安全システムに弾かれて生成されない

症状: エラーまたは「生成できません」という趣旨の応答が返り、画像が作られない。

原因: 既存作品のキャラクター名や実在の人物名がプロンプトに入っている。参照画像そのものが既存作品の画像になっている。

対処: 固有名詞を消して「劇画調」「頂上決戦のような」など雰囲気の言葉に置き換える。参照画像は自分のオリジナルキャラだけにする。この記事の著作権セクションの方針に沿って作り直す。

ファイルが重くてアップロードできない

症状: 生成は成功したが、ブログやSNSへのアップロードで弾かれる、または表示が遅い。

原因: 生成直後のPNGは大きい(実測で1536x1024が約2.9〜3.0MB)。

対処: magickの-stripと圧縮で無劣化のまま削る(実測で約2.7〜2.8MBまで減)。それでも重ければ横幅1200pxへ縮小するか、WebPに変換する。元のPNGは正本として残し、公開用と分けて管理する。

実務活用例:オリジナルキャラ運用でできること12選

「同じキャラの顔で、シーンだけ変えて量産できる」と何が変わるのか。Team Agentでバグル君を運用している実感ベースで12個挙げます。

SNS投稿の挿絵 投稿の内容に合わせた表情・シーンを都度生成。バグル君は表情差分34種類を使い回し中。
ブログ記事の解説カット 「エラーで困る」「解決して喜ぶ」など、記事の流れに合わせた案内役カット。
YouTubeサムネイル 驚く・詰まる・解決するの3構図をキャラ違いシーンで量産。
ショート動画の素材 シーン画像を連続生成して、紙芝居形式の動画に組む。
LINE配信画像 挨拶・告知・お礼をキャラの姿勢違いで作り分け。
LINEリッチメニュー メニューの区画ごとにキャラのポーズを変えて視線誘導。
LPやサービス紹介ページ 手順説明の各ステップにキャラを立たせて離脱を防ぐ。
note記事のアイキャッチ ブログとは別トーンのシーンで作り分け。
プレゼン・提案資料 章の区切りごとにキャラのリアクションを挟んで緩急を作る。
告知バナー セミナーやキャンペーンの世界観をキャラのシーンで表現。
季節・イベント差分 正月・ハロウィンなどの衣装シーンを参照画像固定のまま生成。
グッズ・ステッカーの試作 印刷前のデザイン検討をAPI量産でスピードアップ。

どれも共通の勘所は1つです。参照画像を正本として固定し、シーンだけをプロンプトで変える。キャラがブレなければ、量産はそのままブランド資産になります。

AIに聞くためのプロンプト集

途中で詰まったら、状況を整理してAIに渡すのが一番早いです。ChatGPT、Claude、Claude Code、Codexのどれでも使えます。

秘密のキー(APIキー)、パスワード、顧客情報は絶対に貼らないでください。エラー文にキーの一部が含まれる場合は、その部分を伏せてから貼ります。
01

キャラの特徴を言語化してもらう時

オリジナルキャラの画像をAIで量産する準備をしています。
このキャラの見た目の特徴を、画像生成プロンプトに書ける形で言語化してください。

キャラの説明:
[色、形、服装、雰囲気など、分かる範囲で書く]

出力してほしいもの:
1. 「変えてはいけない特徴」のリスト(顔、配色、頭身など)
2. プロンプトの先頭に毎回入れる固定文(1〜2文)
02

シーンのプロンプトを設計してもらう時

参照画像つきの画像生成(gpt-image-2の/v1/images/edits)で、
オリジナルキャラのシーン画像を作ります。

作りたいシーン:
[例: キャラが夜のオフィスでエラーに困っている場面]

条件:
- キャラの顔・体型・配色は参照画像から変えない
- 入れる文字: [例:「またばぐった…」という日本語の吹き出し]
- 避けたいこと: 実在の作品やロゴを連想させる要素

この条件で、そのまま送れる日本語プロンプトを1本書いてください。
03

エラーの原因を切り分けてもらう時

OpenAIの画像生成API(gpt-image-2、/v1/images/edits)でエラーが出ました。

実行したコマンド: [秘密のキーは伏せて貼る]
表示されたエラー: [エラー文をそのまま貼る]
待った時間: [例: 3分ほど待ってから切断された]

原因の候補を可能性が高い順に挙げて、
それぞれ「まず何を確認するか」を初心者向けに教えてください。
04

生成結果の改善を頼む時

オリジナルキャラのシーン画像を生成しましたが、仕上がりに不満があります。

使ったプロンプト: [貼る]
不満な点: [例: キャラの顔が参照画像より大人びてしまう / 文字が崩れる]

プロンプトのどこをどう直すべきか、修正版のプロンプトつきで提案してください。
参照画像を変えるべき場合は、どんな参照画像を足すべきかも教えてください。
05

公開前の権利チェックをする時

AIで生成したオリジナルキャラの画像をブログとSNSで公開する予定です。

前提:
- キャラは自分で作ったオリジナルです
- 有名作品のシーンを、構図の雰囲気だけオマージュしています
- 参照画像・プロンプトに既存作品の画像や名前は使っていません

公開前に確認しておくべき点を、
著作権・利用規約・炎上リスクの3つの観点でリストにしてください。
断定できない点は「公式や専門家に確認」と明示してください。

まとめ

2026年7月14日にやったことを、もう一度並べます。

  • バグル君の公式画像をimage[]で渡し、/v1/images/editsでシーン画像2枚を生成した
  • quality=highは2回とも切断。mediumに落として1枚約1〜2分で成功した
  • input_fidelityはgpt-image-2非対応(400エラー実測)。忠実さはプロンプトで指示した
  • 日本語の吹き出しは崩れず成功、腕章の小さい英字は崩れた
  • 約2.9〜3.0MBのPNGをmagickで約2.7〜2.8MBにして公開した
  • 既存作品の画像・名前は一切使わず、オマージュはオリジナルキャラで再現した
今日やること
  • 自分のキャラの「公式参照画像」を1枚決める(なければChatGPTで作り込む)
  • この記事のcurl例をquality=mediumのまま1回実行してみる
  • うまくいったら、最初に送るプロンプトで量産スクリプトをAIに作らせる

シリーズの全体像は、まとめ記事から辿れます。

GPT-5.6完全マスターガイドのヒーロー画像
GPT-5.6完全マスターガイド|10記事の歩き方 GPT-5.6シリーズ全体の入口になるまとめ記事です。この実録もシリーズの1本です。

キャラの顔が固定できた瞬間、画像生成は「毎回ガチャ」から「量産できる資産」に変わります。まず1枚、参照画像つきで作ってみてください。

よくある質問

gpt-image-2は無料で使えますか?

APIのgpt-image-2は従量課金で、無料ではありません。生成した枚数・品質・サイズに応じて料金がかかり、quality=mediumはhighより安く済みます。一方、ChatGPTの画面から使う画像生成は、契約しているプランの範囲内で使えます。単価と条件は変わる可能性があるため、最新はOpenAIの公式料金ページで確認してください。

プログラミングができなくても再現できますか?

できます。この記事のcurl例はコピペしてキーとファイル名を差し替えるだけですし、「最初に送るプロンプト」をCodexやClaude Codeに貼れば、スクリプト作成そのものをAIに任せられます。人間がやるのは、参照画像を選ぶことと、生成結果の良し悪しを判断することだけです。

キャラの顔がどうしても別人になります。コツはありますか?

一番効くのは、参照画像の質と固定です。正面で特徴がはっきり分かる1枚を「公式」と決めて毎回同じものを渡し、プロンプトの先頭に「参照画像のキャラクターの顔・体型・配色を変えずに」と明示してください。それでもブレる場合は、角度違いの参照画像を追加し、1回の生成で変える要素をシーンだけに絞るのが有効です。

quality=highはいつ使えばいいですか?

2026年7月14日の実測では、quality=highは2回連続で生成中に切断され、mediumは1〜2分で成功しました。まずmediumで構図とキャラを確定させて、印刷用など特に品質が必要な最終稿だけhighに再挑戦する使い方をおすすめします。ブログ・SNS用途なら、完成品を見る限りmediumで十分でした。

input_fidelityで400エラーが出ます。

input_fidelityはgpt-image-2では非対応です(2026年7月14日に400エラーを実測)。旧モデル向けの設定例に含まれていることがあるので、その行を外して再送してください。参照画像への忠実さは、パラメータではなく「顔・体型・配色を変えない」というプロンプト指示でコントロールします。

日本語の文字はきれいに入りますか?

大きい文字なら実用レベルです。実測では「この戦争を終わらせに来た!!」という日本語の吹き出しが一発で崩れず描画されました。一方、腕章に入れた小さい英字はやや崩れました。吹き出しやタイトルは直接生成、小物の小さい文字は画像編集で後入れ、と使い分けてください。

生成した画像は商用利用できますか?

OpenAIの規約では、利用者が生成したコンテンツの権利は原則利用者側に帰属するとされていますが、条件は更新されることがあります。商用で使う前に最新の利用規約を確認してください。また、規約とは別に、既存作品のキャラクターに似せた画像は著作権侵害のリスクがあります。この記事のように、参照もプロンプトも自分のオリジナルキャラだけで構成するのが安全です。

更新履歴

  • 2026-07-14: 記事公開。生成時間・エラー・ファイルサイズはすべて2026年7月14日の実測値。
相談したい人へ

最初の1枚で詰まったら、そこで止まらなくて大丈夫です。

自分のキャラを作って運用まで乗せたい人は、公式LINEで相談してください。30分無料で、参照画像の作り込みや量産スクリプトの設計を一緒に進めることもできます。