跳转到内容

AI 艺术生成手册/训练

来自维基教科书,开放的书籍,开放的世界

什么是训练?

[编辑 | 编辑源代码]

训练是一种向模型引入概念的方法,使模型能够“学习”引入的新概念。目前有几种已建立的训练方法

(a) Dreambooth

Dreambooth 是一种在特定主题上训练模型的方法,同时保持其原始特征不变。类别图像有助于保留来自基础模型的信息。输出是一个新的模型。 它最适合所有类型的用例概念(主题和风格),但缺点是大小。

(b) 微调

微调类似于 Dreambooth,但它修改了模型对训练主题的了解。不需要类别图像,因为目标是覆盖现有概念。输出也是一个新模型。

它最适合所有类型的用例,用于特定利基概念的生成(例如:生成埃及/北欧神话生物),这些概念目前在当前的 Stable Diffusions 版本中无法获得。缺点是,它可能会导致之前训练权重的灾难性“记忆丢失”,因为它会覆盖现有概念。

(c) LoRA(低秩适应)

LoRA 训练是 Dreambooth 的简化版本,它使用更少的资源并生成更小的文件。它使用一种名为“权重矩阵低秩近似”的技术。这种方法用于减少模型中的参数数量并提高其泛化能力。但是,它可能会为了这些优势而牺牲一些质量。输出是一个 Lora 模型(模型的迷你版本),可以与任何基础模型一起使用。

它适合风格(尤其是动漫风格),但不适合现实人脸的主题。

LyCORIS - Lora 超越传统

LyCORIS 是一种新的训练方法,试图找到更好的方法来使用更少的参数微调 Stable Diffusion 模型。它使用 Lora 模型,这些模型是 Stable Diffusion 模型的更小更简单的版本,可以运行得更快并使用更少的内存。LyCORIS 尝试使用不同的方法来改变 Lora 模型以适应不同的任务或领域,例如使用一种称为 Hadamard 乘积的数学运算来将 Lora 模型与其他模型结合起来。

(d) 文本反转(TI)

文本反转训练允许你将一个人/物体/风格训练为一个独立的标记,可以应用于任何模型(取决于 web-ui)。输出是一个包含训练标记的嵌入。

(e) 超网络

超网络是一种通过附加一个小网络来微调模型风格的方法。小网络修改了模型的交叉注意力模块,而主模型被冻结,因此它快速有效。这将有助于它训练模型而不会改变其权重


目前,许多扩展在 Automatic1111 中运行不正常(由于依赖关系冲突/Gradio 错误/pyTorch 错误),因此最好使用替代应用程序,例如 Stable Tuner / Kohya-ss、Everydreamer 2 进行训练。


经验法则

如果你想训练一个单一概念(例如,在一种面孔类型、一种汽车类型等上训练),建议在 Lora 上训练。否则,在 Dreambooth/微调上训练

什么是概念的意思?

[编辑 | 编辑源代码]

概念是你希望模型学习的关联词,只要你有足够的训练数据集就可以。

概念可以分为两种类型:主题风格

(a) 主题是你希望模型识别或生成的 主要对象或实体,例如面孔、动物(例如:某些犬种)、汽车(例如:老式赛车)等。

(b) 风格是你希望模型应用或修改的视觉特征或特性,例如颜色、纹理、形状等(例如:某些艺术风格,例如葛饰北斋艺术、纸雕)。


没有固定的限制,但经验法则是:你训练的概念越多,训练所需的 GPU VRAM 使用量就越高,时间也越长。

由于观察到模型在训练过程中没有增大,我们可以推断,训练时间越长,你越有可能在模型在训练前已经了解的内容方面丢失一些质量。

什么是权重?

[编辑 | 编辑源代码]

在神经网络的概念中,“权重”是乘以神经网络中每个神经元的输入的值。它们代表每个输入对于神经元输出的重要性。权重最初是随机初始化的,然后在训练期间更新以最小化预测输出与实际输出之间的误差。 Stable Diffusion 中的权重是代表 AI 模型保留的内容的值。这些数字驱动着 Stable Diffusion 在制作图片和遵循提示时进行选择。它们决定模型如何将输入图像或噪声转换为输出图像。权重在训练期间通过最小化生成图像与目标图像之间的误差来学习。

由于模型在训练过程中不会增大,因此训练时间越长,模型在训练前已经了解的内容方面的质量就会受到的损害就越大。在其他内容(正则化/类别数据)上进行训练可以在一定程度上减少这种影响。

模型训练的前提条件是什么?

[编辑 | 编辑源代码]

以下是模型训练最重要的前提条件(无论你选择哪种类型的训练)

(a) 具有至少 10GB VRAM 及以上的 强大 GPU 的计算机系统。最好是 NVidia,因为许多训练方法开箱即用地支持 CUDA

Stable Diffusion 训练是 一项计算密集型任务,需要大量的内存来存储和处理大量数据。VRAM 代表视频随机存取内存,这是 GPU 用于存储和访问数据的内存。GPU 的 VRAM 越多,它可以一次存储和处理的数据就越多,这可以加快训练过程,并允许使用更大的模型和更高的分辨率(例如:SD1.5 处理高达 512*512px - 4GB VRAM,而 SD2.1 处理高达 768*768px)。

(b) 高质量 图像作为数据集准备

要被视为高质量图像

(i) 参考任何库存图像网站了解图像应该是什么样子(例如构成、照明、对比度等)

(ii) 最好是高分辨率图像(推荐 512*512px,或最好是超过 768*768px)。如果图像需要压缩到 512px*512px,则不会丢失太多细节。

(iii) 如果作为主题进行训练,最好是主题应该是图像中的主要焦点。图片中不应该有太多可能干扰训练的其他主题。

(iv) 图像的多样性。图像包含的主题应该尽可能多样化(例如,在不同的照明条件、不同的地点、不同的姿势、不同的表情...下拍摄)

模型训练的工作流程是什么?

[编辑 | 编辑源代码]

模型训练的工作流程通常基于以下内容

注意:你可以点击以获取更多信息。

(i) 数据集(图像)准备






(ii) 文本标题图像

Tagging Images
标记图像





(iii) 训练模型/监控训练

Monitoring
监控





(iv) 评估

参考文献

数字走廊 Google 表格

什么是权重和偏差?

微调图像指南

华夏公益教科书