画像生成AIを試してみたPart5【NMKD Stable Diffusion GUI】

AI

前回の記事で導入まで解説したNMKD Stable Diffusion GUIなんだけど、じつは苦労したのは導入じゃなくて、Surface Laptop Studioでちゃんと画像が生成できるようになるまでの過程。どんな苦労があったのか、同じ問題にぶつかった人のためになるかもしれないので共有しておきたい。

VRAM不足で生成できない?

NMKD Stable Diffusion GUIを導入してぶつかった壁がこれ。初期状態のまま画像を生成しようとすると、という表記とともに生成が中断されてしまう。この表記は一体何だと思って調べたところ、どうもメモリ不足でエラーを吐いているらしい。おかしいなー、Surface Laptop Studio、メモリは32GBもあるし、メモリ不足に陥るようなソフトはそうそうないと思うんだが…と思って更に調べたら、RAMじゃなくてVRAMの不足のことらしい。

RAMとVRAMは、コンピュータの記憶装置の一種です。RAMは、コンピュータが処理するデータやプログラムを一時的に保存する場所で、コンピュータが動作するために必要な大切なメモリです。一方、VRAMは、コンピュータのグラフィック処理に必要なデータを保存する場所で、例えばビデオゲームの画面表示や動画再生に使用されます。

RAMは、コンピュータが処理するデータを一時的に保存するので、RAMが多いと同時にたくさんの処理を行えます。VRAMは、グラフィック処理に特化しているため、VRAMが多いとグラフィックが滑らかに表示されます。

簡単に言うと、RAMはコンピュータが処理するデータを保存する場所、VRAMはグラフィックを表示するためのデータを保存する場所ということです。どちらもコンピュータにとって大切な役割を果たしているので、適切な量が必要です。

by chatGPT https://webapp.chatgpt4google.com/s/NDA2NDQz

画像生成はGPU上で行われるので、メインメモリ以上にGPU用のメモリ(VRAM)の多さが重要になるということらしい。でこのSurface Laptop StudioのGPU、RTX3050TiのVRAM容量は4GBだったんだけど、NMKD Stable Diffusion GUIの推奨VRAM容量を調べてみると、

「NMKD Stable Diffusion GUI」の使い方!画像生成AIを簡単にインストールして使おう
今回も画像生成AIに関する話題で Stable Diffusionを超簡単にインストール&使用できる「NMKD Stable Diffusion GUI」の使い方 を丁寧にご紹介するという内容になっています。 画像生成AIというと何かと話題

このサイトいわく、VRAM容量は10GB以上が望ましいとのこと。つまりVRAM4GBでは推奨動作環境の半分にもならない。全然足りない。ところでMacBook Proでメモリ不足にならなかった利用は、多分だけどあっちは外部GPUじゃなくてM1Pro内蔵のGPUを搭載していて、メモリはVRAMとRAMで16GBを共用しているからメモリ不足にならなかったんじゃないかと思ってる。実際MacBook Proで絵を生成中は、GPUはもちろんメモリも100%に張り付きの状態になっていたし。

つまりSurface Laptop StudioのVRAM容量は、公式の推奨ラインに全く届いてないし、何も考えずに使っては快適には使えないということになる。VRAM、今まであまり気にしたこともなかった…まあでも勉強になったし良しとするか。30万はいくらなんでも勉強代としては高いけど。

検討or実行した解決法

解決策1 GPUボックスを使う

まず力技の解決策がこれ。ノートパソコンでデスクトップ並みのGPU性能を与えるための方法の一つである。Surface Laptop StudioはThunderbolt端子を搭載しているので、GPUボックスにより高性能で大容量のVRAMを積んだGPUを積み、Thunderbolt端子でつなげてGPU性能をブーストするという手法が取れる…んだけどこれをまず検討するためにアマゾンの奥地に足を運びそして絶望した。

GPUボックスってかなり高いんだね。安いやつで4万から、しかももちろんこれ単体ではただの抜け殻。ここにGPUも積む必要があり、VRAM10GB以上のGPUってそのほとんどが10万スタート。これはつまりGPUボックスを利用したSurface Laptop Studioの性能ブーストは安めに見積もっても15万の出費になる。うん、これならデスクトップパソコンを導入するほうがずっと良い。というわけでGPUボックスでの拡張はロマンあるけどボツ。数年後には良い選択肢になることを祈る。

解決策2 Low Memory Modeに切り替える

ということでパソコン自体をどうにかするのは諦めて、NMKD Stable Diffusion GUI内の設定を弄ってどうにかする。まずはこのLow Memory Modeに切り替えてみる。通常モードで動かない場合にはこのあまりVRAMを消費しないモードでやってみてくださいとのことなので試してみる。

結論から言えばLow Memory ModeならVRAM4GBのRTX3050Tiでもちゃんと生成できた。できたんだけど、このLow Memory Modeには問題があって、

それがネガティブプロンプトが使えなくなってしまう。バグなのか仕様なのか、たまたま僕のパソコンでそういう現象が起きるのかはまだ断言できないんだけど、とにかくLow Memory Modeにするとネガティブプロンプトが使えない。

一応このモードならRTX3050Tiを使って生成できるので、生成スピードはMacBook Proにも負けないか多少上回るぐらいのスピードがあるんだけど、ネガティブプロンプトがないとやっぱり絵のクオリティが安定しない。ということで残念だけどこれもボツ。

解決策3 CPUを使って生成させる

もう一つの解決策として、GPUを使わず、CPUを使って絵を生成させるというものもある。CPUで生成すれば32GBもあるメインメモリの方が使われるのでメモリ不足にも陥らないし、Low Memory Modeと違ってネガティブプロンプトが使えないなんてこともない。基本的に全機能使用可能だけどこのCPU生成にも問題はあり、それは単純に生成が遅いこと。

グラフィック処理に特化したGPUとは違って、CPUはその道に特化しているわけではないので、CPUを使った画像生成のスピードは正直言ってとても遅い。生成を始めてから一風呂浴びて戻ってきたらやっと1枚生成されてるレベル。朝会社行く前に生成をはじめて、夕方に帰ってきても生成されているのは30枚にも満たない。

どれぐらい遅いか数値で出してみたいと思って検証してみたんだけど、512✕512の解像度、学習回数は25回のイラスト10枚を出力するのにかかった時間をMacBook Proと比べた結果がこちら。

MacBook ProSurface Laptop Studio(GPU使用)Surface Laptop Studio(CPU使用)
生成時間4分51秒8分05秒1時間00分25秒

CPU生成だと10枚生成するのに1時間もかかる。

まとめ

ここまで解決策を探したんだけど、正直どれも一長一短。今は全部の機能が一応利用できるという理由で最後のCPUを使った生成でどうにかしているんだけど、流石にその生成スピードの遅さはどうにも歯がゆい。ただ流石にAI生成のためだけにデスクトップを導入するのもなあ…ゲーム用途ならSurface Laptop Studioは十分通用するし。

とりあえずここまでの情報がVRAMが足りず困っている方々への助けにほんの少しでもなればいいなと思う。

コメント

タイトルとURLをコピーしました