Depth library拡張機能でStable DiffusionのWebUIで思い通りの手を生成

スポンサーリンク
Stable Diffusion
スポンサーリンク

Stable Diffusionの弱点の一つは、思い通りの指を作ることです。なかなか思い通りの指の形にならないとき、Depth libraryに登録された手を使うと思ったような画像を簡単に生成できます。ここでは、Depth library拡張機能をインストールして、拡張機能にデフォルトで入っている各種の手のDepthを使って画像修正をしてみます。

前準備

今回は、AUTOMATIC1111のWebUIとControlNetの環境に導入していきます。下の記事をご参考にWebUIとControlNetをインストールしてください。

WebUIへのDepth library拡張機能の導入

WebUIを起動します。WebUIを構築した仮想環境から、WebUIを起動します。

(venv) > .\webui-user.bat
Running on local URL:  http://127.0.0.1:7860

WebUIが起動したら、ブラウザで指定されたローカルURLにアクセスします。

起動したら、「Extensions」のタグから「Install from URL」のタグを選択し、「URL for entension’s git repository」に「https://github.com/jexom/sd-webui-depth-lib.git」を入力し、「Install」ボタンをクリックします。

上記により、depth libraryがインストールされます。「Installed」のタグから、「sd-webui-depth-lib」が登録されていることを確認し、「Apply and restart UI」をクリックして、WebUIを再起動します。

新たに「Depth Library」がタグに追加されていたら成功です。

Depth liabraryで手の生成

今回は下の画像を元画像として、右手をピースサインに変更してみます。なお、この画像の生成条件は以下の通りです。

parameters
1girl, solo, traditional_media, short_hair, brown_hair, ribbon, blouse, skirt, smiling, joy, victory, outdoor, garden, sunlight, trees, flowers, birds, peaceful
Negative prompt: (low quality, worst quality:1.4), (bad_prompt_v2:0.8), (monochrome:1.1)
Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 187445, Size: 640x800, Model hash: 44c6b3500e, Model: Abyss_7th_anime_v1.1
元画像

「Depth Library」のタブを開いて、まず、「Add background image」をクリックして、元画像を選択します。次にwidthとheightを元画像に合わせます。

続いて、使いたい手の形状を選択します。今回はピースサインを選びます。そして、「add」をクリックすると、画像に取り込まれます。

取り込んだ手の大きさや向き、方向をマウスで制御して、ちょうど画像の位置と合うように調整します。そして、「Save PNG」をクリックして、手のDepth Map Imageをダウンロードします。

続いて、画像を生成します。「img2img」のタグを選択し、元画像とその生成プロンプトを貼り付けます。また、条件等も元画像生成時のものに合わせた方がうまくいきます。

さらに「ControlNet」で画像部には先ほどDepth Libraryで作成したDepth map imageを読み出します。「Enable」を選択して、ControlNetを有効にします。Preprocessorは「none」、Modelは「control_depth-fp16」を選択します。

その状態で画像を生成すると、一定の確率で狙った手の画像が生成できます。もし、うまくいかない場合は、プロンプトを工夫したり、「Denoising strength」、「sampling steps」。「CFG scale」などを微調整するとうまくいくと思います。

生成画像例

いろいろな画像に適用してみた

最後に

Depth libraryを使って画像を修正する方法をみてみました。Depth libraryは自分でパーツを登録できるので、よく使うパーツを登録しておくと便利かもしれません。

コメント