見出し画像

【入門者】GTX 1650 縛りの Stable Diffusion


想定する読者

  • Stable Diffusion webUI (forge) を利用してみたいという人

  • GTX 1650 を持っている人

はじめに

AI画像生成はGPU(グラフィック・カード)のメモリを大量に利用します。コスパが最も良いおすすめのGPUは筆者も利用している RTX 3060 (12G版)ですが、円安の影響もあり、型落ちであるにも関らず4万円はします。

そこで、利用者の最も多いと思われるライトゲーマー定番のGPU GTX 1650 (4G版)でどの程度の事が可能か調べてみました。

最近 NVIDIA も AI 需要の増加に伴ってGPUドライバの改良を行い、CPUメモリへのフォールバック(スワップのように速度を犠牲にしてCPU側へ一部のメモリを移動する)機能を導入し、Stable Diffusion webUI forge という高速化・省メモリ化チューニングを行ったものも公開されています。これらの省メモリ恩恵を受ける事で、今までほとんど何もできなかったメモリ 4G クラスの GPU で、それなりに生成できるようになっています。

ただし、これからAI画像生成をはじめようと考えている方で懐に余裕のある方は、RTX 以上の利用を推奨します。理由は、GTX には tensor コアがないので、ただでさえ型落ちでメモリが少ないのにも関らず、同じ画像を生成しても、RTX より多くのメモリを消費してしまうからです。しかも tensor コアのない GPU 向けの実装をしていないAIコードは、緑色や真っ黒の結果を出します。

テスト環境

CPU:Intel i7-6700
メモリ:32GB
OS:Linux Mint 21.3 x86_64
GPU:GTX 1660ti(6g) + GTX 1650(4g) の二枚刺し
NVIDIA Driver バージョン:550.54.14

GPU二枚刺し(nvtop)

筆者の環境では、ATXマザーボードを利用しているので、PCI-EスロットにGPUカードを二枚刺す事が可能です。つまり、システムが利用するGPUは一枚目のカードで、CUDAコード(Stable Diffusion)が二枚目のカードを専有する事が可能になります。二枚のGPUカードが無くとも、CPUにGPU機能が内蔵されているものならば、同じ事が可能です。Windowsなら、物理的なディスプレイケーブルをCPU側のディスプレイ出力ポートにつなぐだけで可能になるはずです。

Stable Diffusion webUI forge

起動時に次の環境変数を指定してやる事で、利用するGPUを選択できます。

export CUDA_VISIBLE_DEVICES=1

Windowsの場合は

SET CUDA_VISIBLE_DEVICES=1

画像生成

480x720 解像度(LoRA使用)

まずは、480x720 pix の画像を生成(LoRAあり)します。一般にLoRAを利用すると使用メモリが増えます。
下記、宣伝です。無料版もありますので、ぜひ試してみてください。

生成時のログ(480x720 text2img)

つまり、30秒程度での生成になります。次に高解像にimg2imgします。

img2img 856x1280 解像度(LoRAあり)
生成時のログ(856x1280 img2img)

画像生成も成功し、極端な速度低下もみられませんでした。時間は30秒程度ですが、img2imgのデフォルトの振る舞いで、指定の32ステップではなく、12ステップしか回っていません。以前ではメモリ4GのGPUでは生成できなかった解像度です。

顔や手の修正をインペイントで施した後、作品の完成です。

完成

まとめ

これから本格的にAI生成をしてみようという方にはおすすめしませんが、既にGTX 1650を所有しているライトゲーミングPCユーザーで、リアルなAI画像生成を試してみたいという方にならば十分実用的に動作します。

この記事が気に入ったらサポートをしてみませんか?