「Depth map library and poser」をわかりやすく解説ー手を修正【ControlNET講座#4】|Stable Diffusion
ControlNET講座第4回。「Depth map library and poser」を使った手の修正方法です。
AIお絵描き「Stable Diffusion」は、手を描くのが苦手です。指が多かったり少なかったりと、なかなかうまくいきません。
今回は手を修正する方法を紹介します。前回の「「tile_resample」機能をわかりやすく解説ー画像を崩さずに高解像度化」は以下のリンクから。
「Depth map library and poser」のインストール
「ControlNetv1.1」以上をインストールした状態であることを前提に話を進めます。まだの方や、インストールしたけどバージョンがわからんという方は以下のリンクを参照。
「Depth map library and poser」のインストールは簡単。
「Stable Diffusion」の「Extensions」タブ→「Install from URL」タブで、「URL for extension’s git repository」の欄に
https://github.com/jexom/sd-webui-depth-lib.git
のアドレスを貼り付け、下の「Install」ボタンをクリック。しばらく待つと「Install」ボタンの下の方にいろいろ文字が出てきてインストール終了。
つぎに「Extensions」タブ→「Installed」タブで「Apply and restart UI」 ボタンをクリックして再起動します。これでインストール完了です。
「Depth map library and poser」を使う
「Txt2img」で出力した画像の、手がおかしかったときに使います。適当に作った上の画像でやってみましょう。
「Depth Library」タブで、「Add background image」ボタンを押し、先ほど生成した画像を呼び出します。そのあと、右側にある手のマークから適したものを選んでクリック(反転可能なので、手の形だけで考えてください)し、「Add」ボタンをクリックします。。
手の形が画像の上に出てきますので、大きさや角度の調整をおこなってください。反転は、ボックスの左右どちらかをひっぱって逆方向まで持っていくと裏返って反転します。配置できたら画像の下にある「Save PNG」ボタンをクリックして手の画像を保存してください。
つぎに「Img2img」の「ControlNet」に、さきほど保存した手の画像を放り込みます。「Enable」と「Pixel Perfect」にチェックを入れてください。
「Preprocessor」は「none」、「Model」は「control_v11f1p_sd15_depth」を選択。「control_v11f1p_sd15_depth」が一覧にない人は、ここから「control_v11f1p_sd15_depth.pth」(1.45G)を落として、「Stable Diffusion」をインストールしたフォルダ内の「stable-diffusion-webui」>「models」>「ControlNet」のフォルダに入れ、再起動してください。
「Control Weight」のところは「ControlNET」の介入度です。「1」のままだと介入が強すぎて、手がドーンと画像に出てくるだけになってしまいます。「0.4」ぐらいからはじめるといいでしょう。ここと「Img2img」の「Denoising strength」(0.75くらいから)をいじることで結果が変わってきます。
あとはいつものごとく「Generate」ボタンをクリックするだけです。
ここはがんばって「Denoising strength」や「Control Weight」をいじるしかありませんね。ただ完全におなじはむずかしいと思います。
まとめ
そんなわけで、「ControlNET」で手を直す方法でした。
この方法を使っても完ぺきとはいえないので、やはりAIにとって手は鬼門です。
次回の講座「「reference_only」機能をわかりやすく解説ー人物そのままで衣装変更」ができました。以下のリンクから。