AIGC全能王

Comfyui基础

1. 本地部署

首先下载老师提供的新版comfyui整合包的链接

Comfyui整合包下载链接(内置学习要用的扩展,不包含模型,需要和下面的模型包一起使用)
链接:https://pan.baidu.com/s/1diOtgCERQ6jlwdXiwuLY_g
提取码:a213

Comfyui整体模型包下载链接(comfyui插件模型类等)
链接:
https://pan.baidu.com/s/1eMRZ2XE3BUDm78CdpnJM3g
提取码:r1yb


2. 共享webui模型

Comfyui共享webui内的模型是需要先打开comfyui根目录下的extra_model_paths.yaml文件进行编辑,需要复制webui根目录路径和webui放置controlnet模型的路径,分别放入base_path:和controlnet:的后面,然后记得一定要保存!不能有多的空格!


3. 云端使用

光算云注册地址:
https://lightcc.cloud/login


4. 生图原理

webui和comfyui都是基于stable diffusion底层生图逻辑搭建的操作界面,本质上的生图原理都是一样的。

但是操作方式各有不同,comfyui相对于webui的优势就是对于显存占用的要求更少一些,扩展插件会更多,熟练掌握之后的可玩性会更高,因为是节点式的操作逻辑,就意味着可以很多不同的节点组合搭配去使用,甚至多个节点(模块化)的去搭配,工作流搭建好之后,只需要一键生成就可以给我们进行在webui上需要很多步的操作,给我们以后的ai绘画提供更高的效率和上限。

我们先从最简单的文生图来拆解分析
当你输入一个文字,比如1girl,我们称之为text prompt,系统就会生成给你一张符合你输入文本的描述图片。这是我们看到的表面流程,那么我们来拆解一下具体的步骤。整个生图过程中,在生图底层实现这个工作有三个关键点。

1️⃣ 大模型
第一个关键是大模型,大模型的训练是拿非常多的图片样本进行计算,这些图片上有大量的文本标记Tag,比如说蒙娜丽莎的图,就会打上达芬奇,写实派,女性,微笑,油画等一系列的属性,我们称之为Tag(标签)。

更简单的解释是大模型:
Stable diffusion通过大量的图片和文本数据训练,将很多图片压缩成关键特征的表示,并将文本标签转化为计算机能理解的形式。在这个过程中,它建立了一个内部的,用于存储和处理这些数据的空间(潜在空间)。在这个空间里,图片的特征和文本标签以一种压缩和转化后的形式相互对应,是的模型能够基于文本描述生成或理解图像内容。

我们先讲一下大模型是怎么练出来的
在大模型训练过程中有这几部:
1。创建了一个叫做潜在空间的地方Latent sapce(潜空间)
2。用算法把这些图片进行压缩,并高度总结图片的特征,图片保留特征并且压缩成了特征的马赛克,这个过程我们称之为加噪音,特征马赛克也称之为噪音。
3。同事stable diffusion对文本的Tag也进行了总结和压缩,这个过程,称之为Token化。所谓的Token化,就是把文字拆解成小的单位,然后形成各种方便计算机可以理解但是人无法理解的字符字母和符号。
用于方便计算机用非常神奇的算法进行各种的匹配,再把图片特征进行总结和压缩,并且把文本tag也进行token化的同时,stable diffusion还依然让图片和Tag保持起对应的关系,但此时就不是图片对应Tag了,而是潜在空间中Latene Spage中的特征马赛克和他Token对应的这种关系。
这时候我们就得到了一个懂得非常多的文本和图片的特征的对应关系的大模型。通过大模型可以创建潜在空间latent space。潜在空间里面存放的都是马赛克和文本token的对应关系,这个计算的过程一般称之为训练大模型

2️⃣ CLIP和VAE
为了让用户输入的内容可以进入latent space进行匹配,就需要工具把人类可以理解的文字和图片进行编码,转换为可以在latent space中工作的标识符,这样才能在潜在空间latent space中进行匹配,文字prompt在转换的时候需要用到CLIP文本编码器把prompt变成Token,如果是图片会通过VAE编码器转化成特征马赛克(也就是噪音),最后再经过计算,Stable diffusion会按照我们想要的意图生成一个新的特征马赛克,这个时候我们需要用VAE解码器,把这个特征马赛克转换为图片,这个图片就是我们最终需要的1girl的图片。

