A1111:v1.80インストールコマンド(一時ディレクトリ用):VRAM消費検証とReforumの使用雑感:2024/5版
以前の記事で、ReforumというDeforumの実験的なブランチの紹介をしました。Forgeでも使用可能なのですが、A1111だとコントロールネットも使用出来るため、その方法について模索していました。
表題にあるように、最新のA1111のバージョンはv1.93なのですが、その特徴の一つである、「サンプラー」と「スケジューラー」を分けて設定するという機能に対応していません。
そのため、「サンプラー」だけ選ぶという形になると画像が劣化してしまうパターンが発生してしまいます。
その対策として、サンプラーとスケジューラーが分かれていないv1.8のインストールにする方法を検討しました。
ForgeのA1111に対する優位性としては、デフォルトで拡張機能がついているのもありますが、VRAM消費が低い点になります。コントロールネットの併用時のVRAM消費も良好で、SDXL使用でも、3つ程度のマルチコントロールネットも可能でした。
v1.6の時点だと、SDXL使用の場合はマルチコントロールネットが厳しい場合もありましたので、そのあたりの検証もしておきます。
まずは一時ディレクトリ用のコマンドについて以下に記載しておきます。最初のを変えればv1.93も可能かと思います。
①A1111のダウンロードコマンド
# (1) AUTOMATIC1111のダウンロード
%cd /tmp
!git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
%cd stable-diffusion-webui
!git fetch --all --tags --prune
!git checkout v1.8.0
②モデルとVAEなどのダウンロードコマンド
# ChromaXL
!cd /tmp/stable-diffusion-webui/models/Stable-diffusion && \
wget -nc https://huggingface.co/zzzAI19/ChromaXL/resolve/main/ChromaXL_v1b.safetensors?download=true -O ChromaXL_v1b.safetensors
# VAE
!cd /tmp/stable-diffusion-webui/models/VAE && \
wget -nc https://huggingface.co/stabilityai/sdxl-vae/resolve/main/sdxl_vae.safetensors?download=true -O sdxl_vae.safetensors
# Embeddings
!cd /tmp/stable-diffusion-webui/embeddings && wget -nc https://civitai.com/api/download/models/264111 -O negative_v2.safetensors
!cd /tmp/stable-diffusion-webui/embeddings && wget -nc https://civitai.com/api/download/models/159184 -O ImgFixerPre0.3.safetensors
③WebUIの起動コマンド:xformersなどを入れたもの。
# (2) WebUI起動
!apt update
!apt -y install python3.10 libpython3.10-dev build-essential
!curl -sS https://bootstrap.pypa.io/get-pip.py | python3.10
from IPython import get_ipython
get_ipython().run_line_magic('matplotlib', 'inline')
# CUDA対応のPyTorch関連パッケージをインストール(例)
!python3.10 -m pip install torch==2.1.2+cu121 torchvision==0.16.2+cu121 torchaudio==2.1.2+cu121 torchtext==0.16.2 torchdata==0.7.1 xformers==0.0.23.post1 --extra-index-url https://download.pytorch.org/whl/cu121 -U
!python3.10 -m pip show pydantic fastapi
!python3.10 -m pip install --upgrade pydantic fastapi
!python3.10 -m pip install setuptools==69.5.1 -U
# その他必要なライブラリをインストール
!python3.10 -m pip install httpx==0.24.1 matplotlib ipython insightface timm==0.6.7 -U
# ディレクトリを変更
%cd /tmp/stable-diffusion-webui
# launch.pyを実行
!python3.10 launch.py --xformers --enable-insecure-extension-access --share --gradio-queue --no-half-vae
④拡張機能のインストールコマンド(今回のから追加しています)
# コントロールネットのインストール
%cd /tmp/stable-diffusion-webui/extensions
!git clone https://github.com/Mikubill/sd-webui-controlnet
# reforumのインストール
%cd /tmp/stable-diffusion-webui/extensions
!git clone --branch reforum https://github.com/reallybigname/sd-webui-deforum.git
# FreeUのインストール
%cd /tmp/stable-diffusion-webui/extensions
!git clone https://github.com/ljleb/sd-webui-freeu
# sd-webui-prevent-artifactのインストール
%cd /tmp/stable-diffusion-webui/extensions
!git clone https://github.com/hako-mikan/sd-webui-prevent-artifact
# sd-danbooru-tags-upsamplerのインストール
%cd /tmp/stable-diffusion-webui/extensions
!git clone https://github.com/p1atdev/sd-danbooru-tags-upsampler
# sd-webui-loractlのインストール
%cd /tmp/stable-diffusion-webui/extensions
!git clone https://github.com/cheald/sd-webui-loractl
⑤コントロールネットのモデルのダウンロード
※これは、拡張機能のコントロールネットをインストールした後に行う
# コントロールネットip-adapter
!cd /tmp/stable-diffusion-webui/extensions/sd-webui-controlnet/models && \
wget -nc https://huggingface.co/lllyasviel/sd_control_collection/resolve/main/ip-adapter_xl.pth?download=true -O ip-adapter_xl.pth
# コントロールネットmistoline
!cd /tmp/stable-diffusion-webui/extensions/sd-webui-controlnet/models && \
wget -nc https://huggingface.co/TheMistoAI/MistoLine/resolve/main/mistoLine_fp16.safetensors?download=true -O mistoLine_fp16.safetensors
# コントロールネットDEPTH
!cd /tmp/stable-diffusion-webui/extensions/sd-webui-controlnet/models && \
wget -nc https://huggingface.co/lllyasviel/sd_control_collection/resolve/main/diffusers_xl_depth_full.safetensors?download=true -O diffusers_xl_depth_full.safetensors
⑥outputディレクトリの保存コマンド
# outputsディレクトリの保存
!zip -r /notebooks/outputs.zip /tmp/stable-diffusion-webui/outputs
上記コマンドで、A1111のv1.80がインストール出来ていると思います。
VRAM検証は以下です。
SDXLで1024x1024の画像を生成する場合は以下のVRAMがかかりました。
A: 10.26 GB, R: 13.95 GB, Sys: 14.2/15.7314 GB (90.2%)
IP-adapterを使用してみたら、VRAM消費が耐えられませんでした。。
FP8を有効化するとSDXLで1024x1024の画像を生成する場合は以下のVRAMがかかりました。A4000使用時の数値
A: 7.35 GB, R: 10.96 GB, Sys: 11.2/15.7314 GB (71.2%)
IP-adapter(big-g)を使用したらギリ成功しました。。
A: 14.27 GB, R: 15.24 GB, Sys: 15.5/15.7314 GB (98.4%)
A: 7.49 GB, R: 11.01 GB, Sys: 11.2/15.7314 GB (71.5%)
※複数回するとVRAMが減りました
Mistolineを使用した場合
A: 7.43 GB, R: 11.40 GB, Sys: 11.6/15.7314 GB (74.0%)
Depth anythingを使用した場合
A: 8.65 GB, R: 12.58 GB, Sys: 12.8/15.7314 GB (81.5%)
Depth anything+Mistoline
A: 8.68 GB, R: 12.59 GB, Sys: 12.8/15.7314 GB (81.5%)
IP-adapter(big-g)+Mistoline
A: 7.50 GB, R: 11.43 GB, Sys: 11.7/15.7314 GB (74.2%)
IP-adapter(big-g)+Depth anything
A: 7.62 GB, R: 11.53 GB, Sys: 11.8/15.7314 GB (74.8%)
たまたまなのかもしれませんが、コントロールネットの効果がForgeと少し違うような印象を持ちました。
拡張機能のReforumでは、サンプラーが問題なく選択でき、v1.90以降で見られた問題が解決出来ました。
ただ、コントロールネットにIP-adapter使用をしたところ、VRAM上限に達してしまいました。。。
Mistolineを使用した場合は作成できました。
現在のところでは、通常のDeforumでコントロールネットを使用したい場合はForgeの方が良い状態の様です。IP-adapterでVRAMが上限に達することはないので。