純正のStable Diffusionをコマンド実行するのは実用的に厳しいです。
なので、最も人気のあるStable Diffusion web UIをWSLとUbuntuの環境に構築したいと思います。
[]環境構築後にCUDA ToolkitやcuDNNを更新する方法です。
本記事のバージョンが合わない場合、以下の記事も参考にしてください。
Stable Diffusionで利用するNVIDIA関連のツールを更新する方法です。CUDA ToolkitやcuDNN等、新しい機能を利用するためには更新が必要だったりします。 何となく環境が古くなってきたので関連する部分を更新しました。 対応するバージョンの確認 CUDA ToolkitとcuDNNは正しくバージョンを合わせないと動きません。NVIDIAの公式に対応表があるので、ここから噛み合うバージョンを探します。https://docs.nvidia....
[]Stable Diffusion web UIを更新する方法です。
既に環境を構築済みの人は参考にしてください。
Stable Diffusion web UIをアップデートする方法です。何となく、ちゃんとまとめました。無理に最新版にする必要もないのですが、新機能が増えたりするので好みで更新してください。 [20240821]更新でErrorが発生した場合の対処方法を追加しました。 ◆ Stable Diffusion web UIのインストール方法について ◆ 学習モデルのダウンロード方法と追加方法について ◆ CUDA ToolkitやcuDNNを更新する方法について ...
構築環境の紹介
僕のPC環境です。必須じゃない項目は簡略化して記述します。
- Core i7 + 32GB
- GeForce RTX 3090
- Windows 11
- WSL2 Ubuntu 22.04.1 LTS
- Stable Diffusion 2.1
(Ubuntu側) 事前作業
最初にUbuntuを更新します。僕はトラブルを避けるためにストアからインストールした状態を元に構築してます。
また、あっても困らないのでgit-lfsも入れておきます。
(Windows側) WSL再起動
WSLは再起動が容易で便利です。ここでは無用なトラブルを避けるために結構な頻度で再起動させます。
これは実際には不要かもしれませんが、待ち時間も少ないので、とりあえずで実行することを推奨します。
作業はWindows側で行います。Windows側のTerminal(コマンドプロンプト等)から次のコマンドでWSLを再起動しましょう。
NVIDIA関連の導入
(Windows側) NVIDIAドライバのインストール
と言いたいところですが、NVIDIA製GPUを搭載して通常利用してるPCであれば普通はドライバが入ってます。
NVIDIA GeForce Experienceを利用するのが1番楽ですが、ドライバだけ欲しい人は公式サイトで探してください。
https://www.nvidia.co.jp/Download/index.aspx?lang=jp
(Ubuntu側) NVIDIAドライバ確認
最初の注意点としてUbuntu側にNVIDIAドライバは不要です。寧ろ導入しないほうが良いです。
Windows側にドライバが入っている場合、次のコマンドでUbuntu側からもGPUを認識できます。
こんな感じの表が出力されたらGPUは問題なく認識できてます。
(Ubuntu側) CUDA Toolkitのインストール
次にCUDA Toolkitをインストールしますが、ここで注意点があります。
この記事を作成した時点の最新版はCUDA Toolkit 12.0となるのですが、後にインストールするcuDNNが12.0に対応してません。
そのため過去版を使います。なお、nvidia-smiでCUDA Version: 12.0と出てますが、NVIDIAドライバは最新で大丈夫です。
過去版はここから探せます。
https://developer.nvidia.com/cuda-toolkit-archive
今回は過去版で1番新しいCUDA Toolkit 11.8を使います。
https://developer.nvidia.com/cuda-11-8-0-download-archive
ただし、入手と言ってもファイルをダウンロードする形式ではなく、自身の利用する環境を選択すると、インストールに必要なコマンドを教えてくれます。
今回は上から順番に以下を選択します。注意点は対象のUbuntuがWSLであることを忘れないようにしましょう。

