Lora, Dreambooth and Textual Inversion 说明
您是否想象过您可爱的宠物与埃菲尔铁塔合影的画面,或者想象过如何生成一张带有您朋友面孔的人工智能图像? 是的,通过稳定扩散技术的微调,这完全是可能的!
创建这些场景的整个过程看似复杂,因为它涉及到以一种看似自然和毫不费力的方式将描绘的特定主题或对象融入新的环境中。 最初,"稳定扩散 "可以生成人脸图像,但往往会生成陌生人的图像。 即使提示名人或人物的名字,结果的准确率也不会达到 90%。 很可能生成的图像相似度低于 50%。
利用稳定扩散技术,可以轻松帮助实现这些图像。 稳定扩散支持通过使用 Lora、Dreambooth 和 Textual Inversion 技术来训练主题。 用户广泛使用这四种训练技术来训练机器,生成准确而具体的主题。 模型训练并不局限于人脸,它可以训练人脸、动物、车辆、家里的花瓶甚至是图片风格等任何类型的主题。
现在,很多人主要用它来训练人脸图像或图片风格(波普艺术风格、矢量风格等)。 Lora、Dreambooth 和 Textual Inversion 是人工智能算法技术的一部分,用于支持稳定扩散等扩散模型的训练和完善。 它的工作原理是将特定对象作为输入输入到模型中。 这是对每种微调如何彼此不同的另一种技术解释。
- Dreambooth
Dreambooth 由谷歌研究团队于 2022 年首次发布。 Dreambooth 可以捕捉主体,并将其整合到任何想要的环境中。 它源于摄影棚的理念,一旦捕捉到主体,就可以重现梦境。
谷歌团队在一篇研究论文中展示了 Dreambooth 的功能,他们仅使用了 4 张柯基犬的照片作为输入。 结果,Dreambooth 模型能够在多种场景下生成许多柯基犬的图像。 DreamBooth 功能强大,可以从任何艺术作品中捕捉图片或风格的精髓。 它允许用户微调和自定义文本到图像的模型以及相应的类名(如 “狗”、“人”、“建筑”)。
Dreambooth 能够产生高质量和多样化的输出。 有人说,Dreambooth 是捕捉特定事物/人物本质的绝佳工具。 梦之窗的训练方法是,它需要使用一个特定的、罕见的、没有太多含义的词来进行主题训练。 之所以需要这样做,是因为这样可以防止人工智能将其与常见的和其他已学过的单词混淆。 其次,Dreambooth 也有先验保护类方法。 基本上,这就是所谓的 “保存图像”,我们将模型中需要防止修改的部分放入类图像中,而将需要训练的部分排除在类图像之外。 但是,如果设置不正确,输出结果可能会与类图像完全相同,或者与训练图像过于相似。 与 LoRA 和文本反转相比,Dreambooth 更容易扭曲色彩平衡和特定对象。
DreamBooth 是一种功能强大的培训方法,它能保留主体身份并忠实于提示。 不过,使用起来可能会令人沮丧,而且需要至少 12GB 的 VRAM。 自定义模型偏重于特定主题或风格,可以生成比标准模型更高质量的图像。 梦ooth 有其局限性,因为它只能生成经过训练的图像,而详细的风格模型可能无法生成任何不熟悉的图像。 梦ooth 的输出通常是 .ckpt (检查点)模型格式。
例如,"Anything "模型可以生成很好的结果,但它只能生成带有图像的背景。 如果我们要求它创建一个 “普通背景”,它是做不到的,因为它不知道那是什么。 这意味着在生成任何不熟悉的东西(如人物、地点或事物)时,细节风格模型可能会失败。 尽管有其局限性,DreamBooth 仍然可以产生很好的效果,但不能取代 LoRA 或文本反演等其他方法。 LoRa 模型被广泛使用,但 DreamBooth 仍然被认为在图像质量方面更胜一筹,因为它可以接受更多的图像输入到自定义模型中。
用户需要确保所有图像都贴有适当的标签,使用较小的学习率,应用事先保存损失,并注意不要过度拟合数据,等等。
很多人不使用 Dreambooth 训练的原因是,它比其他训练方法更 “昂贵”。 训练时间通常在 15 到 20 分钟左右,主要生成高质量和多样化的输出结果,文件大小从 3 GB 到 8 GB 不等,取决于输入图像的质量和数量。 此外,Dreambooth 还能更好地捕捉有关图像风格、模型的所有信息,这些信息都集中在一个检查点上,并具有非常详细的主体特征。
- LORA (Low-Rank Adaptation)
与其他微调模型相比,LoRA 是一种减少最新发布的训练参数数量的数学技术。 这相当于创建了一个不同的模型,而不是保存整个模型。 微软的研究人员开发了 LoRA,Simo(一种新的图像生成模型)也在稳定扩散中使用了它。 LoRa 就像是模型中的一个补丁或注入的一部分,虽然不如 Checkpoints 那样细致入微,但根据大多数人的共识,它与 Checkpoints 模型(Dreamboooth)的性能相差约 95%。
在阅读了多个论坛之后,许多评论认为 LoRa 模型优于文本反演。 LoRa 是首选,因为它与 Dreambooth 一样强大,但训练时间更快、内存消耗更少、磁盘空间占用更小。 另一方面,Dreambooth 可以改变色彩平衡和对象,而 LORA 和 TI 却无法做到这一点。 值得注意的是,LoRa 可以与任何在 SD 1.4 或 1.5 上训练过的模型一起使用,无论 Chilloutmix 或其他模型是用来嵌入 LoRa 文件的。 不过,如果 LoRa 模型是在用于生成最终输出的同一模型上训练的,则可获得最佳效果。
强烈建议将 LoRa 用于多个模型,它的大小较小,低于 150MB,甚至可以小到 1MB。 使用 LoRa 进行训练的速度也更快(5-10 分钟不等),训练时所需的 VRAM 也更少。 它非常适合训练只有 5-10 张图像的小型数据集,图像质量越高,效果越好。 LoRa 最适合用于训练人脸和风格,但不建议用于训练逼真的人脸。 不过,如果 LoRa 模型是在用于生成最终输出的相同模型上进行训练,效果会更好。
要创建自己的可重用 LoRA 概念,我们建议您使用 WebUI 进行培训。 需要记住的是,LoRA 模型不能单独使用,需要与检查点模型同时使用。 在文本提示中使用 LoRA 时,我们注意到其格式通常为 <lora:模型名称:LoRA 权重>,例如,它可以像这样 lora:AngelinaJolieV1:0.8。
模型名称后面的 0.8 表示您希望在输出图像中加入多少 LoRA 权重。 0.8 代表 80%。 权重越高,人工智能就会尽量保留模型的特征。 如果 LoRA 基于动漫人物模型,而 Checkpoint 模型基于真实的 3D 图像,这有时会带来麻烦。 有时它生成的输出会有轻微失真。 通常第一次尝试时,可以将权重设定在 0.6-0.7 之间,以检查 LoRA 是否能与模型很好地融合。
LoRa 模型的一个潜在缺点是,它们似乎高度依赖于所使用的特定训练数据。 例如,基于 ChillOutMix 训练的 LoRA 模型可能在 ChillOutMix 模型上表现良好,但在 Dreamshaper 模型上却不行。 另一方面,Textual Inversion 在各种基于 1.5 的模型中似乎都能很好地发挥作用。
- Textual Inversion
Textual Inversion 是一种在小文件中向模型教授概念(如人或物)的方法。 它的优点是占用磁盘空间小,使用方便。 文本反转的优点是体积小,在提示中使用方便。 文本反转的最小输出大小仅为 40 至 100 kb(千字节),如果您没有大容量存储设备,但又想用电脑进行各种科目的训练,那么文本反转就非常有用。
一般来说,文本反演包括捕捉物体或人物的图像,为其命名(例如,Abcdboy),并将其纳入稳定扩散,用于生成图像提示(例如,Abcdboy)。
使用 Textual Inversion 技术进行面部训练是一个极佳的选择,因为它比其他训练技术更具适应性,而且所需的空间也最小。 这种方法通过利用模型已有的知识来指导其获得所需的人物外观,从而使您能够事半功倍地获得类似的效果。 如果操作得当,它们的准确性非常可靠,使用起来也非常灵活。 Textual Inversion 最适合训练一个。
Textual Inversion 为生成器提供如何创建图像的指导,通常只包含 10-30k 的提示,而自定义模型可能包含几 GB 的数据。 要在如此有限的空间内包含如此多的信息,Textual Inversion 是不可行的。 因此,Textual Inversion 仅限于一个较小的 “概念”,而无法包含像 "动漫风格 "这样宽泛的概念。 动漫的 Textual Inversion 可能只能根据用于训练 Textual Inversion 的图片生成一到两个姿势,而不是自定义模型中的众多姿势。 建议在训练文字反演时只使用几张图片,因为过度训练或训练过度会使其失效。
Textual Inversion 可以影响整个图像,这一点是正确的,但同样的道理也适用于添加到提示中的任何单词。 与文字提示一样,Textual Inversion 的目的是引导图像生成器到达模型潜在空间中的特定位置,而自定义模型实际上是修改潜在空间本身,从而产生更显著的影响。
Textual Inversion 主要是通过充当提示语助手,向模型教授一个概念,如人或物。 这种方法也有其缺点,比如会占用提示符的标记位置,而且不适合完美复制。 不过,如果与一个好的模型相结合,Textual Inversion 可以产生极佳的效果。
需要注意的是,Textual Inversion 一般只适用于它所训练的模型,而且更适用于照片逼真的模型,而不是动漫模型。 Textual Inversion 本质上包含一个描述人的面部特征(如鼻子大小和眼睛形状)的向量,因此更适合逼真的模型。
我们甚至可以在一次提示中使用多个 Textual Inversion(不像Dreambooth,一次只能使用一个 checkpoint )。 不过,这些方法不如其他方法有效,因为它们对生成器的提示较少。 Textual Inversion 最适合逼真的脸部而非动画风格的脸部,因为它只包含有限的信息量。 此外,您不能同时使用两个检查点,因此必须以丢失部分信息为代价合并它们。 文本反转就像一个提示助手,可以引导图像生成器到达模型潜在空间中的某个位置。 当它与一个好的模型搭配时效果最佳,但它只适用于你训练它的模型。
这其中有许多因素在起作用,包括训练者的技能和输入资源的质量。 如果您只想训练特定的人或物体图像,我们建议用户使用 LoRA 作为稳定扩散的主要训练方法,因为它高效且易于实施。 与其他类型的训练方法相比,LoRA 的使用率更高。 这得益于较低的硬件要求和较短的训练时间。 这意味着模型创建者有更大的潜力和效率,有更多的机会进行实验和微调。 另一方面,如果您想训练主题和风格的整体概念,Dreambooth 将是利用完整训练方法的最佳选择。