Lora訓(xùn)練參數(shù)介紹(一些細節(jié)處理)
安裝Lora的訓(xùn)練腳本,直接用秋葉aaaki大佬的整合包就好。
現(xiàn)在介紹詳細的參數(shù) (最新秋葉aaaki大佬的腳本來介紹)
$pretrained_model = "./sd-models/model.ckpt"?
這個就不用多說了 就是你訓(xùn)練的底模 這里的話我們盡量使用訓(xùn)練的模型 如果大家沒有合適的底模可以使用 sd1.5的訓(xùn)練模型 或者在C站里面去尋找一些合適的底模
以下是sd1.5的訓(xùn)練模型
https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned.ckpt
以下是c站
https://civitai.com/
$train_data_dir = "./train/aki" # train dataset path | 訓(xùn)練數(shù)據(jù)集路徑
這是我們的數(shù)據(jù)集 里面放的是我們的圖片以及文字(也就是打的tag)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 注意 5你可以理解讀取5次這個圖片
$network_dim = 32 # network dim?
$network_alpha = 32# network alpha
dim你可以理解為大小?alpha一般跟dim相同或者是一半
$batch_size = 1 # batch size
$max_train_epoches = 10 # max train epoches | 最大訓(xùn)練 epoch
$save_every_n_epochs = 2 # save every n epochs | 每 N 個 epoch 保存一次
Epoch 使用訓(xùn)練集的全部數(shù)據(jù)對模型進行一次完成的訓(xùn)練,被稱為“一代訓(xùn)練”
Batch 使用訓(xùn)練集中的一小部分樣本對模型權(quán)重進行一次反向傳播的參數(shù)更新,這一小部分被稱為“一批數(shù)據(jù)”。
每 N 個?epoch 保存一次 綜合上面所述每次過了兩代 就保存一次模型 因為模型不是越后面越好 需要對比
如果提高batch size 也要相應(yīng)的提高epoch 不然可能會欠擬合 當(dāng)然提高這些會大幅度的提高你的顯存 如果你的loss率無法收斂 你可以進行這個操作
$keep_tokens = 0?0為禁用
保證我們的tag(也就是文本的單詞)前多少個不動? 后面的打亂它們的順序
$min_snr_gamma = 0 0為禁用
減少低步數(shù)時loss值,讓學(xué)習(xí)效果更好。推薦3-5,5對原模型幾乎沒有太多影響,3會改變最終結(jié)果?
$lr = "1e-4"
$unet_lr = "1e-4"
$text_encoder_lr = "1e-5"
$optimizer_type = "AdamW8bit"
學(xué)習(xí)率的話用青龍圣者的黃金算法
在腳本根目錄下 文件上方搜索出打powershell(跟cmd相同)
輸入./venv/Scripts/Activate.ps1進入虛擬環(huán)境
pip?install tensorboard 安裝依賴
將學(xué)習(xí)率都改為1
優(yōu)化器($optimizer_type)改為 DAdaptation
開始跑第一次訓(xùn)練,跑不跑完都可以,
然后找到?LoraTrain\lora-scripts\logs?路徑內(nèi)找到最新時間戳的文件夾名稱,再這個文件夾內(nèi)鼠標郵件再次喚出Git bash here指令窗口輸入
“tensorboard?--logdir=./時間戳/network_train”?復(fù)制出提供的網(wǎng)址到瀏覽器上即可看到學(xué)習(xí)曲線圖 拿到最高值/3 就是我們loin的最優(yōu)值 (loin是比較好的優(yōu)化器)
注意:當(dāng)你更改了數(shù)據(jù)集 或者一些參數(shù)batch size 建議重新測試最優(yōu)值
$persistent_data_loader_workers = 0?
簡單的講就是提速的 但是可能會爆顯存?
歡迎大家在評論區(qū)留下批評和建議,如果本文違反了轉(zhuǎn)載規(guī)定或侵犯他人勞動成果,我會立刻刪除本文!對了還要感謝兩位大佬做出的貢獻,最后希望大家都能練出好丹!