[StableDiffusion] TiledDiffusionのNoiseInversionを比較する(追記:Tile比較)

追記(2023.06.14 14:30)
Controlnet Tile colorfix / colorfix-sharp も比較しました。
一番最後です。


アップスケールにTiled Diffusion(Multi Diffusion)をよく使うのですが、「なんか絵がザラついた感じになってイメージと違うなぁ」ということがよくあります。

Noise Inversionを有効にすると違うらしいのですが、ここについて比較している記事が見つからなかったので自分で作成しました(適当に検索しただけなので見つけたら教えてください)。

結論だけ知りたい方は比較画像だけ見ればOKです。
https://imgsli.com/MTg1ODMz

i2iの設定などはくようさんの記事を参考にさせていただきました。

この記事の表記について

  • webui

    • Stable Diffusion webui AUTOMATIC1111版 のことを指す

  • Tiled Diffusion

    • webuiの機能拡張「Multi Diffusion」に含まれる機能

  • CN

    •  webuiの機能拡張「Controlnet」

    • この記事では Inpaint を使っている

  • i2i

    • image2image。画像を元に画像を生成する方法

  • 妖精さん

    • Tiled Diffusionで発生する余計な顔など

    • Denoising strength: 0.45 以上だとよく発生する

設定

i2i設定

  • Model: blue_pencil-v8

  • Step: 20

  • CFG: 7

  • Denoising: 0.5

Controlnet Inpaint設定

妖精さん(Tiled Diffusionで余計に発生する顔)の出現を抑えるためにCN Inpaintを使います。

  • Preprocessor: inpaint_global_harmonious

  • Model: control_v11p_sd15_inpaint_fp16

  • Control Weight: 0.4

  • Ending Contorl Step: 0.3

weight / ending が低いのは元絵の影響を少なめにするためです。実はよく分かってません。雰囲気でやってます。

Tiled VAE設定

有効にする以外はデフォルト設定のまま

Tiled Diffusion設定

今回はNoise Inversion の設定を試すのでNoise Inversion関連は後述します。

  • Method: MultiDiffusion

    • おすすめは MixtureDiffusion らしいですが、違いがよくわからないのでお好きなほうで

  • Latent tile width / height: 128

  • Latent tile overlap: 48

  • batch size: 1(つよつよGPUならもっと大きくできます)

  • Upscaler: R-ESRGAN 4x+(好みで変更)

  • Scale Factor: 2

  • Noise Inversion: ON

Noise Inversion パラメーターについて

公式サイトに説明が無かったので、ちとせログ様より引用させていただきます。

  • Inversion Steps

    • 処理の反復回数です。反復回数が多いほど精度が上がる。

  • Retouch

    • ノイズ反転後の画像に対して行う最終的な微調整。

  • Renoise strength

    • ノイズ反転後に再度加えるノイズの強度。

  • Renoise kernel size

    • ノイズ反転後に再度加えるノイズのカーネルサイズ。処理に用いるフィルターサイズなのでサイズが小さいほど処理速度が上がり、大きいほど精度が上がる感じだと思います。

比較開始

元画像

1024x1024の画像をアップスケールしていきます。

CN無効、Noise Inversion無効

自分が今までやっていた設定です。

Denoising strength:0.5
キャラ左上の窓に妖精さん出現の予兆
Denoising strength:0.4
妖精さんはいないけどもうちょっと細部を詰めたい

Noise Inversion > Inversion steps 比較

比較画像を用意しました。
https://imgsli.com/MTg1ODIx/0/2

stepsが上がるほど奥の建物までディティールが鮮明になります。
その分計算時間は増えます。
steps: 10 / retouch:1 / strength:1 / kernel: 64 = 約50秒
steps: 100 / retouch:1 / strength:1 / kernel: 64 = 約230秒
(RTX4070ti使用)

Noise Inversion > Renoise kernel size 比較

比較画像
https://imgsli.com/MTg1ODI2

大きいサイズだと髪の描写、背景描写が緻密になりますが、ぶっちゃけじっくり見比べないとわからないレベルです。

Noise Inversion > Retouch / Renoise strength 比較

比較画像
https://imgsli.com/MTg1ODI3

扱いが難しいと感じたのが Retouch / Renoise strength です。

Retouch は微調整の回数(?)らしいですが感覚的には上からエアブラシで塗り足した感じになりました。
解像度は上がるけど塗りのディティールは淡い感じになるので、使い方によってはふんわり仕上げな絵になりそうですね。

Renoise strength は 0 にするとくすんだ感じが無くなりパキっとした感じになりました。

自分の好みでは

比較画像
https://imgsli.com/MTg1ODMz

比較画像を見ていただくとわかりますが、Noise Inversion:OFF だとディティールがアップされ写実度もアップ。悪く言えば背景の汚しも目立ちます。

自分が求めているのは「解像度が上がり、KAWAIIの邪魔にならない程度に密度が上がる」なので下記の設定がこの絵のベストかなぁと思いました。
Inversion steps:100 / Retouch:1 / Renoise strength:1 / Renoise:64

i2i の Denoising strength によっても結果は変わるので本当に沼ですね……。

Controlnet Tileの比較(追記2023.06.14-14:30)

Noise Inversion を使うことで、キャラに過剰な描き込みをせず背景の密度を上げられることがわかりました。
密度アップといえば Controlnet Tile なので、そちらも検証してみます。

Tile colorfix / colorfix-sharp設定

  • weight: 0.5

  • ending: 0.5

  • variation: 0.8

  • sharpness: 0.6(colorfix-sharpのみ)

比較内容

  • CN Tile colorfix-sharp

    • 一番好き

  • CN Tile colorfix-sharp

    • 悪くない。もうちょいシャープさが欲しい

  • CN Inpaint / Inversion steps: 100 / Retouch:1 / Renoise strength:1 / Renoise kernel size: 64

    • さっきまでのベスト。ちょっと眠さがある。密度控えめ

    • 絵柄によってはベスト

  • CN無効 / Noise Inversion無効

    • 写実的でノイジーでもある。くすみが強い

  • CN Tile colorfix-sharp / Noise Inversion無効

    • ごちゃごちゃしすぎで好みじゃない

比較画像
https://imgsli.com/MTg1ODQ3

CN Tile colorfix-sharp + Noise Inversion が自分的ベストを更新しました。

この記事が気に入ったらサポートをしてみませんか?