ピースサインをキレイにしたい
AI画像生成は手が苦手なことで有名ですが、ピースサインは私の経験上、かなり無理やり描画されることが多いです。
特に多指になったり、指が長くなったりなりがち。
そこで今回はControlNet Depthを使って私がピースサインを補正した流れを記載します。
まずt2iで目的の画像を出力(768×1024)
twitterフォロワー数400記念用のイラストのためダブルピースです。
はい。変ですね。
指が多いぐらいならそこだけ消せばなんとかなりますが、そもそも拳の形がおかしいと消すだけでは違和感が残ります。
なので、今回は手自体を消してしまい、Depthで置き換えます。
まず、LamaCleanerの拡張機能を使って手をざっくり消します。
LamaCleanerのタブを開き、Install - Start - Openの順で押すとキャンバスが表示されるので、そこにイラストを投入、手を削除します。(消したい部分をマスクする感じで塗り塗りする)
消したあとがこちら。(LamaCleanerすごい!)
次はDepth Libraryを使用します。
Depth Libraryのタブを開き、キャンバスサイズを768×1024に設定したあと、Add background imageで先ほどの手を消した画像を表示します。
そして、プリセットのピースサインをいい感じに配置したら、SavePNGで保存します。(Send to ControlNetでenableになっている場所に直接送ることもできます)
ちなみに、プリセットは片手しかないですが、ぐいっと左右どちらかに引っ張って反転させると反対の手が作れます。
こちら保存したDepthです。
次はi2i inpaintで、手を描いてもらいます。
イラストを読み込ませたら、手の部分にマスクをかけてプロンプトを「hands」に変更します。
これはマスクした部分に適用したいプロンプトです。
元のプロンプトは手以外の要素も含んでいるため、そのままinpaintするとマスク部分に顔が描かれたりするため変更しておきます。
次に設定値です。
Just resize(latent upscale)、inpaint masked、original、Only masked
この組み合わせでマスク部分に「hands」のプロンプトを使い、Depthで手を描画してもらいます。Denoising strengthは可能な限り強くした方がしっかりと描画されるはずです。今回は1にしています。
こちらはDepthの設定です。
これで準備は完了です。Generateした結果がこちら。
ピースサインが前より良い感じになりました。
最後にi2iでupscaleしてなじませます。
Denoising strengthを上げるとまた手が崩壊するので弱めに。
今回は0.2にしています。
完成!!
微妙な部分もありますが、微調整すればもう少しキレイに出来るかと。
(左の袖が消えてしまっているのはinpaintのマスクのかけすぎですね)
こだわるとキリがないので完成ということで。
オマケ
今回は暗くしたかったので少し効果もかけてみました。
twitter公開版は色味が変わっています。