2022年8月に公開された、画像生成AI、Stable Diffusion。
呪文とも呼ばれる、シチュエーションを記したPromptから画像を生成するtxt2img(t2i)と、アップロードした画像を元に別の画像を生成するimg2img(i2i)の2つの手法で画像を作成できます。
Stable Diffusionですが、Google Colabなどのクラウド環境を使って生成する方法と、自分のPCにインストールして使う方法の2つがあります。
前者は料金がかかる場合もありますが、自分のPCにインストールすれば、電気代(と情熱)だけで画像を大量に生成可能です。
Stable Diffusionを使うにはNVIDIAのGPUが必要
Stable Diffusionは、AIの処理にNVIDIAのGPUを使いますので、NVIDIA製のなにかしらのビデオカードが必要です。
最近ではAMDのビデオカードや、Apple、あるいはIntelのCPUを使って生成させることも可能になっているようですが、別途ソースコードの適用などが必要になりますので、一番手っ取り早いのは、NVIDIAのビデオカードを使うことです。
私がStable DiffusionをインストールしたPCには、もともとはGeForce GTX1080を搭載していました。GTX1080のVRAMは8GBですので、問題なく動作可能です。
最近では少ないVRAMでも動くように最適化されていますので、4GBのVRAMでも動くとは思いますが、8GB程度あると安心かと思います。
現在では、RTX3090を使用しています。
GTX1080と比べると圧倒的に生成速度が速いのですが、メリットもある反面、デメリットというか、高速すぎるが故の問題点もあります。
数ヶ月RTX3090を使ってAI絵を生成してみた感想を書いてみたいと思います。
※以前書いた記事から、だいぶ環境が変わってきましたので、大幅に加筆・訂正しています。
高品質な画像を生成するために必要なVRAM容量
Stable Diffusionは512×512pxの画像をもとに学習、画像を生成しますので、生成する画像も、512×512pxにすると最も最良の結果を得られるようです。(経験則)
ただ、512px四方の正方形って、小さくていまいち微妙なんですよね…
高品質な画像を作成するためには、一発でt2iで生成するのではなく、
1,比較的小さめの解像度、低scaleで大量生成
2,生成された画像から良さそうな物をピックアップ、scaleを上げて再生成
3,生成されたものをi2iでアップスケール
4,必要に応じてSD upscaleなどでディティールアップ
という手順になるかと思います。
※私が使っている方法で、いろいろな生成方法があると思います
上記の方法であれば、RTX3090のようにVRAMが24GBも無くても、RTX3060クラスのビデオカードでも十分AI絵を生成することは可能です。
VRAMが8GBであれば、1920×1088や1408×1408といった解像度で生成できますので、問題はないでしょう。
では、大容量VRAMが役に立つ場面は何かというと、学習機能を使う場合になると思います。
特にDreamBoothは24GBが必要になりますので、ガチでAI絵を生成する場合は、RTX3090クラスが必須になるかと思います。
コンシューマ向け最大のVRAM容量を誇るRTX3090
現状のNVIDIAのビデオカードに搭載されているVRAMの容量は、RTX3080までが~12GBで、RTX3090が24GBとなっています。
RTX4000シリーズでも、24GBのVRAMを搭載しているのはRTX4090のみとなっており、ハイエンドのみ24GB、それ以下は~16GBのVRAM、というラインナップになっています。
GTX1080から買い換えるにあたっては、どうせなら最強のやつを!ということで、当時ハイエンドだったRTX3090を導入してみました。
購入したのは、ZOTACの、主にBTOなどのPCに組み込まれているものです。
3スロット占有の巨大なビデオカードです。
※このカードは壊れてしまいました・・・
RTX3090を使ってStable Diffusionで遊んでみる
AI用にも最適化されているRTX3090。
早速、Stable Diffusionでの使い勝手を試してみたいと思います。
GTX1080の550%という圧倒的な処理速度
RTX3090を導入したので、Stable Diffusionのファイル生成速度を比較しました。
解像度は704×512px、120サンプリングでの生成速度を計測しています。
GeForce RTX3090:18秒
GeForce GTX1080:100秒
ということで、RTX3090の圧勝でした。
しかも、GTX1080に比べ、550%もの圧倒的処理速度。
Stable Diffusionで遊ぶにも、もってこいなビデオカードだと思います。(使い方もったいない)
私がStable Diffusionで絵を生成する際は、サンプリングを30程度に落とし、大量に生成→雰囲気や身体が破綻していないものを選んで、シード固定でサンプリングを上げて再生成、という手順を行っています。
30サンプリング程度であれば、5秒程度で生成できてしまうので、大量に生成した中から厳選するにはとても便利に使えます。
RTX3090をStableDiffusionで使うときに注意すべきこと
最初に購入したRTX3090は、なんと購入後2日で故障しました。
原因は、GDDR6Xの発熱による故障が濃厚です。StableDiffusionはVRAMにもとても負荷がかかるアプリケーションで、搭載されているVRAMの全容量に対し、連続して100%近い負荷がかかります。
マイニング並に連続酷使しますので、ビデオカードにかかる負担は極めて重たいアプリケーションです。
RTX3090に採用されているGDDR6Xは発熱がとても高く、StableDiffusionで連続生成しているときには、VRAMの温度はサーマルスロットリングが発動する105℃に達していました。
使っているケースはエアフロー重視のCorsair 680Xですので、ケース側の問題では無いと思われますが、CPUクーラーが水冷式だったため、ビデオカード背面に風が当たらず、DDR6Xの放熱が間に合わなかったように思われます。
24GBものGDDR6Xを搭載しているRTX3090は、カード裏面にも12GB分のGDDR6Xチップが搭載されています。
GPUチップ側は巨大なヒートシンクで冷却されますので良いのですが、バックプレート側は放熱が間に合わないように見受けられます。
RTX3090を使ってStableDiffusionでガンガン画像を生成する場合は、裏面のVRAM冷却用に、以下のアイテムを用意することを強くオススメします。
なお、RTX3090TiはVRAM容量は24GBと同じものの、GDDR6Xのチップ当たりの容量が倍になった関係で、背面に実装されていたチップが無くなり、すべてGPU側に集約されています。
発熱するパーツが少なくなっている上に、カード側の巨大なクーラーで冷却が可能ですので、RTX3090よりオススメかと思います。
RTX3090を中古で買うときに注意すること
RTX4090の発売もあり、中古では10万円そこそこに値下がってきたRTX3090ですが、中古で買うときには注意が必要です。
というのも、上記のようにVRAMの発熱による突然死などが起こりえるためです。
私はショップの保証で返金となりましたので良かったですが、これが個人から買ったと思うとかなり怖いです。
しかも、中古ではマイニングで使われていた個体も多いと思われ、それらのカードは100%負荷で酷使されていますので、マイニング同様にビデオカードに極めて強い負荷をかけるStableDiffusionで使うには、不安が残ります。
サーマルパッドの劣化によるVRAMの発熱を防ぐため、サーマルパッドを張り替えるという手もありますが、サーマルパッドの張り替えはビデオカードの分解を伴いますので、万一故障した際に、保証期間内であっても保証を受けられなくなるデメリットがあります。
マイニングで使われているかどうかの判別方法として、オイルのにじみ、ラベルの剥がれなどの見分け方があるようですが、これらも完璧とは言えません。
また、メルカリ、ヤフオクなどで出品されている品も、「マイニングはしていません」と出品者が言っていたとしても、本当かどうか確かめる術はありません。
一番は3年保証などが付く新品を購入することですが、それなりに高価ですので、中古のコストパフォーマンスには敵いません。
そこで、中古でRTX3090を買う際に、少しでもリスクを減らすためにオススメなのが、
・保証期間が長い中古販売店から購入
・バックプレート用GPUクーラーを追加して冷却能力を上げる
ことです。
安くなったといっても10万円近い価格ですから、壊れた時のショックは大きいです。
個人的には、ハイエンドビデオカードに関してはメルカリなどの個人間売買は極力避け、中古で買うならば保証のあるショップをオススメします。
RTX3090を導入してわかった、メリットとデメリット
メリット
なんといっても生成能力の高さでしょう。
Scaleを下げれば数秒程度で絵が連続して生成されますので、ストレスなくAI絵生成が可能です。
また、アップスケールする際も、1200×1600pxといった大きなサイズであっても2~3分程度で済みますので、処理能力の高さは絶大です。
私はDreamBoothは使っていないのですが、学習機能を使う方にとっては、24GBのVRAM容量は強みになると思います。
上記は768✕1024ピクセルでの生成例ですが、このレベルの絵が、5~10秒程度で生成されます。
もっとも、その後アップスケール、修正などを行うため公開レベルのものではありませんが、大量の絵をガチャするのにはやはり高速なビデオカードが一番です。
高速なビデオカードほど、大量にガチャが引け、レアに当たる可能性が高い、そんな感じでしょうか。
デメリット
価格、消費電力などの問題もありますが、一番の問題は、高性能が故に大量の絵を生成しすぎる、という点に尽きると思います。
夜間などに連続生成させて、朝チェックするような使い方をしているのですが、低Scaleにしておくと、朝起きると1000枚を優に超える枚数の絵が出力されています。
たとえば、1枚10秒で生成できる設定にした場合、1分で6枚、1時間で360枚。
6時間連続生成した場合は2,160枚もの絵が出力されることになります。
この中から、良さそうなものをピックアップすることになるのですが、当然人力の目視確認になりますので、これがすごい時間がかかるのです。
贅沢な悩み、といえばその通りなのですが、t2iガチャ用にはRTX3060くらいのビデオカードが良さそうな気がしています…。
出力される絵が多いということは、それだけストレージの消費量も多いですし、画像管理についてもWindowsの標準機能を使っていたら破綻します。
Eagleを使っていても、やはり1,000枚単位で出力された絵の管理は難儀します。
パワーリミットをかけてGPUの性能を落とす、という使い方でも良いかと思いますが、そうなるとRTX3090を導入した意味が無くなるような…ということで、RTX3090はもちろんオススメなのですが、金額も高いですし、入手性を考えると最初はRTX3060あたりが良さそうな気もします。
これからPCでAI絵生成をするのに最適なビデオカードはどれか
これからAI絵を作ってみたい、という場合、10万円近いビデオカードをポンと買うのはかなりハードルが高いと言えます。
ですので、オススメはミドルクラスのRTX3060あたりだと思います。
今では45,000円程度で購入可能ですし、ビデオメモリも12GBとそこそこ多めです。
RTX4060もリリースされていますが、こちらはVRAMが8GBなのでVRAM容量を重視するならRTX3060がオススメ、といえます。
↓のビデオカードはVRAMも12GBありますし、カードも比較的小型なので良さそうな気がします。
コメント
マイニングもお絵かきもGPUを計算に使っている点は同じなので、ガッツリ負荷がかかりますね。
ゲームのようにフレームリミッター(Vsync)は無いので無茶するとグラボが壊れます。
マイニングのようなBIOSを書き換えての低電圧化等もしないので、余計にヤバイですね。
中古等でVRAM温度が高い場合はサーマルパッドが劣化しています。
サーマルパッド交換で40℃ぐらい下がったという話も聞くので、交換した方が良いですね。
基本的に中古は劣化しているので避けた方が無難です。