メインコンテンツへスキップ
見出し画像

ChatGPT Images 2.5 でポーズだけ変える:顔は動かず、差は服に出た

    前々回の記事に、こんなコメントをもらいました。同じポーズを保てるのは便利だが、逆にポーズだけ変えたいときはどうなるのか。キャラクターを残すことと、指定した部分を変えることは、別々に見たい。もっともな話で、あのとき測ったのは「服や背景を替えてもポーズが動かない」ことだけです。同じ性質が、ポーズを変えてくれと頼んだときに邪魔をするのか、それとも顔と服はそのままにポーズだけ動くのか。今回はそれを見てみます。

    前回の記事では、OpenAIのAPIに gpt-image-2 と gpt-image-2.5 が並んで選べるようになったところまで書きました。これで、前々回にできなかった「新旧の比較」もできます。ChatGPTの画面、APIの gpt-image-2、APIの gpt-image-2.5-sunburst の3経路に、同じ参照画像と同じ文を渡しました。2.5には flare と sunburst という2つの版があり、公式の発表では flare を「多くの用途の既定」、sunburst を「編集を細かく制御したい向け」と位置づけています。今回は編集の振る舞いを見るので、本線は sunburst にしました。

    1. 参照画像2枚、ポーズ5種、経路3つ

    参照画像は2枚です。ひとつは5月24日にChatGPTで作ったアニメ調の立ち絵で、gpt-image-2が出て1か月後の画像です。もうひとつは今回の検証中にChatGPTで作った実写風の全身写真で、こちらは街路を背景にしています。どちらも切り抜きや縮小はせず、原本のまま使いました。

    ポーズは5つ。右手を肩の高さに上げて手を振る、椅子に浅く腰かけて両手を膝に置く、体を左に向けて歩き横顔がこちらに見える、腕を組んで少し首をかしげる、両手を広げて軽くジャンプする。易しい順に並べていて、前の2つは顔の向きが変わらず、後の3つは向きや体の見え方が変わります。

    文は毎回同じ前置きに、ポーズの文言をつなげました。

    添付した人物のまま、ポーズだけを次のように変えてください。
    顔立ち、髪型、服装、体型、画風、背景は変えないでください。(ここにポーズの文言)

    経路は3つです。ChatGPTの画面では毎回新しいチャットを開き、画像を添付して送りました。前の生成に引きずられるのを避けるためです。APIのほうは、ブラウザから試せる開発者向けの画面(Playground)の画像編集を使い、出力サイズは参照画像に合わせる auto、品質は3段階の真ん中の medium、出力はPNGに固定して、gpt-image-2 と gpt-image-2.5-sunburst でそれぞれ回しました。以下、ポーズは順にP1〜P5と呼びます。

    画面経由はアニメ調の5枚だけ、APIは2つの参照画像で5ポーズずつ、2モデルで20枚。ポーズの実験はこの25枚です。

    なお、25枚とも画像に埋め込まれた来歴情報(C2PA)の softwareAgent 欄は gpt-image 2.0 でした。前回書いたとおり、少なくともOpenAIの今の出力では、この欄の値で2と2.5は区別できません。今回はモデルを自分で選んでいるので、記録に頼る必要はありません。

    2. 顔は残り、ポーズは動いた

    画像
    アニメ調の参照画像。上から ChatGPT画面、API 2.0、API 2.5。左端が参照、右へP1〜P5
    画像
    実写風の参照画像。上が API 2.0、下が API 2.5

    25枚とも顔・髪型・服が残り、ポーズも5種すべて動きました。前々回の「ポーズが固定される」性質は、今回の条件では、ポーズを変えろと頼めば素直に外れました。キャラクターを残すことと、指定した部分を変えることは、両立していました。心配していた「固定が邪魔をする」は起きていません。

    細かく見ると、差が出た箇所があります。

    ひとつ目は横向き歩きの顔の向きです。アニメ調では、ChatGPTの画面と2.5がきれいな横顔になり、2.0だけ体は横を向けたまま顔をこちらに向けています。ところが実写風では、2.0も2.5も顔をこちらに向けたままでした。追試で2回ずつ足しても、実写風は6枚とも同じです。「横顔がこちらに見える」という文は、アニメ調なら画面経由と2.5に通り、実写風だとどちらにも通らない。画風そのものが原因かどうかは、参照画像が1枚ずつなので切り分けられません。

    ふたつ目は、頼んでいないものを足す癖です。2.5のアニメ調の手を振るポーズには、手の横に「〜〜」という動きの線が描き足されていました。実写風の座るポーズでは、2.0がカフェのテーブルとカップを歩道の真ん中に置き、2.5は小さなテーブルを画面の端に寄せて置きました。どちらも「背景は変えるな」と書いた上で足しています。ただ足し方が違い、2.0の置き方は通路の写真として成立しておらず、2.5は端に寄せたぶん写真としては違和感は少ない。追試で2回ずつ足して計3回にすると、テーブルを足したのは2.0が3回中1回、2.5が3回中2回で、2.5の2回はどちらも端でした。回数が少ないので絶対にそうだ、と言えることではないですが。

    みっつ目は、画面経由だけに出た揺れです。APIのautoは20枚とも参照画像と同じ寸法を返したのに、ChatGPTの画面は5枚で3通りの寸法になりました。P1とP2が1024×1536、P3とP4が参照と同じ1086×1448、P5が1087×1447です。それと、画面経由のP2だけ背景がクリームから無地のグレーに変わっています。背景がまるごと別物に置き換わったのは25枚の中でこの1枚だけで、APIの20枚にはありません。APIで起きたのはテーブルを足す類で、背景そのものは保たれていました。

    画像
    追試。実写風の横向き歩きと座るを3回ずつ
    画像
    今回の集計表。分母は各条件で回した枚数

    3. 服だけ替えると、位置は1ピクセルも動かない

    ポーズの比較は目で見るしかありません。数値で2.0と2.5を比べるために、前々回の「服だけ替える」を、今度はAPIで2モデルに分けてやり直しました。アニメ調の参照画像に、赤いパーカー、黒いワンピース、白いTシャツとジーンズ、紺のブレザー、黄色いレインコートの5着を「服装だけ替えて」と頼み、各モデル5枚。ついでに2.5のもうひとつの流派 flare でも5枚出しました。

    画像
    服替え。上から 2.0、2.5-sunburst、2.5-flare。左端が参照

    測り方は前々回と同じです。参照画像の頭部を切り出し、生成画像のどの位置に置けば一番よく重なるかを総当たりで探して、その移動量をズレとする。幅512pxに縮小して測ります。

    結果は、2.0も2.5-sunburstも、5枚すべてで0pxでした。flareも最大1px。参照画像に対しても、5着の1枚目に対しても、測った頭部の位置は動いていません。前々回にChatGPTの画面で測った平均0.4pxより、むしろ止まっています。5枚のあいだで同じ位置の画素がどれだけばらつくかも測りました。0から255の明るさに対する標準偏差で、顔の内側が2.0で2.9、2.5で4.4、胴体が75.5と70.6です。どちらも「顔は動かず、服だけ総取っ替え」です。5枚の平均画像は、どちらも顔と髪がくっきり残り、服だけが霞になりました。

    つまり、頭部の位置の固定については、今回の5着では2.0と2.5の差を検出できませんでした。2.0の時点で同じ程度に固定されていた、ということになります。

    4. 差は服に出た

    では何が違うのか。並べて目につくのは、服そのものです。

    赤いパーカーで、2.0は毎回パーカーワンピースにして元のスカートを消し、脚を出しました。2.5-sunburst はパーカーの下に元のチェックのスカートを残すことがあります。1回だけでは偶然か分からないので、同じ文を4回ずつ送りました。スカートが残ったのは、2.0が4回中0回、2.5が4回中2回です。flareは1回だけですが消しています。

    画像
    「服装だけを赤いパーカーに」を4回ずつ。2.0は毎回スカートを消し、2.5は半々

    「服装だけを替えて」を、2.0は「服一式を差し替える」と読み、2.5は4回中2回、「上に着るものだけ替えて、他は残す」と読みました。読み方の傾向は違いますが、2.5でも半分は消しているので、「2.5なら残る」とは言えません。

    描き込みの差ははっきりしています。パーカーの紐とポケット、ブレザーのリボンとプリーツは2.5系にだけあり、2.0はのっぺりした面で描いています。flareのブレザーは、元のシャツとリボンをブレザーの下に残していて、3モデルの中では元の服にいちばん忠実でした。sunburstとflareの違いは、今回見つけられたのはこの1点だけです。

    実写風でも2着だけ試しました。黒いワンピースは、2.0が平らな布地で、2.5は裾に向かって段になった作りで布に重さがあります。黄色いレインコートは、2.5にだけフラップ付きのポケットと表面の艶があり、2.0はマットです。2.0の出力は安い衣装に見えることが多く、2.5はそれなりの服に見える。ここは主観で、個人的には2.5のほうが服としての作り込みを感じました。

    画像
    実写風の参照画像で服だけ替える。上が2.0、下が2.5

    まとめ

    ポーズだけ変えてくれと頼めば、顔・髪・服を残したままポーズは動きます。前々回の「ポーズが動かない」性質は固定ではなく、変えろと言えば外れる。コメントでもらった「キャラクターを残すことと、指定した部分を変えること」は、両立していました。

    今回測った範囲では、2.0と2.5の差は位置の固定にはありませんでした。頭部のズレはどちらも0pxで、2.0の時点で同じ程度に固定されていました。差が出たのは服のほうで、描き込みが細かくなり、今回の4回では元の服を残す出力が2回ありました。それと、勝手に足すものの置き方。頼んでいないテーブルを、2.0は歩道の真ん中に、2.5は画面の端に置きました。

    画面経由に限っては、寸法が揃わず、背景が1枚変わりました。APIの20枚には無かった揺れです。画面側の処理なのか、モデルや設定の違いなのかは、この検証だけでは分かりません。しかしながら、カスタム指示であったり色々ノイズはありますので、ピュアに生成したい場合はAPI経由なのでしょうね。

     
     
    生成AIを毎日触って、試して、書く。Claude・ChatGPTをはじめ話題のAIツールを片っ端から使ってみて、気づいたことをnoteに記録中。WEBアプリ制作やAI小説・漫画などの創作もやっています。業界動向の考察から哲学的な問いまで幅広く取り扱っています。

    あなたへのおすすめ