Stable Diffusionをローカル環境で動かすにはいくつかの方法があります。
今回インストールするWeb GUI版とはどのようなものか?
- インストールが簡単
- かなり詳細な設定ができる
- 頻繁にアップデートされている

操作画面のイメージです。ブラウザから操作できます。


この記事をよんで理解出来ること
- ローカル環境にブラウザベースの画像生成環境が構築できる
- 学習モデルを入れ替える事ができる
- 拡張機能を当てて日本語化をする
独自でプログラミングするのが一番自由度が高いですが、今回ご紹介する内容も「かゆいところに手が届く」作りとなっており、ほぼやりたいことは可能です!
前提条件
ハードウエア
ハードウエアの項はGUI版と同様ですので、参照してください。


ソフトウエア
| ソフト | 説明 |
|---|---|
| Python 3.10.6 | プログラミング言語(AIなどを中心に活躍) ※実際プログラミングするわけではないので安心してください |
| Git | リポジトリアクセスツール(アプリケーションの配布を受け取ります) |
インストール方法
前提ソフトウエア導入
Pythonインストール
Pythonダウンロードリンク
https://www.python.org/downloads/windows/
上記のURLを表示するとPythonのダウンロードページが表示されます。


そのページの下部にあるファイルをダウンロードします。
プラットフォームやマシン等によりダウンロードは異なりますが最新のWindowsPCだと一番下が該当します。


既にPythonを使っている方は考慮が必要ですが、3.10.6へPATHを通す必要があります。
最初の画面でチェックを付けるか、後でWindowsの設定よりPATHに加えてください。


ダウンロードはすぐに完了します。


Gitインストール
Gitダウンロードリンク
https://git-scm.com/download/win
ダウンロードサイトよりファイルを取得します。



選択肢が多く面倒ですが、基本デフォルトのままです。




ダウンロード出来たファイルを実行しインストールを進めます。
少し選択肢が多いですが、あまり良く知らない方は個々に記載の内容で勧めてください。




対象を選択します。特に追加設定する必要はありません。




Gitでエディタを開く時のソフトウエアを選択します。未使用なら変更しなくて構いません。


新しいリポジトリの初期ブランチ名を設定します。
マスターとスレーブという単語が差別用語に当たるとなり、追加されました。


環境変数が設定されます。ここは初期の状態のまま進んでください。


SSHを使う際にGitを利用するか、外部のツールを使用するかを選択します。
特に変更は不要です。


HTTPSを使用した場合のSSLについての選択です。独自でリポジトリサーバーを運用している等であれば下を選択する必要があります。


リポジトリからチェックアウト、コミット時の改行コードの取り扱いについてです。
お好みの利用で構いません。特に何もしないなら、一番したを選択します。


Gitコンソールで使用するMinTTYの設定です。そのままで構いません。


Gitプルのデフォルト動作を指定します。特にリポジトリ更新しないならそのままで構いません。


Git接続する時に認証補助を使用するか選択します。そのままで構いません。


追加オプションの設定を行います。
そのままで構いません。


未来に実装される機能を試験的に利用するかを選択します。
そのままで構いません。




リポジトリからWebUIを取得
WebUIをインストールするディレクトリでコマンドプロンプト(パワーシェル)を立ち上げます。
そこで、下記のコマンドを実行します。
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git


完了すれば、フォルダが出来ているので、一つ下の階層に移動します。
cd .\stable-diffusion-webui\
フォルダ内にいくつかバッチファイルが出来ていますので、その一つを実行します。
.\webui-user.bat


お使いの端末のPython実行環境にもよりますが、ある程度時間がかかります。
完了すると下記の画面が表示されます。


このURLを使用します。
WebUI起動
ローカルWeb環境へアクセス
先程のURLをブラウザに貼り付けます。


すると下記の画面が表示されます。





