Stable Diffusionを快適に使うための最適解。現時点で最強のビデオカード“RTX3090”を試す

PCパーツ

2022年8月に公開された、画像生成AI、Stable Diffusion。
呪文とも呼ばれる、シチュエーションを記したPromptから画像を生成するtxt2imgと、アップロードした画像を元に別の画像を生成するimg2imgの2つの手法で画像を作成できます。

どんな画像が生成されるかは、以下のリンクでご確認ください。
肌色多め(stablediffusionkawaii)

Stable Diffusionですが、Google Colabなどのクラウド環境を使って生成する方法と、自分のPCにインストールして使う方法の2つがあります。
前者は料金がかかる場合もありますが、自分のPCにインストールすれば、電気代(と情熱)だけで画像を大量に生成可能です。

Stable Diffusionを使うにはNVIDIAのGPUが必要

Stable Diffusionは、AIの処理にNVIDIAのGPUを使いますので、なにかしらのビデオカードが必要です。
最近ではApple、あるいはIntelのCPUを使って生成させることも可能になっているようですが、別途ソースコードの適用などが必要になりますので、一番手っ取り早いのは、ビデオカードを使うことです。

私がStable DiffusionをインストールしたPCには、GeForce GTX1080を搭載しています。
VRAMは8GBですので、推奨の10GBよりは少ないですが、問題なく動作可能です。
4GBのVRAMでも動くように最適化されたStable Diffusionもあるようですので、動かすだけであれば、VRAMの容量はあまり気にしなくても大丈夫です。

高品質な画像を生成するために必要なVRAM容量

Stable Diffusionは512×512pxの画像をもとに学習、画像を生成しますので、生成する画像も、512×512pxにすると最も最良の結果を得られるようです。(経験則)
ただ、512px四方の正方形って、小さくていまいち微妙なんですよね…

Stable Diffusionが出力する解像度は、64px単位で指定する必要があります。
VRAM8GBに収まるギリギリの解像度は、私の環境では704×512でした。
これ以上大きな画像を作成すると、VRAM容量が足りなくなり、エラーが出てしまいます。

もっと大きな解像度で出力したい!という場合は2通りのやり方があって、1つはメモリ消費量を抑えた版のStable Diffusionを使うこと。ただし、機能も削られているっぽいので、微妙な気がします。
もう1つは力業で、よりVRAMの多いビデオカードにすること。

コンシューマ向け最大のVRAM容量を誇るRTX3090

現状のNVIDIAのビデオカードに搭載されているVRAMの容量は、RTX3080までが~12GBで、RTX3090が24GBとなっています。
GTX1080の8GBから増やすにあたって、どうせなら最強のやつを!ということで、RTX3090を導入してみました。

購入したのは、ZOTACの、主にBTOなどのPCに組み込まれているものです。
3スロット占有の巨大なビデオカードです。

RTX3090を使ってStable Diffusionで遊んでみる

AI用にも最適化されているRTX3090。
早速、Stable Diffusionでの使い勝手を試してみたいと思います。

GTX1080の550%という圧倒的な処理速度

RTX3090を導入したので、Stable Diffusionのファイル生成速度を比較しました。
解像度は704×512px、120サンプリングでの生成速度を計測しています。

GeForce GTX1080:100秒
GeForce RTX3090:18秒

ということで、RTX3090の圧勝でした。
しかも、GTX1080に比べ、550%もの圧倒的処理速度。
Stable Diffusionで遊ぶにも、もってこいなビデオカードだと思います。(使い方もったいない)

私がStable Diffusionで絵を生成する際は、サンプリングを30程度に落とし、大量に生成→雰囲気や身体が破綻していないものを選んで、シード固定でサンプリングを上げて再生成、という手順を行っています。
30サンプリング程度であれば、5秒程度で生成できてしまうので、大量に生成した中から厳選するにはとても便利に使えます。

1024×640の出力も可能なVRAM容量

RTX3090は24GBのVRAMを搭載していますが、この容量の場合、1024×640ピクセルの出力が可能でした。
縦が1000pxを超えると、かなり大きく感じます。
試しに、PromptとSeedを固定し、同じ縦横比にした画像を、RTX3090、GTX1080で出力してみました。
縦横比が変わると全く別の画像になるので、設定した解像度は以下としました。

GeForce GTX1080:640×512
GeForce RTX3090:960×768

それぞれ出力されたのは以下の画像となります。

まずは、GTX1080から。
主線がしっかりし、ゲームっぽい塗りの仕上がりになっています。

お次はRTX3090。
まったく別の画風になっており、女の子も2人に増えてます。
塗りも透明感が出て、淡い色使いで独特の雰囲気を持っています。
ライティングも綺麗で、いい雰囲気だと思います。

構図で一番異なるのが、女の子が2人になっている点ですが、実は、1girlと人数指定を入れています。
ただ、なぜ2人になるのかという点ですが、予想するに、512×512のサイズで描くと、幅が960pxあるので、2人分描けちゃうので描いてしまえ…ということになったと思われます。
実際、構図や髪型、服装も似ていることが多いです。

上記の雰囲気になるよう、GTX1080でいろいろ試してみましたが思うように行かなかったので、おそらく生成する際の解像度が高いと、こんな感じで細かいところまで書き込んでくれるように思います。
VRAM容量ですが、大は小を兼ねるということで、Stable DiffusionのためにNVIDIAのビデオカードを買うなら、24GBの容量を誇るRTX3090が良さそうに思います。

コメント

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