Stable Diffusion(Google colabで使用)でControlNetのmodelをうまくダウンロードできず、試行錯誤に数時間も費やしてしまったので、やり方を備忘録として残しておきます。
事の経緯
ピースサインをする女性の画像を生成したくてプロンプトを色々試していたのですが、どうしても手が崩れて綺麗なポーズが生成できずに悩んでいました。
そんなときControlNetで使えるdepth機能の存在を知り、こちらを導入することで綺麗なピースを表現できるのではとの期待から導入することに。
しかし、ControlNetのモデルをダウンロードするところでエラーが発生して先に進めなくなりました。
ControlNetのモデルを正しくダウンロードするコマンド
先に結論からいいますと、以下がdepthを使えるようにするためのコマンドです。
※念のためにControlNetを導入するところから記載しています。
%cd /content/stable-diffusion-webui/extensions/
!git clone https://github.com/Mikubill/sd-webui-controlnet
!git clone https://github.com/jexom/sd-webui-depth-lib /content/stable-diffusion-webui/extensions/sd-webui-depth-lib
%cd /content/stable-diffusion-webui/extensions/sd-webui-controlnet/models/
!wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11f1p_sd15_depth.pth -O /content/stable-diffusion-webui/extensions/sd-webui-controlnet/models/control_v11f1p_sd15_depth.pth
つまづき箇所
上のコマンドで躓いたのは、最後のモデルをダウンロードする過程です。
正しいダウンロードページのURLや、拡張子などが分からず、githubのissuesを検索して無駄に時間を費やし、最終的にはchatgptで質問して解決しました。
ダウンロードファイルの拡張子に注意
解決に至った過程を順番に説明すると、まずはcontrolnetの公式リポジトリを確認すると、以下のような記載がありダウンロードするモデルの拡張子は.pthとなります。
最初、これを知らずに.safetensorsファイルをダウンロードしてエラーが出ました。
Right now all the 14 models of ControlNet 1.1 are in the beta test.
Download the models from ControlNet 1.1: https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main
You need to download model files ending with “.pth” .
Put models in your “stable-diffusion-webui\extensions\sd-webui-controlnet\models”. You only need to download “pth” files.
Hugging Faceのダウンロードリンクの生成方法
次に、上の引用箇所にある以下URLからcontrol_v11f1p_sd15_depth.pthをダウンロードするのですが、ここでまた問題が発生します。
上のページより以下がダウンロードリンクだと思って、wgetでファイルをダウンロードしたところ、明らかにファイルサイズが小さすぎて、ダウンロードに失敗していたのです。
※数GBあるファイルなのですが、colab上で確認すると数kBでした。
ダウンロードリンクを間違えたことに気づくも、正しいダウンロードURLが分からず、ここで沼に入ります。
ということで、上の回答に基づくと、/blob/main/
を/resolve/main/
に置き換えた以下が正しいダウンロードURLとなります。
後は、wgetコマンドでダウンロードするだけですね。
!wget https://huggingface.co/lllyasviel/ControlNet-v1-1/resolve/main/control_v11f1p_sd15_depth.pth -O /content/stable-diffusion-webui/extensions/sd-webui-controlnet/models/control_v11f1p_sd15_depth.pth
ダウンロード後に、念のためにファイルを確認すると、正しいサイズでした。
この後、depthを使って実際にピースサインを生成したところ、まずまずの画像を出力できました。
今回の記事は以上です。
コメント