3️⃣ 采样器
上一步,我们已经把输入的text prompt的1girl转化成为了token(ai能理解的提示词),同时我们还需要输入一个基础的特征马赛克0,文生图的时候,我们系统就随机生成了一个基础的特征马赛克0,这时候采样器就把Token和基础特征马赛克0通过模型计算出来一个想要的新的特征马赛克1.
其中Token+基础马赛克0,还有一些其他的内容,我们通称为生成的约束条件conditioning,这个特征马赛克1会和你输入的token继续计算,这个计算会持续很多次(也就是不断迭代),每次就会越来越趋近于计算机认为你需要的token(提示词变成的ai能理解的语言)结果到底是什么样的图形,这个过程叫称之为采样,由于经过多次计算之后,特征马赛克1会越来越趋近于真实的图片,所有称之为Denose(降噪音)。
采样器使用一个算法和一些设置,运行N次计算,最后再Latent space中得到了一个趋近于你想要的内容的特征马赛克N,这个马赛克N再通过VAE解码器还原成真实的图片,整个文生图的过程就完成了。


5. 文生图+lora

文生图或者其他工作流想要添加lora的话,需要在大模型加载器和clip文本编码器中间串联一个lora加载器,模型点连接模型点,clip点连clip点,然后clip输出连到两个clip文本编码器,因为大模型和lora都属于是模型类别,lora是属于微调模型,能够更加具体的能提现出我们想要的画面到底是怎么样的(例如海贼王路飞角色),所以同样的需求和大模型以及clip一起进入k采样器进行ai生成。


6.工作流导出

在做好的工作流空白区域点击鼠标右键,在下面找到工作流图像/导出选型按钮,这里有导出SVG格式和PNG格式,并且有是否带工作流的选项,推荐大家可以使用带工作流的这个PNG格式,首先是可以直观看到工作流的节点,并且也可以像json格式一样直接把这个PNG拖入comfyui用工作流

SVG格式是以图形化的方式展示了工作流中各个节点之间的链接关系和布局,并且是一种矢量图形格式,怎么缩小也不会损失清晰度的

PNG格式是捕捉了工作流在界面中的可视化外观,就像给工作流拍了一张照片一样。这个图像会显示工作流中的各个节点,节点的形状,颜色等视觉元素,以及它们之间的链接关系。


7. 图生图原理

图生图工作流与文生图流程的原理都是解禁的,略有区别的是,图生图多一步把输入的图片变成ai能看的懂的马赛克图片,这个时候就需要有一个VAE编码器来把图片进行编码放进潜空间里面进行操作,这张马赛克图片就变成了K采样器要与大模型CLIP转换成的提示词一起结合起来,添加噪声,从而达到一张新的马赛克图片,在VAE解码成我们看的懂的图片。

我们这里举个图生图转绘的例子,把真人图片转换为二次元。
首先需要把大模型切换成二次元的,正面提示词也要写上画风的提示词,例如二次元,动漫,以及人物的提示词。这个时候最重要的参数其实就是降噪,在webui也叫重绘幅度,它的数值影响我们最后生成的效果。
降噪值越高,画面越不接近原图,越接近提示词。
降噪值越低,越接近原图,提示词的影响越小。


8. 局部重绘

当我们在图生图工作流的基础上需要进行局部重绘的操作时,我们需要把VAE编码器换成VAE内补编码器,并且需要把加载图像的这招和内补编码器的这招点连接。

VAE内补编码器除了传输图像数据到潜空间外,还需要输入这招以及这招延展等参数。遮罩犹豫指定图像中需要进行内补或修改的区域,遮罩延展则类似于羽化效果,用于控制内补区域与周围图像的融合程度。

基础局部重绘的效果一般都不太好,或者需要抽卡,所以我们需要最好使用专门的重绘插件BrushNet。它的原理就是通过给图片话遮罩后,先不直接进K采样器里面进行遮罩绘制,先进BrushNet里面进行处理,把提示词与重绘区域进行对应好,然后配合专门的BrushNet模型再进入到K采样器里面进行重绘,效果就更精致,更贴近提示词。就像产品检验一样,多一步检验,产品出问题的概率就会少很多。但是需要注意,brushnet重绘是会重绘整个画面的,虽然出遮罩外变化不大,但是确实是会影响整个画面的。


9. 图片放大工作流

老师常用的是“双采样器潜空间”和UltimateSD插件放大,其实也可以把双采样器放大和sd插件放大组合起来使用的,这样放大效果其实很好,但是小号的时间和性能就比较高,看大家的需求。

supir放大主要是让画面不变化的情况下放大,适合需要保证画面内容不做太大变化的。但是也是最损耗性能的。


10. comfyui快捷键

Ctrl+Enter 将当前图表排队等待生成
Ctrl+Shift+Enter 将当前图表排成第一个生成图表