转载自: [AI绘图教程]在训练Lora之前,应该知道一些什么
点击上方蓝字关注我们
▲ 个人博客和网站,欢迎访问
介绍
之前已经写了一些关于stable diffusion出图的教程了,比较零碎,后面应该会再整理一下,现在写一些lora训练模型的教程.网上相关的教程挺多的但比较杂,对于小白来说很折磨.我这里就推荐三个库.
- derrian-distro/LoRA_Easy_Training_Scripts at installers-v6 (github.com)搭配教程LoRA Training Guide (rentry.co)
- kohya-ss/sd-scripts (github.com)包含很多训练的代码
- 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相对来说是比较好训练的而且能训练人物.
参考资料
- LoRA训练不求人,实用主义LoRA训练教程_哔哩哔哩_bilibili
- Akegarasu/lora-scripts: LoRA training scripts use kohya-ss's trainer, for diffusion model. (github.com)
- 【AI绘画】最佳人物模型训练!保姆式LoRA模型训练教程 一键包发布_哔哩哔哩_bilibili
- kohya-ss/sd-scripts (github.com)
- 如何使用8G以下显卡训练Stable diffusion可用的Lora模型 - 知乎 (zhihu.com)
- (训练篇) Stable Diffusion训练方法对比 - 知乎 (zhihu.com)
- cloneofsimo/lora: Using Low-rank adaptation to quickly fine-tune diffusion models. (github.com)
- LoRA Training Guide (rentry.co)很好的教程
- stable diffusion(二)——Textual Inversion原理与实践 - 知乎 (zhihu.com)
- Textual Inversion (huggingface.co)
END
往期回顾
BREAK AWAY
[AI绘图教程]stable-diffusion webui绘画扩展与模型
[乱谈]斋藤先生,异世界的一缕清风
动漫IT收看号
点分享
点收藏
点点赞
点在看