Style-96
詳細
ファイルをダウンロード
このバージョンについて
モデル説明
Final-2(更新、元のストーリーについては以下をご覧ください)
「Final」と名前につけると、それが最終版ではないことに気づくはずです :D
@Neural_Lens の素晴らしい指摘のおかげで、再トレーニングと代替マージを実施しました。
まず、学習率(LR)を下げ、エポック数を増やし、最適化手法を古典的なコサインとProdigyに戻しました。また、次元(16)を減らしましたが、値変化への影響を高めるために、alphaを低め(4)に設定しました。
{
"engine": "kohya",
"unetLR": 0.0001,
"clipSkip": 2,
"loraType": "lora",
"keepTokens": 0,
"networkDim": 16,
"numRepeats": 2,
"resolution": 1024,
"lrScheduler": "cosine",
"minSnrGamma": 0,
"noiseOffset": 0.03,
"targetSteps": 2400,
"enableBucket": true,
"networkAlpha": 4,
"optimizerType": "Prodigy",
"textEncoderLR": 0,
"maxTrainEpochs": 20,
"shuffleCaption": true,
"trainBatchSize": 4,
"flipAugmentation": false,
"lrSchedulerNumCycles": 1
}
さらに、トレーニングには Neural Lens Core を活用しました。これは、トレーニングに最適なIllustriousモデルのように感じられ、ベースのIllustrious V0.1やランダムなWAIイテレーションよりもはるかに優れています。
いくつかのテストの後、以下のエポックを選びました:

そして、TIESとDAREが機能するか確認するために新しいマージを実施しました:
from safetensors.torch import save_file
import sd_mecha as sdm
sdm.set_log_level()
base = sdm.model("test3-000010.safetensors")
models = [
sdm.model("test3-000012.safetensors"),
sdm.model("test3-000018.safetensors"),
sdm.model("test3-000019.safetensors"),
]
recipe_dare = sdm.ties_with_dare(base,*models,probability=0.6,seed=42,alpha=0.5)
test = sdm.merge(recipe_dare,output_device="cpu")
for k in [ k for k in test.keys() if "lora_te" in k ]:
del(test[k])
save_file(test,"test3-dare.safetensors")
この時点でマージを実行したところ、Prodigyを使用してもTEのLRが0に従わなかったため、TEレイヤーを削除しています。
いずれにせよ、この方法は異なる結果を生み出し、とても良いものです。両方で迷うなら、単に両方を組み合わせてしまいましょう :D
最初で最後
簡易テストです。目的は、特に目と唇のスタイルを再現することでした。LoRAの組み合わせを見つけてから、ランダムな1girl画像(60枚)を生成し、オートタグ処理を実行した後、ブルーバズを消費するために短期間のトレーニングを開始しました。
トレーニングパラメータ:
{
"engine": "kohya",
"unetLR": 0.0005,
"clipSkip": 2,
"loraType": "lora",
"keepTokens": 0,
"networkDim": 32,
"numRepeats": 2,
"resolution": 1024,
"lrScheduler": "cosine_with_restarts",
"minSnrGamma": 0,
"noiseOffset": 0.03,
"targetSteps": 1440,
"enableBucket": true,
"networkAlpha": 32,
"optimizerType": "Adafactor",
"textEncoderLR": 0,
"maxTrainEpochs": 12,
"shuffleCaption": false,
"trainBatchSize": 1,
"flipAugmentation": false,
"lrSchedulerNumCycles": 3
}
特に珍しいことはしていません(PS:これらが最適なパラメータではないことは分かっています。私もテスト中でした :D)
見た目が良いエポック7と9を選択しました。この投稿の理由は、私はしばしばLoRAのトレーニングエポックをマージするからです。
これはあまり行われない手法ですが、私は普段手動で実施しており、今回は再現可能な手法を試してみました:
>>> import sd_mecha as sdm
>>> sdm.set_log_level()
>>> a = sdm.model("test-000007.safetensors")
>>> b = sdm.model("test-000009.safetensors")
>>> c = sdm.slerp(a,b)
>>> sdm.merge(c,output="test-slerp.safetensors")
以上です、皆様。:D
(元のLoRAのベースアイデアはこちら):https://civitai.com/images/109655271
これはPrefectIllustrious V3でトレーニングされました。








