今回はAUTOMATIC1111の機能を拡張する、ControlNetのインストールする方法を解説します。ControlNetを使用することで、Stable Diffusionで生成するイラストの自由度が大幅に上がりますので、ぜひ活用してみてください。
また、当ブログのStable Diffusionに関する記事を以下のページでまとめていますので、あわせてご覧ください。

Stable Diffusionとは
Stable Diffusion(ステーブル・ディフュージョン)は2022年8月に無償公開された描画AIです。ユーザーがテキストでキーワードを指定することで、それに応じた画像が自動生成される仕組みとなっています。
NVIDIAのGPUを搭載していれば、ユーザ自身でStable Diffusionをインストールし、ローカル環境で実行することも可能です。
(出典:wikipedia)
Stable DiffusionのWeb UI AUTOMATIC1111
AUTOMATIC1111はStable Diffusionをブラウザから利用するためのWebアプリケーションです。
AUTOMATIC1111を使用することで、プログラミングを一切必要とせずにStable Diffusionで画像生成を行うことが可能になります。
Web UI AUTOMATIC1111のインストール方法
Web UIであるAUTOMATIC1111を実行する環境は、ローカル環境(自宅のゲーミングPCなど)を使用するか、クラウドコンピューティングサービスを利用する2通りの方法があります。
以下の記事ではそれぞれの環境構築方法について詳し解説していますので、合わせてご覧ください。

ControlNetとは
ControlNetは深度計測や骨格検出などのアルゴリズムを使って、AIで生成する画像の構図を細かく指示することができるツールです。ControlNetをAUTOMATIC1111に組み込むアドオンが公開されたため、Stable Diffusionを使ったが画像生成でも簡単に使用できるようになりました。
このControlNetを使用することで、これまで呪文(プロンプト)とガチャ要素に頼っていたキャラクターのポーズを、自在にコントロールできるようになりました。
ControlNetの入手先
ControlNetの公式リポジトリは以下となります。


モデルの種類
ControlNetを使用する際、画像から生成に必要な情報を抽出するためのモデルが必要になります。モデルは2023/2現在、以下の8種類が用意されています。
モデル名 | 機能 |
---|---|
canny | エッジ検出、被写体の輪郭を検出します。 |
depth | 画像の深度を推定します。 |
hed | Deep Leraningで線画抽出します。(HEDエッジ検出) |
mlsd | 画像のワイヤーフレームを検出します。(M-LSDライン検出) |
normal | 法線マップ(Normal Maps)使用します。 |
openpose | ポーズ検出を使用します。 |
scribble | 落書きを使用します。 |
seg | セマンティックセグメンテーションを使用します。 |
モデルは以下のページからダウンロードできます。


ControlNetのインストール
ここからは、ローカル環境、PaperspaceとGoogle Colabそれぞれのインストール手順を解説していきます。
ローカル環境、Paperspace
ControlNetのインストール手順についてはローカル環境、Paperspaceは同様となります。
ControlNetのインストール手順
AUTOMATIC1111を起動したら「Extensions」タブをクリックします。

「Install from URL」タブ①をクリックし、「URL for extension’s git repository」②に以下のURLを入力します。
https://github.com/Mikubill/sd-webui-controlnet.git
URLの入力が完了したら「Install」をクリックします。

「Install」ボタンの下にメッセージが表示されたら完了です。(少し時間がかかる場合があります)

「Installed」タブの「Apply and restart UI」をクリックしてUIをリロードします。

これでローカルPCでのインストールは完了です。
ControlNetで使用するモデルの配置
ControlNetで使用するモデルの入手方法と、Stable Diffusionのディレクトリへの配置方法を以下の記事で解説しています。


Google Colab
Google Colabで使用する場合は、AUTOMATIC1111を実行するjyupte Notebookに以下の処理を追加します。
ControlNet本体のインストール
Google ColabでControlNet本体を配置するディレクトリは以下となります。
このディレクトリにカレントディレクトリを変更したら、githubからリポジトリをダウンロードします。
#ControlNet本体をインストール
%cd /content/stable-diffusion-webui/extensions/
!git clone https://github.com/Mikubill/sd-webui-controlnet
%cd /content/stable-diffusion-webui
モデルのダウンロード
Google Colabでモデルを配置するディレクトリは以下となります。
Google Driveに保存しておいて起動前にコピーしても良いのですが、各モデルのサイズがかなり大きいため先ほど紹介したhuggingfaceの公式ページから、wgetコマンドで直接ダウンロードする方法をとりました。
#ControlNetで使用するモデルをダウンロード
%cd /content/stable-diffusion-webui/extensions/sd-webui-controlnet/models/
!wget https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_canny-fp16.safetensors
!wget https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_depth-fp16.safetensors
!wget https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_hed-fp16.safetensors
!wget https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_mlsd-fp16.safetensors
!wget https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_normal-fp16.safetensors
!wget https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_openpose-fp16.safetensors
!wget https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_scribble-fp16.safetensors
!wget https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_seg-fp16.safetensors
%cd /content/stable-diffusion-webui
毎回全てのモデルをダウンロードする必要はありませんので、その時に使いたいモデル以外の行はコメントアウトしても問題ありません。
「maintained by Akaibu」での実装例
AUTOMATIC1111の公式で公開されている「maintained by Akaibu」のjyuptenotebook「StableDiffusionUI-Voldemort V1.3.ipynb」を例に説明します。「maintained by Akaibu」の使い他については以下の記事で解説しています。

