简介

不多说了,其实便是个简略的Lora模型练习的进程。丹成逐我三山去,不作巫阳云雨仙!!!

练习资源准备

过程1:收集20+张图片

  1. 可所以拍照取得;
  2. 可所以视频提取;
  3. 可所以截图;

过程2:将图片尺度进行处理

能够自己手动剪切,也能够运用如下的命令行进行批量裁剪,或许运用www.onlinephotosoft.com/zh-CN/birme…

我运用的命令行裁剪的,命令如下

magick mogrify -gravity center -extent 1:1 -crop 3x3@ *.jpeg *.webp
magick mogrify -crop 768x768+0+0 *.jpeg *.webp *.png

过程3:处理完的图片进行挑选

选取契合条件的图片,将不契合条件的图片除掉!

过程4:运用SD的图画预处理

如图填写,选中生成描述,由于咱们现已对图片进行了裁剪和处理,其他的选项就不选了。

云服务上进行Lora训练(俗称炼丹)
处理完毕后,在咱们的方针目录下,能够看到如下信息

云服务上进行Lora训练(俗称炼丹)

这儿是图片,及其对应的文本描述,能够点开看下,也能够经过自己补充一些文本描述。

云服务上进行Lora训练(俗称炼丹)

练习基本要求

  1. 显存12G,练习768×768的图,这样能够防止大图的时候呈现的图画堆叠;
  2. 至少15张图片,每张图片的练习步数不少于100;
  3. 相片人像要求多角度,特别是脸部特写(尽量高分辨率),多角度,多表情,不同灯光效果,不同姿态等;
  4. 图片构图尽量简略,防止复杂的其他因素干扰;
  5. 能够单张脸部特写+单张服装按份额组成的一组相片(这儿份额是3:1)
  6. 减少重复或高度相似的图片,防止形成过拟合;

练习软件装置

按照过程,进行练习软件的装置。

地址如下:github.com/bmaltais/ko…

服务器运转

  1. 假如是在服务器上运转,先检查自己的驱动
nvidia-smi

云服务上进行Lora训练(俗称炼丹)

  1. 假如是在服务器上运转,留意自己的驱动地址是不是正确,假如不正确,需求先指定

阿里云的默许PATH如下

云服务上进行Lora训练(俗称炼丹)

能够在这个基础上,根据你CUDA的方位,增加途径:

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-11.7/lib64"
export TF_ENABLE_ONEDNN_OPTS=0
  1. 假如是在服务器上启动的,那么执行命令如下
./gui.sh --listen 0.0.0.0 --server_port 7861 --inbrowser --share

云服务上进行Lora训练(俗称炼丹)

点击public URL之后,能够直接翻开页面了,大致如下

云服务上进行Lora训练(俗称炼丹)

练习设置

Dreambooth LORA

咱们运用的是Dreambooth LORA,留意不要选错呀

设置Source Model

挑选运用的主模型,比如真实风格。

云服务上进行Lora训练(俗称炼丹)

设置Folders

设置资源地址,主要如下

  1. Image folder:练习图片所在的方位;
  2. Output folder:练习完成后,能够在这个地方找到现已练习完的Lora模型;
  3. Logging folder:日志文件

云服务上进行Lora训练(俗称炼丹)

这三个文件夹都能够在控制台自己创建的,其间Image folder对应的地址,要上传咱们的练习图片

练习图片:

云服务上进行Lora训练(俗称炼丹)

设置Training parameters

  1. 设置好尺度
  2. 禁用buckets
  3. 假如练习报错NameError: name 'str2optimizer8bit_blockwise' is not defined,则能够将Optimizer改为AdamW.

云服务上进行Lora训练(俗称炼丹)

开端练习

点击Train Model即可开端练习。

后台能够看到进度条:

云服务上进行Lora训练(俗称炼丹)

练习了18张图片,大约需求25分钟左右。GPU是阿里云的A10,详细如下

云服务上进行Lora训练(俗称炼丹)

可能发生的问题

短少包:tensorflow、tensorrt等

假如后台报错,那么需求按照过错的提示,进行处理,比如短少显卡的包,则需求装置对应的包。

比如装置tensorflow

pip install tensorflow==2.9.2

装置tensorrt

pip install nvidia-tensorrt -U --index-url https://pypi.ngc.nvidia.com

找不到文件:libnvinfer.so.8、libnvinfer.so.7等

能够经过下面命令行,检查缺失的文件的方位

find / -name libnvinfer.so.8

云服务上进行Lora训练(俗称炼丹)
当然能够做相关,或许增加文件的PATH途径,让程序能够找到。

sudo ln -s /usr/local/lib/python3.10/dist-packages/tensorrt/libnvinfer.so.8 /usr/local/lib/python3.10/dist-packages/tensorrt/libnvinfer.so.7
sudo ln -s /usr/local/lib/python3.10/dist-packages/tensorrt/libnvinfer_plugin.so.8 /usr/local/lib/python3.10/dist-packages/tensorrt/libnvinfer_plugin.so.7
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/python3.10/dist-packages/tensorrt/:/usr/local/cuda-11.7/

大图欣赏

云服务上进行Lora训练(俗称炼丹)
云服务上进行Lora训练(俗称炼丹)
云服务上进行Lora训练(俗称炼丹)
云服务上进行Lora训练(俗称炼丹)
云服务上进行Lora训练(俗称炼丹)