AIでTRPGの立ち絵を作る

※まだ内容調整中の記事です

用意するもの

RTX系グラボの入ったPC

最低でも1000番台、できれば2000番台以降は欲しい。
ぶん回すならVRAM12GBの4000番台があるとストレスがない。

根気

以前のような無限に試行させるガチャ耐久はなくなりつつありますが、その分様々な文献と技術を読み漁り、求める結果に近づける気合と根性、合わせて根気が必要となります。

stable diffusion web ui

たくさん解説ブログがあるので、そちらを見て導入する。

お絵描きソフト

クリスタでもフォトショでもアルパカでもアイビスでもなんでもいいです。
タブレットもあるといいけど、なくてもマウスでなんとかなる。

前提

前述のとおり、生成AIは欲しいものをなんでもパッと出してくれる魔法のツールではないです。
リトライと修正と微調整を繰り替えことになります。
また、はっきりとした苦手分野があります。
立ち絵を作る上で壁になりがちな苦手としては
・年齢が行った人
・男性全般(ショタ除く)
・同一人物の表情差分
・指定の服を着せる
一応、どれも技術の進歩で克服されつつありますがそれでも大変。 どうしても無理なところはおとなしく手作業に頼ることと、完璧な絵や販売物を作る訳はなくココフォリアに立てばいいという割り切りが大事かな、と思います。

この記事で想定するキャラクター

  • 20代後半の女性
  • 気は弱め、おとなしめ
  • 髪長め
  • 服は黒で露出低め
  • 表情5種類(通常、失敗、ファンブル、成功、クリティカル)

という設定で立ち絵の作成を進めます。
今回特に制服や再現が難しいポーズは取らないので、(素立ちに近いほうが嬉しい)ControlNetはあまり使わない想定。
最初からしっかりしたポーズのイメージが有るなら、ControlNetのOpenPoseなどでポーズ指定をする。

デザインを決める(キャラデザが決まっていない場合)

バリエーション出しはAIの大変得意とするところです。
髪の色は、目の色は、髪型は、服装は、ポーズは
最低限のプロンプトで低解像度で大量に生成して、イメージを固めましょう。
使うのはtext 2 img(t2i)

設定

モデルはAnithing v5, VAEはひとまず困ったらこれ。 グラボのスペックが低い場合はSamplingStep20、縦と横を下げる。

試行錯誤

プロンプト
masterpiece,high quality,(30 years old), long hair, black hair, standing, full body, simple background, white background, dress,
ネガティブプロンプト
floating hair, text,(worst quality,low quality:1.3),(bad anatomy,bad limb),nsfw, girl

ぶん回しているうちになんとなくイメージが固まってきたらプロンプトに足していきます。
ふわっとした髪いいなあ、気が弱いならメカクレいいなあとおもったのでこうなりました

プロンプト masterpiece,high quality,(30 years old), long hair, black hair, wavy hair, hair over one eye, green eyes, standing, full body, simple background, white background, dress,

ネガティブプロンプト floating hair, text,(worst quality,low quality:1.3),(bad anatomy,bad limb),nsfw, girl

どうせここで作ったのは指針くらいにしかならないので、ぶん回してイメージが固まったら次。
masterpieceがはいっていたのでマスピ顔になってます。

変遷

理想に近づける

ここでお絵かきソフトを起動して、おもむろに書き加えていきます。
まず足が切れているので修正。
髪に飾りがほしいので、シェイプで花を出して適当に飾りっぽいものを配置。
服の白が明るいので、全体にグレーを乗算で暗く。
あと背景を白にしました。
マウスしか使ってないです。
コツは大きめに書いて消しゴムで削る。

i2iに移行

一度放り込んで、t2iと同じプロンプトで、img 2 img(i2i) このとき、付け加えた髪飾りもプロンプトに書いておきます。

プロンプト masterpiece,high quality,(30 years old), long hair, black hair, wavy hair, hair over one eye, green eyes, standing, full body, simple background, white background, dress, flower head, black end gray dress,

ネガティブプロンプト floating hair, text,(worst quality,low quality:1.3),(bad anatomy,bad limb),nsfw, girl

設定

大事なのがDenoising strenghの値で、これが大きいと元絵を無視してきます。
小さいと元絵と変わりません。
0.9 0.1

自分の手直ししたイラストをどれくらい維持してほしいかを考えつつ、0.3~0.6くらいで様子を見つつ、再度ガチャ!
いい画像が出たらi2iの元絵を差し替えつつ、いい感じの画像を固めていきます。
Sampling methodの項目も大きく絵柄に影響するので、変更してみてもいいかんじ。
Sampling stepも固まってきたら30くらいに上げていく。

手順としてまとめると

i2iを繰り返していい感じの画像を出す→手直しする→それをi2iの元絵に入れる→i2iを繰り返していい感じの画像を出す
以上無限ループ。
このあと解像度を上げる上で、ある程度また今の形は無視されていくので、詰めすぎなくてもいいですが、ここからは大きく変わらないのでしっかり固める。

実例

こうなってこうじゃ。 大人しいけど意思がしっかりあるように、ロリ顔にならないように、ワンピースの上に一枚羽織っている服装の構造が崩れていないように。 あと細いベルトがいい感じだったので採用。 ドレスというよりはワンピースに寄せた。 黒いの脱ぐとシンプルグレーワンピース。 AIっぽい塗りが嫌なので、 best quality,super fine illustration, detailed beautiful face and eyes で品質アップはかけつつ、flat colorでシンプルめの塗り方に。

プロンプト best quality,super fine illustration, detailed beautiful face and eyes, *1, long hair, black hair, wavy hair, hair over one eye, green eyes, standing, full body, simple background, white background, flower head, black end gray one piece clothes, flat color,

