一、打卡
二、学习
1、ComfyUI
(1)、什么是ComfyUI
GUI 是 "Graphical User Interface"(图形用户界面)的缩写。简单来说,GUI 就是你在电脑屏幕上看到的那种有图标、按钮和菜单的交互方式。
ComfyUI 是GUI的一种,是基于节点工作的用户界面,主要用于操作图像的生成技术,ComfyUI 的特别之处在于它采用了一种模块化的设计,把图像生成的过程分解成了许多小的步骤,每个步骤都是一个节点。这些节点可以连接起来形成一个工作流程,这样用户就可以根据需要定制自己的图像生成过程。
详细可见b站视频:
1 万字系统剖析ComfyUI | Stable Diffusion:GUI全盘点 | ComfyUI系统性教程原理篇04 | Ai+建筑_哔哩哔哩_bilibili
(2)、ComfyUI核心模块
核心模块由模型加载器、提示词管理器、采样器、解码器
- 模型加载器:Load Checkpoint用于加载基础的模型文件,包含了Model、CLIP、VAE三部分
- CLIP模块将文本类型的输入变为模型可以理解的latent space embedding作为模型的输入
- 解码器:VAE模块的作用是将Latent space中的embedding解码为像素级别的图像
- 采样器:用于控制模型生成图像,不同的采样取值会影响最终输出图像的质量和多样性。采样器可以调节生成过程的速度和质量之间的平衡。
Stable Diffusion的基本原理是通过降噪的方式(如完全的噪声图像),将一个原本的噪声信号变为无噪声的信号(如人可以理解的图像)。其中的降噪过程涉及到多次的采样。采样的系数在KSampler中配置:
-
seed:控制噪声产生的随机种子
-
control_after_generate:控制seed在每次生成后的变化
-
steps:降噪的迭代步数,越多则信号越精准,相对的生成时间也越长
-
cfg:classifier free guidance决定了prompt对于最终生成图像的影响有多大。更高的值代表更多地展现prompt中的描述。
-
denoise: 多少内容会被噪声覆盖 sampler_name、scheduler:降噪参数
(3)、ComfyUI图片生成流程
1、加载模型:选择一个图像生成模型,例如 majicMIX realistic/v7
或者其他任何可用的大模型。
- 选择一个合适的模型,例如
majicMIX realistic/v7
。 - 设置模型的参数,如
clip_skip
等。
2、配置采样器:设置采样器,如 k_sampler。
- 选择
k_sampler
或者其他采样器。 - 设置采样步数、CFG scale 和其他参数。
3、设置提示词:定义正向提示词和反向提示词。
- 创建两个正向提示词,分别用于控制图像的左右两半部分。
- 创建一个反向提示词,用于排除不想要的元素或改善图像质量。
4、控制图像区域:使用 Condition Inside Area
节点来指定每个提示词影响的图像区域
- 使用
Condition Inside Area
节点来指定提示词生效的区域。- 对于左侧人物,设置 x=0, width=512, height=512。
- 对于右侧人物,设置 x=512, width=512, height=512。
5、合并条件:使用 Condition Combine
节点将多个条件组合在一起。
6、图像解码:使用 VAE 解码器来生成图像。
7、预览图像:查看生成的图像效果。
如果需要,可以进一步细化提示词或使用其他节点来改进图像质量
(4)、20分钟速通安装ComfyUI
在这里,我们按照学习文档使用魔搭社区提供的Notebook和免费的GPU算力体验来使用ComfyUI
注意注意
当执行到最后一个节点的内容输出了一个访问的链接的时候,复制链接到浏览器中访问如果链接访问白屏,或者报错,就等一会再访问重试,程序可能没有正常启动完毕,我个人首次跑的时候用了Day01的模型,报错说没有文件执行不了
因此我又建了一个实例
启动后,新建命令框,直接粘贴代码就可以了
下载安装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/
双击ComfyUI.ipynb文件进入运行
最后一定要等跟如图这样的才去打开链接,防止加载不充分
需要加载的工作流在今日的学习文档里面,可以自行下载
首次点击生成图片会加载资源,时间较长,大家耐心等待
2、Lora详解
(1)、参数详情表
(2)、 UNet、VAE和文本编码器的协作关系
1. UNet (U-Net)
UNet 是一种卷积神经网络架构,最初用于生物医学图像分割任务。它由一个收缩路径(编码器)和一个扩展路径(解码器)组成。UNet 在许多计算机视觉任务中表现出色,特别是那些涉及像素级预测的任务,如语义分割。
2. VAE (Variational Autoencoder)
VAE 是一种生成模型,它可以学习输入数据的概率分布,并从中采样以生成新的样本。VAE 通过一个编码器将输入映射到一个潜在空间,并通过一个解码器从潜在空间重建输出。这种模型可以用于图像生成、风格转移等任务。
3. 文本编码器
文本编码器,如BERT、RoBERTa或其他基于Transformer的模型,可以用来处理自然语言处理任务,如文本分类、情感分析、机器翻译等。这些模型擅长捕获文本的上下文信息,并能够生成高质量的文本表示。
-
UNet:负责根据输入的噪声和文本条件生成图像。在Stable Diffusion模型中,UNet接收由VAE编码器产生的噪声和文本编码器转换的文本向量作为输入,并预测去噪后的噪声,从而生成与文本描述相符的图像
-
VAE:生成模型,用于将输入数据映射到潜在空间,并从中采样以生成新图像。在Stable Diffusion中,VAE编码器首先生成带有噪声的潜在表示,这些表示随后与文本条件一起输入到UNet中
-
文本编码器:将文本输入转换为模型可以理解的向量表示。在Stable Diffusion模型中,文本编码器使用CLIP模型将文本提示转换为向量,这些向量与VAE生成的噪声一起输入到UNet中,指导图像的生成过程
1. 条件图像生成
- 文本编码器:将文本描述转换为潜在向量。
- VAE:使用文本编码器生成的潜在向量作为条件,生成相应的图像。
- UNet:可以用于细化生成的图像,例如通过图像到图像翻译,将粗略的生成结果转化为更精细的结果。
2. 语义分割
- 文本编码器:提取文本描述的关键特征。
- UNet:基于文本描述进行语义分割。
- VAE:可以用于生成背景或细节部分,从而增强最终分割结果的真实感。
3. 图像到图像翻译
- 文本编码器:提供翻译指导,例如描述所需的样式或目标类别。
- UNet:执行主要的图像到图像翻译任务。
- VAE:可以用于生成缺失的细节或添加随机变化以增加多样性。
4. 跨模态检索
- 文本编码器:将文本查询转换为嵌入表示。
- UNet:用于图像特征提取。
- VAE:可以用于生成图像的潜在表示,从而实现跨模态匹配。