欢迎光临散文网 会员登陆 & 注册

AUTODL版(linux系统)升级LION优化器后训练脚本代码替换

2023-02-23 16:43 作者:星野I梦美  | 我要投稿

小白的替换方法:

1.在左边文件管理,双击打开 train.sh 文件,CTRL+A选中全部,把里面的代码全删了。

2.复制全部下文代码。

3.CTRL+ V粘贴到 train.sh 里,注意删除B站复制自带的引用后缀等内容。

4.CTRL+S保存文件,关闭打开的文件页面。

# 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 | 训练数据集路径


# Train related params | 训练相关参数

resolution="512,640" # image resolution w,h. 图片分辨率,宽,高。支持非正方形,但必须是 64 倍数。

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 | 跑的更快,吃内存。大概能提速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 模型上继续训练,请填写 LoRA 模型路径。

min_bucket_reso=256 # arb min resolution | arb 最小分辨率

max_bucket_reso=1024 # arb max resolution | arb 最大分辨率



# ============= DO NOT MODIFY CONTENTS BELOW | 请勿修改下方内容 =====================

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.因为不想找网盘上传文件,所以直接贴代码,复制了自己改吧。

2.完全不会编程,这是在大佬指点下整出来的,能用,但不知道有什么问题,俺寻思能跑。

3.自带参数我是训练画风的,因为我训练集图很多(450+),所以参只供参考。

4.代码里默认的参数设置,学习率来自于 青龙圣者 大佬推荐,其他参数来自于 SHIN_NA 大佬的回答。

总步数=图片数×重复数×epoch/batch,控制在2000左右。比如 图片470*重复1次*epoch20/batch5=1892,图越多总步数可以越多。

看提示USE LION,大概可能成功了吧,但是内存加速不知道开启没有。


AUTODL版(linux系统)升级LION优化器后训练脚本代码替换的评论 (共 条)

分享到微博请遵守国家法律