Stable Diffusion模型训练全解析

在当今数字化艺术的浪潮中,AI 绘画以其独特的魅力和无限的创造力,吸引着无数艺术家和爱好者的目光。Stable Diffusion 作为AI绘画中的佼佼者,其模型训练更是开启精彩绘画世界的关键钥匙。今天,就让我们一同深入探索 Stable Diffusion 模型训练的奥秘,看看如何通过巧妙的训练,让它成为我们手中的创意神器,绘出心中的梦幻画卷。

模型训练模式全解析

Dreambooth:个性化创作的魔法棒

 

Dreambooth 的核心原理宛如一场神奇的魔法,它借助特定的标识符,赋予模型学习全新概念或特定主题的能力。就像是给模型一双慧眼,让它能够识别并理解我们想要的独特内容。其训练过程分为两步,先是对低分辨率模型进行精细微调,这一过程中,输入图像和包含唯一标识符及主题类名的文本提示就像是给模型的 “学习资料”,引导它逐步掌握新的概念。然而,这其中也隐藏着一个关键挑战 —— 避免过拟合。为了攻克这一难关,Dreambooth 引入了类特定先验保持损失(class - specific prior preservation loss),就像是给模型戴上了一副 “智能眼镜”,让它在学习过程中既能专注于目标,又能保持对同类元素的多样性生成能力。接下来,通过低 - 高分辨率图像对,模型进一步微调超分辨率组件,就像打磨一颗宝石,使其从粗糙变得精致,能够生成更加清晰、细腻的图像。

 

使用 Dreambooth 进行模型训练时,就像是搭建一座创意工坊。首先要创建一个初始化模型,这个模型会被存储在特定路径下,成为模型训练过程中的 “创意基地”。在创建过程中,选择源检查点(Source Checkpoint)作为初始化模型参数就如同挑选合适的基石,而采样器(Scheduler)则决定了模型学习的 “节奏”。设置完成后轻轻一点创建按钮,只需片刻,我们的 “创意基地” 就搭建成功了。

 

进入训练阶段,众多参数如同各种工具等待我们使用。是否采用 LORA 就像是决定是否使用一种特殊的 “创意加速器”,训练轮数(Epochs)如同打磨作品的次数,模型保存策略、批量大小(Batch Size)和学习率等参数则共同影响着模型训练的效果和效率。概念(Concepts)部分的设置也别有洞天,数据路径是模型获取 “灵感素材” 的通道,类(class)和提示词(prompt)则像是指挥模型创作的 “指令”。这里的 prompt 明确告诉模型我们心中理想图像的模样,而 class 则像是给模型提供的 “参考范例”,帮助它避免过度关注单一元素而导致过拟合。

 

从训练效果来看,以 “Ghost” 为例,经过训练后的模型仿佛拥有了超能力,能够理解 “Ghost” 是一位身着特定装备的军人形象,虽然可能暂时无法精准捕捉到面罩上的骷髅图案,但这已经是一个了不起的开始。如果我们提供更多丰富的数据,并进行更加精细化的微调,模型就像一位不断成长的艺术家,其作品会越来越完美。不过,在 Dreambooth 训练中,class 信息的使用就像一把双刃剑。当样本不够纯净时,添加 class 可能会让模型陷入 “迷惑”,过度关注背景等无关信息,从而出现过拟合现象,就像 Ghost 身旁突然多了许多不必要的元素。

LoRA:轻量级微调的秘诀

 

LoRA(Low - Rank Adaptation)宛如一位轻巧的精灵,为模型微调带来了高效便捷的新方式。它的主要作用是巧妙地冻结预训练模型权重,如同给模型的知识库 “上锁”,只允许在特定区域进行修改。然后,通过向 Transformer 架构的每一层注入可训练的低秩矩阵,这就像是给模型添加了一些小巧而灵活的 “创意模块”,大大减少了下游任务的可训练参数数量,从而实现加速微调。

 