そうすると、こんな感じのコマンドが表示されるので順番に実行します。
注意4番目のコマンドを実行するとTo install the key, run this command:って感じに、次に実行するコマンドを指示されます。
指示されたコマンドと5番目のコマンドを見ると分かるのですが、cuda-*-keyringって感じに*でパスが記述されてます。
恐らくフルパス版でしょう。とりあえず、ここは指示に従って表示されたコマンドを実行します。
インストールが完了したらPATHを設定します。PATHにはバージョン番号が入るので僕と違う人は注意してください。
ここでシェルを再起動します。
最後に次のコマンドでインストールしたCUDA Toolkitのバージョンを確認します。
こんな感じの表示が出ればインストールは問題ありません。
(Windows側) WSL再起動
ここでWSLを再起動します。
cuDNNのインストール
(Windows側) cuDNNのダウンロード
cuDNNはUbuntuから直接的な入手が出来ないためWindows経由で入手します。
なお、このファイルのダウンロードにはNVIDIAアカウントが必要になります。
それでは次のリンクからcuDNNを入手しましょう。
https://developer.nvidia.com/rdp/cudnn-download
よくある同意文言(I Agree To the Terms of the cuDNN Software License Agreement)にチェックします。
そうすると選択肢が出現するので、先程インストールしたCUDA Toolkitのバージョンに合うcuDNNを入手します。
ここでは、この時点での最新版であるv8.7.0を利用します。
これを選ぶと、さらに選択肢が出現します。ここから自分の環境に合うファイルを選びましょう。
Ubuntuのバージョンも僕と同じなら、実際にダウンロードするのは以下のファイルです。
ファイルを入手できたら、このファイルをLinux側に転送します。
転送と言っても、WSLにはLinux側のディレクトリをWindows側のエクスプローラ経由で参照できる機能があります。
エクスプローラ左側に表示されるフォルダツリーからLinuxって部分を辿るか、以下のようにパスを指定します。
(Ubuntu側) cuDNNのインストール
ここからはインストール作業となるので、Ubuntuで作業します。
それでは先程ファイルをコピーしたディレクトリに移動しましょう。
移動したらインストール用のコマンドを実行します。
そうするとTo install the key, run this command:って感じに次のコマンドを指示されます。
僕の場合は次のコマンドでした。
続いて次のコマンドを実行します。
これでインストールは完了です。cuDNNの動作確認は手間なのでスルーして先に進みます。
(Ubuntu側) CUDA関連のError対策
このままだと画像生成時に以下のエラーが出るため先に解決しておきます。
以下が解決用のコマンドです。これを実行しましょう。
(Windows側) WSL再起動
ここでWSLを再起動します。
(Ubuntu側) Python3のインストール
次にPython3をインストールします。
Stable Diffusion web UI関連の導入
(Ubuntu側) Stable Diffusion web UI(本体)のインストール
次のコマンドを実行して本体部分のインストールと起動を行います。それなりの時間が掛かるので地道に待ちましょう。
また、この時点では学習モデルを配置してないためにエラーで起動失敗しますが、ここでは気にせず先に進んでください。
(Ubuntu側) Stable Diffusion web UI(学習モデル)の入手
利用する学習モデルを配置します。ここでは2.0版と2.1版(2個)を両方とも追加しておきます。
(Ubuntu側) xformers(Option)の利用設定
昔はBuildも必要でしたが今は不要です。利用するには起動オプションを指定するかdefault引数を変更します。
ここではdefault引数の変更を推奨しますが、起動オプションでいいなら次の方法で毎回起動してください。
default引数を変更する場合はwebui.shと同階層にあるwebui-user.shを修正します。
変更の対象になるのは次の部分です。検索とかで見つけてください。
これを次のように修正します。
(Ubuntu側) 動作確認
(Ubuntu側) Stable Diffusion web UIの起動方法
次のコマンドで起動します。起動したらUbuntu側はコマンド実行中のまま放置します。
そうするとWindows側のブラウザで次のURLにアクセスできます。
ポート番号が異なる場合は自身の実行結果を確認してください。
後はUIになってるので自由に操作して遊びましょう。

(Ubuntu側) Stable Diffusion web UIの停止方法
Ubuntu側は単にコマンド実行中になってるだけなので、Ctrl+Zを入力すれば停止します。
あとがき
Stable Diffusionのインストール部分は殆ど全自動です。
さらに拡張機能も優れていてUIも使いやすい。もしかして開発者は神ですか。
この記事は参考になりましたか?
コメント