高画質の美少女、動物、風景を作成する【Stable Diffusion Web UI】
今回は高画質、高解像度のAIイラストの作成方法となります。原理は同じなので美少女、動物、風景、人物などあらゆるジャンルでも同じ操作です。
画像生成AIはStable DiffusionでツールにはStable Diffusion Web UIを使用します。その他にControlNet、Tiled Diffusion & VAEというWeb UI拡張機能を使用します。どれもオープンソースですので無料で使用可能です。
※学習済みAIモデルはCounterfeit-V3.0。
前提条件
Stable Diffusion Web UIとControlNetは次をご参照下さい。
Stable Diffusionのインストール方法(AUTOMATIC1111)
ControlNetのインストール、使い方、モデルの早見表
やること
(1)通常の512x512の画像を生成する。
(2)Web UIの標準機能のHires. fixを用いて1024x1024の画像を生成する。
(3)Hires. fix + ControlNetのTileで1024x1024の画像を生成する。
(4)2または3の画像からTiled Diffusion & VAE + ControlNetのTileで2048x2048の画像生成する。
※1~3はtxt2imgで4はimg2imgを使用します。
プロンプト・ネガティブプロンプトなど
// プロンプト masterpiece,Beautiful girl in a dress with silver hair ※「傑作、銀髪のドレスを着た美しい少女」と言う意味。 // ネガティブプロンプト EasyNegativeV2 // Seed 2702724888 // Sampling steps 25 // 参考用の情報(パラメータ) ※この例では(2)のものです。 Steps: 25, Sampler: Euler a, CFG scale: 7, Seed: 2702724888, Size: 512x512, Model hash: cbfba64e66, Model: CounterfeitV30_v30, Denoising strength: 0.7, Hires upscale: 2, Hires upscaler: Latent, TI hashes: "EasyNegativeV2: 339cc9210f70", Version: v1.5.0
※Sampling stepsを増加させると画質が向上する場合があります。(30まで)
出力結果(比較)
(1) | 拡大表示 | 512x512 (通常) |
---|---|---|
(2) | 拡大表示 | 1024x1024 (Hires. fix) |
(3) | 拡大表示 | 1024x1024 (Hires. fix + ControlNetのTile) |
(4) | 拡大表示 | 2048x2048 (Tiled Diffusion & VAE + ControlNetのTile) |
Tiled Diffusionのインストール
1. Web UIの[Extensions]タブを選択。[Install from URL]タブの「URL for extension's git repository」に次のURLを入力します。
2. [Install]ボタンをクリックします。
3. インストール後、[Installed]タブを選択して「Apply and restart UI」ボタンをクリックしてWeb UIを再起動します。
4. [Installed]タブの「Extension」に「multidiffusion-upscaler-for-automatic1111」が表示されていればOK。
Web UIではTiled DiffusionとTiled VAEが表示されるようになります。
(2)Hires. fixの使用方法
Hires. fixをオンにする。Upscale byは2とする。Width/Heightが512でUpscale byが2の場合は1024x1024の画像が生成される。
(3)Hires. fix + ControlNetのTileの使用方法
(2)に加えて、ControlNet v1.1.xxxをクリック後、Enableをオンにして、Tileを選択すればOK。
(4)Tiled Diffusion + ControlNetのTileの使用方法
img2imgで画像やプロンプトなどを設定する。Width/Heightはデフォルトの512のままです。このサイズ設定は使用しません。次にDenoising strengthを0.75とします。
ControlNetのTileの使用方法は(3)と同様です。Down Sampling Rateは2が推奨ですが、今回は1を使用しています。
[Tiled Diffusion]のEnable Tiled Diffusionをオン。UpscalerをR-ESRGAN 4x+Anime6B。Scale Factorを2にする。この2は画像の拡大率で2倍となります。(1024ならば2048となる)
[Noise Inversion]のEnable Noise Inversionをオン。Renoise strengthを0にする。
次は[Tiled VAE]の設定です。Enable Tiled VAEをオンにするだけとなります。GPUメモリ(VRAM)が不足していて「torch.cuda.OutOfMemoryError: CUDA out of memory」が発生する場合に使用して下さい。処理時間が長くなりますが、少ないメモリでも実行できるようになります。(10-20分)
※それでもエラーが発生する場合は各「Tile Size」を調整して見て下さい。
まとめ
Hires. fixはお手軽ですが私の環境(GeForce GTX 1080 Ti 11GB)では2048x2048を生成する際にGPUメモリ不足になります。Tiled Diffusion & VAEを使用するとメモリ不足でも高精度の画像を出力する事が可能です。
今回は2048x2048ですが、その上の4Kである4096x4096が生成可能であれば、更に高画質となります。高画質化はGPUの性能が良ければ短時間で生成可能ですので出来れば欲しい所ですね。
公式サイト(Tiled Diffusion & VAE)
https://github.com/pkuliyi2015/multidiffusion-upscaler-for-automatic1111