アイキャッチ
TOP > みっちょ Lab > 夢想の断章 > GTX 650でStable Diffusion web UIを動かす

GTX 650でStable Diffusion web UIを動かす

これまで過去の

10年前のGTX 650を搭載のPCでStable Diffusionを動かす方法 | クリゼミ
中古で2000円程度で手に入る10年前のグラフィックボードNVIDIA GeForce GTX 650を搭載したパソコンでStable Diffusionを動か...

などでは、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 がインストールされている事が前提となりますので、まだインストールが済んでいない方は

複数バージョン共存可能なPythonのインストール方法の解説 | クリゼミ
プログラミング言語環境『Python』の複数バージョンを共存させて使い分ける事を前提としたインストール方法を、クリゼミが40...
WindowsでGitをダウンロードしてインストールする方法 | クリゼミ
Windows環境においてGitをダウンロードしてインストールする方法について、40年の経験のプロがステップバイステップで丁寧に...

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

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

Stable Diffusion web UIのダウンロード

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

GitHub - AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI
Stable Diffusion web UI. Contribute to AUTOMATIC1111/stable-diffusion-webui development by creating an account on Git...

にアクセスします。

GitHubリポジトリ

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

Download ZIP

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

stable-diffusion-webui-master.zip

Stable Diffusion web UIのインストール

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

stable-diffusion-webui-masterコピー

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

貼り付け

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

stable-diffusion-webui

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

フォルダの中身

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

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

webui-user.bat編集

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

WindowsによってPCが保護されました

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

実行ボタンをクリック

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

メモ帳webui-user.bat

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

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

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

追記して上書き保存

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

モデルファイルのインストール

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

dependencies

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

Official download

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

stable-diffusion-v-1-4-original

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

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

Sign Up

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

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 』となるフォルダです。)

Stable-diffusionフォルダ

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

Stable Diffusion web UIを実行してみる

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

ダブルクリックして実行

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

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 』を編集からメモ帳で開いて

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 』をメモ帳で開いて

webui-user.bat

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

--skip-torch-cuda-test

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

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

Running on local URL

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

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

Stable Diffusion UI

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

beautiful sea

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

何も描かれない

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

エラーが出ている

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

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

バッチジョブを終了しますか

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

webui-user.bat

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

--precision full --no-half

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

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

ダブルクリックして実行

ついにStable Diffusion web UI始動!!

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

beautiful sea

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

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

プログレスバーが進んでいる

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

絵が描かれた

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

保存された画像

Stable Diffusion web UIの終了方法

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

バッチジョブを終了しますか

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

『×』ボタンで閉じる

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

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

(📝 2022/10/17 ♻ 2022/10/23)