NovelAIのPromptsを収集するWikiです。



更新版(2023-01-25作成)

  • local_WSL2
  • 手順が簡単になった
  • kohya sd-scripts対応

※番外編:導入(WSL2)|Linux環境でAutomatic1111を導入する

Windowsでも速度を求める人やLinuxに慣れてる人はこちらがお勧め

概要

WindowsのWSL(Linux)環境でAutomatic1111を導入する手順です。
利点
  • Windows版と比べて15~25%程早い
  • 環境のバックアップが取りやすい
    (OSごとバックアップが取れるので何かあったときに戻すのが楽)
欠点
  • 多少だがLinuxの知識が必要になる

WSL2 のセットアップ

Powershellを管理者権限で起動して以下を実行
wsl --install
再起動を要求されるので再起動する

Ubuntu 22.04 をインストール

Microsoft Storeを起動し、ubuntu 22 で検索して Ubuntu 22.04.1 LTS をインストールする(2022/12/07現在の最新)

Ubuntu 22.04 をセットアップ

Ubuntu 22.04.1 LTSを起動すると初期化とユーザー名、パスワードの設定を要求されるので入力する

Pythonのアップデート

2022/12/10現在でPython3.10の最新である Python3.10.9にアップデートする

まず以下コマンドを実行
sudo apt update
sudo apt upgrade -y
初回の sudo 実行時にユーザーのパスワードを聞かれるので入力する

Pythonのビルドに必要な依存ファイルをインストールする
sudo apt install -y build-essential libbz2-dev libdb-dev \
  libreadline-dev libffi-dev libgdbm-dev liblzma-dev \
  libncursesw5-dev libsqlite3-dev libssl-dev \
  zlib1g-dev uuid-dev tk-dev

Pythonのソースコードを取得し展開
wget https://www.python.org/ftp/python/3.10.9/Python-3.10.9.tar.xz
tar xJf Python-3.10.9.tar.xz

Pythonをビルド(そこそこ時間がかかる)
cd Python-3.10.9
./configure
make
sudo make install
cd ~

ここまでやると、以下コマンドを打つと「Python 3.10.9」とバージョンが返ってくる
python3 --version

CUDAのインストール

CUDA 11.x の最新版である11.8をインストールする
※ CUDA 11.x台をインストールすること! 2022/12/10現在、最新である12.xをインストールするとxformersがビルドできない

https://developer.nvidia.com/cuda-11-8-0-download-... の 「Download Installer for Linux WSL-Ubuntu 2.0 x86_64」- 「Base Installer」 に書いてあるコマンドを実行する

cuDNN のインストール

Windows側で https://developer.nvidia.com/rdp/cudnn-archive から cuDNN v8.6.0 (October 3rd, 2022), for CUDA 11.x の Local Installer for Ubuntu22.04 x86_64 (Deb) をダウンロードし、\\wsl$\Ubuntu-22.04\home\<Ubuntuのユーザー名> に置く
※DLするにはNVIDIAの開発者アカウントが必要

その後Ubuntu側で/home/<Ubuntuのユーザー名>に移動し、以下コマンド実行
sudo dpkg -i cudnn-local-repo-ubuntu2204-8.6.0.163_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-ubuntu2204-8.6.0.163/cudnn-local-FAED14DD-keyring.gpg /usr/share/keyrings/
sudo apt -y update
sudo apt install libcudnn8
sudo apt install libcudnn8-dev

その後/home/<Ubuntuのユーザー名> にある 「.bashrc」「.profile」に以下を書き加える
export LD_LIBRARY_PATH=/usr/lib/wsl/lib:$LD_LIBRARY_PATH

/home/<Ubuntuのユーザー名>/.bash_profile (無い場合は新規作成)に以下を書き加える
export LD_LIBRARY_PATH=/usr/lib/wsl/lib:$LD_LIBRARY_PATH
if [[ -f ~/.bashrc ]] ; then
    . ~/.bashrc
fi

WSL2の再起動

Windows側でコマンドプロンプトかPowerShellを開き、以下のコマンドを実行
wsl --shutdown
コマンドが完了したらUbuntuを再度開く

AUTOMATIC WebUIのインストール

まず以下コマンドを実行
sudo apt update
sudo apt upgrade -y

