GPT Image、背景透過が来た。「透けてる」に見えるだけの画像に騙された話
ゲーム会社でエンジニアをやりながら、副業と個人開発をしているれいあです。最近はAIに作業を投げて、自分用の道具や素材をひたすら作っています。
GPT Image に背景透過が来たので、さっそく試しました。前はここでいちばん時間を溶かしていたので、まともに動くのを見て正直かなり拍子抜けしています。
ただ、一回だけきれいに騙されました。その話も含めて書きます。
「背景を抜く」が、いちばん面倒な工程だった
キャラの絵をスタンプやゲームの素材に使うとき、背景が残っていると使い物になりません。白い四角に囲まれたキャラが、トーク画面にぺたっと貼られる感じになります。
なので今までは、白背景で焼いてから自分で抜いていました。これがしんどい。
白い色を一括で抜くと、白いカーディガンや、手に持たせた紙や、靴まで一緒に消えます。キャラの体に穴が空くんですよね。
じゃあ「いちばん大きいかたまりだけ残す」ようにすればいいかというと、これもだめでした。頭の横に浮かべた「?」マークとか、汗とか、キラキラの星。あれは本体と線が繋がっていないので、別のかたまりとして丸ごと捨てられます。感情が消えたキャラだけが残ります。
最終的に、画像の四隅から外側に繋がっている白だけを塗りつぶす、というやり方に落ち着きました。落ち着いたというか、そこまでやってようやく実用になった、という感じです。

いまは、最初から透けて出てくる
GPT Image に、透過そのものを出す機能が来ました。うちは Codex 経由で使っているので、追加の課金もなしで試せます。
やることは、プロンプトに英語で3つ書くだけでした。
ひとつめが「本物のアルファチャンネルを使って、背景を本当に空にして」。ふたつめが「白も他の色も塗らないで」。みっつめが「グレーと白の市松模様を描かないで」。
3つめを見て「なんでそんなこと書くの?」と思いますよね。わたしも思いました。書いてあったから一応入れただけです。
これが後で効きます。
一回だけ、きれいに騙された
キャラの見た目を揃えたかったので、参照画像を1枚つけて焼いた回がありました。
出てきた絵を見て、普通に「お、抜けてるじゃん」と思ったんです。あの、透過を表すグレーと白の市松模様が、ちゃんと背景に見えていたので。
でも抜けていませんでした。
市松模様が、絵として描かれていたんです。透明な部分なんてどこにもなくて、市松の柄をそのまま塗った、ただの不透明な画像でした。
3つめの指示は、これを止めるためのものだったんですね。書いてある意味が、踏んでからようやく分かりました。

目では見分けられないので、測るしかない
こわいのは、画面で見ているかぎり本物とまったく同じに見えることです。並べても分かりません。
なので測りました。透明かどうかは画像の中に数字として入っているので、そこを直接読みます。四隅が透明になっているか、外周のどれくらいが抜けているか。
参照画像なしで焼いたぶんは、9枚中9枚きれいに抜けていました。外周の透過率は 97.7〜100%。縁に黒っぽいゴミが残ることもありませんでした。
ひとつ引っかかったのが、キャラ本体の不透明度がぴったり100%にならないことです。ほんの少しだけ足りない。最初これを見て「キャラが透けてる、失敗だ」と言いかけました。実際には見た目に影響しないレベルの誤差で、そういうものでした。
数字で判定するようにした結果、数字の読み方でこけるという。
キャラを揃える方法は、別で用意する必要があった
困ったのが、参照画像が使えないことです。透過と両立しないので。
キャラの見た目を揃えるのに、いちばん楽なのが参照画像を渡す方法なんですよね。それが封じられました。
で、どうしたかというと、言葉で細かく書きました。髪の色と長さ、目の形、服の種類、持ち物、そういうものを全部プロンプトに固定で書いておく。ふわっと「同じキャラで」と書くのではなく、他人が読んでも同じ絵が描けるくらいまで書き下す感じです。
これで揃いました。シートを3枚焼いて、並べても同じキャラに見えます。

上はそうやって作ったスタンプです。せっかくなので、そのままLINEスタンプとして出すところまでやりました。いまは審査に出したところです。
次はゲームの素材で試します
スタンプで通ったので、次はゲームアセットに使えるかを見てみます。キャラの立ち絵、アイテムのアイコン、UIのパーツあたり。
素材づくりで背景抜きが消えるのは、思っていたよりずっと大きいです。作業そのものが減るというより、「抜くのが面倒だから作らない」がなくなる感じで。
同じところで詰まっていた人がいたら、まずは3つめの指示(市松模様を描くな)を入れてみてください。あれが無いと、透過に見えるだけの画像を掴まされます。わたしは掴みました。
