ゲーム作成日記③~画像生成・洋服差分~
今回も画像生成の話。多少ゲームの内容にかかわることもあるので、未プレイの方は遊んでから読んでくれると嬉しいです(ダイレクトマーケティング)。
前回、喜怒哀楽を手に入れたヒロイン、てす子(仮)。そのプロンプト(15 years old)に反して、服装も相まって少し幼い感じの見た目になってしまったので、いっそ小学6年生キャラとして、名前を凪とした。
女子って、中学生になると急に大人になる印象なので、せっかく小学生なら小6の、子供でいる最後の1年を描くことにした。
ただ、ここで問題が発生する。夏だ。
凪には、可愛いと思って大きめのパーカーを着せているのだが、夏はこれだと暑すぎるのだ。
凪に涼しい夏を過ごしてもらうため、着せ替えにチャレンジすることとした。
画像の一部を書き換えには、Image to ImageのInpaintという機能を使うとうまくいくらしい。おおまかには、ブラシで書き換えたいところをマスクし、そこの画像生成を再度行う、みたいな操作。
で、やってみたらノイズまみれ(画像は苦手な人もいるかもしれないので割愛)。
どうやら、Denoising Strength(Inpaintで書き直すための最重要パラメータ)が0.3になっていて、これが低すぎたみたい。一般的にはこれが0.4~0.5くらいがよい、とされているみたいなのだが、0.5、0.7と上げていっても相変わらずノイズまみれであり、ヤケクソで1.0にした結果が以下。
元の絵と全然整合が取れてない。Denoising Strengthが高すぎるとこうなるらしい。とはいえ低すぎるとノイズになっちゃう。こりゃ詰んだか?
いったん断念し、1か月放置した後、気を取り直して再開。
大きめに服装をマスクしているのも悪い影響を与えているのかも、というのと、latent nothingモード(書き換える領域をいったんノイズに戻して再生成するモード)でやっているのが悪いのかも、ということで、服のギリギリをマスク&originalモード(元の画像を参照して変更をかけるモード)で生成したのが以下。
これもうまくいかず。
ただ、ここで気づいたのが、もともと凪はパーカーを着てて、そのフードの部分が悪さしているかも、ということ。なんで、変えたくない顔の部分をマスクして、それ以外のところを書き換える「inpaint not masked」で行うこととした。それと同時に、Denoising Strengthを調整し0.75とした結果が以下。
結構かわいくできたが、髪の部分がちょっと変になっちゃってる。
ただ、気に入らないところを書き直せるのがInpaintモードなので、髪のところをマスクして、fillモード(周囲の色を参考に書き直すモード)で書き直した結果が以下。
ということで、なんとかお着がえ成功となった。
ただ、なかなかパーカーを着替えたがらない凪が、僕にインスピレーションを与え、凪は夏でもだぼだぼパーカーを着ているキャラとなるのであった・・・。