見出し画像

ChatGPT Images 2.5:メタ情報は2.0のまま、ポーズは1ピクセルも動かない

2026年9月8日、OpenAIが ChatGPT Images 2.5 をリリースしました。ChatGPTの画面から使うときの製品名がこれで、API側のモデルは gpt-image-2.5 という名前で提供されています。触ってみたら引っかかりがいくつも出てきたので、順に書きます。新しく増えたスケッチ機能、生成された画像に埋め込まれている来歴情報、そして同じ人物を何枚も出したときのブレの少なさです。

🔗Introducing ChatGPT Images 2.5 | OpenAI


1. 落書きから化け物が生まれた

スケッチは、入力欄のメニューから選ぶとその場で絵を描いて添付できる機能です。文章で言いにくい配置や形を、線のまま渡せます。

オレンジのペンで四角い体を描き、短い足を4本と目を2つ足しました。上に青い波線で空、下に緑の波線で草。子どもの落書きです。これを添えて「これから連想できるフォトリアルな画像を作ってください」と頼みました。

出てきたのは、草原に立つもふもふのオレンジの生き物でした。体は落書きどおりの四角で、左右に出っ張りがあり、短い足が4本。毛の1本1本まで写実的に起こされていて、目は黒いプラスチックのように光っています。ぬいぐるみのようでもあり、正体不明の獣のようでもある。

草原で寝ている時にこれがもしも出てきたら死を覚悟しますね

もう一度、今度は元の落書きも横に置くよう頼みました。ちなみにこの落書き、元ネタはClaude Codeのマスコットであるオレンジのカニ、Clawdです。すると平たい紙工作のような姿の落書き版が、もふもふ版の隣に立って「わ!」と驚いていました。

2. 看板は2.5、画像の中の記録は2.0

ここまでは新機能の話です。気になったのは、この絵が新しい gpt-image-2.5 で作られたのかどうかでした。ChatGPTの画面には画像モデルを選ぶところがないので、見ただけでは分かりません。

まず、画像を作るページのHTMLを見ました。<title> も og:title も「ChatGPT 画像 2.5 | AI 画像生成ツール」です。入口にあたるページの名前は2.5になっています。

次に、生成された画像そのものを調べました。OpenAIは生成画像にC2PAという来歴情報を埋め込んでいると説明しています。PNGの中の caBX というチャンクに入っていて、作成元や処理の履歴を署名付きで記録できる仕組みです。

取り出した中身がこれでした。

  • 署名者:OpenAI Media Service API

  • softwareAgent:name が gpt-image、version が 2.0

  • 記録された操作:作成、変換、電子透かしの付与

version欄は2.0でした。2.5という文字列は、マニフェストのどこにもありません。API側の2.5には flare と sunburst という2つのモデルがあるのですが、その名前も出てきません。9月9日に生成した画像を5枚、ChatGPT本体と、業務向けのWorkモード、開発者向けのCodexと、経路を変えて調べました。5枚とも同じ値です。

ここは慎重に書いておきますが、softwareAgent は操作を行ったソフトウェアを記録する欄で、生成モデルそのものの版数を書く欄だとは限りません。2.0という値から確実に言えるのは、OpenAIがこの欄に書いた名前が2.0だった、というところまでです。

この欄が一度も更新されない固定値なのではないかとも考えて、4月20日に生成した画像と比べました。そちらは name が GPT-4o で、version というキー自体がありません。電子透かしの記録もありませんでした。半年のあいだに書式ごと変わっているので、まったく動かない値ではない。

ただし、この4月20日というのは gpt-image-2 が公開される前日です。画像生成が会話モデルの機能として説明されていた時期と、独立したモデル系列になった後との境目にあたります。世代の変わり目では書き換わったとしても、2.0から2.5のような小さい版の違いまで追うかどうかは、これだけでは分かりません。

APIのほうも見ました。OpenAIは gpt-image-2.5-flare と gpt-image-2.5-sunburst をAPIでも提供すると発表しています。公式ドキュメントにも両方のモデルページがあります。ところが9月9日、APIを試せるPlaygroundを自分のアカウントで開いてみました。モデル一覧に2.5系はひとつも並んでいません。出てきたのは次の6つです。

chatgpt-image-latest、gpt-image-1、gpt-image-1-mini、gpt-image-1.5、gpt-image-2、gpt-image-2-2026-04-21

外から分かるのはここまでです。入口は2.5を名乗り、画像に残った記録は2.0を名乗る。そして、公式には提供されているはずの2.5のモデルが、自分のPlaygroundには出てこない。どれが実態なのかは、この3つを並べただけでは決まりません。

🔗Image generation | OpenAI API

3. 自分の画像で確かめる方法

同じことは誰でも試せます。

ChatGPTで画像を作ったら、ダウンロードボタンから元のファイルを保存してください。ここが肝心です。チャットに貼り直したものやスクリーンショットでは確認できません。OpenAI自身、C2PAのようなメタデータはプラットフォームや編集ツール、ファイル変換によって取り除かれることがあると説明しています。試しにXへ投稿された画像を調べてみました。JPEGでC2PAが収まるのはAPP11という区画です。それが丸ごと無く、残っていたのは画像の基本情報を書くJFIFのヘッダだけでした。

読み込ませるだけで済む検証ページが2つあります。OpenAI自身が出しているものと、C2PA陣営の Content Credentials のものです。同じファイルを両方に入れてみました。

OpenAIのほうは「OpenAI ツールで生成されました」と表示し、SynthIDの透かしとC2PAのマニフェストを両方とも検出します。モデル名も出ます。ただし gpt-image までで、版の 2.0 は付きません。生成時刻として「2026年9月9日 9:00 JST」と出ますが、ファイルに記録されているのは日付だけで、9時というのは00:00 UTCを日本時間に直した見かけの値です。