次に以下コマンドを実行する
sudo apt install wget git python3 python3-venv -y
sudo apt install libgl1 -y
bash <(wget -qO- https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/webui.sh)
※ WSL2の場合 https://github.com/AUTOMATIC1111/stable-diffusion-... に書いてあるコマンドを実行するだけでは足らないため2行目のコマンドを足している

この時点ではまだckptファイルを置いていないため最後のコマンド実行後にエラーが起こるはず
No checkpoints found. When searching for checkpoints, looked at:
 - file /home/xxx/stable-diffusion-webui/model.ckpt
 - directory /home/xxx/stable-diffusion-webui/models/Stable-diffusion
Can't run without a checkpoint. Find and place a .ckpt file into any of those locations. The program will exit.

ckptなど置く

Windowsのエクスプローラで \\wsl$ にアクセスするとWSL2のLinuxが一覧表示されるので、


\\wsl$\Ubuntu-22.04\home\<Ubuntuのユーザー名>\stable-diffusion-webui\models\Stable-diffusion に ckpt を置く
※同じやり方でVAEやhypernetworksの下にファイルが置けます

xformersの導入

2023/01/23時点で1111標準でインストールされるようになった

旧情報

xformers有効化とWebUI起動

/home/<Ubuntuのユーザー名>/stable-diffusion-webui にある webui-user.sh を開き、以下の行のコメントアウトを外してパラメータを追記する
# Commandline arguments for webui.py, for example: export COMMANDLINE_ARGS="--medvram --opt-split-attention"
export COMMANDLINE_ARGS="--xformers"

その後 /home/<Ubuntuのユーザー名>/stable-diffusion-webui にある ./webui.sh を実行
cd /home/<Ubuntuのユーザー名>/stable-diffusion-webui
bash webui.sh
Windows側で http://127.0.0.1:7860 にアクセスできます。

起動するのにUbuntuいちいち立ち上げるのがめんどくさいンゴ
/home/<Ubuntuのユーザー名> にある .profileに以下を書き加える
export LD_LIBRARY_PATH=/usr/lib/wsl/lib:$LD_LIBRARY_PATH
Windows側で以下のバッチファイルを作成する
wsl cd /home/<Ubuntuのユーザー名>/stable-diffusion-webui; bash -l webui.sh
pause
バッチファイルを実行すればUbuntuでwebui.shを叩いてくれます
※wslから起動したbashはWindowsのbash.exeを呼び出しているが、これは起動時の環境ファイルを読み込まない
その為、-lオプションで.profileを読み込んで起動するようにする
バッチファイルから起動はするけど、生成時にエラーが出るンゴ……
Could not load library libcudnn_cnn_infer.so.8. Error: libcuda.so: cannot open shared object file: No such file or directory
生成時にこのエラーが出る場合、環境変数が設定されてません。以下を確認して下さい
  • /home/<Ubuntuのユーザー名> にある .bashrc、.profileに以下が記述されているか
export LD_LIBRARY_PATH=/usr/lib/wsl/lib:$LD_LIBRARY_PATH
  • 記述されている場合、wslの誤作動の可能性があります。(稀に .bashrcを何故か読み込まない現象が出る)
.bash_profile を作成しましょう
/home/<Ubuntuのユーザー名>/.bash_profile (無い場合は新規作成)
export LD_LIBRARY_PATH=/usr/lib/wsl/lib:$LD_LIBRARY_PATH
if [[ -f ~/.bashrc ]] ; then
    . ~/.bashrc
fi
バッチファイルを動かせば生成できるようになっているはずです

生成した絵に直でアクセスしたいンゴ
WebUIのSettingタブで以下のように設定しましょう
(以下の例はWindowsの C:\stable-diffusion-webui-automatic1111\outputs\ の下にフォルダ分けしてファイルを置きたい場合)

Windows版と同じようにフォルダアイコンからエクスプローラーを開きたいンゴ
本体改造の必要があります

1111本体にマージされました。

wsl-open をインストール
sudo apt-get install -yqq npm
sudo npm install -g wsl-open

WSL2のちょっとした補足

Linux単体では陥らないようなWSL2固有のもろもろのメモ
  • Q:ファイル消してもディスクの容量減らない
    • A:「wsl2 ディスクサイズ 減らす」とかでググれ、中のファイルを消してもディストリ格納してる仮想ディスクは勝手には縮まない。仮想ディスクファイルの格納場所もググれ。ちょこちょこ書くには内容が長すぎる
  • Q:WSL2側がメモリを食いすぎるorWSL2にメモリを使わせたい
    • A:全部のWSL2に適用したいなら「C:\Users\{ユーザー名}\.wslconfig」、指定のディストロだけメモリ量指定したいならディストリの中で「/etc/wsl.conf」に以下の内容をかけ
