stablediffusion的lora模型训练常见问题及报错

共计 1150 个字符,预计需要花费 3 分钟才能阅读完成。

在训练 lora 时,可能会遇到一些问题,比如无法使用本地模型或下载的默认 1.5 模型无法训练等。下面是一些解决这些问题的方法,供大家参考。stablediffusion 的 lora 模型训练常见问题及报错

问题一:无法使用本地模型或下载的 1.5 模型无法训练

可能原因是训练脚本需要链接抱脸网 huggingface 导致。解决方法如下:

  1. 删除缓存目录:C:\Users\Administrator.cache(注意这里的名称 \Administrator 是你自己电脑的用户名)。再次训练时会重新下载模型,需要注意的是缓存文件夹中 tmp 开头的文件是下载失败的文件可以删除,无法断点续传可以删除。
  2. 添加系统变量:在系统搜索里搜索系统变量,进入环境变量设置,新建系统变量 HTTPS_PROXY,值为 http://127.0.0.1:7890。Windows 环境变量添加后需要重启生效,此方法解决了无法使用本地模型训练的问题。需要注意的是端口 7890,查看方法是打开 clash 魔法,主页右上角查看,如果不一样要改成你那边的端口。

问题二:选择何种底模进行训练

在训练过程中,可以选择默认的 1.5 模型进行训练。这个模型具有较高的泛用性,但也有一些不足之处。由于一些大模型混合了一些权重,可能导致微调的 lora 缺乏泛用性。所以,默认的 1.5 模型只是一个局部中等的解法,不是最优解,但是可以使用。

问题三:loss=nan 错误

当训练出现 loss=nan 错误时,并不是显存爆满的问题,而是与训练参数或数据集有关。可以尝试调整数据集、删除一些图片、调整参数、换优化器、学习率等来解决。

问题四:cmd=cmd 错误

cmd=cmd 错误是常见错误,具体原因不明,可能有多种原因导致。可以尝试以下解决方法:

  1. 更换底模,建议使用默认的 1.5 模型。
  2. 更换优化器。
  3. 不使用 8bit。
  4. 此错误可能与显存无关,不要过早地认为是显存爆满的问题。

问题五:是否需要打 tag

训练画风时,需要打 tag。有一些视频说训练画风可以不打 tag,但实际经验表明,不打 tag 会导致 lora 效果不佳和其他问题。所以,无论是训练什么,都要打 tag。

关于打标的一些说法

打标是用于学习的内容,标签会固定在图片上。删除一些标签,比如 blue eyes,是为了防止将基础模型中的 blue eyes 引导到 lora 上,导致过拟合。所以,保留一些基本触发词,比如 1girl,可以将 girl 的触发引导到 lora 上。同样的道理,还可以设置一些非常不常用的触发词,在使用该触发词时调用 lora 中存在的内容,而基础模型中不存在。

打标可以辅助 ai 学习,所以去掉需要学习的元素标签有利有弊。例如,如果训练的是能天使头上有光环,那么如果文本中有光环的 tag,使用 lora 时必须在 tag 中写上光环,才会生成能天使头上有光环的结果。如果去掉文本中的光环 tag,lora 生成的能天使就默认有光环了。

正文完