generated at
🦊Scheduling Model Weights
👉 |


Stable DIffusion web UIではすでに出来ましたが、サンプリングの途中でckpt/LoRAモデルのstrengthを変更できるようになりました
以前はKSamplerAdvancedノードを複数並べる必要がありましたが、これで簡単(当社比)になりましたね

とても詳しい解説


基本形
strength_mult
Create Hook LoRAノードで読み込んだLoRAの強度にこの値を掛けた値が適用されます
start_percent (0.0 ~ 1.0)
どのタイミングのサンプリングステップでこの設定を適用するか設定します
この画像の場合
1つ目のCreate Hook Keyframeが strength_mult = 0 / start_percent = 0
2つ目のCreate Hook Keyframeが strength_mult = 0.5 / start_percent = 1.0
KSamplerの speps = 20
なので、LoRAは0 ~ 10ステップはstrength = 0、 11 ~ 20ステップはstrength = 0.64 (0.8 * 0.8)で適用される


LoRAではなくckptモデルを使う
Create Hook Model as LoRAノードを使うことで、LoRAではなく、ckptモデルを読み込むことができます
この場合、🦊モデルのマージと同じ動作をすることになります
計算式
$ base_model*(1-strength) + target*strength
つまり🟥設定したモデルの強さを0にすれば、元のモデルのみの推論
強さを1にした場合は、設定したモデルのみの推論になります
step数20の場合
0 ~ 10ステップはベースモデルのみ
11 ~ 20ステップはベースモデル 20% / Create Hook Model as LoRAノードで設定したモデル 80%で推論


滑らかに値を変化させる
イージングを使って値を変化させます
strength_start / end
interp ( linear / ease_in / ease_out / ease_in_out )
イージングのタイプを設定
start / end_percent (0.0 ~ 1.0)
keyframes_count
何分割して適用するか
print_keyframes
これを true にすると、ログに計算された適用される値が表示されます
グラフで見ないと想像つきにくいかもしれない
🚨これを5分割するので、このグラフのように滑らかではなく、階段状になる


複数のHooKを組み合わせる
Combine Hooks (2)ノード(4個8個版combineもある)を使うことで複数のLoRAのスケジューリングを組み合わせることが出来ます


どこで使うか?
KSamplerAdvancedノード#659f1ddae2dacc000089d5b1Concept Sliders#655f82e2e2dacc0000a65ceaのように、LoRAを途中から効かせることで、元のモデルの性能を邪魔せずいいとこどりできます
絵柄LoRAや年齢を変化させるLoRAに有効