[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無効
自分が今までやっていた設定です。
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 が自分的ベストを更新しました。