generated at
KSamplerAdvancedノード

ComfyUIで一番面白い機能だと思っているので絶対マスターしてくださいnomadoor
できれば🦊image2imageもセットで見てください

参考

無印KSamplerとの違い
KSamplerAdvancedは無印KSamplerの上位互換です
パラメータは denoise が消えて四つ増えていますが、特に重要なのが start_at_step end_at_step です


start_at_step / end_at_step とサンプリングの復習
Stable Diffusionは、ノイズ画像から徐々にノイズを取り除いていくことで最終的に綺麗な画像を生成する仕組みでした
KSamplerAdvancedはこのサンプリングのstepにおいて、どこからスタートしてどこで終わるかを指定することができます
例えば 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はノイズ画像を与えてから、そのノイズを除去していく仕組みです
では、そのノイズはどこから来るか?
ここが少しわかりにくいのですが、ComfyUIではノイズを与える作業もKSamplerが請け負います
これはimage2imageですが、KSamplerに入る前は、画像を潜在空間へ変換しているだけでノイズのノの字もありません
Ksamplerノードの中で、ノイズの追加も除去も行われるわけです


ではノイズを追加しない、 add_noise /disable はどこで使うのか
一連のサンプリングを2つ以上のKSamplerAdvancedノードに分割するときに使います
0 ~ 10stepは左(黄色)のKsampleAdvancedで、11~20stepは右(紫色)のKSamplerAdvancedで行います
当然ですが、一つのKSamplerで20stepsサンプリングした時と同じ画像が生成されます
パラメータの設定が少しややこしいのでゆっくり見ていきます
🟨🟪step数は2つのKSamplerAdvancedで同じ
🟨前のKSamplerの end_at_step と🟪次のKSamplerの start_at_step が同じ
🟨前のKSamplerの return_with_leftover_noise をenableにすることで、まだ除去されていないノイズが残った画像を次のKSamplerに受け渡します
🟪次のKSamplerの add_noise はdisableにします
すでにノイズが追加された画像が渡されるため、enableにしてしまうと余計なノイズが追加されてしまいます
分割することになんの意味もなさそうですが、これが面白いのです


ちょうど使っていたので途中でモデルを切り替えるrefineをするワークフローのサンプルを貼っておきます(json込み)
上側の画像は途中でモデルを切り替えたもの(下記左画像)、下側は同じモデルで再度サンプラーに入れたものです(下記右画像)
素晴らしいサンプルをありがとうございます!nomadoor
モデルによって、形を作るのがうまいもの、細部の表現がうまいもの、絵柄を作るのがうまいものetc. それぞれ特性があります
サンプリングは全体的に満遍なく絵がでてくるわけではなく、序盤・中盤・終盤隙が無いで形・絵柄・細部と描いているものが違うため、それぞれの段階で別のモデルを使う、このような技が活きてきます


もっとシンプルなものがプロンプトの切り替えです
後半はプロンプトのSmileをAngryに変えています
次のKSamplerAdvancedに切り替えるタイミングを調整すると、笑顔とも怒っているともとれない、なんとも変な顔が出来て面白いですね


特によく使う(当社比)のがLoRAの適用です
上段 : LoRAなし
中段 : 6step後からLoRAをかけ始める
下段 : 最初からLoRAあり
これはドット絵にするLoRAですが、LoRAは"ドット絵にする"という概念以外にも、学習素材にした絵の記憶も持ってしまっています
そのため、LoRAなしの時の絵がそのままドット絵になるわけではありません
(そういうことができるLoRAの作り方はある)
そこで、形を作る最初のstepはLoRAをかけず、後半だけにLoRAをかけることで、モデル本来の能力を生かしつつLoRAによる絵柄変換ができます


add_noise /disable のもう一つの使い方に、生成が終わった画像に対して、そのままノイズ除去を続けるというものがあります
人間からしたら綺麗な画像もまだノイズであると見立てるわけです
これを使うとKSamplerAdvancedでディテールを減らすのようなことができます
ジャギった画像を一度ぼかしてシャープ化すると綺麗になる古典的なテクニックですね


このままの流れで🦊image2imageへ参りましょう