Stable Diffusion XLとは?
Stable Diffusion XLとは「Stable Diffusionでより高画質なAIイラストを作成するもの」という理解で良いのではないかと思います
(正確に言うと「Stable Diffusion用の高画質画像モデル」な「モデル」という話みたいです)
Stable DiffusionではGeForce1060/1660のメモリ6Gバイトなど「ビデオメモリが6Gバイト以下のビデオカード」でも(無理やり)動いていたのですが、Stable Diffusion XLを使う為にはビデオカードのメモリが8Gバイト以上など無いと難しいかもしれません
(私はGeForce RTX 3060(12GB)に交換したタイミングで試しました)
(※)私は12Gで試したので8Gについてはコメントできないのですが、公式で「8G以上で動くはず」と書いてあるみたいです
https://ja.stability.ai/blog/sdxl10
前回の記事
CUDA/cuDNN/git/pythonなどの事前インストールを含めた詳細なインストール方法については前回の記事をご覧ください
(※)又は「Stable Diffusion インストール」などで検索してみてください。記事の年月日が新しい程正確な記事になると思います(私の前回の記事も事前インストールの部分の情報は古めになるので)
Stable Diffusion XL用の環境を追加でインストールする
Stable Diffusion XLを使う為の環境は「既存のStable Diffusion環境」をそのまま使いまわしても良さそうなのですが、今回はF:\sdtestというフォルダに新規にStable Diffusion環境をインストールして、そこでStable Diffusion XLを試す事にします
(「XL用の高画質なモデル」を使っているだけで「Stable Diffusionを使う」という意味では全く一緒かもしれません)
1.ここではFドライブにsdtestというフォルダを作ってそこで作業します
(CドライブなりDドライブなり読み替えてください)
2.Fドライブにsdtestフォルダを作成します
3.Anacondaプロンプト(sd)でF:\sdtestに移動します
(※)Anacondaプロンプトというのはpythonが使えるコマンドプロンプトの事です
(※)AnacondaでStableDiffusion用の環境をsdなどの名前で作っていた場合は
conda activate sd
コマンドなどで環境を切り替えておいてください(pythonのvenvで環境切り替えしてる人はその方法で切り替えるなりしてください)
cd /D F:\sdtest
4.F:\sdtestフォルダで下記のコマンドを実行します
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
5.git cloneが終了するとF:\sdフォルダの下に
stable-diffusion-webui
フォルダ以下の大量のフォルダが作成されます
6.F:¥sdtest\stable-diffusion-webuiフォルダの下にある
webui-user.batファイルを右クリックしてメニューから「編集」を選びます
7.メモ帳で開いたファイルの中で
set COMMANDLINE_ARGS=
の行を下記の様に変更します
set COMMANDLINE_ARGS=--xformers --no-half-vae
(※)グラボのメモリ8Gなどメモリ不足気味な場合は下記の記述の方がいいかもです
set COMMANDLINE_ARGS=–medvram –no-half-vae –opt-sdp-attention –opt-sdp-no-mem-attention
8.メモ帳の「ファイル/上書き保存」メニューで上書き保存します
モデルのダウンロード
Stable Diffusion XLのインストール方法の説明を色々見ると、モデルのダウンロードとして
Baseモデル(SDXL 1.0 Base)とrefinerモデル(SDXL 1.0 Refiner)をダウンロードするという説明があるのですが、ここでは省略します
(デフォルトのモデルってインストールの確認をする程度で、結局みんな自分が使いたいモデルに変えてる気がするので最初から便利なモデルを使う形でここでは説明します)
他の方の説明には書いてあるので必要でしたらそちらをご覧ください
その代わりに、ここではCIVITALから「Raemu XL v3.5 Lightning」というモデルをダウンロードします
(※)上記のBaseモデル相当のみ、ここではRefinerモデルは使わない説明をします
(Refinerを使うと更に詳細な画像にできるみたいなのですが、無くても十分高画質な気がしたので。興味がある方は別途使い方を調べてみてください。Refinerモデルをダウンロードして画面で設定するだけですが)
下記のページの「Download」ボタンでダウンロードしてください
ダウンロードしたファイル(raemuXL_v35Lightning.safetensorsファイル)を
F:\sdtest\stable-diffusion-webui\models\Stable-diffusion
フォルダにコピーしてください
VAEのダウンロード
1.下記のURLを表示し、sdxl_vae.safetensorsファイルをダウンロードします
ダウンロードしたsdxl_vae.safetensorsファイルを
F:\sdtest\stable-diffusion-webui\models\VAE
フォルダにコピーしてください
Stable Diffusion XLの起動
1.先ほどのAnacondaプロンプト(pythonが使えるコマンドプロンプト)で
F:\sdtest\stable-diffusion-webuiフォルダに移動します
(※)ドライブ名とsdtestフォルダの部分はご自身の環境に読み替えてください
cd /D F:\sdtest\stable-diffusion-webui
2.下記のコマンドを入力してwebui-user.batを起動します
(※)初回起動時のみ時間がかかりますが2回目からはすぐに起動します
webui-user.bat
3.起動するとStable Diffusionの画面がブラウザで自動起動しますので、右上の「Stable Diffusion checkpoint」で「raemuXL_v35Lightning.safesensors」を選択します
4.ツールバーの「Settings」を選択します
5.メニューの「VAE」を選択し、「SD VAE」の項目を「sdxl_vae.safetensors」に変更します
6.メニューの「Settings in UI」を選択し、「Info」項目に「sd_vae」と入力して表示された選択肢から「sd_vae」を選択し、「Apply settings」ボタンを押してから「Reload UI」ボタンを押します
7.「SD VAE」項目が追加表示されているので「sdxl_vae.safetensors」を選択します
呪文の入力
AI画像の呪文が載ってるサイトのchichi-puiさんで、「じん@匿名」さんの作られた「おかしな世界」というAI画像の呪文を使ってみます(使ってるモデルは異なりますので少し違う画像になります)
1.上記のパラメータをStable Diffusion XLに入力し、WidthとHeightを1024×1024などにして「Generate」ボタンを押します
(※)Stable Diffusion XLでは「XL用のモデルを使う」だけでなく「画像サイズを大きくしないと高画質のイラストにならない」みたいです
■サイズ例
1024x1024
1152×896
896×1152
1216×832
832×1216
1344×768
1536×640
640×1536
2.(しばらく待つと)画像が作成されます
3.作成された画像は
F:\sdtest\stable-diffusion-webui\outputs\txt2img-images\2024-05-26
の様に
F:\sdtest\stable-diffusion-webui\outputs\txt2img-images\(今日の日付)
フォルダに連番で作成されます
4.改めて作成された画像は下記の様になり、「Stable Diffusion」に比べて「Stable Diffusion XL」のモデルはより高精細な画像を作れる様になります
色々なモデルをダウンロードする
(※)これはやらなくてもいいです
「Stable Diffusion」でも「Stable Diffusion XL」でも「色々な絵柄のモデル」があり、「同じ呪文」を使っていても「モデルを変更する事で絵柄が結構変わる」のもAI画像の面白い所です
いくつかのモデルを紹介します
参考になる呪文サイト
AI画像の呪文を参考にできるサイトとしてchichi-puiさんなどがあるかと思います
おまけ情報
(※)むしろここが本題かもしれません
今回、呪文の参考例として「じん(@匿名)」さんという方の「おかしな世界」という画像の呪文を紹介させて頂きました
このページの作者の名前(「じん(@匿名)」)さんの部分をクリックすると、その人のAI画像一覧ページが表示されます
更にそのページの右上に「R-18」とか「R-18」が押せる場合は、「そっち系」の呪文一覧を見る事ができます
各ページには5~10画像程度の画像が表示されていますが、「同じ呪文」で画像100枚、画像1000枚を自分の環境で作成すると「100枚、1000枚の違う画像」が表示できる訳です
これ以上の説明は不要ですよね?
追記(GeForce GTX 1660 Super→GeForce RTX 3060 12Gに変更してみて)
今回は「Stable Diffusion XL」について説明していますが、GeForce GTX 1660 Super(メモリ6G)では通常の「Stable Diffusion」すら動かすのがぎりぎりで「プラスアルファの色々」が難しそうだったので今更ですが(メモリが12Gある)GeForce RTX 3060(メモリ12G)に変更しました
使っているPCは5年前位に自作で組み上げたRyzen5 3600のPCだったのですが、下記のトラブルが発生しました
■トラブル1
組み立て方がまずかったのかケースとマザーボードの間にGeForce 1660が引っかかってしまって取れずマザーボードのネジ全部外してマザーボードをずらして外すみたいなトラブルが発生しました
■トラブル2
GeForce 1660→GeForce 3060ってビデオカード本体を物理的に交換するだけでドライバの再インストールとかは不要なはず・・・と思っていたのですが交換後3060を認識せず、仕方ないのでDDUでドライバをアンインストールしてから最新ドライバをインストールし直しました
■トラブル3
交換前のビデオカードがメモリ6GだったのでStable Diffusionがメモリ不足で起動しなかった為
Stable Diffusionの設定で
set COMMANDLINE_ARGS=–xformers –no-half
の様にしていたのですが、3060に変更した所、画像生成速度が4倍になるはずが2倍程度にしかならず「あれ?速度こんなもんだっけ?」と思いながら色々試した所、–no-halfオプションが付いてると3060では遅くなる事が分かり
set COMMANDLINE_ARGS=–xformers
に変更した所、画像生成速度は4倍になりました
■トラブル4(重要)
このトラブルは私だけかもですが、当初、私の環境では
「どうやってもStable Diffusion XLが全く動かない」状況に陥っていました
当初は完全に原因不明で、「ビデオカードのメモリ12Gバイトでも足りないのか?」とか「本体メモリ32Gバイトでは足りないのか?」とか「設定間違ってる?」とか悩んだのですが、結論から言うと「私のPCはメモリ32Gだったので「Windowsの仮想メモリとかいらないだろう?」「仮想メモリ設定とかOFFにした方が速いだろう?」とか思って仮想メモリの設定をOFFにしていたのが原因でした。
仮想メモリを自動設定にしたらStable Diffusion XLも普通に動くようになりました・・・
コメント