[wsl2]
memory=(お前が指定したいメモリサイズ)GB
  • Q:WSL2のメモリ足りないからWSL2に多めに指定したらWindows側のメモリを使ってない時まで取られる
    • A:定期的に「sudo sh -c "echo 3 >'/proc/sys/vm/drop_caches' && swapoff -a && swapon -a"」でもやるスクリプトでも書いとけ。毎分cronでおとすんならこう
crontab -eとかで起動して
* * * * * sh -c "echo 3 >'/proc/sys/vm/drop_caches' && swapoff -a && swapon -a"
  • Q:そもそもcronもsystemd.timerタイマーも起動してないンゴ…
    • 上で書いたメモリと同じように「.wslconfig」か「wsl.conf」でこう書いてsystemd起動しとけ。ベータらしいから副作用とかあっても知らん
[boot]
systemd=true
  • Q:ネットワークドライブが見えないンゴ…
    • A:一時的なら「mount -t drvfs {デバイス名} {マウントポイント}」、毎回起動したい(NASに画像出力するなど)場合は/etc/fstabに下記のように書いとけ
\\{NASのIPとか}\{残りのパスとか}   /mnt/{マウントに使う他と被らない任意の名前}        drvfs   defaults       0 0

やってみた(2022-12-10)

個人的な意見としてはWSL2未経験かつLinux未経験者にはお勧めできない。
トラブルを自力解決できる程度の能力があることが望ましい。

やってみた2(2022-12-17)

要所でWSL環境のバックアップを取りつつ実施
所要時間90分程

このページへのコメント

batが no such file or directoryで起動しないなーと思ったら複数のubuntuを入れてるせいで、デフォルトのdistributionを変更する必要があった

0
Posted by 名無し(ID:QQfangahAg) 2023年02月11日(土) 02:07:39 返信

xformersをビルドしないでインストールする場合、
cuDNN (と、nvidiaアカウント)要らないよね?
ダメ元でやってみたけど、
Launching Web UI with arguments: --xformers
と出てるし、一見問題なく画像生成出来てるっぽい

1
Posted by 名無し(ID:PqDrbk/pJw) 2023年01月22日(日) 12:28:45 返信

やってみた(2022-12-10)
のリンクのスレッドの最後に

python setup.py clean --all
CC=gcc-11 pip install -e . --install-option develop

やればうまく動いた的な事書いてたのでやってみたら今のところ自分の環境では動いてるっぽい

0
Posted by 名無し(ID:lJVL/qKRwg) 2023年01月18日(水) 18:42:58 返信

Windows11 Ryzen7 3700X RTX A4000
アスカがWin上で28.49、WSL上で28.76とむしろ遅くなった。
ただBatchSizeを大きく取るとWindows上より3%ほど速くなる

ちなみにXformersはビルドしないで

source ./venv/bin/activate
pip install ttps://github.com/C43H66N12O12S2/stable-diffusion-webui/releases/download/linux/xformers-0.0.14.dev0-cp310-cp310-linux_x86_64.whl

でも可、これならすぐ入る(httpsにしてね)。

ビルドする場合でも前もって

sudo apt install ninja-build

しておけばマルチスレッドでビルドされるので速くなる、お試しあれ。

2
Posted by 名無し(ID:4If1nSWqIw) 2022年12月31日(土) 02:01:29 返信

cuDNNのインストーラーを手に入れるのにNVIDIAアカウントの作成を要求されるんだが

0
Posted by 名無し(ID:UMxYy5EzqQ) 2022年12月30日(金) 17:22:10 返信

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu

Prompts

  1. 非R18詠唱全文
  1. 顔(目・口・表情)
  2. 構図
  3. 場所・背景
  4. 環境表現
  5. 特徴・年齢・体型・髪型
  6. ポーズ集
  7. 服飾
  8. 亜人・モンスター娘・人外
  9. 食品
  10. その他
  11. 画風
  12. 絵文字
  13. 色一覧
  14. 頻用ネガティブプロンプト
  15. 大量検証結果
  16. 整理用倉庫

編集中メニュー

  1. 未発見のプロンプト
  2. 旧ページ

table拡張js

どなたでも編集できます

メンバー募集!