ネガティブ (worst quality,low quality:1.3),(bad anatomy,bad limb), nsfw, girl ,badhandv4 , easynegative

設定 マシンパワーがないとこの解像度で生成は無理なので、その場合は512×768のままま次へ。

ごみ取り

帰ってきた手作業。
1024×1536もあればココフォリアに入れる立ち絵としては実は十分なんですが、ゴミがちらほら生まれているので消します。
ここはペンタブがほしい。
なければマウスで頑張る。

こちらはわかりやすくゴミの一例。
髪の向こう側にも花が生成されていますが、花冠ではないので削除。

胸元もよく見ればなんだかわからないことになっているのと、こんなところにも葉っぱが生えているので削除。
flower headのプロンプトのせいで葉っぱ属性がついている様子。

ワンピースのその角なにぃ?

などなど、細かいところを消します。
flat colorがついているので、基本近くの色を拾って塗りつぶしたり消したりすればなんとかなる。
背景は改めて真っ白にしておきます。
もやっとグレーがあると後々ゴミのもとになるので。
顔に関してはこのあとバストアップにしてから顔だけ再生成するのであからさまなゴミ以外はおいておく。

細部の解釈

AIはモノの構造を考えながら書いてくれないので、それっぽい空気はあるけどよく見えると謎の構成の服、みたいなものがよく生まれてきます。
一度自分の中でどういう構造か考えて、整理しておくとこのあともやばくなりづらい。

ごみ取り後

髪の花は赤にして余分な葉っぱは削除。
肩の花はなかったことに。
胸元の謎の模様も削除。
ベルトが途切れていたのを修正して、服はパンツスーツぽい感じにスカートを重ねているイメージで整理。
上からふわふわカーディガンを羽織ってます。

ゴミ取り後i2i

この工程で服や手などに関しては最終出力となります。
ゴミ取りした画像を入れて、noise低めでi2i。
修正したところの違和感が消える程度に調整されれば完了。

手がおかしい

描いたほうが速いControlNetを使って手だけ修正をかけます。
depth modelが今のところ有力・・・?

freeblog-video.com

高解像度化(お好みで)

AIで生成する際、書き込みの量は生成する解像度に比例します。
最終的に1024×1536の画像が欲しいとしても、直接そのサイズで作るのと、2048×3072を半分にするなら圧倒的に後者のほうが書き込みが多く細部が綺麗。 ただし、書き込みを多くするといかにもAI〜って感じの絵になりがちなので、そこは様子を見つつがおすすめです。

解像度を上げたい場合は、ControlNetのTileを使います。

romptn.com

他の方法

他にも高解像度化の方法はあるのですが、一長一短。
ここまでに作ってきた元画像を活かすという意味では現状Tileが一番良いのではないかなあと思いますがお好みで。 組み合わせもおすすめです。

短辺1500の画像になったよ

明らかに書き込みが増えたので顔以外はこれで。

顔だけ更に解像度を上げる

なんで

前述のとおり、書き込みの量は生成する解像度に比例します。
全体で見れば1536×2304だとしても、顔だけ切り抜くと400×400。
イラスト講座で言ってました。 顔とか目が細ければあとはラフ書きでも全体的にクオリティ高く見えるそう。
顔はこだわっていきましょう。
そのほうが表情差分も作りやすいので。

顔だけ生成

出来上がった画像から顔だけ切り抜いて正方形にします。 目と眉毛と口がしっかりはいっていればあとはなんでも。

i2iのinpaintに放り込んで、髪や輪郭などをinpaintでマスクします。
inpaintは塗ったところだけ再生成される機能で、塗ってないところはそのままになります。
目と眉と口の顔を構成するパーツだけ再生成して、あとは維持すれば身体とくっつけて立ち絵の完成ってわけよ。

inpaintしました。
白でちょっと分かりづらい。 試しにnoise0.7のsmileで再生成。
別人過ぎた。

落ち着いた感じなので、 light smile, nervous あたりを追加。noise0.6で生成。 「detailed beautiful face and eyes」が効いてるかんじがある。

顔と体を合体

顔を縮小して合体。 inpaintしてあるので、回りは綺麗につながるはず。
くっつけたら完成!

小技:追加の一手間

小ワザっていうかただの力技なんですが、ここで主に顔周りを手作業で修正しておくと、AIぽさがぐっと減ります。
ありえないところに色にじみがあるとAIぽくなります。   黒髪と肌の境界に黄色とか赤とか緑とか、色々な色が散らばっていたりする。
高解像度化するとどうしてもその辺の特徴が出てくるので、そこを潰します。
あとは構造的に繋がっていないところとか、余計な線とか整理する(肌色でスポイトして塗りつぶしていく)だけでもかなり落ち着くので、ペンタブあったらお試しあれ。
マウスは流石につらいかもしれない。

表情差分の生成

手で描いたほうが速い高解像度化した顔に対してAdetailerを使います。

Adetailerの使い方はこれ。

kindanai.com

が、AIは元のキャラクターを保つのが本当に苦手です。
ちょっとずれると別人になる顔は本当に鬼門。

ここで生成した画像をベースにトレスして、自分で差分は書くぜ、くらいの気持ちで作ったほうが楽です。
それくらいガチャの打率が低いので・・・

表情差分の作り方、その2

ニコ目、半目、閉じ目 へのじ眉、ハの字眉、通常眉(上下) 閉じ口、閉じたにこ口、開いたニコ口、叫び口、への時、むぅ くらいのぱーつがあれば大体の表情差分は作れるので、ぶん回してそれぞれのパーツ取りをして、レイヤーで組み合わせて表情差分を作るのが一番綺麗で楽だったりします。

*1:30 years old