ComfyUI
ComfyUI是一个基于节点工作的用户界面,主要用于操作图像的生成技术。它的核心模块由模型加载器、提示词管理器、采样器、解码器。
模型加载器:Load Checkpoint用于加载基础的模型文件,包含了Model、CLIP、VAE三部分。CLIP模块将文本类型的输入变为模型可以理解的latent space embedding作为模型的输入,VAE模块的作用是将Latent space中的embedding解码为像素级别的图像。
采样器:用于控制模型生成图像,不同的采样取值会影响最终输出图像的质量和多样性。采样器可以调节生成过程的速度和质量之间的平衡。
解码器:即VAE模块。
使用ComfyUI
在魔塔中启用GPU环境下的notebook。
在新终端中输入代码,初始化 Git LFS 并从远程仓库克隆一个数据集,将克隆下来的文件移动到当前目录中,并清理不需要的文件夹。创建目录结构并将微调完成的Lora模型的checkpoint 文件移动到指定的位置,为后续的模型加载或推理做准备。
一键运行ComfyUI.ipynb,下载安装ComfyUI。
使用不带Lora的生成样例和带Lora的样例生成图片
什么是模型微调?
当模型在某方面能力不足,通过调整模型的参数,将原有模型改造成新的模型,使其在该方面的能力提升。将模型的原有参数调整为新的参数,新的参数实际上可以表示为:原有参数+改动的量,微调本质上是学习改动的量。微调的方式分为两种:全量微调和LoRA微调。
全量微调
对于大模型中所有参数,都要学习得到其改动的量。复杂度高。
LoRA微调
用更少量的资源进行高效微调,不把模型改动太多,把模型的想提升的部分能力放大而保留大模型的其他能力,除去冗余信息,避免模型能力遗忘。
参数矩阵W可以表示为矩阵A和矩阵B的乘积。假定W为100100的矩阵,即包含1W的参数;矩阵A和矩阵B为100K和K*100的矩阵。假如矩阵W的价值越大,K取值越小。如当K=2时,只需要学习400个参数就可以达到学习1W个参数的目标。这就是LoRA的核心思想,K为Rank。
如何
- 数据收集:收集含有特定风格的数据集,如动漫、水墨画风格。
- 数据处理:使用Data-Juicer进行处理,它可以去除水印等。
- 模型训练-参数调整
- 模型训练-LoRA融合
- 编写提示词:使用LLM生成提示词。推理阶段和训练阶段的描述需要保持一致,利用“触发词”唤醒LoRA能力。