转载自: [AI绘图教程]在训练Lora之前,应该知道一些什么

点击上方蓝字关注我们

▲ 个人博客和网站,欢迎访问

介绍

之前已经写了一些关于stable diffusion出图的教程了,比较零碎,后面应该会再整理一下,现在写一些lora训练模型的教程.网上相关的教程挺多的但比较杂,对于小白来说很折磨.我这里就推荐三个库.

  1. derrian-distro/LoRA_Easy_Training_Scripts at installers-v6 (github.com)搭配教程LoRA Training Guide (rentry.co)
  2. kohya-ss/sd-scripts (github.com)包含很多训练的代码
  3. Akegarasu/lora-scripts: LoRA training scripts use kohya-ss's trainer, for diffusion model. (github.com) B站视频【AI绘画】最佳人物模型训练!保姆式LoRA模型训练教程 一键包发布_哔哩哔哩_bilibili相当于写个脚本适合小白直接训练Lora

我的建议是先使用第一个库进行学习训练Lora,然后懂了一定知识后使用第三个库方便自己训练.第二个库可以多看看,包括除了Lora外的训练.此外也有GUI版本 the repository maintained by bmaltais,相信在跟玩第一个仓库的教程后一般的技能都够了.

这几个库安装方式都类似,拉取下来后进入目录基本都有环境搭建脚本,而这个脚本会使用python -m venv在目录下创建一个虚拟环境,这个命令只能创建与你本身python解释器相同版本的python虚拟环境,所以我这里先使用conda创建了一个python3.10.8的虚拟环境然后再搭建用于训练的虚拟环境.

后面会陆续出教程,这里先介绍一下概念.

首先需要了解可以用于修改Stable Diffusion出图的模型种类,一般是Textual Inversion、Hypernetwork、Dreambooth 和 LoRA,这些都可以使用khya-ss的sd-script也就是上面的第二个库训练

Textual Inversion

"Embedding" 是 "Textual Inversion" 的结果,因此 "Textual Inversion" 也可以被称为 "Embedding"。该方法仅需要 3-5 张图像,通过定义新的关键词,就能够生成和训练出与图像相似的风格。

在扩散模型中,有很多可以用来定义模型的方法,例如 LoRA、Dreambooth 和 Hypernetworks。但 "Textual Inversion" 方法与众不同的地方在于,它不需要对模型进行改变。该方法基于模型引用给定的图像并选择最匹配的图像,从给定的图像中选择最合适的图像。随着迭代次数的增加,能够迅速生成大量高质量的图像而不损失图像的质量。由于其低计算资源需求,因此适用于需要快速生成大量高质量图像的场景。

  • 生成的模型文件小,大约几十KB
  • 通常适用于转换图像风格
  • 使用时不需要加载模型,只需要在提词中embeddings中的关键tag
  • 本地训练时对计算资源要求不高
  • 可以通过生成的PT文件覆盖在原有基础上继续训练
  • 模型关键字尽量是不常见的词语
  • 推荐训练人物

简单来说,我们可以通过Textual Inversion生成自定义的prompt

首先需要定义一个在现有模型中没有的关键词。新的关键词将生成一个Tokenizer,用不同的数字表示。然后将该关键词转换为embedding。接下来,text transformer会映射出新给定的关键词最适合的embedding向量。不需要改变模型,这可以被视为在模型中寻找新的表征,以便表示新的关键字。

Dreambooth

Dreambooth是一种基于深度学习的图像风格转换技术,可使用少量图像来进行模型训练。它能够将一张图片的风格应用到另一张图片上,生成全新的艺术作品。Dreambooth的优点在于其能够生成高质量的艺术作品,让普通用户也能创造专业级别的艺术作品,无需拥有专业的艺术技能。

  • 模型文件很大,2-4GB
  • 适于训练人脸,宠物和物件
  • 使用时需要 加载模型
  • 可以进行模型融合,跟其他模型文件融合成新的模型
  • 本地训练时需要高显存,>=12GB
  • 推荐训练人物*画风

Hypernetwork

Hypernetwork是一种利用神经网络生成模型参数的方法,其可用于在模型内部寻找更多相似的元素,从而生成类似内容的图像。若您想要训练人脸或特定风格的图像,并且Hypernetwork生成的所有内容看起来都像您的训练数据,那么Hypernetwork是一个很好的选择。该方法无法生成混合训练数据,例如一组猫的图像,风格各异。但是,您可以使用Hypernetwork进行绘画,将不同的训练数据合并到一个图像中,改变整个图像的输出。

  • 生成的模型文件比Embedding大,大约几十MB
  • 通常训练艺术风格
  • 推荐训练画风

Lora

Lora是一种采用少量图像进行模型训练的方法。相比Dreambooth来说,Lora训练速度更快。Dreambooth需要约20分钟才能运行并生成几个GB的模型,而Lora仅需8分钟即可完成训练,并生成约5MB的模型。

  • 模型大小适中,8~140MB
  • 使用时只需要加载对应的lora模型,可以多个不同的(lora模型+权重)叠加使用
  • 可以进行lora模型其他模型的融合
  • 本地训练时需要显存适中,>=7GB
  • 推荐训练人物

欢迎关注,这个系列后面会出Lora训练相关教程,因为Lora相对来说是比较好训练的而且能训练人物.

参考资料

  1. LoRA训练不求人,实用主义LoRA训练教程_哔哩哔哩_bilibili
  2. Akegarasu/lora-scripts: LoRA training scripts use kohya-ss's trainer, for diffusion model. (github.com)
  3. 【AI绘画】最佳人物模型训练!保姆式LoRA模型训练教程 一键包发布_哔哩哔哩_bilibili
  4. kohya-ss/sd-scripts (github.com)
  5. 如何使用8G以下显卡训练Stable diffusion可用的Lora模型 - 知乎 (zhihu.com)
  6. (训练篇) Stable Diffusion训练方法对比 - 知乎 (zhihu.com)
  7. cloneofsimo/lora: Using Low-rank adaptation to quickly fine-tune diffusion models. (github.com)
  8. LoRA Training Guide (rentry.co)很好的教程
  9. stable diffusion(二)——Textual Inversion原理与实践 - 知乎 (zhihu.com)
  10. Textual Inversion (huggingface.co)

END

往期回顾

BREAK AWAY

实战stable-diffusion模型 AI绘图教程

动漫IT收看号

[AI绘图教程]stable-diffusion webui绘画扩展与模型

动漫IT收看号

[乱谈]斋藤先生,异世界的一缕清风

动漫IT收看号

点分享

点收藏

点点赞

点在看