どうも、趣味レーターのAKITΩ(あきと)です!
今回は、『Stable Diffusion WebUI』の拡張機能『Tiled Diffusion』についてと『ControlNet tile』と合わせた活用方法をご紹介します!
『Tiled Diffusion』は、画像をより詳細にすることができ、詳細にしてアップスケールも可能な機能になります。
この方法を使えば『画像の描き込みがなんかイマイチ』みたいな状況を改善可能です。
参考画像
縮小して見るとわかりづらいと思いますが、拡大して順番に見ると絵がハッキリしてメチャクチャ綺麗になっているのがわかります(笑)
それでは『Tiled Diffusion』の活用方法を詳しくご紹介します!
Tiled Diffusionとは?
『Tiled Diffusion』ですが、画像を細かくタイル上(□)に分割して拡大し、描き込みを増やした状態で指定サイズになるように変換するような機能です。
そのため、元の画像の雰囲気を保ったままで、本来はVRAM不足でできないようなサイズで生成することも可能になります。
私はVRAM24GBなので検証できませんが、VRAM12GBで『2048×3072』くらいのサイズも生成できるようです。
Tiled Diffusionの導入方法
まずは通常の拡張機能と同じ操作で「Extensions/拡張機能」のタブから機能を追加します。
「Extensions/拡張機能」タブ内の「Install from URL/URLからインストール」タブを開きます。
「URL for extension’s git repository/拡張機能の git リポジトリの URL」に下のURLを入力します。
https://github.com/pkuliyi2015/multidiffusion-upscaler-for-automatic1111.git
入力後に「Install/インストール」ボタンを押します。
数秒待つと『Installed into stable-diffusion-webui\extensions\sd-webui-controlnet. Use Installed tab to restart』というメッセージがでます。
「Install from URL/URLからインストール」タブから「Installed/インストール済み」タブに移動し、「Apply and restart UI適用して UI を再起動する」 をクリックします。
インストールが完了すると『txt2imgタブ』と『imi2imgタブ』に『Tiled Diffusion』と『Tiled VAE』の項目が表示されます。
これで『Tiled Diffusion』の導入完了です!
Tiled Diffusion使い方
『Tiled Diffusion』は、『txt2img』と『imi2img』の両方で使用できますが、個人的には『imi2img』のほうで使用するのを推奨しています。
理由は『Tiled Diffusionの欠点』の項目でご紹介していますが、こちらの使い方では『imi2img』の方法でご説明します。
〜Tiled Diffusionのプロンプト〜
プロンプトですが、品質向上プロンプトのみで大丈夫です。
プロンプト例
highres, masterpiece, best quality, ultra-detailed 8k wallpaper, extremely clear,
『detailed beautiful face』みたいな部位指定するようなものではなく、全体的に作用するようなプロンプトが望ましいです。
理由は『変なイラストが生成されることがある』の項目で解説しております。
ネガティブプロンプトは普段使用しているもので大丈夫ですが、オススメのネガティブプロンプトなどを知りたい場合はこちらをご覧ください!
〜Tiled Diffusionの画像〜
『img2img』に通常通り画像をアップロードが必要です。
画像は手などを修整済みのものをアップロードするほうが楽だと思います。
~imi2imgの設定~
『img2img』で普段通りお好みで設定していい箇所と、『Tiled Diffusion』用にオススメの設定があるので分けてご説明します。
お好みで設定
- Sampling method
- Sampling steps
- CFG Scale
- 14ぐらいの高めのほうがいい。
調整する設定
- 『Width』と『Height』
- 元画像のサイズ。
- 『Batch count』と『Batch size』
- 基本的には1 にする。エラーが起きないなら上げれるが時間がかかる。
- 『Denoising strength』
- 0.2~0.6。画像を大きく変化させたいなら数値を上げる。
- Seed
- アップロード画像のSeedに固定するほうが変なイラストにはなりづらい。
~Tiled Diffusionの設定項目~
- Enable Tiled Diffusion
- Tiled Diffusionを有効にする項目なので、利用時は必ずチェックをつけます。
- Keep input image size
- WidthとHeightのサイズを反映しなくなります。サイズを選んでいる場合はチェックをつけなくて大丈夫です。
- Move ControlNet tensor to CPU (if applicable)
- チェックをつけるとControlNetの処理をCPUでおこなう。通常はオフにしておいてControlNetと併用時にエラーがおきるならオンにする。
- Method
- MultiDiffusionとMixture of Diffusionの2種類あります。そこまで大きく変化はないですがMixture of Diffusionのほうが処理が速いようです。
- Latent tile width/Latent tile height
- タイルのサイズなので二つの数字は同じにするほうがいいです。64~160の値が推奨設定で数値を上げるほど生成速度があがります。
- Latent tile overlap
- タイル同士を繋ぎ目の滑らかさを変えるような項目です。数値を大きくすると滑らかになりますが、速度が大幅に低下します。16または32が推奨設定です。
- Latent tile batch size
- 数値が高いほど生成速度が速くなります。最大で試してエラーになるなら数値を下げていくとよいかと思います。
- Upscaler
- お好みのアップスケーラーで大丈夫です。迷う場合は実写系ならR-ESRGAN 4x、アニメ系ならR-ESRGAN 4x+Anime6Bがオススメになります。
- Scale Factor
- WidthとHeightのサイズを何倍に拡大するか調整できます。
~Tiled VAE項目の設定~
『Tiled Diffusion』の設定だけでエラーが発生する場合に使用する機能です。
利用した場合は速度が遅くなるので、VAEをオンにしないで試してダメならオンにするのがよいかと思います。
- Enable Tiled VAE
- チェックをつけるとVAE機能がオンになります。
- Move VAE to GPU (if possible)
- チェックをつけるとVAEの処理をGPUが補助して生成速度が早くなります。ただし、VRAM使用率が増えるので、オンにしてエラーがおきるようならオフにします。
- Encoder Tile Size
- VAEが処理するタイルのサイズです。エラーが起きる場合は数値を下げます。
- Decoder Tile Size
- VAEが処理するタイルのサイズです。エラーが起きる場合は数値を下げます。
- Fast Encoder
- 生成速度を上げる機能です。ただし、使用すると画質が悪くなる場合があります。
- Fast Encoder Color Fix
- Fast Encoderがオンだとでる項目です。『Fast Encoder』を利用して色味がおかしくなる場合オンにします。
- Fast Decoder
- 生成速度を上げる機能です。ただし、使用すると画質が悪くなる場合があります。
Tiled Diffusionのオススメ設定まとめ
『Tiled Diffusion』用のオススメ設定をまとめました。
推奨設定
- 『Width』と『Height』
- 元画像のサイズ。
- 『Batch count』と『Batch size』
- 基本的には1 にする。エラーが起きないなら上げれるが時間がかかる。
- 『Denoising strength』
- 0.2~0.5。画像を大きく変化させたいなら数値を上げる。
- Seed
- アップロード画像のSeedを固定するほうが変なイラストにはなりづらい。
- Enable Tiled Diffusion
- オン
- Keep input image size
- 画像サイズによって変える。
- Move ControlNet tensor to CPU (if applicable)
- オフ
- Method
- Mixture of Diffusion
- Latent tile width/Latent tile height
- 96か128
- Latent tile overlap
- 16か32
- Latent tile batch size
- 8
- Upscaler
- 実写系:R-ESRGAN 4x/アニメ系:R-ESRGAN 4x+Anime6B
- Scale Factor
- 何倍にするかで変える
- Enable Tiled VAE
- Tiled Diffusionだけでエラーになるならオン
- Move VAE to GPU (if possible)
- オン
- Encoder Tile Size
- 1024
- Decoder Tile Size
- 128
- Fast Encoder
- 処理速度を上げたいならオン。
- Fast Encoder Color Fix
- Fast Encoderだけで色味がおかしいならオン
- Fast Decoder
- 処理速度を上げたいならオン。
ControlNet Tile併用時の設定
ControlNetについては以前に別記事でご紹介しているので、詳しく知りたい方はこちらをご覧ください!
- Preprocessor
- Tileのお好きなプリプロセッサ。アップスケールならtile_colorfix+sharpがオススメです。
- Control Weight
- 0.4
- Starting Control Step
- 0
- Ending Control Step
- 1
- Variation
- イラストの色味に影響するような機能です。好みですが『0~8』くらいがオススメになります。
- Sharpness
- 数値を上げると輪郭線が太くなったりボケた印象になりやすいです。好みですが『0~0.5』くらいの低い数値がオススメになります。
〜Tiled Diffusionの欠点〜
『Tiled Diffusion』の欠点や『imi2img』の利用を推奨する理由をご紹介します!
生成に時間がかかる
スペック以上の作業をすることができますが、その分時間がかかります。
『Tiled Diffusion』+『ControlNet tile』で『2048×3072』を推奨設定で
生成すると、VRAM24GBでも8分程で一般的なVRAM12GBだと十数分はかかるようです。
変なイラストが生成されることがある
『Tiled Diffusion』ですが、画像をタイル上にしてそれぞれのタイルにプロンプトが適用されるような処理になるそうです。
そのため、予期しない場所にプロンプトが適用されることがあります。
Tiled Diffusion利用前
Tiled Diffusion失敗例
こちらの画像は背景などに顔が何箇所もでています。
この画像は『txt2img』でてきた下の画像の『SEED』を固定。
『Tiled Diffusion』+『ControlNet tile』で以下のプロンプトで生成しました。
利用したプロンプト
(detailed beautiful face):1.2, highres, masterpiece, best quality, ultra-detailed 8k wallpaper, extremely clear,
冒頭にある顔の品質向上のプロンプトが影響したようで、そのプロンプトを抜くと下の画像になりました。
このように通常なら反映されない場所にプロンプトが反映されることがあります。
こういった自体を防ぐため、プロンプトは全体的な品質向上プロンプトのみがいいです。
部位なしのプロンプト
highres, masterpiece, best quality, ultra-detailed 8k wallpaper, extremely clear,
『(detailed beautiful face):1.2』を抜いた上記のプロンプトで生成しました。
こういう風に変な画像になりづらくなります。
~Tiled Diffusionをimi2imgで使うのをオススメする理由~
『Tiled Diffusion』を『imi2img』で使う理由ですが、時間がかかり複数生成も難しいため事前に手などの修整が難しいです。
そのため、修整済み画像を『imi2img』にアップロードして『Tiled Diffusion』ほうが楽だと思います。
また、『Denoising strength』で画像の変化度合いを調整できるため先程のような変な顔がでるようなこともコントロールしやすいです。
そういった理由から、『Tiled Diffusion』を『imi2img』で利用するのを推奨しています。
以上が『Tiled Diffusion』についてでした!
人気記事一覧
おわりに
今回は、『Stable Diffusion WebUI』の拡張機能『Tiled Diffusion』についてご紹介しましたが、いかがでしたでしょうか?
生成するのに時間がかかるのは難点ですが、『画像の描きこみ凄い!』って感想をもらえると嬉しいので是非お試しください!
本記事は以上になります。
長文を読んでお疲れだと思いますが、最後まで読んでいただきありがとうございます!
また次の記事でお会いしましょう!!!
明日は何を書こうかな?
コメント