回心誌

日々是回心

Stable Diffusion XLを触ってみる

AIにオリジナルの壁紙を生成させてみたいなー、ということで。

参考にしたのは以下。
まず、公式のドキュメントを読む。
Features · AUTOMATIC1111/stable-diffusion-webui Wiki · GitHub

日本語の分かりやすそうな記事も参考に。
【Stable Diffusion Web UI】Stable Diffusion XL(SDXL)の使い方 | 業界最安級GPUクラウド | GPUSOROBAN



とりあえず、モデルファイル類をダウンロードする。
Base
sd_xl_base_1.0.safetensors · stabilityai/stable-diffusion-xl-base-1.0 at main
Refiner
sd_xl_refiner_1.0.safetensors · stabilityai/stable-diffusion-xl-refiner-1.0 at main
VAE
sdxl_vae.safetensors · stabilityai/sdxl-vae at main


ダウンロードしたファイルを移動させる。
BaseとRefinerはstable-diffusion-webui\models\Stable-diffusionに移動させて、VAEはstable-diffusion-webui\models\VAEの配下に移動させる。



置いたらさっそく使ってみましょー。
というわけで、ちょっとぶりにwebui-user.batを叩いてA1111を起動。



メイン画面のcheckpointで「sd_xl_base_1.0.safetensors」を選択。
Refinerの設定を開いて、RefinerのCheckpointとして「sd_xl_refiner_1.0.safetensors」を選択。
Settingsタブを開き、「VAE」セクションの「SD VAE」で「sdxl_vae.safetensors」を選択。
さらにSettingsタブの「User interfase」セクションで「 [info] Quicksettings list」に「sd_vae」を追加。

Apply settings→Reload UIで設定を反映。


続いて、Refinerの解像度を変更する。
16:9でやってみたいので、ひとまず1280:720のHD画質に設定。

Reload UIしたせいか、Refinerのチェックポイントが外れていたので再設定。


promptを「wallpaper, cat sleeping, window」にして生成。



うーん…猫っぽい何かだけど、顔の向きとか体と顔のバランスがおかしいような…w

Sampling Stepsを20にしており、30秒くらいで生成されました。



続いて、Hires. fixでさらにFHD画質にもチャレンジ。
Hires. fixの設定を開いて「Resize widht to」を1920に設定して再度生成。(別のシードを使ってます)

VRAM使用量がMAX近くになり、厳しいかと思いましたが、なんとか耐えました。


うーん、前脚が多いかも…。


SDXLでもLora学習は可能っぽいので、うちで飼ってる猫(2匹)の写真で学習させてみたいな。



バッチサイズとかバッチカウントを増やすとこういうエラーが出る。

    modules.devices.NansException: A tensor with all NaNs was produced in VAE. This could be because there's not enough precision to represent the picture. Try adding --no-half-vae commandline argument to fix this. Use --disable-nan-check commandline argument to disable this check.

ひとまず言われた通り、起動バッチの引数に「--no-half-vae --disable-nan-check」を追記したら、とりあえずエラーの発生はなくなった。
ただ、あまり大きな画像を生成するのでないなら外したほうが速く生成できるらしい。