久しぶりに技術解説回です。
今回の手法を用いることで、エッチシーンを量産できそう見込みなので、そろそろゲームの更新に戻れそうです。
画像生成AIでは学習されていないキャラクターを再現するのが難しい、再現できても細かい部分まで調整しきれない、という問題があります。
これまでは3Dモデルを使ったりして、なんとか問題を解決しようとしていましたが、現段階の結論としては「やっぱり手書きが最強」ということで落ち着きました。
キャラクターデザイン
まずはキャラクターデザインとして、基準となる画像を作成します。
書き込み度を抑えて線画と構図を優先する
最初にtxt2imgで元となる構図を生成しまくり、良さそうなのを選びます。
ここでは、次のような手順になります。
- 人間:構図に合わせたプロンプトを作る
- AI:指示に従って画像を出力する
- 人間:出力された画像を見ながらプロンプトを修正
- AI:再び指示に従って画像を出力する
- 人間:良さそうなを選ぶ
ここでは線画と単純な着彩(line art, flat color
)で、書き込み度を抑えています。
理由は単純で、最初から書き込まれた画像を出力してしまうと、私がその画像を修正できないからです。
他には生成ごとに書き込み度合いにムラがあるので、出発点を統一するという意味合いもあります。
線画を維持したまま書き込み加える
この単純な線画なら修正ができます。
- 人間:画像に直接書き込んで、どういう画像にして欲しいのかを指示を出す
- AI:指示に従って画像を出力する
- 人間:良い出力結果のものを選ぶ(必要であれば、細部を自分で調整する)
AIが書き込めるからといって、複雑なキャラデザにすると、再現難易度が上がるので、やはりシンプルに抑えておきます。
(以降、左が手書きを加えた指示画像。右がそれを元にした生成結果)
ControlNetのLineartを使って線画を維持するように設定し、プロンプトを調整して書き込み度を増やしてやると、上のような結果が得られます。
今回の場合は、髪型・胸元・靴下を書き込みで調整しています。
とりあえず今回のキャラデザはこれにして、次に進みます。
キャラデザと同じキャラと衣装差分を作る
さて、生成画像では同じキャラ・同じ衣装を着せるのは困難ということでした。
もちろん学習させれば生成(txt2img)でも出せますが、今回のようにオリキャラの場合は、そもそも学習させるための画像がありません。
また、衣装を着せたまま、エッチシーンのような特殊な構図を生成しようとすると容易に体型が崩れます。AIは衣装の中でどのような人体構造になっているかを理解していないからですね。
この状況で生成ガチャに頼り続けると、いくら自動であっても精神が病みます。
ではどうするかというと、「素体から始めて、衣装を手書きする!」です。
もちろん全てを自分で書き込むわけではありません、AIにどのような衣装を書いて欲しいのかを自分で描いて指示を出すということです。
手間はかかりますが、ガチャに頼らず、確実に前進するというのは、計画が立てやすいです。
素体
そういうわけなので、衣装差分の場合は素体(裸体)画像から始めます。
出力した画像と、キャラデザ画像を見比べて、要点を修正します。
今回はテスト用として、元から綺麗に出力できたものを選んだので修正点はほとんどなく、前髪だけ直しました。
実際のエッチシーンでは狙った体位に調整する必要がありますが、手書きであればお胸の形や、頭身などの体型の調整も容易に行えます。(線画を直すだけなので)
この指示画像を元に書き込みます。
ControlNetが効いているので、ほぼ線画の通りに仕上がります。
全裸であれば、生成時に体型が崩れにくいこと、そして崩れたとしても直しやすいことも重要な要素です。
下着
では、この素体を元に衣装を書き込んでいきます。
まずは下着から。
中世欧州的な衣装の場合、こんな現代的な下着をつけているわけありませんが、特殊な下着の場合は生成難易度が上がってしまうので妥協します。
どうせ、どこまで作り込んでも「なんちゃってファンタジー」の域を出ないので、適当に進めます。
指示画像を見てもらえらばわかると思いますが、書き込みなんてこの程度で構いません。
これはドロワーズを出そうとしてみた結果です。10枚くらい出してみましたが、どれも綺麗に出ませんでした。
完璧な線画を描けば強引に出力できると思いますが、手間がかかりすぎるので、ここは妥協して現代的なパンツにします。
個人的には、中世ファンタジーキャラはやっぱりドロワーズを履かせた方がエロいと思う。
シャツ
あとの手順は同じです。
ボタン無しだと中世平民感が出てエロい。
靴下
世界観的にどんな靴下が正解なんや?
調べてなかったので、適当に生成。
ドレス
ある程度構造を意識しないと、うまく半裸にできないので注意。
今回の場合は……?
エプロン
この書き込みでフリルが出るか怪しかったですが、簡単に出ました。
靴
艶のあるローファーはちょっと合わなかったかも。
今更修正は面倒なので続行。
完成
そういうわけで、元のキャラデザを参考にして、新しいイラストとその衣装差分が出来上がりました。
精度としては甘いですが、同じキャラとしては認識できると思います。
特に今回は自分で描いたので、衣装をどうはだけさせるかを任意に指定できます。
これはエッチシーンを作る上で非常に有効な技術です。
人間とAIの役割分担
最後に人間と生成AIは何を分担しているのかをまとめます。
主な手順は次のとおりです。
- 人間:どんな構図にするのかを明確に指定 (0 -> 20%)
- AI:詳細に描く。何パターンも大量に描く(20 -> 80%)
- 人間:適切な出力を選ぶ、必要であれば細部を修正 (80 -> 100%)
構図を決めたら、それを書き込むのは技術の問題です。
この箇所においては、創造性よりも技術の方が重要です。
技術の問題であるからこそ、AIで代替できます。
しかし、最初と最後の部分はAIでは(まだ)代替できません。
ここが人間のやるべき部分、つまり創造的な部分だと思います。
今回の場合は、線画を元に手書きで指示を出すことで、最終結果をかなりの精度で制御することに成功しました。
そして、この制御するための技術とは、旧来のイラストを描く技術とまったく同じです。
今後はどうなるかわかないが手書き技術は重要そう
今後の生成AIの展望として、私としては3Dモデル生成に期待しています。
2Dイラスト+2Dゲームの組み合わせから、3Dモデル+3Dゲーム(VR)が主流になっていくという予想ですね。
おそらく3Dモデル生成には2Dイラストが必要になり、また3Dモデルの調整は、イラストを3Dとして把握し切るだけの画力(デッサン力)が必要になってくると思います。(テクスチャの調整にも必要)
そういう意味でも3Dモデル生成時代に向けて、当面は手書き技術を磨きながら、2Dエロゲ作っていきます。
今回の手法も含めて、裏ではいろいろと準備できているので、できるだけ早くゲームのほうも更新します。