「StableDiffusionUI-Voldemort V1.3.ipynb」の③と④のセルの間に、ControlNetをインストールするセルを追加します。

赤枠のセルが追加したControlNetのインストール処理になります。

モデルのダウンロードは使用するもの以外はコメントアウトした方が早く終わります。
#ControlNet本体をインストール
%cd /content/stable-diffusion-webui/extensions/
!git clone https://github.com/Mikubill/sd-webui-controlnet
#ControlNetで使用するモデルをダウンロード
%cd /content/stable-diffusion-webui/extensions/sd-webui-controlnet/models/
!wget https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_canny-fp16.safetensors
!wget https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_depth-fp16.safetensors
!wget https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_hed-fp16.safetensors
!wget https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_mlsd-fp16.safetensors
!wget https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_normal-fp16.safetensors
!wget https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_openpose-fp16.safetensors
!wget https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_scribble-fp16.safetensors
!wget https://huggingface.co/webui/ControlNet-modules-safetensors/resolve/main/control_seg-fp16.safetensors
%cd /content/stable-diffusion-webui
ControlNetをインストールするセルを追加したら、全てのセルを実行すればControlNetが使用な状態になります。

動作確認
動作確認のためAUTOMATIC1111のUIを起動します。
起動すると「Seed」の入力欄の下に「ControlNet」の項目が追加されています。

「◀」ボタンをクリックすと、以下のようにControlNetのUIが展開されます。

今回は例としてOpenOpseのモデルをダウンロードしましたので、「Preprocessor」の項目を「openpose」を選択し、隣の「model」のドロップダウンリストをクリックすると、ダウンロードしたモデルのファイル名が選択できるようになりました。

ControlNetが正常に動作していることが確認できました。
Stable Diffusionのテクニックを効率よく学ぶには?

Stable Diffusionを使ってみたいけど、ネットで調べた情報を試してもうまくいかない…



そんな時は、操作方法の説明が動画で見られるUdemyがおすすめだよ!
動画学習プラットフォームUdemyでは、画像生成AIで高品質なイラストを生成する方法や、AIの内部で使われているアルゴリズムについて学べる講座が用意されています。
Udemyは講座単体で購入できるため安価で(セール時1500円くらいから購入できます)、PCが無くてもスマホでいつでもどこでも手軽に学習できます。
Stable Diffusionに特化して学ぶ
Stable Diffusionに特化し、クラウドコンピューティングサービスPaperspaceでの環境構築方法から、モデルのマージ方法、ControlNetを使った構図のコントロールなど、中級者以上のレベルを目指したい方に最適な講座です。


画像生成AIの仕組みを学ぶ
画像生成AIの仕組みについて学びたい方には、以下の講座がおすすめです。
画像生成AIで使用される変分オートエンコーダやGANのアーキテクチャを理解することで、よりクオリティの高いイラストを生成することができます。


まとめ
今回はStable Diffusion生成するイラストの構図をコントロールできる、ControlNetのインストール方法について解説しました。
ControlNetの各モデルと具体的な使用方法については、以下の記事で詳細を解説しています。


また、以下の記事で効率的にPythonのプログラミングスキルを学べるプログラミングスクールの選び方について解説しています。最近ではほとんどのスクールがオンラインで授業を受けられるようになり、仕事をしながらでも自宅で自分のペースで学習できるようになりました。
スキルアップや副業にぜひ活用してみてください。


スクールではなく、自分でPythonを習得したい方には、いつでもどこでも学べる動画学習プラットフォームのUdemyがおすすめです。
講座単位で購入できるため、スクールに比べ非常に安価(セール時1200円程度~)に学ぶことができます。私も受講しているおすすめの講座を以下の記事でまとめていますので、ぜひ参考にしてみてください。


それでは、また次の記事でお会いしましょう。






コメント