Content Credentials のほうは、AIツールで生成されたこと、記録された操作が Created と Format converted であること、発行元が OpenAI Media Service(OpenAI OpCo, LLC)であることまで。モデル名そのものが出てきません。生のファイルには電子透かしを入れた記録も残っているのですが、これもアクション欄には並びませんでした。

どちらの画面も 2.0 には届きません。版まで知りたければ、ファイルを自分で読むことになります。macOSならターミナルで1行です。

LC_ALL=C grep -a -o 'softwareAgent.\{0,40\}' 画像ファイル.png

9月9日に生成した画像では、こう返ってきました。

softwareAgent?dnameigpt-imagegversionc2.0qdigitalSour

読みにくいのは、語と語のあいだに文字数を示す記号が挟まっているためです。? は文字として表示できないバイトです。そこを飛ばして読むと、name が gpt-image、version が 2.0 と並んでいるのが分かります。4月20日の画像で同じことをすると、名前の部分が GPT-4o になり、version のキーそのものが現れません。

ついでに言うと、OpenAIの発表ページから保存したサンプル画像にも、C2PAの来歴情報は見当たりませんでした。SVGで配信されていたほうは、画像を埋め込んだ上に「ChatGPT Images 2.5」という文字を重ねただけの作りで、画面に見えている2.5はメタデータではありません。

なお、C2PAが無いことと来歴の手がかりが無いことは同じではありません。OpenAIは不可視の電子透かし(SynthID)も併用していて、こちらは画素に埋め込まれるのでメタデータが剥がれても残ります。ただし、透かしを検出しても分かるのは、そのコンテンツがOpenAIのツールから出た可能性が高いということまでです。ChatGPTかAPIかCodexか、という括りで、モデルの版は出てきません。メタデータと同じ場所で止まります。

 なんかバックルームス感

🔗Content Credentials Verify

🔗Provenance signals (Content Credentials, SynthID) in OpenAI-generated content | OpenAI Help Center

4. ついでに測った、ポーズの維持

どのモデルが作ったのかは分からないままです。ただ、名前が分からなくても、その何かが今どう振る舞うかは測れます。

今回の更新でOpenAIが挙げている改善のひとつに、参照した被写体を保ったまま編集できる、という話があります。同じ人物のまま服だけ替える、といった使い方です。手元で試したので、数字を残しておきます。

同じキャラクターの立ち絵を、ChatGPTの画面から30枚作りました。服だけを10枚替えたもの(A)、同じチャットで続けて10枚(B)、背景と服を10枚替えたもの(C)です。

測り方はこうです。それぞれの組の1枚目から頭部を切り出し、残りの9枚のどの位置に置けば一番よく重なるかを、Pythonで総当たりで探しました。その移動量がズレです。画像を幅512pxに縮小した状態で測っています。なお、この辺はClaudeに任せました(Codex使えよ、と思わなくもないが、GPT-6で溶けているので)。

Aは横方向のズレが全10枚でゼロでした。1ピクセルも動いていません。Bで最大10pxが出たのは、着丈の長いドレスの回だけです。Cは背景ごと替えているぶん増えますが、それでも画面幅の1%以下に収まりました。

服だけ10枚を0.5秒送り。顔と立ち位置が動かないことがそのまま見える
背景と服を10枚。背景が変わってもポーズは保たれる

同じ位置の画素が10枚のあいだでどれだけばらつくかも測りました。0から255の明るさに対する標準偏差で、Aは顔の内側が4.6、胴体が61.3。13倍の開きがあります。服は総取っ替えなのに、顔だけが動いていません。

これが一番わかりやすく出るのが、10枚の平均画像です。位置が揃っていなければ顔も溶けて霞になります。Aの平均画像は、顔と髪がくっきり残ったまま、服だけが半透明になりました。

商品パッケージ風の平面デザインでも5枚試しています。こちらは1枚目に対する残り4枚のズレがすべて0px、袋の輪郭のばらつきも0.8で、替わっているのは中の絵と文字だけでした。ただし、正面固定で硬いエッジの図案は、髪や布のしわがある人物より維持しやすいはずです。同じ土俵に乗せて比べるものではありません。

そもそも、比較すべきgpt-image-2の連番が取れていません。さきに書いたとおり、ChatGPTの画面からはモデルを選べないためです。そして、ここで測った画像もUIで作ったものなので、C2PAには2.0と記録されています。

おまけ

全部(30枚)を縮小して、1つのgifにしたもの。

まとめ

製品名やAPIのモデル名と、画像に記録される softwareAgent の表記は、そのまま対応しているわけではない。今回分かったのはそこでした。入口が2.5に変わっても、記録の側は2.0のままでした。

そして、その 2.0 はファイルの中にしかありません。OpenAIの検証ページは gpt-image までしか出さず、Content Credentials の検証ページはモデル名すら出しません。もう一方の signal である電子透かしも、OpenAI製だというところまでしか答えません。来歴の記録を「どのモデルが作ったか」の答えとして使うつもりなら、用意されているどの画面もそこには届かない、ということになります。

もっとも、落書きから出てきたあの生き物が2.5製なのか2.0製なのかは、まだ分かりません。ためしにChatGPT自身にも聞いてみました。画像生成ツールの仕様にはモデル名の記載も、モデルを指定する引数もないので断定できない、という返事でした。自己申告なので証拠にはなりませんが、UIの側から特定する道が無いことの裏づけにはなります。

名前は分からないまま、その何かが今どこまで揃えられるかだけは測れました。今回残せたのは、そういう記録です。次の世代が出たときに同じ手順でもう一度測れば、そこで初めて差を言えるでしょう。

いいなと思ったら応援しよう!