画像生成AIとしてStable DiffusionをGPUの無いPCで動かす話です。
前回まではStabilityMatrixの方を動かしていましたが、
今回はStable Diffusionの方です。
使うPCはStabilityMatrixが動いたPCで、
今年になって買った中古で¥10K未満のダイナブックなんですが、
Stable Diffusionを使い始めてたらメモリ不足になるので、
RAMを8GBから16GBに交換しました。
スペックとしては
Core i3 4100M(コア2、スレ4、2.5GHz)
RAM16GB(8GB*2)
SSD500GBに交換済。
世の中、だいたいやっている人がいるもので、
Stable Diffusionをwindowsに導入する方法そのものはネットで検索すれば、
GPUを使おうがどうしようが同じようなもので、そちらを参考にすればいいので、
導入手順の詳細は割愛します。
それを参考にして、低スペPCでひっかかったところや、
なんかうまくいかなかったところをメモとして残します。
必ずしも同じ事象になったり、同じ解決方法になるとも限りませんが、参考程度になるかな。
勿論、自己責任です。
まず、ツール類のダウンロードから始めますが、
だいたいはpython、ツール導入ではgitを前準備で入れておきます。
これまで、こういった開発系のツールはだいたいubuntuとかLinuxでやってしまうので、
あまり気にしていなかった。
windowsではeclipsくらいかな。
今回、windowsでgitを使うのは初なので、pythonとgitを入れた。
pythonはeclips入れたときに入っているはずなのだが、インストール時にパスを通すチェックを入れる必要があったので、
今回は個別にインストールした。
https://www.python.org/downloads/release/python-3106/
https://git-scm.com/downloads
インストールはだいたいデフォルトで、pythonのインストールでパスを通すチェックはした。
gitをインストールすると、デスクトップで右クリックして「その他のオプションを確認」を選択すると、
open git bash hereが選択できるようになる。
↓
選択して表示されたコマンドプロンプトでgitコマンドやpipを実行することができるようになる。
gitで以下を実行して、今回やろうとしているStableDiffusion本体のダウンロードする。
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
これを実行すると、デスクトップに「stable-diffusion-webui」フォルダが現れて、
ここが実行環境になるようです。
今回、デスクトップで右クリックしてプロンプトを表示してそのままgitを実行してしまったので、
デスクトップにフォルダが作られてしまったが、
ホントはCドライブ直下とかの方が良かったかもしれない。
pipは後述の「webui-user.bat」実行時にjsonmergeとかが見つからないとかのメッセージが出るので、
pip install jsonmerge
pip install xformers
をやってみた。
ただ、これだけだと状況変わらなかったので見てみると、
pipでは
Cドライブのユーザのフォルダ(userユーザだとc:¥users¥user¥かな。usersはカタカナでユーザーとかだったりしますが)
のところにある
「Appdata¥Local¥Programs¥Python¥Python310¥Lib¥site-packages」
のところに「jsonmerge」が作成されて入っただけだったので、
今回作った「stable-diffusion-webui」フォルダ配下にはなかった。
しょうがないので、「jsonmerge」のフォルダごと
今回作った「stable-diffusion-webui」の中にある
「venv¥Lib¥site-packages」の中にコピーした。
「xformers」のフォルダも同様。(xformersはNVIDIA製のGPUのみのようなので、CPUのみの場合は不要っぽい)
これが本来のやりかたなのかはわからんが、まあ、動作した。勿論、自己責任です。
話は前後するが、
「stable-diffusion-webui」の中にある webui-user.bat
をダブルクリックして実行することになるが、
GPUが無い環境でそのままバッチを実行しても動作しないようで、
表示されるメッセージを見ると、オプションで
--use-cpu all --no-half --no-half-vae --skip-torch-cuda-test
をつけると良さそうな感じ。
試しに、「webui-user.bat」をメモ帳で開いて中身を見てみると、
「set COMMANDLINE_ARGS=」があったので、ここを
set COMMANDLINE_ARGS=--use-cpu all --no-half --no-half-vae --skip-torch-cuda-test
にして、ファイルを保存して、再度「webui-user.bat」を実行したら、ブラウザが起動した。
そのまま画像生成をしてみた。
時間はかかったが、画像生成できた。
StableDiffusionは画像から別の画像を生成することもできるし、
いろいろ試せそう。
時間がかかることがわかると、
本格的に画像生成していくなら、時間を短縮するためのコストとして
GPUを導入したいと思えるようになる。
前回まではStabilityMatrixの方を動かしていましたが、
今回はStable Diffusionの方です。
使うPCはStabilityMatrixが動いたPCで、
今年になって買った中古で¥10K未満のダイナブックなんですが、
Stable Diffusionを使い始めてたらメモリ不足になるので、
RAMを8GBから16GBに交換しました。
スペックとしては
Core i3 4100M(コア2、スレ4、2.5GHz)
RAM16GB(8GB*2)
SSD500GBに交換済。
世の中、だいたいやっている人がいるもので、
Stable Diffusionをwindowsに導入する方法そのものはネットで検索すれば、
GPUを使おうがどうしようが同じようなもので、そちらを参考にすればいいので、
導入手順の詳細は割愛します。
それを参考にして、低スペPCでひっかかったところや、
なんかうまくいかなかったところをメモとして残します。
必ずしも同じ事象になったり、同じ解決方法になるとも限りませんが、参考程度になるかな。
勿論、自己責任です。
まず、ツール類のダウンロードから始めますが、
だいたいはpython、ツール導入ではgitを前準備で入れておきます。
これまで、こういった開発系のツールはだいたいubuntuとかLinuxでやってしまうので、
あまり気にしていなかった。
windowsではeclipsくらいかな。
今回、windowsでgitを使うのは初なので、pythonとgitを入れた。
pythonはeclips入れたときに入っているはずなのだが、インストール時にパスを通すチェックを入れる必要があったので、
今回は個別にインストールした。
https://www.python.org/downloads/release/python-3106/
https://git-scm.com/downloads
インストールはだいたいデフォルトで、pythonのインストールでパスを通すチェックはした。
gitをインストールすると、デスクトップで右クリックして「その他のオプションを確認」を選択すると、
open git bash hereが選択できるようになる。
↓
選択して表示されたコマンドプロンプトでgitコマンドやpipを実行することができるようになる。
gitで以下を実行して、今回やろうとしているStableDiffusion本体のダウンロードする。
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
これを実行すると、デスクトップに「stable-diffusion-webui」フォルダが現れて、
ここが実行環境になるようです。
今回、デスクトップで右クリックしてプロンプトを表示してそのままgitを実行してしまったので、
デスクトップにフォルダが作られてしまったが、
ホントはCドライブ直下とかの方が良かったかもしれない。
pipは後述の「webui-user.bat」実行時にjsonmergeとかが見つからないとかのメッセージが出るので、
pip install jsonmerge
pip install xformers
をやってみた。
ただ、これだけだと状況変わらなかったので見てみると、
pipでは
Cドライブのユーザのフォルダ(userユーザだとc:¥users¥user¥かな。usersはカタカナでユーザーとかだったりしますが)
のところにある
「Appdata¥Local¥Programs¥Python¥Python310¥Lib¥site-packages」
のところに「jsonmerge」が作成されて入っただけだったので、
今回作った「stable-diffusion-webui」フォルダ配下にはなかった。
しょうがないので、「jsonmerge」のフォルダごと
今回作った「stable-diffusion-webui」の中にある
「venv¥Lib¥site-packages」の中にコピーした。
「xformers」のフォルダも同様。(xformersはNVIDIA製のGPUのみのようなので、CPUのみの場合は不要っぽい)
これが本来のやりかたなのかはわからんが、まあ、動作した。勿論、自己責任です。
話は前後するが、
「stable-diffusion-webui」の中にある webui-user.bat
をダブルクリックして実行することになるが、
GPUが無い環境でそのままバッチを実行しても動作しないようで、
表示されるメッセージを見ると、オプションで
--use-cpu all --no-half --no-half-vae --skip-torch-cuda-test
をつけると良さそうな感じ。
試しに、「webui-user.bat」をメモ帳で開いて中身を見てみると、
「set COMMANDLINE_ARGS=」があったので、ここを
set COMMANDLINE_ARGS=--use-cpu all --no-half --no-half-vae --skip-torch-cuda-test
にして、ファイルを保存して、再度「webui-user.bat」を実行したら、ブラウザが起動した。
そのまま画像生成をしてみた。
時間はかかったが、画像生成できた。
StableDiffusionは画像から別の画像を生成することもできるし、
いろいろ試せそう。
時間がかかることがわかると、
本格的に画像生成していくなら、時間を短縮するためのコストとして
GPUを導入したいと思えるようになる。
※コメント投稿者のブログIDはブログ作成者のみに通知されます