ログイン新規登録

Qiitaにログインして、便利な機能を使ってみませんか?

あなたにマッチした記事をお届けします

便利な情報をあとから読み返せます

1

Stablediffusionで、【Depth map library and poser】を用いて手を修正しよう。

投稿日

概要

StableDiffusionなどのAI絵を使用していると、どうしても手がうまく描けないので困ってしまう。
そういった時に手をうまく修正する、Depth map library and poserを用いて手を修正しよう。

controllnetのダウンロード

Depth map library and poserを使うためには、controllnetが必要なので、以下手順でダウンロードする。

拡張機能から、sd-webui-controlnetを探して、インストールを押す。
スクリーンショット 2023-05-07 16.25.56.png

インストール中だと、画面が薄くなり、proccesingが進む。
スクリーンショット 2023-05-07 16.27.16.png

その後、Installedに、sd-webui-controlnetが出てくるのを確認する。
スクリーンショット 2023-05-07 16.29.19.png

その後、stablediffusionを再起動すると、Controllnetがimgtotxt,imgtoimgで選択できるようになる。
スクリーンショット 2023-05-07 16.44.37.png

モデルのダウンロード

ControlNetは専用のモデルが必要なので、以下リンクからダウンロードする。

しかい、ここを見るとたくさんモデルがありすぎる。。
スクリーンショット 2023-05-07 16.33.08.png

以下リンク先より、モデルの説明を抜粋。

ip2p:プロンプトで画像を修正する「Instruct Pix2Pix」を使うモデル。
shuffle:画像をシャッフルし、再構成することで画像を生成するモデル。
depth:深度情報を元に画像を生成するモデル。
canny:画像の輪郭を抽出してそれを元に画像を生成するモデル。シンプルで分かりやすいのが特徴。
inpaint:画像の一部を修正する「Inpainting」を使うモデル。
lineart:線画を作成し、それを元に画像を生成するモデル。
lineart_anime:上記のlineartモデルのイラスト向け版。
mlsd:直線的な線を抽出して画像を生成するモデル。建物や部屋など構造物の画像を生成するときに便利。
normalbae:法線マップ(ノーマルマップ)を使って画像を生成するモデル。
openpose:人物のポーズを検出し、それをもとに棒人間を生成してポーズを制御するモデル。
scribble:落書きからリアルな画像を生成できるモデル。
seg:「セマンティックセグメンテーション」という手法を使うモデル。
softedge:ソフトな輪郭を使って画像を生成するモデル。ディテールを維持するのが得意で、色変更等に活用するとよい。
tile:高解像度の画像を生成するためのモデル

今回は、参考元の記事から、おすすめと書いてある

・ cannyモデル
・ openposeモデル

と、以後の手の修正で使用する

・ ontrol_v11f1p_sd15_depth.pth

をダウンロードする。
ダウンロードしたモデルを、stable-diffusion-webui\models\ControlNetの中に移動させる。

Controllnetの細かい使い方はもっと他にもあるのだろうが、ここでは割愛する。

Depth map library and poserのダウンロード

今回使う拡張機能の公式ページは以下。

これを使うことで、手や指などを綺麗にすることができるらしい。

拡張機能のインストールは、拡張機能/Install from URL / URL for extension's git repositoryに以下のurlを入力し、インストールする。

https://github.com/jexom/sd-webui-depth-lib.git

以下のようにinstalledときたら、stablediffusion,を再起動する。
スクリーンショット 2023-05-07 17.05.57.png

すると、DepthLibralyという新しいタブが表示されるようになる。
スクリーンショット 2023-05-07 17.09.30.png

ちなみに、Handsをみると、さまざまな形の手の絵が記載されている。
スクリーンショット 2023-05-07 17.11.27.png

実際に修正する。

Add backgroundsから、修正したい内容の絵を選択する。
スクリーンショット 2023-05-07 17.14.53.png

00005-204196767.png
そして、画像のサイズと、Depthlibraryでのサイズを合わせる。ここでは1024x640だった。わからなかったらpinginfoとかで確認すること。

そして、Handsの中から、指定したい指を選択し、Addを押すと、右側で手が出てくる。
スクリーンショット 2023-05-07 17.20.45.png

この手をうまいこと元の絵と合わせて、それっぽい形にする。なお、修正用の手は左しかないので、右手の場合は必ず反転させること。(拡大縮小、反転、角度変更ができる。)
スクリーンショット 2023-05-07 17.23.42.png

その後、save pingを押すと、手の部分だけの画像が出てくる。
スクリーンショット 2023-05-07 17.27.48.png

その後、元の修正する画像をping info から、txt to txtに送る。
スクリーンショット 2023-05-07 17.30.17.png

そして、同じプロンプトやサンプラー、Seedなどを設定する。
スクリーンショット 2023-05-07 17.41.22.png

  • txt2imgタブにあるControlNetの項目を開きEnableにチェックを入れる
  • Imageのタブに上の項で生成した手のPNG画像をドラッグアンドドロップする。
  • PreprocessorをNone、Modelをcontrol_depthに設定する。
  • Control WeightとStarting Control Stepを変更する。
    • Starting Control Stepの値を0から上げることで、AIイラストの生成にControlNetが作用するタイミングを遅らせることができる。(参考記事:https://github.com/Mikubill/sd-webui-controlnet/pull/393)
    • Control Weight0.9~1.2付近
    • Starting Control Stepは、サンプリングステップの数が20なら0.19、30なら0.3あたりがいいらしい。

だが、これで出力すると、手を写すというか、そもそも手を映さない構図に変更された。
何が悪いのかはよくわからないですが、とりあえず手の部分が変なふうに見えることを回避させるらしい。

00026-204196767.png

参考サイト

新規登録して、もっと便利にQiitaを使ってみよう

  1. あなたにマッチした記事をお届けします
  2. 便利な情報をあとで効率的に読み返せます
  3. ダークテーマを利用できます
ログインすると使える機能について

コメント

この記事にコメントはありません。

いいね以上の気持ちはコメントで

Qiita Conference 2024 4月17日(水)~19(金)開催!

Qiita Conferenceは、Qiita最大規模のテックカンファレンスです!

基調講演ゲスト(敬称略)

牛尾剛、 けんすう、 ゆる言語学ラジオ、 田中邦裕、小城久美子、 飯沼亜紀

1

新規登録して、Qiitaをもっと便利に使ってみませんか

この機能を利用するにはログインする必要があります。ログインするとさらに下記の機能が使えます。

  1. ユーザーやタグのフォロー機能であなたにマッチした記事をお届け
  2. ストック機能で便利な情報を後から効率的に読み返せる

ソーシャルアカウントでログイン・新規登録

メールアドレスでログイン・新規登録