BDさんの記事を見て、面白そうだったのでコードを見てたらサンプラー変えれそうだったので実験用サンプラーを作ってみました。
新サンプラーのアイデア
インストール
RestartLab.py をダウンロードして WebUI の Scriptsフォルダーに移動します。
過去のバージョンは、BOOTHにあります。
支援する事も出来ますので、役に立ったと思われた方はよろしくお願いします。
このリンクから→楽天、アマゾンでお買い物でも支援できます。
webuiを再起動してリロードすると追加されます。
サンプリングメソッドにRestartLabが三つ追加されます。
設定用UIもエクステンションの所に追加されます。
設定項目
基本設定
first weight
最初のステップ数をコントロールできます。restart stepを掛けた値が大体のステップ数になります。
掛けた値がステップ数を超える時は、1で処理されます。
restart Step
リスタートする間隔を設定します。ステップ数の半分以下にしてください。
リスタートしたくない時は、大きい値を設定してください。
CFG Denoiser
デフォルトのDiffusionとLCMが選択できます。
Sampling
Heun 、Euler系、DPM++系が選択できます。
Noise
SDE系用のSDE、Euler a用のAncestral 、Brownianが選べます。
Brownian remakeは、リスタートする時にノイズを作成し直します。
ノイズが影響するのは、Euler aとSDE系です。
設定の初期値は、SetingsのRestartLabで設定できます。
Sampler Parameters
CFG、s_churn、s_noiseの量をステップごとにコントロールできます。
start s_churn、s_noise
最初の値です。
Change CFG、End s_churn、s_noise
途中で変える値です。
CFGは、大きく変化すると破綻しやすいのでコントロールは難しそうです。
step
値を変えたいステップ数です。1以下の場合はステップ数の割合で指定できます。
0の場合は何もしません。
mode
変化の動作を設定できます。
OFF:処理しません。
Constant:startの値で固定します。
After:v1.0の動作と同じです。設定したステップ数の次のステップから変更します。
Linear:直線で変化します。
Slow:ゆっくり変化してだんだん早くなります。
Fast:早く変化してだんだんゆっくりになります。
Turn:Fastの動作と同じですが、最初の値に戻る動作をします。
数字の違いは、2は、なだらかな動作、6は、極端な動作をします。4はその中間です。
AutoSkip
途中で生成を止めて、止めた所から再開する事が出来ます。
プロンプトの調整や、構図を探す時に使っています。
※Batch sizeは、1以外だと動作しないかもしれません。
※Hires.fixも使ってないので動作未確認です。
SkipMode
%はステップ数の割合です。60%をよく使います。
Customは、CustomStepで止めるステップを直接設定したい時に使います。
Nextは、Restart毎に止めたい時に、
1st、2ndなどは、止めたいRestartの回数です。1stは一回目、2ndは2回目で止まります。
その他の設定
Save SkipMeta to pinginfo:生成途中のデータをpnginfoに保存します。大きい画像だとpnginfoが大きくなるのでオフの方が良いかもしれません。オフの場合は、再開できません。
Use SkipMeta:SkipMetaを使用して途中から生成します。アップスケールする時は、オフにしてください。
Make the first step SkipMeta:Use SkipMetaがオン時、最初のステップにSkipMetaを使用します。VAEを通してないデータでi2iする感じです。たぶん 最後にVAE使ってると思ってたけど、ステップごとに使ってるのかも。なので言い換えると画像にする前のデータでi2iする感じです。
SkipMeta:途中のデータです。
Batch
再開したり、アップスケールする時に使います。
Batch Processに処理したいファイルをドロップします。
Parameters to remove from png infoからpnginfoから、pnginfoから読み込みたくない項目を選択します。
※アップスケールする時に、StepsとDenoising strenghにチェックしたりします。
Startボタンで開始します。
※オートクリックの様な処理方法なのでブラウザは開いたままにしてください。
※あと、たまに、pnginfoがsend出来なかったりで処理が止まる時があります。
Tools
Batchで使ってるボタン等です。ここのボタンを自動でクリックしているので通常は使いません。
たまに、sourceにpnginfoをsendしたいファイルを入れて、send to img2imgボタンを使います。
参考画像
<lora:pytorch_lora_weights:0.6>
Steps: 9, Sampler: RestartLab karras, CFG scale: 2,
RestartLab steps: 4, RestartLab firstweight: 1, RestartLab cfgDenoiser: CFGDenoiserKDiffusion, RestartLab sampling: Euler a
ノイズの違いです。一回リセットしてます。