GTX 650でStable Diffusion web UIを動かす

これまで過去の

などでは、Stable Diffusion を簡単に扱うために、cmdr2 氏が公開されている『 Stable Diffusion UI 』を使ってきました。

既に世の中にはこれ以外にも色々な Stable Diffusion を簡単にグラフィカルに扱う為の UI (ユーザーインターフェース) ツールが存在します。しかし高性能グラフィックボードを積んでいないマシンでも高確率で簡単に動作するものは少ないので、そういったものの代表格とも言える Stable Diffusion UI を使ってきた感じです。

しかしここに、多少大変でも頑張って動かす価値があると思える1つの別のツールがあります。

それが AUTOMATIC1111 氏が開発し公開されている『 Stable Diffusion web UI 』(通称 AUTOMATIC1111版 web UI ) というものです。

いわゆる機能の全部盛りとも言えるような多機能さを誇り、現時点で存在する Stable Diffusion 向けの UI ツールとしては最高峰と言っても良いのではないかと思います。

ただし高性能グラフィックボードを積んでいないパソコンにおいて、これまで使って来た Stable Diffusion UI ほど簡単に動かせるという事はありません。

ちょっとだけ骨の折れる作業になりますが、今回は VRAM が 1GB しかない NVIDIA GeForce GTX 650 を搭載したパソコンでこれを動かしてみましょう。

まず、前提となる環境の構築が必要となります。Python と Git がインストールされている事が前提となりますので、まだインストールが済んでいない方は

に従ってそれぞれインストールを行ってください。

では、いよいよ『 Stable Diffusion web UI 』のインストールに挑みましょう。

まずは『 Stable Diffusion web UI 』の公式 GitHub リポジトリ

にアクセスします。

緑色の『 Code 』と書かれたボタンをクリックし、出たメニューから『 Download ZIP 』をクリックします。

『 stable-diffusion-webui-master.zip 』というファイルがダウンロードされます。

このファイルをダブルクリックして開くと中に『 stable-diffusion-webui-master 』というフォルダがあるので、それを選択した上で右クリックして出たメニューから『コピー』を行います。

続けて Cドライブ直下の『 apps 』というフォルダ (なければ作成) の中で右クリックして出たメニューから『貼り付け』を行います。

更にこのフォルダの名前から最後の『 -master 』の部分を消して『 stable-diffusion-webui 』としておきます。

結果的に『 C:\apps\stable-diffusion-webui 』というパスのフォルダが存在し、その中はこのような感じになっているはずです。

私の手順通りに Python をインストールされた方は Python へのパスが通っていないので、このままでは Python が認識されません。ですのでここで一工夫を加えます。

このフォルダ内にある『 webui-user.bat 』を選択して右クリックし、出たメニューから『編集』を実行します。

『 Windows によって PC が保護されました』という警告が表示されるので、下線が引かれた『詳細情報』という部分をクリックします。

『実行』ボタンが表示されるので、それをクリックします。

メモ帳で『 webui-user.bat 』が開きます。

最初の『 @echo off 』と書かれた行の直後に

set path=C:\Python\Python310\;%PATH%

と追記して上書き保存します。

(私の記事の通りに Python がインストールされている前提のパスになっています。異なるフォルダにインストールされている方は、御自身の環境に合うように適宜変更されてください。)

先の Stable Diffusion web UI の GitHub ページを下方にスクロールし『 Automatic Installation on Windows 』にある『 dependencies 』と書かれている部分のリンクをクリックします。

『 Dependencies 』のページが開きますので、下方にスクロールし『 Official download 』と書かれたリンクをクリックします。

Hugging Face にある『 stable-diffusion-v-1-4-original 』の公式ページが開きます。

Hugging Face にログインした状態でないと必要なファイルがダウンロード出来ませんので、ログインしていない場合は右上の『 Log In 』をクリックして、まずログインしておきます。

もしもまだ Hugging Face のアカウントをお持ちでない場合は、先に『 Sign Up 』から登録を済ませて、ログインしてから以下に進んでください。(登録にはお金はかかりません。)

ログインを済ませたら先のページに戻り、Download the weights にある『 sd-v1-4-full-ema.ckpt 』と書かれたリンクをクリックします。

『 sd-v1-4-full-ema.ckpt 』というファイルがダウンロードされます。約 7.5GB とファイルサイズが大きいので時間がかかる可能性があります。気長に待ちましょう。

ダウンロードされたファイルを選択し、右クリックして出たメニューから『コピー』を実行します。

『 stable-diffusion-webui 』フォルダの中にある『 models 』の中の『 Stable-diffusion 』というフォルダ (『 Put Stable Diffusion checkpoints here 』( Stable Diffusion のチェックポイントファイルをここに配置) とファイル名が説明になった空のテキストファイルがある場所 ) を開きます。

(フルパスで『 C:\apps\stable-diffusion-webui\models\Stable-diffusion 』となるフォルダです。)

