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] の値を加減します。
こんにちは、フルタニです。放送局で番組作りをしてました。 手指の崩れ を書きます。