別の記事で詳しく説明しますが、概要です。
| # | エリア | 内容 |
|---|---|---|
| ① | モデル | 学習済みのデータ(モデル)を選択します。 実写風、2.5次元風、アニメ風など得意分野毎に切り替えるのが一般的です。 |
| ② | ポジティブプロンプト | 絵を生成する際の命令(キーワード)です。 ここの入力値が最も難しく奥深いものになります。 呪文とも呼ばれます。 |
| ③ | ネガティブプロンプト | 絵を生成する際の禁止命令です。 例えば、「画質が悪い」等の品質面や、生成された画像より「なってほしくない」キーワードを指定します。 |
| ④ | プロンプト保存 | ②と③は名前をつけて保存されます。それを選択するリストです。 |
| ⑤ | 各種パラメータ等 | 解像度や生成ステップやシード値など様々です。 また、カスタム(拡張機能)で選べる内容はさらに増やせます。 |
| ⑥ | 生成画像 | 「Generate」ボタンを押した時に生成された画像が表示されます。 |
実際、1人の女性を生成してみます


砂嵐のような画面から徐々に輪郭がはっきりして、一人の女の子が描かれました。
人の描き方とは全く異なりますが、見事に1つの単語のみでAIが画像を生成しました。



次に進む前に1つオススメの設定をしておきます。
xformersの適用
一度、ローカルWebサーバーを終了します。


そして、起動に使用したバッチファイルをエディタで開きます。(メモ帳でも化)


COMMANDLINE_ARGに下記の文字列を追記します。
--xformers
保存して、再起動します。
再度同じ命令で画像を生成してください。
(画面は一度リフレッシュが必要なので、再入力してください)


別の女の子が描かれましたが、速度が先程より早くなっているはずです。


弊害はないのか?
本来、Seed値と他のパラメータが同一であれば、全く同じ画像が生成されます。
このパラメータを指定した場合、完全に一致しないとの結果が確認されています。
たとえば、シード値を固定してパラメータの検証をしたい等でれば弊害となるでしょう。
しかし、画像の生成を楽し部分には特に弊害とはならないと思います。



また、VRAMの容量が少ない場合は下記のオプションも指定できます
VRAMが少ない場合
--lowvram
こちらは、モデルをモジュールに分割し、分割単位にGPUメモリを使用します。
速度とは引き換えですが、メモリオーバーにはなりにくくなります。
--medvram
こちらは、同一の場合でノイズ除去を処理しないことでVRAMの使用量を削減します。
こちらは殆どの場合、速度を犠牲にすることはありません。
モデル切り替え
Stable Diffusionは機械学習により画像を生成しています。
学習データはいくつか利用されますが、ベースとなるのがモデルと言われているものになります。
よって、モデルが画像生成の生成結果に与える影響度は一番大きいです。
ダウンロードした時点では、Stable Diffusionの初期の頃のモデルが梱包されています(バージョン1.5)
NovelAIが登場してモデルの成長は日々加速化しており、あちこちのサイトで公開されています。
下記で現在の主要モデルを紹介していますので、ご参考にしてください。


具体的なモデルの入れ替え方法を記載します。
今回は試しに下記のモデルを使用します。
ダウンロードしたモデルの配置場所は下記となります。
(インストールフォルダ)\models\Stable-diffusion


そして、画面の上部からモデルを選択します。


そして、同じ呪文のまま実行します。





先程とは異なり、アニメ風の女の子が描画されました!
画像のファイル出力
いい画像ができたら保存しておきたいと思います。
画像はデフォルトで保存される設定で、下記に配置されています。
(インストールフォルダ)\outputs\img2img-images
またフォルダやファイル名はオプションにて変更可能です
追加(拡張)設定
様々な拡張機能により、カスタマイズできるのがこのツールの特徴です。
今回は日本語化を行ってみます。
Extensionsタブを選択し、さらにAvailableタブを選択します。


Extension index URLは拡張機能の配布サイトを指定します。
今回はデフォルトのまま、チェックボックスの内容を変更してください。


そして、Load fromボタンを押すと一覧が表示されます。
そこには、「ja_JP.Localization」といった項目があるのでinstallボタンを押してください。


次に拡張機能に対する設定を行います。
「Settings」タブを選択してください。
左メニューから該当項目を探しますが、今回は「Showo all pages」を選択します。


ブラウザの検索機能等で「Localization」を検索します。


Noneをja_JPに変更します。


選択肢になければ、右のリフレッシュボタンを押してください。
最上部まで戻り、「Apply settings」ボタンを押して設定を完了してください。
また、再描画のために「Reload UI」ボタンを押します。


すると、画面が再描画され項目は日本語化されています。


「Reload UI」を押すとプロンプト等の入力情報は初期化されますのでご注意ください。



今後他の拡張機能についても随時別の記事にしていきます!





コメント