Datawhale X魔搭AI夏令营第四期 魔搭-AIGC方向 Task3笔记
随着课程的进行,我们夏令营第四期的学习也即将临近尾声。在TASK1没填的大坑终于找上门来,准备给我们来一点小小的AI震撼。本次笔记便着重记录ComfyUI与lora微调的相关知识与操作。
一人之言,如有缺漏,敬请指正。
在学习之前,我们需要知道一个概念——SD(Stable Diffusion),即通过降噪的方式,将一个原本的噪声信号变为无噪声的信号。翻译一下,就是把一个几乎全是乱码的图变成一个正常的图(见下图)。
(图源自教学视频)
那么,我们接下来瞄准ComfyUI,来看看它与SD又有何联系。
相关于ComfyUI
首先,提到ComfyUI,我们不得不引出GUI,即 "Graphical User Interface"(图形用户界面)。GUI有着图标、按钮和菜单等交互方式,我们所见到的浏览器页面本身,便是GUI。
而ComfyUI 是GUI的一种,它把图像生成的过程分解为众多步骤,我们便可以自己去制定图像生成过程的每一个步骤,定向产出自己需要的图像。我们知道,ComfyUI的核心模块由模型加载器、提示词管理器、采样器、解码器组成,接下来我将用几张图更为明了地描述本次我们所用ComfyUI的相关使用流程。
ComfyUI使用步骤
首先,我们需要了解第一步——模型加载器。
在模型加载器与提示词管理器之间,我们可以插入LORA微调。
而后,第二步便是我们喜闻乐见的提示词管理器。
提示词管理器进行编码后,送入KSampler进行采样,即采样器。
需要注意的是,SD的降噪步骤需要采样,这就是SD与ComfyUI的相连之处,其中的steps、scheduler等便是降噪的步骤。
而对于scheduler,它有着6种模型,对于带有Ancestral词语的(如EulerAncestral)模型,此模型下的图在一步步降噪时不会逐渐趋向于一个固定的图像,而是仍旧在不断变化,即发散。而有着Karras后缀的模型一开始时的sampling noise的值更大,后期时则会更小。
接下来为最后一步,KSampler的数据转到解码器进行解码。
最终,按下生成按钮,稍微等待片刻,我们便可在生成区找到生成的图像。
而在SD中,我们也需要知道,图像的生成是由UNet接受来自于VAE编码器的噪声与文本编码器转化后的文本向量后,预测最终图像,最后再进行生成。
相关于LORA微调
LORA微调的相关解析,教程中已解释得十分清楚,其微调最大的特点便是只微调了模型的部分的权重,节省了大量的显存空间,使得我们学习AI作图的成本大大降低。
LORA微调也具有可控性,这使我们能够对模型进行自己的个性化调整,同时它还可以调控模型,让模型在遇到一些从未见过的数据时不至于跑偏。
TASK2中提到的LORA的微调代码,在本次教程中得到了逐行逐句的解释,其中我个人认为比较重要的两个点是lora_rank以及lora_alpha。
lora_rank:lora_rank后跟一个自然数,数字越小,则在训练过程中所需的内存与计算需求越小,且模型性能降低得并不显著。
lora_alpha:lora_alpha范围为0.00至4.00(本次学习所使用的ComfyUI),数字越大,LORA对图像进行微调的强度越高。
相关于数据集
数据集的方面我们可以从各大网站上找寻,这里不过多赘述,合法合规即可。
笔记至此结束,后面还扯了两句题外话。
成败仅在转眼间。随着一次又一次的打卡与上传笔记,我们这次的AI相关学习已行至尾声。不说是收获颇丰,至少也可以说是小有所成。最初的最初我只是想了解一点简单的AI作图领域的相关知识,没想到截至目前,我所学的远远超越我所想的。AI这个领域可以算是二十一世纪新生的朝阳,它在十九世纪便已初具雏形,随之在我们的时代厚积薄发。AI成熟以来,几乎是在各行各领域都呈井喷式的发展。相信不久的将来,AI会与目前还未广泛运用的新技术一同开拓科技的发展方向,提高人们的生活质量。
希望下一次还可以参加Datawhale X魔搭AI夏令营。
下次换一个方向。