このフォルダの中の空いた場所で右クリックし、出たメニューから『貼り付け』を実行します。フォルダ内に『 sd-v1-4-full-ema.ckpt 』が出来上がった事を確認してください。

『 stable-diffusion-webui 』フォルダに戻って『 webui-user.bat 』をダブルクリックして実行します。

再び『 Windows によって PC が保護されました』という警告が表示されるので、下線が引かれた『詳細情報』という部分をクリックします。

『実行』ボタンが表示されるので、それをクリックします。

コマンドプロンプトが開いて初期化処理が進んでいきます。

画面を流れていくログに『 Found GPU0 GeForce GTX 650 』『 PyTorch no longer supports this GPU because it is too old. 』と表示されており、GeForce GTX 650 が認識されているけれども古すぎて対応していないという事が判ります。

暫く待つとエラーが表示されて止まってしまいました。

『 CUDA out of memory. 』と出ているのでグラフィックボードのメモリ ( VRAM ) 不足だと判ります。そもそもこの VRAM 容量のグラフィックボードで動くとは思えないので、グラフィックボードを使わずに CPU で動くように設定しましょう。

再び『 webui-user.bat 』を編集からメモ帳で開いて

『 call webui.bat 』と書かれた行より前に

set CUDA_VISIBLE_DEVICES=-1

と追記して上書き保存します。これでグラフィックボードが PyTorch から認識されなくなります。

では再度『 webui-user.bat 』をダブルクリックして実行してみましょう。

暫くすると『続行するには何かキーを押してください ...』と表示されて止まりますが、キーを押すと画面が閉じて終了してしまいます。

ログを見ると『 Torch is not able to use GPU; add --skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check 』と出ています。

読む限り、GPU が使えないのだったら『 COMMANDLINE_ARGS 』に『 --skip-torch-cuda-test 』を追加しろ…と言いたげですので、指示に従いましょう。

またまた『 webui-user.bat 』をメモ帳で開いて

『 set COMMANDLINE_ARGS= 』と書かれた行の『 = 』の後に

--skip-torch-cuda-test

と追記して上書き保存します。

それでは再び『 webui-user.bat 』をダブルクリックして実行しましょう。

Running on local URL: と書かれた後に『 http://127.0.0.1:7860 』と書かれているので、どうやらこのアドレスに行けば Stable Diffusion web UI が使えるという事のようです。

ウェブブラウザでそのアドレスを表示してみると、Stable Diffusion が使える UI 画面が表示されます。

それでは早速~!と試しに Prompt に

beautiful sea

と打ち込んで『 Generate 』ボタンを押してみますが…何度ボタンを押しても一瞬でこの状態に戻ってくるだけで何も絵は描かれません。

コマンドプロンプト画面を見てみると、残念ながらエラーが出ているようです。

何やら『 "LayerNormKernelImpl" not implemented for 'Half' 』と書かれたエラーメッセージが出ています。

とりあえずこのままでは何度やってもエラーが出るだけですから、まずはコマンドプロンプト画面で『 Ctrl 』キーと『 C 』キーを同時に押して、『バッチ ジョブを終了しますか (Y/N)? 』と聞かれるので『 y 』と打って Enter キーを押して一旦処理を終了します。

じゃぁ Half で無ければ良いのね?…という事で、またまた『 webui-user.bat 』を開いて…

『 set COMMANDLINE_ARGS= 』の行の先ほど『 --skip-torch-cuda-test 』と追加した後ろに更に半角のスペースを空けた後、

--precision full --no-half

と書き足して上書き保存します。はい、ノーハーフです、ノーハーフ。これできっと OK でしょう。

今度こそ!!ということで、気を取り直して『 webui-user.bat 』をダブルクリックして実行…

コマンドラインに表示されたアドレス『 http://127.0.0.1:7860 』を開き、Prompt に『 beautiful sea 』と打ち込んで『 Generate 』ボタンを押すと…

ついに描画処理が始まりました!

コマンドプロンプト画面でもプログレスバーが進んでいっているのが判ります。

5分ほど待つと描画が完了し、画面右側の枠内に描かれた絵が表示されます。

画像は描き終わった時点で『 C:\apps\stable-diffusion-webui\outputs 』というフォルダの中に自動的に保存されています。

終了させる時は、コマンドプロンプト画面で『 Ctrl 』キーと『 C 』キーを同時に押して、『バッチ ジョブを終了しますか (Y/N)? 』と聞かれるので『 y 』と打って Enter キーを押せば OK です。

ブラウザの画面は通常のウェブページと同じく『 × 』ボタンで閉じてしまって問題ありません。

以上、VRAM 1GB の GeForce GTX 650 のパソコンで無事に『 Stable Diffusion web UI 』を 動かす事が出来ました。

また実行したい場合は、改めて『 webui-user.bat 』を実行すればOKです。『 Stable Diffusion UI 』の時と同様、既にインストールなどは終わっているので次からは比較的短時間で起動は完了するはずです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です