KSamplerAdvancedノード
ComfyUIで一番面白い機能だと思っているので絶対マスターしてくださいnomadoor.icon
参考
無印KSamplerとの違い
https://gyazo.com/6f12a584833996a7a4800a13bb59cc23
KSamplerAdvancedは無印KSamplerの上位互換です
パラメータはdenoiseが消えて四つ増えていますが、特に重要なのがstart_at_stepとend_at_stepです
start_at_step/end_at_stepとサンプリングの復習
https://gyazo.com/545eac35f1535fe1811440dbfe4b4784
Stable Diffusionは、ノイズ画像から徐々にノイズを取り除いていくことで最終的に綺麗な画像を生成する仕組みでした
KSamplerAdvancedはこのサンプリングのstepにおいて、どこからスタートしてどこで終わるかを指定することができます
https://gyazo.com/943b87d5221681a0154c9d97482535ba
例えばstart_at_stepを4、end_at_stepを11にすると、画像の黒くなっている部分しかサンプリングを行いません
※end_at_stepはstep数以上に大きくなることはありません
end_at_stepを1000にしても、step数が20なら内部では20になっています
add_noise (enable or disable)
繰り返しになりますが、Stable Diffusionはノイズ画像を与えてから、そのノイズを除去していく仕組みです
では、そのノイズはどこから来るか?
https://gyazo.com/22d5f654c3c598feb046cf71d4d8d4aa
これはimage2imageですが、KSamplerに入る前は、画像を潜在空間へ変換しているだけでノイズのノの字もありません
Ksamplerノードの中で、ノイズの追加も除去も行われるわけです
ではノイズを追加しない、add_noise/disable はどこで使うのか
一連のサンプリングを2つ以上のKSamplerAdvancedノードに分割するときに使います
https://gyazo.com/0ac39669d494b5f507b88e7c6e44fcad
0 ~ 10stepは左(黄色)のKsampleAdvancedで、11~20stepは右(紫色)のKSamplerAdvancedで行います
https://gyazo.com/08390d1dab494d86ea9319ac065ccbf3
当然ですが、一つのKSamplerで20stepsサンプリングした時と同じ画像が生成されます
https://gyazo.com/056498644b4b5c148692bfe62af1cc02
パラメータの設定が少しややこしいのでゆっくり見ていきます
🟨🟪step数は2つのKSamplerAdvancedで同じ
🟨前のKSamplerのend_at_stepと🟪次のKSamplerのstart_at_stepが同じ
🟨前のKSamplerのreturn_with_leftover_noiseをenableにすることで、まだ除去されていないノイズが残った画像を次のKSamplerに受け渡します
🟪次のKSamplerのadd_noiseはdisableにします
すでにノイズが追加された画像が渡されるため、enableにしてしまうと余計なノイズが追加されてしまいます
分割することになんの意味もなさそうですが、これが面白いのです
Jaguyama.iconちょうど使っていたので途中でモデルを切り替えるrefineをするワークフローのサンプルを貼っておきます(json込み)
https://gyazo.com/92dccf59c3bc0e6f13b4b7e935fb3fb5
上側の画像は途中でモデルを切り替えたもの(下記左画像)、下側は同じモデルで再度サンプラーに入れたものです(下記右画像)
https://gyazo.com/42b1183232146842ad4c5dd31f4e368chttps://gyazo.com/56c3b5ee97ebda5ff5c54a28e76dbbc3
素晴らしいサンプルをありがとうございます!nomadoor.icon
モデルによって、形を作るのがうまいもの、細部の表現がうまいもの、絵柄を作るのがうまいものetc. それぞれ特性があります
サンプリングは全体的に満遍なく絵がでてくるわけではなく、序盤・中盤・終盤隙が無いで形・絵柄・細部と描いているものが違うため、それぞれの段階で別のモデルを使う、このような技が活きてきます
https://gyazo.com/3c82ca8a7dcb51f2475d0451de727783
もっとシンプルなものがプロンプトの切り替えです
https://gyazo.com/614109771c02fd0d33eaa83366afc521
https://gyazo.com/90975069b69d3d6f1416da7da9f3b34c
後半はプロンプトのSmileをAngryに変えています
次のKSamplerAdvancedに切り替えるタイミングを調整すると、笑顔とも怒っているともとれない、なんとも変な顔が出来て面白いですね
特によく使う(当社比)のがLoRAの適用です
https://gyazo.com/d1e38c254c0b593fcb74f0ebae9bf63d
上段 : LoRAなし
中段 : 6step後からLoRAをかけ始める
下段 : 最初からLoRAあり
これはドット絵にするLoRAですが、LoRAは"ドット絵にする"という概念以外にも、学習素材にした絵の記憶も持ってしまっています
そのため、LoRAなしの時の絵がそのままドット絵になるわけではありません
(そういうことができるLoRAの作り方はある)
そこで、形を作る最初のstepはLoRAをかけず、後半だけにLoRAをかけることで、モデル本来の能力を生かしつつLoRAによる絵柄変換ができます
add_noise/disable のもう一つの使い方に、生成が終わった画像に対して、そのままノイズ除去を続けるというものがあります
人間からしたら綺麗な画像もまだノイズであると見立てるわけです
ジャギった画像を一度ぼかしてシャープ化すると綺麗になる古典的なテクニックですね