AUTOMATIC1111版web UIのControlNet

AUTOMATIC1111版web UIのControlNet 機械学習

「AUTOMATIC1111版web UIでControlNetを利用したい」
「ControlNetで最先端のスケジューラを利用したい」

このような場合には、sd-webui-controlnetがオススメです。
この記事では、sd-webui-controlnetについて解説しています。

本記事の内容

  • sd-webui-controlnetとは?
  • sd-webui-controlnetのインストール
  • sd-webui-controlnetの動作確認

それでは、上記に沿って解説していきます。

sd-webui-controlnetとは?

sd-webui-controlnetとは、AUTOMATIC1111版web UIのエクステンションです。
GitHub上で公式ページが公開されています。

GitHub – Mikubill/sd-webui-controlnet: WebUI extension for ControlNet
https://github.com/Mikubill/sd-webui-controlnet

sd-webui-controlnetにより、AUTOMATIC1111版web UIでControlNetが利用できます。
まず、これだけもsd-webui-controlnetをインストールする価値があります。

ControlNetについては、次の記事で解説しています。

そして、sd-webui-controlnetには別のメリットが存在するのです。
なんと、ControlNet用モデルをマージして自作する必要がありません。

モデルのマージについては、次の記事で説明しています。

sd-webui-controlnetを用いると、作業が不要です。
手間が不要になるだけではなく、ディスク容量の節約にもなります。

さらに、スケジューラを自由に選択できるのです。

これは、モデルのマージが不要になることよりも大きいと思います。
スケジューラによって、画像の品質は大きく変わってきますからね。

以上、sd-webui-controlnetについて説明しました。
次は、sd-webui-controlnetのインストールを説明します。

sd-webui-controlnetのインストール

sd-webui-controlnetのインストールを説明します。
その大前提として、AUTOMATIC1111版web UIのインストールは必須です。

ControlNetの全機能を利用するには、以下をインストールしておきましょう。
おそらく、opencv-pythonはインストール済みのはずです。

pip install opencv-python
pip install prettytable

「prettytable」はインストールしなくても、ほとんどの機能が利用可能です。
インストールが完了したら、web UIを起動します。

まず、「Extensions」タブをクリック。

そして、「Extensions」内の「Install from URL」タブを開きます。

「URL for extension’s git repository」に次のURLを入力します。

 https://github.com/Mikubill/sd-webui-controlnet.git

入力できたら、「Install」ボタンをクリック。
処理が完了したら、「Extensions」内の「Installed」タブをクリック。

sd-webui-controlnetがインストールされていることを確認できます。
確認できたら、「Apply and restart UI」ボタンをクリック。

これで、sd-webui-controlnetのインストールは完了です。

以上、sd-webui-controlnetのインストールを説明しました。
次は、sd-webui-controlnetの動作確認を説明します。

sd-webui-controlnetの動作確認

sd-webui-controlnetの動作確認を行います。
そのためには、ControlNet用のモデルが必要となります。

webui/ControlNet-modules-safetensors at main
https://huggingface.co/webui/ControlNet-modules-safetensors/tree/main

現時点では、上記ページのモデルが最軽量のようです。
ただし、これらはsd-webui-controlnetからしか利用できません。

これだけ軽量であれば、全部ダウンロードしておいても構わないでしょう。
とりあえず、ここでは「control_canny-fp16.safetensors」をダウンロードしましょう。

ダウンロードしたファイルは、次の場所に保存します。

保存できたら、web UI上の「txt2img」か「img2img」のどちらかのタブを開きます。
そして、「Script」の「ControlNet」をクリック。

そうすると、次のようなUIが表示されます。
これは、ControlNetの設定画面となります。

「Preprocessor」を選択します。
画像における構造認識のための手法ですね。

「Preprocessor」に関連するControlNet用モデルを選択します。

今回であれば、次のような設定となります。

ここまで設定したら、画像をアップロードします。

あとは、普段やっている画像生成の作業を行うだけです。
その前に、ControlNet処理を有効にしておきましょう。

ここからの作業は、説明は不要でしょう。
プロンプトを入力して、スケジューラを選択したりします。

ただし、一つ注意点があります。
それは、Stable Diffusion 1.5をベースにしたモデルのみが有効ということです。

それ以外のモデルを選択すると、エラーになります。
データの形が異なるといった内容のメッセージが表示されます。

RuntimeError: mat1 and mat2 shapes cannot be multiplied (77x1024 and 768x320)

では、ControlNetによる画像生成を試してみましょう。
今回は、次の二つのモデルを利用します。

先ほどアップロードした画像のポーズや構造が維持されるかどうかですね。
それは、以下の結果を見て判断してみましょう。

Hentai Diffusion 22

Pastel Mix

結果を見ると、ControlNetによるpix2pixが十分に実現できています。
それぞれのモデルの特徴も上手く反映されています。

追記 2023年2月23日
Preprocessorを複数同時に適用できるようになりました。

以上、sd-webui-controlnetの動作確認を説明しました。

タイトルとURLをコピーしました