Stable Diffusionのローカル環境構築方法(Windows編)
2023/7/14 2023/7/16 WebSite
はじめに
Stable Diffusion(ステーブルディフュージョン)は、完全に無料で使用できるオープンソースのAIです。Stable Diffusionの使い方はいくつかあります。
- アプリやWebサービスの利用
- クラウド環境での利用]
- ローカル環境での利用
ブラウザサービスなどを利用する場合はすぐに使えて簡単な反面、使用回数に制限があり、一定数を生成後は有料となることがほとんどです。
しかし、Stable Diffusionが使える環境を自身のPC上に構築してしまえば無料で利用することができます。いまのところ無料で使用ができる画像生成はStable Diffusionのみのようです。
MidjourneyなどはDiscordから簡単に使えてとても便利ですがこちらについても一定数まで無料、その後はサブスクの有料契約が必要となってしまいます。
ということで、本記事ではStable Diffusionをローカル環境で利用するための手法をご紹介します。
本記事のゴール
まずはStable Diffusionがローカル環境で動くところまで
できることの奥が深すぎるためまずは動くところまでを記事にしていきます。
ステップは以下の3つ。
- Stable Diffusionのダウンロードとインストール
- Stable Diffusionの日本語化
- 実行時のエラーの解消
ダウンロードとインストール
Stable Diffusionをローカル環境で実行するためにStable Diffusion Web UIというものを使います。
こちらを利用することで、ローカル環境でブラウザを介して画像生成処理をGUIでできるようになります。
Pythonのダウンロードとインストール
前提として、WindowsにPython 3.10.6の実行環境が必要になります。
こちらのリンクからPythonをダウンロードします
インストーラーを実行するとき、「Add Python 3.10 to PATH」にチェックを入れましょう。
Stable Diffusion Web UIのダウンロードとインストール
続いてStable Diffusion Web UIをダウンロードします。
こちらのリンクにあるGithubのリポジトリ―をダウンロードします。
Code > Download ZIPでZIP形式でダウンロードしてもいいですし、PCにGitが入っている場合は以下のようにcloneすることも可能です。
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
Stable Diffusion Web UIのインストールと実行
上記のソースコードの中にはバッチファイルが含まれており、それを実行することでStable Diffusion Web UIが起動します。
初回は諸々の必要なものがインストールされるのでなかなか時間がかかると思いますが、2回目以降はすぐに起動するようになるかと思います。
実行方法は「webui-user.bat」をダブルクリックで実行、またはコマンドプロンプトから
.\webui-user.bat
処理が走り終わると「Running on local URL:」と表示されるので、その後ろのリンクをコピーして、ブラウザにペーストして開きます
Stable Diffusionの日本語化
英語のUIに馴染みがない方は日本語化をすることができます。
日本語化の手順は以下の通り。(スクリーンショットはすでに日本語化されています)
ExtensionsからAvailableをクリック
「Extension index URL」に表示されているテキストが以下となっていることを確認
https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui-extensions/master/index.json
localizationのチェックを外し、Load from:ボタンをクリック
一覧の中から「ja_JP Localization」を探し、「install」ボタンをクリック。
SettingsのUser interfaceから言語を選択する
Apply settingsとReload UIをクリックして、日本語化がされることを確認します
実行時のエラーの解消
上記の通りに行いましたが、私の環境では画像生成実行時にエラーが出力され画像生成を行うことができませんでした。
他にもいろいろ失敗例はあるかもしれませんが、私が再現した事例に関する解消法について記載します。
NansException: A tensor with all NaNs was produced in Unet. This could be either because there’s not enough precision to represent the picture, or because your video card does not support half type…
「画像を表現するのに十分な精度がないため、またはビデオカードがhalf型(半精度浮動小数点数)をサポートしていない」といったエラーになります
対処法1.ブラウザ側で設定の変更
設定>Stable Diffusionの一番下、Cross Attention レイヤーを float32 にアップキャストという項目にチェックを入れます。
この方法では解決しませんでした。
対処法2.バッチファイルに実行引数を追加する
「webui-user.bat」を開き、以下の箇所を変更します。
この方法で私の環境では問題が解消されました。
set COMMANDLINE_ARGS=
↓↓↓↓↓↓
set COMMANDLINE_ARGS=--no-half
最後に
以上が、Stable Diffusion Web UIをローカル環境で実行できるようにする方法となります。
最後まで閲覧いただきありがとうございました。