画像生成AIの泣き所 手指の崩れ を解決します

フルタニ

こんにちは、フルタニです。放送局で番組作りをしてました。 手指の崩れ を書きます。

Stable Diffusionで画像生成する際の悩みが手指をうまく描けないこと。

AIの弱点「 手と指の崩れ 」を解決する方法あります。

それは拡張機能のDepth libraryを使うことです。

「 手と指の崩れ 」を解決する方法

Depth libraryを使うためにはControlNetでdepthモデルが導入されていることが必要です。

  • ControlNet
  • depthモデル

以上の二つをインストールしましょう。

Stable Diffusionをゼロから始めたい人は別記事を確認ください。

Controlnetのインストール方法

Controlnetのインストール方法は別記事を確認ください。

Depth libraryのインストール方法

Stable Diffusion web UIの操作画面で『Extension』→『Install from URL』タブを選択し”https://github.com/jexom/sd-webui-depth-lib”のURLをコピーします。

[Install from URL]の下にある枠内にペーストし、『Install』ボタンを押すと、自動でインストールが始まります。

インストールが完了したら『installed』のタブに移動し、『Apply and restart UI』のボタンをクリックしましょう。Stable Diffusionが再起動され、depth libraryが適用されます。

再起動後、タブの中に『depth library』という項目が追加されていれば導入完了です。

depth libraryの設定方法

手や指を修正したい画像を用意します。

この画像を次の三つのステップで修正します。

  • 手・指の深度マップを作る
  • イラストのメタデータを確認
  • 深度マップを元にイラストを修正

深度マップを作る

修正したい手や指にすげ替える、修正後の画像イメージを決めます。

使うのが『こんな形にしたい』という手・指の深度マップです。

『depth library』タブから『Add backgroud image』をクリックし、修正したいイラストを選びます。

例えば、イラストの中から手のパーツを選択し『Add』ボタンを押すと、画面に手のひらが現れます。

修正したい絵が下絵になっているので、絵をガイドにして位置や角度を調整します。

手のひらの左右を変えたい場合はマウスで反転できます。

位置が決まったら『Save PNG』を押して画像を保存します。

これで背景画像が伴わない、手だけの深度マップができあがりました。

深度マップ(DepthMap)とは、3次元空間の奥行きを表現をするため、グレースケールの濃淡を使い対象物までの距離(深度)を表現したものです。

手のひらは白黒の濃淡がついています。

濃淡は奥行きにより異なります。

AIは画像を生成する際この情報をもとに立体的なイメージの画像を生成するのです。

メタデータを確認

画像を修正するには、修正前の画像を作る時使用したデータと、新規に追加する手のひらの画像につかうデータを一致させる必要があります。

そのため、修正前の画像生成に使われた「メタデータ」を確認します。

修正前の画像に使われたメタデータは、その画像の『PNG info』に記録されています。

イラストを修正

手や指を修正したい画像のメタデータと、新規に作成した「手のひら」の深度マップをもとに画面を修正します。

『txt2img』タブに戻り、修正前のメタデータを参考にプロンプトや各種パラメーターを入力します。

次にControlNetパネルをひらきます。

深度マップをドラッグ&ドロップします。

[Enable] : チェックを入れる
[Preprocessor] : [none]を選択
[Model]:[control_v11p_sd15_depth_fp16]を選択

以上のセッティングをして

[Control Weight] : [0.85]
[Starting Control Step] : [0.3]

以上の値にざっくり調節した上で[generate]ボタンを押すと、手のひら部分が調整された絵ができあがりました。

上手くいかない場合は[Control Weight] や[Starting Control Step] の値を加減します。

チュートリアル動画