在上一篇Comfyui中图生图工作流,这样去掉参考图的背景中我们学会了语义分割,在图像预处理中语义分割后,将分割出来的图片转换成了潜空间数据,篇尾我们遇到了一个问题,就是生成出来的图片没办法改变背景颜色,本篇就来解决这个问题,顺便掌握ControlNet这个技能。
观察上面这个工作流,我们发现输出的图像背景已经是我们想要的白色,并且对我们的主体龙也进行了AI创作。
和上一篇的工作流唯一的区别就是多了2个节点,这2个节点就是今天的重点ControlNet了,下面挨个认识一下
1.ControlNet加载器节点
ControlNet加载器节点看名字就知道要加载一个ControlNet模型,ControlNet模型有很多种,比如depth、openpose、canny、tile等等,作用都是固定某一个元素的形状,只是方式不一样。
2.ControlNet应用节点
ControlNet应用节点是ControlNet的核心,从输入条件和输出值就能看出,这个东西是对基础文生图工作流中的条件动手脚。
回顾一下基础文生图
基础文生图工作流中正面提示词前面连接大模型的条件,后面输入到采样器
而我们本次学习的ControlNet就是对即将输入到采样器中的条件再次进行干预,也就是正面提示词和负面提示词输入到ControlNet应用中,然后ControlNet应用输出的条件再输入到采样器中。其他节点都不变。
也就是图中黄色线条
ConrtrolNet应用节点,需要的输入值分别是:
① 正面条件,来自正面提示词节点的输出值
② 负面条件,来自负面提示词节点的输出值
③ ControlNet模型,来自ControlNet加载器节点的输出值
④ 图像,这里的图像就是参考图
回顾一下我们的需求,将下面这张参考图中的龙进行AI再创造,保留龙的整体形象,图片背景颜色变为白色。
所以学习了ControlNet后,我们的整体思路应该是这样的:
1.先创建一个基础文生图工作流
2.将ControlNet节点组嵌入
3.将语义分割后的图片输出到ControlNet应用输入值图像上
4.选择好大模型,输入正面提示词(red dragon,white blackground)后就能看到我们的龙已经被AI重新创造,背景也变成了提示词中说的white background了。
总结一下:
本篇我们学习了ControlNet的应用,要记住两个重点
第一、ControlNet是为了固定某个元素的整体形象
第二、ControlNet是在对即将输入到采样器中的条件值进行再干预
我们也复习一下语义分割的知识
第一、语义分割是对某一张图片进行元素识别,并输出这个元素的图片
第二、语义分割后输出的图片即可以转换成潜空间数据直接输入给采样器的Latent,也可以输入给ControlNet
下一篇我们来玩一个更好玩的,就是给图片换脸,下篇见