1. 学习Diffusion model的后向过程
在扩散模型(Diffusion Models)中,后向过程(也称为去噪过程或生成过程)是一个重要的组成部分,它负责从噪声中逐步恢复出原始图像或数据。扩散模型通常由两个主要部分组成:前向过程(噪声添加过程)和后向过程(去噪过程)。
1.1 后向过程
1.2 实现
1.3 总结
后向过程是扩散模型中恢复原始数据的关键部分。通过逐步去噪,模型能够从高斯噪声中恢复出原始数据。这一过程依赖于训练好的去噪模型,该模型能够预测如何从当前的噪声状态恢复到更接近原始数据的状态。
2. ComfyUI学习
2.1 ComfyUI简介
GUI 是 "Graphical User Interface"(图形用户界面)的缩写。ComfyUI 是GUI的一种,是基于节点工作的用户界面,主要用于操作图像的生成技术,特别之处在于它采用了一种模块化的设计,把图像生成的过程分解成了许多小的步骤,每个步骤都是一个节点。这些节点可以连接起来形成一个工作流程,这样用户就可以根据需要定制自己的图像生成过程。
2.2 图片生成流程
2.3 速通安装ComfyUI
2.3.1 下载安装执行文件
和微调完成Lora文件
2.3.2 进入ComfyUI的安装文件
2.3.3 执行安装程序
2.3.4 进入预览界面
当执行到最后一个节点的内容输出了一个访问的链接的时候,复制链接到浏览器中访问。
2.4 ComfyUI工作流测试
2.4.1 不带Lora的工作流样例及结果
测试结果为:
2.4.2 带Lora的工作流样例的结果
3. Lora微调学习
3.1 Lora简介
LoRA (Low-Rank Adaptation) 微调是一种用于在预训练模型上进行高效微调的技术。它可以通过高效且灵活的方式实现模型的个性化调整,使其能够适应特定的任务或领域,同时保持良好的泛化能力和较低的资源消耗。这对于推动大规模预训练模型的实际应用至关重要。
3.2 微调原理
LoRA通过在预训练模型的关键层中添加低秩矩阵来实现。这些低秩矩阵通常被设计成具有较低维度的参数空间,这样它们就可以在不改变模型整体结构的情况下进行微调。在训练过程中,只有这些新增的低秩矩阵被更新,而原始模型的大部分权重保持不变。
3.3 参数详情
3.4 UNet、VAE和文本编码器的协作关系
UNet:负责根据输入的噪声和文本条件生成图像。在Stable Diffusion模型中,UNet接收由VAE编码器产生的噪声和文本编码器转换的文本向量作为输入,并预测去噪后的噪声,从而生成与文本描述相符的图像
VAE:生成模型,用于将输入数据映射到潜在空间,并从中采样以生成新图像。在Stable Diffusion中,VAE编码器首先生成带有噪声的潜在表示,这些表示随后与文本条件一起输入到UNet中。
文本编码器:将文本输入转换为模型可以理解的向量表示。在Stable Diffusion模型中,文本编码器使用CLIP模型将文本提示转换为向量,这些向量与VAE生成的噪声一起输入到UNet中,指导图像的生成过程
4. 问题与总结
4.1 问题
1. 尝试更改lora_rank的取值,但在训练模型与加载模型两处出现问题,比如:
train_loss较小,cuda内存不够。
2. 在前两次任务中baseline跑下来不会出现任何问题,第3次任务时,会出现数据集路径、无法加载模型等问题。
4.2 总结
作为初学者,通过整个任务流程,对AIGC的相关知识有了一定的了解。虽然写了笔记,但认识上还仅是皮毛。要想进一步地熟悉、掌握,还需后面不断巩固学习。
通过这次学习,能给自己带来多少正反馈,目前还不得而知。可以肯定的是,对后续学习相关内容打下了一点基础。
既然前路漫漫,何不勇往直前。