はじめに
Stable Diffusionで生成した画像の手を、txt2imgで修正する方法を解説します。
今回はADetailerとdepth_hand_refinerを使って修正してみます。
ADetailerは手や顔などを自動で認識して補正してくれる拡張機能で、depth_hand_refinerを使えば高精度の修正が可能です。
- ADetailer depth_hand_refinerのメリット・デメリット
- ADetailerとControlNet depth_hand_refinerのインストール手順
- ADetailer depth_hand_refinerを使った手の修正方法
ControlNet depth_hand_refinerとは?
depth_hand_refinerは、ControlNet ver1.1.427で搭載された新しいプロセッサーです。
深度データを解析するため、既存のADetailerを使った手の修正と比べて、精度の高い修正が可能です。
ADetailerでdepth_hand_refinerを使用すると、画像生成時間が今までの比にならないほど増加します。
なので、手が崩れた画像に対してimg2imgで後から修正する方法をおすすめするよ。
img2imgで高精度の修正を行うなら、ControlNetのdepth_hand_refinerが最適です。
手順については以下の記事で紹介しています。
ADetailer depth_hand_refinerで手の崩れを修正する方法
今回は拡張機能「ADetailer」と「ControlNet」の両方を使用するので、それぞれインストールが必要です。
以降で、手の修正までの手順を解説します。
ADetailerのインストール
以下の手順でADetailerおよび、必要なモデルをインストールします。
- STEP1ADetailerのインストール
ADetailerのインストール方法については以下の記事をご参考ください。
ADetailerで治せるのか?【手や顔を修正するコツを紹介】 Stable Diffusion WebUIの拡張機能である「ADetailer」のインストール・使い方を紹介します。 ADetailerを使用すれば、顔面崩壊してしまった画像を簡単に修正することが... - STEP2手修正用モデルのインストール
adetailerモデルから、「hand_yolov8s.pt」をダウンロードします。
ダウンロードしたファイルは「webui」→「models」→「adetailer」フォルダーにファイルを保存します。
デフォルトで「hand_yolov8n.pt」がインストールされています。
hand_yolov8n.ptでも修正は可能ですが、より精度の高いhand_yolov8s.ptモデルがおすすめです。
ControlNetのインストール
以下の手順でControlNetおよび、必要なモデルをインストールします。
- STEP1ControlNetのインストール
ControlNetのインストール方法については以下の記事をご参考ください。
ControlNetのインストール方法と使い方【ポーズの指定が出来る!】Stable Diffusion WebUIの使い方 はじめに Stable Diffusion WebUIの拡張機能である「ControlNet」のインストールから使い方までを紹介します。 ControlNetには様々な機能が搭載されていますが、今回は... - STEP2深度情報用モデルのインストール
ControlNet-v1-1モデルから、「control_v11f1p_sd15_depth.pth」をダウンロードします。
ダウンロードしたファイルは「webui」→「extensions」→「sd-webui-controlnet」→「models」フォルダーに保存します。
ADetailerとControlNetのアップデート
depth_hand_refinerはControlNet ver1.1.427以上で使用できます。
古いverをお使いの方は、以下の記事を参考に拡張機能「ADetailer」と「ControlNet」を最新版に更新してください。
ADetailerでdepth_hand_refinerを使い手の崩れを修正する手順
- STEP1txt2imgのADetailerを有効化する
txt2imgのADetailerの設定項目を展開し、「Enable ADetailer」をチェックする。
- STEP2ADetailer modelの選択
ADetailer modelから「hand_yolov8s.pt」を選択する。
- STEP3ControlNetの設定
ADetailer内のControlNet modelからダウンロードした「depth」モデルを選択します。
CHECKdepthモデルを選択すると、「ControlNet module」の項目が表示されます。
次に、表示されたControlNet moduleから「depth_hand_refiner」を選択します。
- STEP4Inpaint denoising strengthを調整する
Inpeint内のInpaint denoising strengthの値を「0.6~0.8」くらいの間で調整します。
CHECKInpaint denoising strengthの値は、生成結果を見ながら調整しましょう。
- STEP5画像生成する
最後に「Generate」ボタンをクリックして画像生成します。
実際に修正した画像は以下のようになりました。
修正前 修正後 修正自体は、深度情報をもとにしているので精度が高いですね。
ちなみにマスク範囲(修正範囲)は、以下画像のように手をバッチリとらえています。
ADetailerのマスク範囲 ただ画像生成時間がネックです。
画像生成時間の結果は以下の通りです。
- 通常画像生成:2.2sec
- ADetailer depth_hand_refinerで修正:16.7sec
このように画像生成時間が大幅に増大するので、ADetailerによる修正はあまりおすすめしません。
さきにも紹介した通り、修正が必要な画像に対してimg2imgでの修正がおすすめです。
【Stable Diffusion】ControlNet depth_hand_refinerで手の崩れを修正する方法! はじめに Stable Diffusionは、AIを使って自然なイラストを生成できるツールです。しかし、生成されたイラストの手が崩れてしまうことが、ままあります。 よくあるパタ...
まとめ
今回は、txt2imgでADetailer depth_hand_refinerを使って手の崩れを修正する方法を紹介しました。
depth_hand_refinerは精度が高いので、手が崩れて断念した画像もバッチリ修正できるでしょう。
今回の手順についてYouTube動画を投稿しています。合わせてご参考ください。
コメント