LoRA 的特点十分引人注目。它的通用性就像一把万能钥匙,适用于各种不同的网络结构,无论面对何种模型,都能轻松施展其 “魔法”。可移植性更是其一大亮点,微调结束后,只需简单地将原模型参数与新矩阵相乘,就能得到全新的模型,就像搭积木一样简单。而且,它还能通过简单的 “+/-” 操作实现迁移,让模型在不同场景中自由穿梭。最让人惊喜的是,它不会影响模型的推理性能,因为模型总参数量保持不变,就像给模型换上了一套新装备,但速度和力量依然如初。

 

使用 LoRA 技术进行 AI 绘画主要有两条路径。其一,在 Dreambooth 的设置中勾选 “Use LoRA” 选项,就像在模型的 “控制面板” 上按下一个特殊按钮,开启 LoRA 的功能。其二,通过脚本直接训练 LoRA 模型,这种方式就像亲手打造一个专属的 “创意工具”。不过,在 Dreambooth 中使用 LoRA 后,效果可能会出现一些细微的变化,就像一幅画在不同光线下的微妙差异。而且,通过 Dreambooth 训练导出的 LoRA 模型在应用时会遇到一些兼容性问题,就像两个不同风格的舞者难以配合。它无法直接通过 Additional Network 使用,在 prompt 中加入也会报错,这就限制了它的 “舞台范围”。

LyCORIS:结构创新的探索之旅

 

LyCORIS(Lora beYond Conventional methods, Other Rank adaptation Implementations for Stable diffusion)像是一位勇敢的探险家,在 LoRA 的基础上对网络结构进行了大胆的改进。它包含 LoCon 和 LoHa 两种独特的方法,开启了一段全新的探索之旅。LoCon 像是一位擅长变换的魔术师,用两个卷积操作代替 LoRA 中的两个矩阵相乘,本质上是将 LORA 的 2 层全连接替换为卷积结构网络,就像把一条普通的道路改造成了一条充满奇幻色彩的魔法通道。LoHa 则更像是一位智慧的数学家,在 LoCon 的基础上对矩阵进行巧妙分解,以提升结果矩阵的秩上限,仿佛打开了一扇通往更高维度创意空间的大门。

 

使用 LyCORIS 需要先安装相应的插件,这就像拿到了进入神秘世界的门票。安装成功后,就可以像使用 LoRA 模型一样将其加入 prompt 中,让它在创作过程中发挥独特的作用。但目前的 lycoris 插件还不够完善,不支持 addtionalnetwork 插件,这就像在一场精彩的演出中,部分特效无法正常使用。在实际应用中,LoCon 和 LoHa 都各自面临一些挑战。LoCon 在某些情况下可能会像一位粗心的画家,导致图像边缘信息丢失,泛化性略差;LoHa 则可能像一位迷雾中的行者,生成的图片灰蒙蒙、不清晰,而且还比较占用内存,容易在训练后期陷入过拟合的困境。对比训练过程中的 loss,虽然看起来 loha > locon > lora,但 loss 并不能完全代表模型的实际效果,就像考试成绩不能完全衡量一个学生的综合素质。实际上,LyCORIS 的训练和使用难度相对较大,需要我们更加耐心和细心地去探索和调整。

Textual Inversion:专注词向量的训练之道

 

Textual Inversion 的训练方式宛如一位专注的艺术家,只专注于词 embedding 的雕琢。它通过参数冻结的方式,如同用一把精细的刻刀,精心更新特定词的 embedding 来进行训练。这种方式虽然更加纯粹,但也像是一条狭窄的小径,其训练效果上限受到一定限制。它对样本的要求如同对艺术材料的挑剔,更高的要求意味着需要我们更加精心地挑选和准备。训练难度也相对较大,就像攀登一座陡峭的山峰,需要付出更多的努力。因此,它通常不是我们的首选方法,但在某些特定需求下,比如我们想要让模型深刻理解某个特定词的含义时,它就像一盏明灯,能发挥独特的作用。例如,经过训练后,模型能够准确理解 “Ghost” 这个词的含义,尽管生成的图像效果可能不如 Dreambooth 那样精细完美,但也足以展现其独特的魅力。

