Stable Diffusion メモ(5) 絵の描けない人が手を描こうと悪戦苦闘する

やったこと

顔ガチャのやり方がある程度わかったので今度は手を描いてみる。

jtnoske.hateblo.jp

うまくいかなかったパターン

顔ガチャのときと同じように、手の部分を切り抜いて別画像にし、img2imgをかけることにした。前回の記事と同じやり方。

→ 

この手をimg2imgにかける。

うーん顔に比べると打率が低い… 300連ガチャやって2つか3つくらいか手として見られる絵がない(指が難関)

これはまだ手として見られるものを選ぶことができたが…問題は

 

こういう元絵が手じゃないやつ。

こんな感じで素人なりに手(指)として見られるよう削りに削ってimg2imgをかけてもまったくもっていいものが出ない。このやり方はダメなのか…

 

それなりなパターン

もういやんなってきたときにこの記事を見て

note.com

そうか元絵全体をimg2imgかけて、手がうまくできた絵から手の部分をもってきて元絵に合成すりゃいいのか… と気づく。いやぁやっぱ長年イラストレーターやってる方の作例は勉強になりますわ… 技術がすごいなぁと思う。

で、

300連ガチャして… 見てみると、元絵が手として成立していない絵から手が生成される確率は非常に低いみたいだ。やっぱ多少の加工は必要か…

これでやってみると…

 

300連ガチャの結果を動画にいたしました*1

 

相変わらず確率は低いが、そこそこの手になってる絵が出てくる。この手が出てきた絵全体を元絵にレイヤーとして追加して、不要なところを削ると…

まだ違和感はあるが、少なくとも手の部分を切り抜いてimg2img描けるよりは圧倒的に楽。
顔ガチャしたときは画像サイズは大きければ大きいほど顔の生成結果がよくなっていく傾向があったので切り抜く価値はあったけど、手は切り抜いて拡大しようが元絵のサイズのままやろうが生成結果の打率はそんな変わらない気がした。ので、これでよいんだろう…

なお、img2imgはtxt2imgよりも絵の生成時間が短く、512*768のサイズでも3~4秒程度で生成できる。300連ガチャでも10分ちょい、まだ現実的か。

さらにやってみる

今までやってきた手は人間の手というより機械の手だったからAIには難しかったのかな? と思って人間っぽい絵の手を同じようにかけてみたが、やっぱ手として成立する絵の打率は低いなぁ… なんとかならんもんですか画伯!

 

指が3本の手を(ちょっと加工して)img2imgかけるとほとんどの絵が指3本になるところ、たまーに指4本の絵が出てくるのがおもしろかったりする。

この4本の指の絵を再度img2imgすると指3本の絵が出てくる確率が明らかに低くなるのでよい*2。img2img -> いい絵を採用、これをもとに(必要に応じて加工して)img2img -> ということを繰り返してよりよい絵を手に入れる、というプロセスが必要になるのだろう… めんどくせー

2回目img2imgの結果を動画にいたしました

 

きた!KritaのStable Diffusionプラグインきた! これで勝つる!

これ全部KritaのStable Diffusionプラグイン使ったらショートカット一発でやれますわ…

jtnoske.hateblo.jp

とめっちゃ期待してやってみたところ、KritaのSD Pluginパネルで「Batch count」の値を変更することで最大30連ガチャが可能のようだ。

それぞれの生成結果がレイヤーで積まれるので比較検討をしやすくなりました。うれC

しかし相変わらず打率は低いので、ある程度ガチャを回す必要はありそう。Krita上で完結させるか、これまで書いたやり方で300連ガチャ回すか、どっちが楽なもんか…

しかし手の描写はもっと上手にならんもんなんかな、学習しにくいのかな手って?

*1:GIFアニメにしたらファイルが80MB超えてはてなブログに上がらんでやんの

*2:ちゃんとした手が出るとは言っていない