🦊Scheduling Model Weights
👉 |
Stable DIffusion web UIではすでに出来ましたが、サンプリングの途中でckpt/LoRAモデルのstrengthを変更できるようになりました
とても詳しい解説
基本形
strength_mult
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モデルを使う
計算式
$ 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を組み合わせる
どこで使うか?
絵柄LoRAや年齢を変化させるLoRAに有効