最近話題の画像生成AI「Stable Diffusion」を、グラフィックボードを積んでいない自宅のパソコンのローカル環境にインストールしてみたので、その方法を書き留めておきたいと思います。
グラボなしのパソコンでStable Diffusionは使えるのか?
「Stable Diffusion」などの画像生成AIは、かねてからやってみたいと思っていたのですが、自宅のパソコンに導入するのは結構ハードル高く、しかも10GB程度のVRAMを搭載したグラボ(グラフィックボード)が必要なことが書いてあったので、あきらめていました。
ところが最近、グラボなしのパソコンでも動いたという報告を見かけたので、あまりスペックの高くない私のパソコンにダメ元でインストールしてみることにしました。
先に結論を書いてしまいますが、ちゃんと動きました。
ただ、生成に時間がかかります。
使用したデスクトップパソコンの主な仕様は以下の通り。
OS:Windows 10 home
CPU:Intel Core i5-9400(2.9~4.1GHz)
メモリ:8GB DDR4 2666MHz
ストレージ:256GB SSD + 1TB HDD
内蔵GPU:インテルUHDグラフィックス630
グラフィックボード:無し
画像生成AIを使用するにはかなり貧弱なスペックです(4年前は最新の機種だったのですが)。でも、Intel N100のマシンでもStable Diffusionが動いた、という報告も見かけたので、まったく動かないわけではないだろう、という予想はしていました。ただ、グラフィックボードの代わりにCPUとメモリを使うことになるため、メモリが8GBしかないのはネックになるかもしれないと思ったんですよ。
結果、画像生成に時間がかかるだけで、フリーズもせず動いているので、実験としては成功です。
で、画像生成にかかる時間についてです。
設定や選択したモデル、プロンプト(呪文)の量によって変わるのですが、
画像サイズ:256×256
Sampling steps:20
という設定で1分半~4分ぐらいです。
小さい画像であれば実用レベルので所要時間ですね。でも、Stable Diffusionの標準設定である512×512のサイズで生成しようとすると、7分から20分ぐらいかかります。
AIによる画像生成はランダム要素が大きく、生成してみないとどんな画像になるかわかりません。プロンプト(呪文)を細かく設定することである程度制御できますが、目的をもって画像を生成するなら、試行錯誤は必ず必要になります。
それなのに1枚生成するのに20分かかっていたらあまり実用的とは言えないので、スピードアップが今後の課題ですね。
とりあえず、今生成した画像をサンプルとして貼っておきます。
これは、「月明かりの都会に立っているドレスを着たツインテールの女の子」みたいな感じのプロンプトで生成しました。所要時間は1分43秒です。
同じようなプロンプトで512×512の画像も生成してみました。
あ、こっちの方がディテールがしっかりしていますね。でも、所要時間は7分33秒でした。512にしては速かったです。これらは「anything v5」というコンパクトなモデルデータを利用したのですが、コンパクトな分、処理が速いのかも。
グラボなしのWindowsパソコンにStable Diffusionをインストールする方法
それではStable Diffusionのインストール方法を書き留めておきます。
正直、私はほとんど理解しておりませんが、いろんなサイトを参考にしてようやく出来たって感じです。おそらくもう一度やれと言われても、すぐには出来ないと思うので、記憶が新しいうちに書き留めておきます。
ちなみに、グラボがあってもなくても、途中までの作業はまったく同じです。最後に立ち上げる際に、起動用のバッチファイルにテキストエディタ(メモ帳など)で、「(GPUじゃなくて)CPUを使うんだぜ」という指示を追加するだけです。
さて、それでは順を追ってお話しますね。
今回はWindows10のパソコンをベースに説明します。
1.Git for Windowsのインストール
これからいくつかのプリケーションをインストールするのですが、まずは「Git for Windows」というのをインストールします。こちらのサイトからインストーラーをダウンロードしてください。無料です。
詳しいことは省きますが(解らないので)、「Git」というのはバージョン管理システムのひとつで、後ほど「Stable Diffusion webUI」をGithubというところからコピーして持ってくるのに必要となります。
上記のページに飛ぶと「Download」というボタンがありますので、それをクリックするとインストーラーがダウンロードできます。ダウンロードしたらそのファイルを実行するだけでインストールできます。インストールする際は、いろんな選択肢が出てきますが、全てデフォルトのまま「次へ」を押し続ければ問題ありません。(たぶん)(私は大丈夫だった)
インストールが終わったら、とりあえずそのままにして、次に進みます。
Python 3.10.6のインストール
Stable DiffusionはPythonというプログラム言語で書かれているので、それを実行するためにはPythonのアプリが必要になります。(Pythonはコンパイルできないので、実行にはインタープリタが必要です)
Pythonはいろんなバージョンが無料で配布されておりますが、Stable Diffusionは「Python 3.10.6」で書かれているため、同じものをインストールします。
Python Japanの公式サイトの以下のページに行って、「Python 3.10.6」をダウンロードしてください。
ダウンロードページが別サイトになっていて少し不安になったのですが、ちゃんとインストールできました。
なお、ダウンロードしたインストーラーを立ち上げた際に、選択肢が出てくるのですが、これも上記サイトの指示に従ってください。説明図を引用しておきます。
この図のように、一番下の「Add Python 3.10 to PATH」にチェックを入れるのを忘れないようにしましょう。
Stable Diffusion webUIのインストール
はい。次はいよいよStable Diffusionの本体のインストールになります。「Stable Diffusion」というのはエンジン部分だけの名称で、それだけを入れても操作が難解になります。そこで、Stable DiffusionをWEBで簡単に操作できるようなユーザーインターフェースを作り、それをセットにしてパッケージにしたものが「Stable Diffusion webUI」です。これを自分のパソコンのローカル環境にインストールします。
「Stable Diffusion webUI」もいろいろと公開されているのですが、今回使用するのは、 Automatic1111さんが作成したものを使います。ここで公開されています。
これを先ほどインストールしたGit for Windowsを利用して、自分のハードディスクにまるっとコピーします。
まずはコピーするフォルダを作成しましょう。
私のパソコンはCドライブがパンパンなので、Eドライブに作りましたが、ゆとりのある方はCドライブで良いと思います。SSDの方がおそらく動作が速いです。
Stable Diffusion webUI本体は10GB弱なのですが、その後自分でモデルデータを追加することになり、モデルデータは大きいのだと10GBぐらいあるので、それを何種類も入れたらあっという間に膨れ上がります。50GBぐらいのゆとりがあるドライブにインストールしましょう。
フォルダを作成したら、そのフォルダをエクスプローラーで開いて、何もないところで右クリックします。すると、右クリックメニューに「Open Git Bash here」というのが出てきますので、それを選択してください。
すると、Gitのシェルが開きコマンドプロンプトが出てきます。コマンドプロンプトというのはテキストで命令を入力するツールことです。
この2行目の「$」のあとに命令を書きます。以下の文字列を入力してエンターを押してください。(コピペできます)
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
「ここのアドレスの中身のクローンを作りなさい」みたいな命令になります。
エンターを押すと、コピーが始まりますので、しばらく待ちましょう。ボリュームがあるので、回線によってはかなり時間がかかります。
これが終わると、先ほどのフォルダに「stable-diffusion-webui」というフォルダが生成されて、その中に一式格納されているはずです。
さて、ここまで来たらもう一息です。
Stable Diffusion webUIの設定
さて、ここまではグラフィックボードがあるパソコンにインストールする方法と同じなのですが、グラボを搭載していない場合は少し作業が増えます。
「stable-diffusion-webui」というフォルダを開くと、ズラッとフォルダとファイルが出てくるのですが、そのファイルの中から、
「webui-user.bat」
というファイルを探してください。
これがStable Diffusion webUIの起動用のファイルになるのですが、これをテキストエディタで開いて中を修正します。(メモ帳で良いです)
修正前はこうです。
@echo off
set PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=call webui.bat
これの「set COMMANDLINE_ARGS=」の後ろに、以下の文を追加します。
–skip-torch-cuda-test –upcast-sampling –no-half-vae –use-cpu interrogate –precision full –no-half
個々の意味は私にはわかりません(^-^;)
おそらく「–use-cpu」は「GPUじゃなくてCPUを使ってね」という意味で、「–no-half」は「半分とかケチくさいこと言わないで全部CPUでね」という意味ではないかと(笑)
そして、
「set PYTHON=」の後には先ほどインストールしたpython.exeのパスを、
「set GIT=」の後には先ほどインストールしたgit.exeのパスを記載します。
探すのが少し大変かもしれませんが、
ほとんどこれと同じ場所にあると思うので、探してみてください。
※この2行は空欄のままやっている方もいらっしゃるので必須ではないのかもしれません
修正後はこんな感じになります。
@echo off
set PYTHON=C:\Users\(アカウント名)\AppData\Local\Programs\Python\Python310\python.exe
set GIT=C:\Program Files\Git\cmd\git.exe
set VENV_DIR=set COMMANDLINE_ARGS=–skip-torch-cuda-test –upcast-sampling –no-half-vae –use-cpu interrogate –precision full –no-half
call webui.bat
※(アカウント名)のところはパソコンによって変わります。
これで準備万端!
修正後保存したら、このファイル「webui-user.bat」をダブルクリックして起動してください。
またシェルが開いて、黒い画面にいろんな意味不明のテキストが出始めます。初回はいろんな設定や追加ダウンロードがあるのか、ものすごく時間がかかります。
無事終了したら既定のブラウザに「Stable Diffusion webUI」が開きます。私はwebui-user.batの記述を間違えていたので、何度も途中で止まりました(^-^;)
無事立ち上がったら、もう画像生成は可能です。
初回は時間がかかりますが、2回目以降はすぐ(30秒ぐらい?)立ちあがります。あ、2回目以降の起動も同じ「webui-user.bat」をダブルクリックするだけです。ショートカットを作っておくとよいですね。
画像生成にはモデルデータが必要ですが、とりあえずデフォルトで1つ入っていますので、使用することはできます。でも、いろんなモデルを試した方が楽しいので、自分で探してみてください。無料でいろんなモデルが配布されています。「Stable Diffusion モデル おすすめ」などでググると、いろんな解説サイトが出てきますので参考にしましょう。
ダウンロードしたモデルは起動前に以下のフォルダにコピーするだけで使えるようになります。
「Stable Diffusion webUI」→「models」→「Stable-diffusion」
さあ、いざ! 画像生成の旅へ!
お わ り に
あー、もっといろいろ書こうかと思ったけど、長くなったのでいったんここで終了します。
話の続きは追記するか、別記事を起こしますね。
Stable Diffusion webUIをローカル環境にインストールする方法はいろいろあるみたいですが、これが最も簡単そうだったので、やってみました。
あ、自分でインストールした翌日に記事を書いたので、間違っていたらごめんなさい。実際、記憶があやふやな部分がありました(ぉぃ)。とりあえず参考程度ということで・・・(笑)
もしかしたら環境によってはこの方法では無理な可能性もあるので、いろいろググりながら進めてみてください。私もひとつのサイトを参考にしただけでは出来なかったです。5カ所以上のサイトを見比べながら進めていきました。
そのうち、一発で全部インストールできるような簡単なパッケージが出るかもしれませんが、2023年11月現在ではこれが精一杯ですね。
あとはどうやって画像生成の時間を短縮するかなのですが、最もシンプルな方法は高級グラフィックボードが搭載された高価なパソコンを買うことですね。一枚の画像が数秒で生成されるそうです。
ただ、今はまだおカネをかける時期じゃないと思っているので、とりえあず、このパソコンのメモリを増設するところから始めたいと思います。512×512の画像が3分以内に生成できれば、十分実用レベルになると思うんですよね。
それでは今回はこの辺で!
【追記2023/12/10】
メモリを追加したらスピードが速くなりました。こちらの記事でレポートしています。