5700GでStable Diffusionするぞ!

2024年1月12日

2022年ぶりか!
ということで技術ネタを自分用に書いておく。

Stable Diffusionという画像をAIで書かせるソフトがあるんだけど、結構お高いNVIDIAのGPUを使うのが定番らしい。
一応CPUでも動かせるけど、くっそ遅い。
画像生成の為だけにGPU買うのもなあー。と思っていたら、自分の使っているAMDの5700Gでもそこそこの速さで動くそうな。
正月あたりから検証しまくって、動作環境の構築手順を確定できたので記録に残しておこう!というのが今回のネタです。

以下、手順。

1.Python 3.10.6をインストール。

https://www.python.org/downloads/release/python-3106/
から「Windows installer (64-bit)」をインスコする。
インスコ画面で「Add Python 3.10 to PATH」にチェックをつけたら「Install Now」する。
バージョンは 3.10.6 厳守。

2.gitのインストール。

https://git-scm.com/download/win
から「64-bit Git for Windows Setup」をインスコする。
gitのバージョンは適当でOK。
世の開発者さんは既にgitがインストール済みであれば、ご自身の git.exe のパスをメモ帳にコピーしておく。(※1)
(c:\soft\git\git.exe 等)

3.stable-diffusion-webui-directml をコピーする。

「stable-diffusion-webui」ではなく「stable-diffusion-webui-directml」な!
cmdでコマンドプロンクトを開いて、

git clone https://github.com/lshqqytiger/stable-diffusion-webui-directml.git

する。
先頭のgitは※1の文字に置換する。
例:
c:\soft\git\git.exe clone https://github.com/lshqqytiger/stable-diffusion-webui-directml.git

4.webui-user.bat の編集その1。

エクスプローラで「%HOMEPATH%\stable-diffusion-webui-directml」を開いて、
その中にある「webui-user.bat」を変更する。
変更前

@echo off

set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=

call webui.bat

変更後

@echo off

set PYTHON=
set GIT=(※1)のパス。
set VENV_DIR=
set COMMANDLINE_ARGS=--use-cpu all --skip-torch-cuda-test --precision full --no-half

call webui.bat

5.webui-user.bat の実行その1。

「webui-user.bat」をダブルクリックする。
処理の最後に4GBの超巨大ファイルがダウンロードされるので、気長に待つ。
かなーり待たされて、ブラウザが例のページを開いたら成功。

6.初生成!

上の大きな入力欄(prompt)に、「orange tabby cat」と入力し、オレンジ色の「Generate」ボタンを押す。
すると、またまたかなーり待たされて茶トラのねこ画像が生成されるはず。
生成中は暇なので、タスクマネージャーを見るなり、youtubeでも見てればいいと思うよ!
タスクマネージャーのCPU使用率がほぼ100%に張り付いているはず。

待った結果、茶トラの画像が出てきたらここまでの手順は問題ない!という確認になる。

7.黒い窓を閉じる。

8.directmlモードに切り替える準備。

先程の画像生成は実はGPUではなく、CPUを使って行われたもの。
今度はGPUを使った動作に切り替えていく。

9.torch-directml の手動インスコ。

  ここが一番めんどい!
  cmdで黒い画面を立ち上げて、

%HOMEPATH%\stable-diffusion-webui-directml\venv\Scripts\activate.bat

を貼り付けて、ENTERキーを押す。
すると、こんなかんじで左側に(venv)と表示しているウインドウに切り替わるはず。
切り替わったら

pip install torch-directml

を貼り付けて、ENTERキーを押す。

文字がガーッと出るのでしばらく放置する。
左側が(venv)に変わったらインストールが終わった証拠なので、黒い画面を閉じる。

10.webui-user.bat の編集その2。

さっきいじった「webui-user.bat」をもう一度開いて、COMMANDLINE_ARGS の行を変更する。
変更前

set COMMANDLINE_ARGS=--use-cpu all --skip-torch-cuda-test --precision full --no-half

変更後

set COMMANDLINE_ARGS=--use-directml

11.webui-user.bat の実行その2。

「webui-user.bat」をダブルクリックする。
今度は10秒くらいで例のページが開かれるはず。

12.GPUで画像生成。

先程と同じ手順でpromptに、「orange tabby cat」と入力し、オレンジ色の「Generate」ボタンを押す。
すると、今度はそこそこ早い時間で茶トラのねこ画像が生成されます。
生成中のタスクマネージャーを見ると、しっかりGPUが動いていることが確認できるはずです。

13.好きに使え。

promptの文字をいじったり、モデルを追加でインストールしたりして好みの画像を作ってみてください。
俺環境(5700G × RAM 3200MHz 48GB)で試した場合、
CPUで画像生成すると4分、GPUで画像生成すると1分でした。
ちなみに、Stable Diffusion入門用と言われているRTX 3060 12GBを使って画像生成した場合は3秒で生成できるそうです。早すぎぃ!!!

まあそんな感じで俺はStable Diffusionをブログのサムネイルに使いたいと思っています。

ではではー。

PC

Posted by namahage