小白学习笔记,如有错误请大佬指正
一、ComfyUI模型
1.概念介绍
GUI 是 "Graphical User Interface"(图形用户界面)的缩写。简单来说,GUI 就是你在电脑屏幕上看到的那种有图标、按钮和菜单的交互方式。
ComfyUI 是一个开源的用户界面工具,通常用于图形界面的构建和设计,尤其是在深度学习和数据处理领域。它提供了一套工具和组件,帮助用户创建定制化的界面,以便更方便地与模型和数据进行交互。
ComfyUI核心模块分别由模型加载器、提示词管理器、采样器、解码器组成。
模型加载器:Load Checkpoint用于加载基础的模型文件,包含了Model、CLIP、VAE三部分。
CLIP模块将文本类型的输入变为模型可以理解的latent space embedding作为模型的输入。CLIP节点则需要输入提示词,其中CLIP节点需要两个,一个作为正向提示词链接K采样器,一个作为负向提示词链接采样器。
解码器:VAE模块的作用是将Latent space中的embedding解码为像素级别的图像。VAE生成模型,用于将输入数据映射到潜在空间,并从中采样以生成新图像。
采样器:用于控制模型生成图像,不同的采样取值会影响最终输出图像的质量和多样性。采样器可以调节生成过程的速度和质量之间的平衡。
UNet:负责根据输入的噪声和文本条件生成图像。
文本编码器:将文本输入转换为模型可以理解的向量表示。
K采样器是SD出图流程中的核心节点,所有节点载入,数据输入,参数配置,最后都会汇总到K采样器,它会结合载入的模型,提示词的输入以及Latent输入,进行采样计算,输出得到最终图像。
(1) input model:从模型加载节点接收的Unet模型。
(2) positive:由CLIP模型编码的正向提示词。
(3) negative:由CLIP模型编码的负向提示词。
(4) latent_image:潜在空间中的图像,可以是一个预先存在的潜在图像节点,也可以是空的。
工作流:通过直观的界面允许用户输入数据、配置模型、生成和优化图像,并最终保存结果的整个流程被称为工作流。
Stable Diffusion的基本原理是通过降噪的方式(如完全的噪声图像),将一个原本的噪声信号变为无噪声的信号(如人可以理解的图像)。其中的降噪过程涉及到多次的采样。采样的系数在KSampler中配置:
(1)seed:控制噪声产生的随机种子。
(2)control_after_generate:控制seed在每次生成后的变化。
(3)steps:降噪的迭代步数,越多则信号越精准,相对的生成时间也越长。
(4)cfg:classifier free guidance决定了prompt对于最终生成图像的影响有多大。更高的值代表更多地展现prompt中的描述。
(5)denoise: 多少内容会被噪声覆盖 sampler_name、scheduler:降噪参数。
2.生成图片流程
3.相关资源网站
在魔搭使用ComfyUI,玩转AIGC! | https://modelscope.cn/headlines/article/429 |
ComfyUI的官方地址 | https://github.com/comfyanonymous/ComfyUI |
ComfyUI官方示范 | https://comfyanonymous.github.io/ComfyUI_examples/ |
别人的基础工作流示范 | https://github.com/cubiq/ComfyUI_Workflows |
https://github.com/wyrde/wyrde-comfyui-workflows | |
工作流分享网站 | https://comfyworkflows.com/ |
推荐一个比较好的comfyui的github仓库网站 | https://github.com/ZHO-ZHO-ZHO/ComfyUI-Workflows-ZHO?tab=readme-ov-file |
二、LoRA模型
1.原理
Stable Diffusion中的Lora(LoRA)模型是一种轻量级的微调方法,它代表了“Low-Rank Adaptation”,即低秩适应。Lora不是指单一的具体模型,而是指一类通过特定微调技术应用于基础模型的扩展应用。在Stable Diffusion这一文本到图像合成模型的框架下,Lora被用来对预训练好的大模型进行针对性优化,以实现对特定主题、风格或任务的精细化控制。
LoRA(Low-Rank Adaptation)本质上是对特征矩阵进行低秩分解的一种近似数值分解技术,可以大幅降低特征矩阵的参数量,但是会伴随着一定的有损压缩。从传统深度学习时代走来的读者,可以发现其实LoRA本质上是基于Stable Diffusion的一种轻量化技术。
2.参数
参数名称 | 参数值 | 说明 |
| models/kolors/Kolors/unet/diffusion_pytorch_model.safetensors | 指定预训练UNet模型的路径 |
| models/kolors/Kolors/text_encoder | 指定预训练文本编码器的路径 |
| models/sdxl-vae-fp16-fix/diffusion_pytorch_model.safetensors | 指定预训练VAE模型的路径 |
| 16 | 设置LoRA的秩(rank),影响模型的复杂度和性能 |
| 4 | 设置LoRA的alpha值,控制微调的强度 |
| data/lora_dataset_processed | 指定用于训练的数据集路径 |
| ./models | 指定训练完成后保存模型的路径 |
| 1 | 设置最大训练轮数为1 |
| 启用中心裁剪,用于图像预处理 | |
| 启用梯度检查点,节省显存 | |
| "16-mixed" | 设置训练时的精度为混合16位精度(half precision) |
三、ComfyUI应用模型
1、根据Datawhale教程打开魔塔平台PAI-DSW实例
2、下载安装ComfyUI的执行文件
和task1中微调完成Lora文件
git lfs install
git clone https://www.modelscope.cn/datasets/maochase/kolors_test_comfyui.git
mv kolors_test_comfyui/* ./
rm -rf kolors_test_comfyui/
mkdir -p /mnt/workspace/models/lightning_logs/version_0/checkpoints/
mv epoch=0-step=500.ckpt /mnt/workspace/models/lightning_logs/version_0/checkpoints/
3、进入ComfyUI的执行文件一键执行
4、通过此个网址进入ComfyUI网页
5、不带Lora的工作流样例
下载脚本,点击Queue prompt,执行效果如图。
6.带Lora的工作流样例
下载脚本,点击Queue prompt,执行效果如图。
参考链接
1.Datawhale教程Datawhale
2.ComfyUI
3.ComfyUI工作流搭建(完整版)从零开始教你玩转ComfyUI-保姆级部署教程-手把手带你ComfyUI工作流搭建_怎么设置comfyui-CSDN博客
4.https://stable-diffusion-art.com/how-stable-diffusion-work/
5. https://arxiv.org/abs/2106.09685LoRA: Low-Rank Adaptation of Large Language Models https://arxiv.org/abs/2106.09685