株式会社Infigate

Blog

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をローカル環境で実行できるようにする方法となります。
最後まで閲覧いただきありがとうございました。

この記事を書いた人

Infigate

北海道札幌市のシステム開発会社、株式会社Infigateです。 活動内容やシステム開発技術に関するTips、DX化に関連する記事やその他地域活性化に繋がる情報等を発信していきます。

お問い合わせ

Contact

お見積ご相談は無料です。
どうぞお気軽にご相談くださいませ。