AUTODL版(linux系統(tǒng))升級LION優(yōu)化器后訓練腳本代碼替換

小白的替換方法:
1.在左邊文件管理,雙擊打開 train.sh 文件,CTRL+A選中全部,把里面的代碼全刪了。
2.復制全部下文代碼。
3.CTRL+?V粘貼到?train.sh 里,注意刪除B站復制自帶的引用后綴等內(nèi)容。
4.CTRL+S保存文件,關(guān)閉打開的文件頁面。

# LoRA train script by @Akegarasu
# Train data path | 設置訓練用模型、圖片
pretrained_model="./sd-models/v1-5-pruned.safetensors" # base model path | 底模路徑
train_data_dir="./train/pretty" # train dataset path | 訓練數(shù)據(jù)集路徑
# Train related params | 訓練相關(guān)參數(shù)
resolution="512,640" # image resolution w,h. 圖片分辨率,寬,高。支持非正方形,但必須是 64 倍數(shù)。
batch_size=3 # batch size
max_train_epoches=15 # max train epoches | 最大訓練 epoch
save_every_n_epochs=1 # save every n epochs | 每 N 個 epoch 保存一次
network_dim=64 # network dim | 常用 4~128,不是越大越好
network_alpha=32 # network alpha | 常用與 network_dim 相同的值或者采用較小的值,如 network_dim的一半 防止下溢。默認值為 1,使用較小的 alpha 需要提升學習率。
clip_skip=2 # clip skip | 玄學 一般用 2
train_unet_only=0 # train U-Net only | 僅訓練 U-Net,開啟這個會犧牲效果大幅減少顯存使用。6G顯存可以開啟
train_text_encoder_only=0 # train Text Encoder only | 僅訓練 文本編碼器
persistent_workers=1 # makes workers persistent, further reduces/eliminates the lag in between epochs. however it may increase memory usage | 跑的更快,吃內(nèi)存。大概能提速2.5倍
# Learning rate | 學習率
lr="6e-5"
unet_lr="6e-5"
text_encoder_lr="7e-6"
lr_scheduler="cosine_with_restarts" # "linear", "cosine", "cosine_with_restarts", "polynomial", "constant", "constant_with_warmup"
lr_restarts_steps=5
lr_warmup_steps=0 # warmup steps | 僅在 lr_scheduler 為 constant_with_warmup 時需要填寫這個值
# Output settings | 輸出設置
output_name="pretty1" # output model name | 模型保存名稱
save_model_as="safetensors" # model save ext | 模型保存格式 ckpt, pt, safetensors
# 其他設置
network_weights="" # pretrained weights for LoRA network | 若需要從已有的 LoRA 模型上繼續(xù)訓練,請?zhí)顚?LoRA 模型路徑。
min_bucket_reso=256 # arb min resolution | arb 最小分辨率
max_bucket_reso=1024 # arb max resolution | arb 最大分辨率
# ============= DO NOT MODIFY CONTENTS BELOW | 請勿修改下方內(nèi)容 =====================
export HF_HOME="huggingface"
export TF_CPP_MIN_LOG_LEVEL=3
extArgs=()
if [ $train_unet_only == 1 ]; then extArgs+=("--network_train_unet_only"); fi
if [ $train_text_encoder_only == 1 ]; then extArgs+=("--network_train_text_encoder_only"); fi
if [ $persistent_workers ]; then extArgs+=("--persistent_data_loader_workers"); fi
if [ $network_weights ]; then extArgs+=("--network_weights $network_weights"); fi
accelerate launch --num_cpu_threads_per_process=8 "./sd-scripts/train_network.py" \
? --enable_bucket \
? --pretrained_model_name_or_path=$pretrained_model \
? --train_data_dir=$train_data_dir \
? --output_dir="./output" \
? --logging_dir="./logs" \
? --resolution=$resolution \
? --network_module=networks.lora \
? --max_train_epochs=$max_train_epoches \
? --learning_rate=$lr \
? --unet_lr=$unet_lr \
? --text_encoder_lr=$text_encoder_lr \
? --lr_scheduler=$lr_scheduler \
? --lr_warmup_steps=$lr_warmup_steps \
? --network_dim=$network_dim \
? --network_alpha=$network_alpha \
? --output_name=$output_name \
? --train_batch_size=$batch_size \
? --save_every_n_epochs=$save_every_n_epochs \
? --mixed_precision="bf16" \
? --save_precision="fp16" \
? --seed="1337" \
? --cache_latents \
? --clip_skip=$clip_skip \
? --prior_loss_weight=1 \
? --max_token_length=225 \
? --caption_extension=".txt" \
? --save_model_as=$save_model_as \
? --min_bucket_reso=$min_bucket_reso \
? --max_bucket_reso=$max_bucket_reso \
? --noise_offset=0.1? \
? --xformers --shuffle_caption --use_lion_optimizer ${extArgs[@]}

備注:
1.因為不想找網(wǎng)盤上傳文件,所以直接貼代碼,復制了自己改吧。
2.完全不會編程,這是在大佬指點下整出來的,能用,但不知道有什么問題,俺尋思能跑。
3.自帶參數(shù)我是訓練畫風的,因為我訓練集圖很多(450+),所以參只供參考。
4.代碼里默認的參數(shù)設置,學習率來自于?青龍圣者?大佬推薦,其他參數(shù)來自于?SHIN_NA?大佬的回答。
總步數(shù)=圖片數(shù)×重復數(shù)×epoch/batch,控制在2000左右。比如?圖片470*重復1次*epoch20/batch5=1892,圖越多總步數(shù)可以越多。
