画像生成AIのStable Diffusionが大きな話題になっている。高精度な画像を生成できるAIが無料で一般公開され、しかも出力した画像も基本的に自由に利用できるライセンスとなっている。
筆者もStable Diffusionをローカルで動作させる環境を構築して実行してみた。
(筆者が最初に参考にしたサイトの例題: a dog painted by Katsushika Hokusaiで生成してみた画像)
公式的な手順では、Python実行環境とCUDA Toolsを導入、AI関連のパッケージを順次導入し、Stable Diffusionの環境を構築する。その環境で、コマンドインタフェースでオプションを指定したうえでスクリプトを実行、画像生成するのが、本来のやり方である。しかし、それにはPythonに関する知識なども必要で、不慣れな人には敷居が高い。
そこで、前提パッケージを一括導入できたりGUIもついていたりするものも、有志によっていくつか公開されている。
(9/13追記)下記で紹介されている環境に差し替えた。前に試した環境よりもさらに多機能である。
https://gigazine.net/news/20220909-automatic1111-stable-diffusion-webui-how-to-use/
よりよい環境が出てくるたびに、Python(Anaconda)の仮想環境を削除、さらにPython自体入れ替えになるのでてんやわんや。
(追記ここまで)
筆者は下記で紹介されている手順を利用した。
https://golabo.net/stablediffusion_local_webgui/
これを選択した理由は、GUIによって、画像生成だけでなく画像の拡大・顔の調整という後処理も行えることである。
Stable Diffusionで生成される画像の解像度は、デフォルトで512*512である。これより大きい画像を生成しようとすると、必要なGPUのVRAM量が急増する。筆者の環境はVRAM11GBで、768*576程度が最大のようだ。それより高い解像度を指定するとエラーが発生する。VRAM使用量を最適化する設定もあるが、それでも768*768が限界で、またその設定をするとVRAM使用量削減と引き換えに画像生成の速度が低下する。
そのため必然的に、Stable Diffusionで生成する画像の解像度は低いままで、後処理で拡大となる。そこで、この手順で導入するGUIが便利というわけである。
また、Stable Diffusionは画像生成の学習を主に512*512解像度で行っていて、縦横の比率が1:1から大きく離れると奇妙な画像が生成される可能性が高くなるとのことだ。4:3(3:4)程度までならあまり問題は起きないようだ。
ところで、GPUの需要が急激に縮小し、価格を下げても在庫をさばききれない状況になっているようだ。Stable Diffusionが大流行すれば、NVIDIAにとってはGPUの需要を回復させるワンチャン救いの手になるかも?(無理すぎ)もっとも、Stable Diffusion用途とすれば2060-12GBか3060ばかり売れそうだが。この種の用途はVRAM多いのが正義だ。
以下のURL末尾に参考情報として各GPUでの画像生成の所要時間がある。
https://rentry.org/GUItard
3090Ti(おそらく3090無印も)は飛びぬけて高速だが、promptを変更しながら100枚単位で画像生成とかしない限り、2060(12GB版)~3060でも十分と思われる。1000番台以前は相当遅い。2000番台以降のAI向け機能強化の効果も大きいことがわかる。
※コメント投稿者のブログIDはブログ作成者のみに通知されます