前言
今天给大家带来的是comfyUI的局部重绘的工作流,跟之前一样,我会通过一些理论知识来帮助大家对comfyui的工作流和节点有更深的认知,还是那句话,知其然,还要知其所以然。
为什么要写局部重绘,是因为我发现虽然市面上有很多comfyui的基础局部重绘的教程,我也看了很多,但老有一种隔靴搔痒的感觉,让我似懂非懂。
抱着“假设-验证-结果-总结”的探索精神,我看了大量相关的视频,教程和官方文档,终于把comfyui的局部重绘的基础工作流给整明白的七七八八了,现在就开始吧。
所有的AI设计工具,安装包、模型和插件,都已经整理好了,👇获取~
[CSDN大礼包:《Comfyui学习资源包》免费分享
本章目录:
-
理解局部重绘的基础概念
-
局部重绘的蒙版处理方式
-
三种局部重绘的工作流和案例
-
初步了解ControlNet
-
总结
本期是comfyui的入门级局部重新绘制的讲解,如果大家喜欢,我后面会再写一些高级的局部重绘的教程,但是,我们先从简单的讲起,简单的原理搞明白了,复杂的东西也就一通百通了,本质都差不多。
我总结了基础局部重绘的三种方法,分别是:VAE内补编码器、设置Latent噪波遮罩和使用ControlNet(重点讲解)
首先声明,这三种方法,没有优劣之分,用哪种要看具体的需求,我先简单列出这三种方法各自的使用场景,后面我们再用例子来补充说明。
⚡️🔋⚡️
1.理解局部重绘的基础概念
现在正式进入主题,要想理解局部重绘,我们需要首先理解“局部是怎么重绘的”?,如果大家之前学过photoshop,就能很好地理解了,他其实就是“蒙版”。
只不过是现在把这个手动的过程换到comfyUI中变成一个自动的过程了,我通过笔刷把需要改图的区域画出来,其余的地方(背景和周边的地面)保持不变,然后在蒙版区域画只猫,看下图:
⚡️🔋⚡️
2.局部重绘的蒙版处理方式
理解了局部重绘的基础概念,我们还需要理解下蒙版的处理方式,简单说就是蒙版里面的图是怎么生成的,
官方用语是:通过采样重绘蒙版区域。
那AI绘画是怎么采样的呢?大家对这个感兴趣的可以看我之前的一期内容:
用设计师语言解释AI绘画底层原理 一(入门comfyui)
回到这里,蒙版的采样不仅受蒙版区域内原图的影响(遮罩处理方式),也受蒙版区域外原图的影响(重绘区域)。结合webui大家看图:
在上图的基础上,我罗列了常见的2种搭配方式,分别是:
-
重绘区域参考(全图)+蒙版蒙住内容(空白潜空间)
-
重绘区域参考(全图)+蒙版蒙住内容(原图)
这两种方案分别对应了两种最最简单的局部重绘的方法:
-
VAE内补编码器
-
设置Latent噪波遮罩
这两种修改办法我简称为“大补和小补”
另外一种局部绘制的方法是ControlNet,跟上面两种不一样,ControlNet是严格控制蒙版内容的"框架",然后基于框架生成类似的画面,我们可以对比下面三张图:
3.三种局部重绘的工作流和案例
理解了上面的概念,我们就可以来有的放矢地搭建我们的工作流了,这里我还是想通过一些简单的例子和对比来帮助大家更好地区别。
3.1 理解降噪和重绘幅度
在这里,我先给大家讲一下图生图在comfyui中的工作原理,大家也可以查看我之前的文章:
图生图工作流如下:
他的原理是先将本地上传的图片解码成计算机能识别的语言(添加噪点),然后结合Prompt,综合得到一张新的图片,简单地说就是生成的新图片是“图+字”的综合体。这里有个关键就是“降噪(denoise)”,简单理解就是“重绘幅度”,数值在0-1之间,数值越大,重绘幅度越高,直至完全偏离原图,数值越低,越接近原图,至于为什么是这个原理,为了方便大家理解,我画了张图,如下:
理解了这个之后,我们就可以开始搭建我们的重绘工作流了。
3.2 VAE内补编码器局部重绘
本次实验的底模和clip文本编码器如下:
在这之前,先上传一张需要重绘的照片,然后画上蒙版,最后点击“save to node”,如下图:
然后我们需要对蒙版进行编码,将蒙版和图像一起上传到“VAE内补编码器”中,这种重绘方式的原理是蒙版区域为空白潜空间,生成的图像跟之前蒙版的内容没有任何关系,只是参考了原图的风格和感受,所以适合重绘一个完全不想干的东西,工作流如下:
其中“VAE内补编码器”中的遮罩延展,我们可以理解为photoshop中的“羽化”,一般设置为6即可,太小或者太大都不太合适,我做了实验如下,可以很明显的发现,羽化=0时,猫咪的边缘很生硬,无法和画面如为一体,就像是“重新粘贴上去的”。
并且我们发现,VAE内补编码器的重绘方式确实适合做一些比较大的调整,我们做个人像试试:
哈哈,确实蒙版区域的内容跟原来毫不相干,大概率有抽卡的成分,所以大家在用这种局部重绘时,最好是用在那种不是微调的,效果还是不错的。
备注:不建议降低降噪值,否则就会出现下图这种情况,原因:数值越低,越接近原图,现在蒙版区域又是空白潜空间,所以就没了参考了,所以就这样了。
小结:
⚡️🔋⚡️
3.3 Latent噪波遮罩局部重绘
那如果我不想大调整,我只想微调局部,怎么办?
这时候Latent噪波遮罩的方法就非法管用,这种重绘方式的原理是蒙版区域参考了原蒙版内容,重绘区域还参考了原图,所以适合微调,能更好地理解需要重新生成的内容,工作流如下:
这里可以发现,因为这里的遮罩参考了原图,所以设置降噪幅度是有用的,
这是降噪=0.69 跟原图差的有点大,但怎么说还是跟原图保持了一个差不多的特征效果,不会很离谱。
换成降噪=0.55
再换成降噪=0.4
是不是很明显,降噪数值越低,跟原图越像,但提示词 “1 smiling girl”依然会表现出来,而上面的“VAE内补编码器”则有点不尽如人意了,就像是直接搞了张“膏药”,哈哈。
所以,我们可以试着让这个女孩戴上眼镜,其余保持不变,这就是典型的局部微调,我们看下效果:
再来一个,给鸟换个金色羽毛,是不是还不错。
小结:
3.4 ControlNet 局部重绘
到这,相信大家已经理解了最基本的两种重绘方式,现在有个新问题,当画面需要进行重大更改,但是又尽量不改变整体角色形象,比如人物外轮廓不变,在这个基础上进行重绘,又该如何呢?这里就需要用到ControlNet来传递原始图像的整体姿势。
如果我想把之前的女孩变成老奶奶,属于重大修改,但不能改变画面形象,姿势,综合来看,controlnet的效果是最完美的,手部动作也还原了。三种处理方式的结果如下:
再比如换上另一个女孩,控制效果依然不错。
工作流如下:
这里我自己理解ControlNet重绘适合整体的大修改,但是还能保留原图像特性,我们看官方文档的示例就比较清楚了:
ControlNet官方介绍:
https://github.com/lllyasviel/ControlNet-v1-1-nightly?tab=readme-ov-file
ControlNet 1.1 模型下载:
https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main
大家无法下载模型的,可以私信我,我已经帮大家下载好了。
到这里,我把我理解的都告诉大家了,其实这三种办法简单讲就是在重绘时对画面的控制程度越来越高,越来越精细,如果我只想简单来个替换,第一种就很好,但是我想造型还是那个造型,但得换个人,咱就得用ControlNet来精准控制。
4.初步了解ControlNet
上面的第三种局部重绘的方法,用到的是controlnet,那controlnet的基本内容和原理又是什么呢?这里我先帮助大家做个简单的介绍,后面我会单独出一期文章详细讲解controlnet,大家喜欢的可以先关注下。
ControlNet说简单点就是在原图框架上出类似的图,官网上大概有以下几种模型:深度、曲线、直线、姿势等,不太明白的话,我给大家换个看法,来个“映射”,大家学设计的大学高中都学过素描和水粉吧,比如画水粉的时候,每个人的起稿方式都不一样,有打线稿的,也有平涂的,说白了,cnotrolnet就是干这个事情的。
这些模型的具体用法和选择我也会在后面的文章做详细的介绍,这里我们了解个大概就差不多了。我自己总结了COntrolNet的出图原理如下:
简单来说,controlnet解决的一个最大的问题是:单纯的关键词控制方式无法满足对细节精确控制的需要。
为了帮助大家更好地掌握 ComfyUI,我在去年花了几个月的时间,撰写并录制了一套ComfyUI的基础教程,共六篇。这套教程详细介绍了选择ComfyUI的理由、其优缺点、下载安装方法、模型与插件的安装、工作流节点和底层逻辑详解、遮罩修改重绘/Inpenting模块以及SDXL工作流手把手搭建。
由于篇幅原因,本文精选几个章节,详细版点击下方卡片免费领取
[CSDN大礼包:《Comfyui学习资源包》免费分享
一、ComfyUI配置指南
- 报错指南
- 环境配置
- 脚本更新
- 后记
- …
二、ComfyUI基础入门
- 软件安装篇
- 插件安装篇
- …
三、 ComfyUI工作流节点/底层逻辑详解
- ComfyUI 基础概念理解
- Stable diffusion 工作原理
- 工作流底层逻辑
- 必备插件补全
- …
四、ComfyUI节点技巧进阶/多模型串联
- 节点进阶详解
- 提词技巧精通
- 多模型节点串联
- …
五、ComfyUI遮罩修改重绘/Inpenting模块详解
- 图像分辨率
- 姿势
- …
六、ComfyUI超实用SDXL工作流手把手搭建
- Refined模型
- SDXL风格化提示词
- SDXL工作流搭建
- …
由于篇幅原因,本文精选几个章节,详细版点击下方卡片免费领取
[CSDN大礼包:《Comfyui学习资源包》免费分享