Stable Diffusionを導入した話
AIで画像生成をしてみようとふと思い立ち、ローカルPCにStable Diffusionを導入してみたのでメモ。
トップ画像はStable Diffusion導入完了後に「1 girl」でテスト実行してみて生成された画像である。色々と突っ込みどころが多くて、AIで初作成しました感が非常に強くとても良い。
少し前から流行の兆しを見せていたAIを用いた画像生成技術。
最初はネット上で遊び半分に作成される程度であったAI画像も、気付けばKindleで写真集のコーナーを見ると(安価な価格帯では)AIで生成されたモデルの写真集が席巻し、ついには先日週刊プレイボーイがAIモデルのグラビアを載せるところまで議論を招くところまできている。今後も一時的な流行という枠を超えて、様々な分野で利用が進みそう(そして時には反発を招きそう)な雰囲気が漂ってきている。
そんなブームを眺めているうちに、自分で撮影した写真と組み合わせたり、自分で絵を描き足したりしていけば色々と遊べるのではないかと考えるようになり、遅ればせながら自分でも試してみることにした。
AI画像生成ツールの選定
AIを使って画像作成をするためのツールを選定する。
- Midjourney
- Stable Diffusion
- DALL-E 2
画像生成AIでよく名前を聞くのはこの辺りだろうか。最近ではAdobeやMicrosoftなどの大手デベロッパーも自社製品の中にAIを用いた画像生成ツールを採用している。
まずはお試しで使ってみたいという話をTwitterでしたところ、Stable Diffusionを勧められた。WEB上で構築済みの環境が公開されており無料で使えるので、手軽に扱いやすいということであった。
何度か画像を生成してみるなどして、なんとなくの使用感を掴む。
限られた目的で画像が欲しいだけであれば、このWEB版でも問題ないだろう。
個人的には冒頭に述べたように色々な使用方法を想定していたこともあり、WEB版で公開されている機能だけでは物足りなくなることが想像に難くない。そこで、この『Stable Diffusion』をローカルPCにインストールすることにした。
ブラウザで画像生成等の操作ができるWebUIを備えたAUTOMATIC1111版と呼ばれるStable Diffusion Web UIのインストール手順を以下に記す。
動作環境
AUTOMATIC1111版Stable Diffusion Web UIのインストールに必要な動作環境はこちら。- 要求OS:Windows 10 or 11
- 要求VRAM:4GB以上
先日CPUやメモリのスペックアップを試みたので、本当はこのスペックアップが終わってからAI環境の構築をしてみようかと考えていたのだが、交換パーツの初期トラブルやら手順ミスやらで作業を中断することになってしまった。
なのでリソース的にはまだそこまで余裕のあるPCではないのだけれども、OSがWindows10でGPUがNVIDIA GeForce GTX 1080(VRAM 8GB)なので現状でもなんとかなるだろうと判断して、インストールをする。
(2022/07/07 追記)PC再構築を行い、その後改めて再セットアップを実施している。
インストール手順
https://github.com/AUTOMATIC1111/stable-diffusion-webui#installation-and-running
GitHub上にはいくつかのインストール手順があるが、今回はその中の Automatic Installation on Windows を進めることにした。
また、インストールには以下のサイトを参考とさせていただいた。
Pythonのインストール
まず、Python 3.10.6 をインストールする。
Pythonのダウンロードページから『Windows Installer (64-bit)』をダウンロードして、インストーラを実行する。
インストーラを起動するとセットアップ画面が立ち上がるので、『Add Python 3.10 to PATH』にチェックを入れてから 『Install Now』をクリックしてインストールを行う。
※これでPythonにパスが通るはずなのだが、自環境では何故かパスが通らなかった(PCを再起動しなかったとかそんな理由かもしれない)ので、Stable Diffusion WebUIのインストール実行時に手動でパスを通す必要があった(後述)
(2022/07/07追記) 再セットアップ時には上記作業は不要であった。
『Setup was successful』が表示されたら『Close』をクリックしてインストールを完了する。
Gitのインストール
つづいて、Gitをインストールする。今回導入したのはGit 2.40.1。
Gitのダウンロードページから『64-bit Git for Windows Setup.』をダウンロードして、インストーラを実行する。
インストーラを起動するとセットアップ画面が立ち上がる。いくつかの設定項目を選択する必要があるが今回はすべてデフォルト設定でインストールを実行するため、特に設定を変更せずにすべて『Next』をクリックする。
インストールが完了すると『Completing the Git Setup Wizard』と表示されるので『Finish』をクリックしてインストールを完了する。
Stable Diffusion WebUI のインストール
Githubから最新のStable Diffusion Web UIをダウンロード
Stable Diffusion WebUIをインストールするフォルダを作成する。今回はEドライブ直下にsdフォルダを作成して<E:\sd>にインストールを行うことにした。
フォルダを作成したらコマンドプロンプトを起動して、作成したフォルダ直下へ移動する。
> E:
> cd sd
移動したらgit clone を実行して、Stable Diffusion WebUIをローカルに複製する。
> git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
プロンプトが返ってきたらインストール完了。
モデルデータのダウンロード・配置
Stable Diffusion WebUIの作成が完了したら、続いてAI画像を生成するために必要となる学習対象のモデルデータを入手する。
今回は実写風画像を作成するためCivitaiからBRAをダウンロードした。
https://civitai.com/ (※要ログイン、モデルデータの中には18禁画像が含まれるものもあるため閲覧注意)
サイトからモデルデータのファイル(拡張子:.safetensors)をダウンロードしたら、前項で作成したStable Diffusion WebUIのインストールフォルダへ移動し、models\Stable-diffusion フォルダに配置する。
今回の場合、<E:\sd\stable-diffusion-webui\models\Stable-diffusion\>となる。
画像補正ファイル(VAE)のダウンロード・配置
続けて、画像補正ファイル(VAE)をダウンロードして配置する。
https://huggingface.co/stabilityai/sd-vae-ft-mse-original/tree/main
上記サイトより『vae-ft-mse-840000-ema-pruned.safetensors』ファイルをダウンロードしたら、前項で作成したStable Diffusion WebUIのインストールフォルダへ移動し、models\VAE フォルダに配置する。
今回の場合、<E:\sd\stable-diffusion-webui\models\VAE\>となる。
Stable Diffusion WebUI の初回起動
Stable Diffusion WebUIの初回起動を行う。
インストールフォルダ直下に「webui-user.bat」があるので、ダブルクリックをして実行する(※)
コマンドプロンプト画面が立ち上がるので消さずに様子を見守る。
数分程度待つ。プロンプトが止まっているように見える時もあるがとにかく待つ。
プロンプト上に『Running on local URL: http://127.0.0.1:7860』というメッセージが出ていれば起動完了。
最終行に表示されるわけではないので、プロンプトの出力が止まっているように見えた時にこのメッセージが出ているかどうかを確認すると良いだろう。
WEBブラウザを起動して『http://127.0.0.1:7860』へアクセスする。
このようなWebUIが表示されたらインストール完了。
なお、今後Stable Diffusion WebUIを起動する時も今回と同じく webui-user.bat をダブルクリックして実行するだけでよい。
※初回起動時のエラー その1
初回セットアップ時のエラー、その1。
実際には上の画面になる前に、Pythonが起動せずに即エラーとなった。
Couldn't launch python
exit code: 9009
stderr:
Python
Launch unsuccessful. Exiting.
続行するには何かキーを押してください...
Pythonのインストールフォルダへパスが通っていないためにエラーが発生したと思われる。デフォルトのままインストールをしたので、おそらくユーザ名に含まれている半角スペースが悪さをしたのだろう。
インストールに実行した webui-user.bat の中に、Pythonのパスを指定する行があるので直接編集してPythonの実行ファイルを追加する。
> set PYTHON="C:\Users\<ユーザ名>\AppData\Local\Programs\Python\Python310\python.exe"
私の環境は前述の通りユーザ名に半角スペースが含まれているため、パスをダブルコーテーション(")で囲む。半角スペースが含まれていなければダブルコーテーションはたぶんなくても大丈夫だし、きっとこのエラー自体が発生しない。
※初回起動時のエラー その2
初回セットアップ時のエラー、その2。
しばらくインストールを見守っていると、git cloneの実行中にエラーが発生した。
RuntimeError: Couldn't clone Stable Diffusion.
Command: "git" clone "https://github.com/Stability-AI/stableddiffusion.git" "E:\sd\stable-diffusion-webui\repositories\stable-diffusion-stability-ai"
Error code: 1
stderr: '"git"' -AR}h--OR}hA
-\-v0--ob` t@C-EFA-B
続行するには何かキーを押してください...
エラーコードが"1"であることまでは分かるが、その後に出力されているエラーメッセージらしきものは文字化けして読めない。ただ、その前のCommand行から git clone コマンドを実行しようとしていたことは分かる。
git clone自体はStable Diffusion WebUIをインストールした時に正しく実行できていたのだから、おそらくこれも先程のpythonと同様パスが正しく呼び出せていないのだろう。面倒くさがらずにきちんとOS再起動してからインストールを試みた方がよかったのかもしれない。
そこで webui-user.bat をダブルクリックではなくコマンドプロンプト上で実行するようにして、かつ実行前にGitへのパスを明示的にセットしてから実行した。
すると、インストールが無事に再開された。
初回実行時にはPythonが実行されていたが、今回はgit cloneから実行されている。実行済みのところはさくっとスキップして途中から再開してくれる仕様になっているようだ。
Xformersのインストール
しばらく動かしていると、明らかにPCのリソースが足らないことが分かる。
少し大きな画像を生成しようとするとStable Diffusionそのものがエラーを吐いて異常終了してしまうからである。
そこでXformarsオプションを設定して、画像生成時に使用するVRAMの使用量を削減することにする。(エラーが出ていなくても基本的には設定していた方が良いオプションらしい)
webui-user.bat の編集
Stable Diffusion WebUI起動時に使用する webui-user.bat を直接編集する。
@echo off
set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=--xformers
call webui.bat
set COMMANDLINE_ARGS= の後ろに「--xformers」という引数を追加する。
xformersのインストール(webui-user.bat の起動)
編集して保存した後、再度 webui-user.bat を起動する。(既に起動済みであれば一旦停止する)
すると、自動的にxformersがインストールされて、そのままStable Diffusionが起動する。
E:\sd\stable-diffusion-webui>webui-user.bat
venv "E:\sd\stable-diffusion-webui\venv\Scripts\Python.exe"
Python 3.10.6 (tags/v3.10.6:9c7b4bd, Aug 1 2022, 21:53:49) [MSC v.1932 64 bit (AMD64)]
Version: v1.4.0
Commit hash: 394ffa7b0a7fff3ec484bcd084e673a8b301ccc8
Installing xformers
Collecting xformers==0.0.20
Downloading xformers-0.0.20-cp310-cp310-win_amd64.whl (97.6 MB)
---------------------------------------- 97.6/97.6 MB 15.2 MB/s eta 0:00:00
Installing collected packages: xformers
Successfully installed xformers-0.0.20
[notice] A new release of pip available: 22.2.1 -> 23.1.2
[notice] To update, run: E:\sd\stable-diffusion-webui\venv\Scripts\python.exe -m pip install --upgrade pip
Installing requirements
Launching Web UI with arguments: --xformers
Loading weights [fc2511737a] from E:\sd\stable-diffusion-webui\models\Stable-diffusion\chilloutmix_NiPrunedFp32Fix.safetensors
preload_extensions_git_metadata for 7 extensions took 0.00s
Running on local URL: http://127.0.0.1:7860
初期セットアップ
モデルデータの設定
WebUIを起動したときに表示される初期画面の左上にある [Stable Diffusion checkpoint] のプルダウンから、『モデルデータのダウンロード・配置』で配置したモデルデータを選択する。
VAEの設定
『画像補正ファイル(VAE)のダウンロード・配置』で配置した画像補正ファイル(VAE)を設定する。
[Setting] タブを開き、左部のメニューの中から[Stable Diffusion]を選択する。SD VAEのプルダウンから配置したVAEを選択する。
[Apply Setting] を押して、設定を反映させる。
動作確認
初期画面に戻って、prompt の項目にプロンプトを入力する。
1 girl, solo,
[Generate] をクリックして、画像が作成されたら動作確認完了。