HyperNetworks:影响扩散过程的创新尝试

 

HyperNetworks 像是一位神秘的调音师,试图通过调整模型的 Diffusion 过程来创造出独特的效果。它让梯度作用于模型的 Diffusion 过程,特别是在 Attention 部分,通过额外的小网络变换 key 和 query,就像调整音乐的音符和节奏一样,从而影响整个 diffusion 过程,试图为图像生成增添更多的变化和创意。然而,由于其效果和训练难度的问题,目前它还像是一颗隐藏在角落里的明珠,尚未成为主流选择。它需要我们更加深入地研究和探索,才能发现其真正的价值。

模型训练中的挑战与应对策略

过拟合问题:细节与泛化的平衡艺术

 

在 Dreambooth 训练中,class 信息的使用就像一场微妙的平衡游戏。当样本不够干净时,添加 class 本是为了帮助模型更好地学习,但却可能像一阵狂风,吹乱了模型的 “注意力”,导致它过度关注背景等无关信息,从而出现过拟合现象。比如在 Ghost 的训练中,我们可能希望模型专注于 Ghost 本身的特征,但不干净的样本可能会让模型被背景中的元素所干扰,使 Ghost 身旁出现许多不必要的人和物。而 LoRA 模型则像是一位冷静的旁观者,对背景细节的控制能力较弱,不过也正因如此,它不容易陷入过拟合的陷阱。然而,它生成图片的多样性相对较低,就像一位画家的画风比较单一。这就需要我们在训练时像一位智慧的工匠,权衡细节与泛化的关系,根据具体需求选择合适的训练方式和参数设置,精心雕琢模型,使其既能捕捉到关键细节,又能保持一定的泛化能力。

多主体训练:攻克概念融合的难题

 

无论是 Dreambooth、LoRA 还是 Textual Inversion,在多主体训练时都像是一群舞者在尝试共舞,却面临着概念融合的难题。比如同时训练 Ghost 和星瞳,就像让两位风格迥异的舞者完美配合,这并非易事。可能会出现无法在同一张图中准确呈现两个主体的情况,甚至原主体信息会被覆盖,就像一位舞者的光芒被另一位舞者掩盖。对于 LoRA,虽然它在训练结果中可能会同时包含多个主体,但也存在一定概率的 badcase,就像偶尔会出现舞步错乱的情况。目前解决这个问题的方法就像寻找一种和谐的舞蹈编排,包括准备精良的样本,将多个主体巧妙地定义为一个新的 concept,或者尝试更细致的样本处理、参数调整和训练方式,如 textual - inversion 的训练方法。但这些方法都还需要我们不断地探索和实践,就像舞者们需要不断地排练才能达到完美的默契。

 

Stable Diffusion 的模型训练就像一场充满挑战与惊喜的冒险之旅。通过对不同训练模式的深入了解,以及对训练中各种问题的认识,我们就像勇敢的探险家,掌握了更多的地图和工具。我们可以根据自己心中的创意愿景,选择合适的训练方法,精心调整参数,用心处理样本,从而让 Stable Diffusion 成为我们手中最强大的创意画笔。在不断的尝试和实践中,我们将逐渐掌握模型训练的精湛技艺,释放 Stable Diffusion 的无限潜力,在 AI 绘画的广阔天地里,描绘出属于我们自己的绚丽篇章。
关注“小程极客AI教程”微信公众号

版权声明:
作者:
链接:http://www.mecity.com.cn/stablediffusionmoxingxunlian/
来源:AI工具与AI软件教程
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>