前面的篇章已经详细讲解了线条约束、三维关系与空间深度、人体姿态等几类controlnet的功能与应用,本节内容将对通过controlnet对图像修复与编辑进行讲解。
通过controlnet也可以对图片进行编辑、重绘及放大等操作,具体包括Recolor、Inpaint、Tile等,我们可以将这几类功能理解为对原生图生图功能的延伸和拓展。
序号 | 分类 | Controlnet名称 | 备注 |
1 | 线条约束 | Canny(硬边缘) | 约束性强,可以识别详细线条 |
SoftEdge(软边缘) | 柔和的线条 | ||
MLSD 直线、最小线段检测 | 主要用于建筑空间 | ||
Lineart 线稿提取 | 粗细不同的线条 | ||
Scribble 涂鸦 | 粗略线条、发挥空间大 | ||
2 | 三维关系、 空间深度 | Depth 深度 | 空间层次关系 |
Normal 法线贴图 | 纹理效果常用 | ||
3 | 人体姿态、手势与表情 | Openpose 姿态控制 | 姿势、表情、手势控制 |
4 | 图像风格转换 | Shuffle 随机 | 打乱图片元素重新组合 |
IP-Adapter (图像)风格迁移 | 参考图像画风、换脸等 | ||
T2l-Adapter (文字转图)风格迁移 | 参考原图画风 | ||
Reference 参考图引导 | 模仿原图绘画 | ||
Instant-ID 换脸 | 人物换脸 | ||
5 | 图片修复与编辑 | Recolor 重上色 | 老照片修复 |
Inpaint重绘 | 类似于局部重绘,但融合效果更好 | ||
Tile 分块 | 分块重采样,细节方法 | ||
6 | 结构理解 | Seg 语义分割 | 根据色块代表不同含义 |
7 | 其它 | InstructP2P 指令式编辑 | 变换场景、特效 |
Revision 图像修订 |
1 Recolor重上色
相信大家在网上看到过类似于老照片修复颜色的直播,这里面用到的主要功能就是通过Recolor重上色实现的。
模型下载地址:https://huggingface.co/lllyasviel/sd_control_collection/tree/main
对应1.5大模型版本模型1个:
对应XL大模型版本模型共有2个,根据电脑内存情况选择其中1个下载即可:
Recolor预处理器共2种: intensity(调节图像强度)和 luminance(调节图像亮度),推荐使用 luminance效果更好。
Gamma Correction参数用于调节图片的明暗,默认值为1,设置完成后点击爆炸按钮即可看到该数值的预览效果,方便多次调整至目标数值。
使用Recolor模型,可以通过提示词指定图中人物或环境等元素的颜色,如肤色、衣服色彩等,从而实现对图片中元素色彩的调整。
Recolor在文生图或者图生图中使用均可以获得类似的效果,下面以在文生图中为一张黑白图像上色作为案例,对recolor功能进行讲解。
目标图像:
提示词获取:可以通过WD1.4标签器功能反推出图片关键词,再根据目标需求进行修改。
调整后提示词描述为
正向提示词:color photo,solo,1girl,exquisite face,realistic,looking at viewer,lips,person photo,blond hair,fair_skin,lipstick,black eyelashes BREAK blue eyes,simple background,glass soda bottle,white shirt BREAK light blue sweater,
反向提示词:DeepNegative_xl_v1,
Recolor 无法保证需要的颜色可以准确地赋予特点的元素,不同的颜色之间也可能会出现相互污染,实际使用时可以配合提示词打断语法进行调试(BREAK句式)。
实际上因为年代久远的问题,很多老照片并不清晰,仅仅采用重上色功能,可能无法达到较好的效果。一般情况下,一张老照片的修复需要经过以下几个步骤:先采用高清修复功能放大照片分辨率;再对照片进行消除噪点、修复损坏部分;最后再通过SD重上色功能进行上色填充。后续章节中针对老照片上色操作步骤会有详细的讲解。
2 Inpaint局部重绘
Inpaint局部重绘的功能与图生图十分类似,但是因为在controlnet中可以选择不同的预处理器和模型,使Inpaint重绘的可控性比webUI图生图功能更强。
inpaint重绘预处理共三个:
①重绘-全局融合算法(Inpaint_Global_Harmonious):对图片整体画面和色调调整,由于更加侧重蒙版区域与整体画面的融合,整体画面可能较原图有较大变动;
②仅局部重绘(Inpaint_only):仅对蒙版区域进行局部重绘;
③仅局部重绘+大型蒙版(Inpaint_only+lama):Inpaint_only的改良,lama算法更适合抹除蒙版区域内较为突出的内容,更适合消除/抹除画面局部内容。
2.1 局部内容消除
上传一张人物风景照,尝试去除风景照中的人物,并使该区域更好地融入背景。
controlnet中上传图像,鼠标手动绘制蒙版--图像左上角点击“图像”可以看到操作方式。
测试几款预处理器预览效果,Inpaint_only+lama在预处理器阶段就可以很好地实现去除物体效果。
再来测试实际生成图片情况,测试仅依赖inpaint的消除功能,在提示词区域不填写任何内容:
生图结果对比:
经过多轮抽卡,三款预处理器虽然均能实现抹除蒙版内容并生成与融入周边背景的内容,但从成功概率及生成效果对比,Inpaint_only+lama在消除蒙版内容能力上有明显优势。
2.2 局部重绘
涂抹图片中需要重绘的区域,提示词中填入目标内容提示词。
比如我们将风景照中的人物衣服重绘成白色衬衫,测试一下三个预处理器的对比情况。
提示词中填写目标内容,打开controlnet上传底图并手绘蒙版区域:
三款预处理器生成效果对比:
预处理效果 | 生成图像效果 | |
| | |
Inpaint_only+lama在预处理时即消除蒙版区域,虽然可以成功生成白色衬衣背影,但多次抽卡依然缺少一部分被消除的胳膊。 | ||
| | |
inpaint_only预处理器可以较好地按指令生成重绘内容 | ||
| | |
inpaint_global_harmonious预处理器可以较好地按指令生成重绘内容,根据其它图像测试,该预处理器在局部重绘时对全局融合的效果最好。 |
该功能效果与图生图局部重绘效果基本类似(图生图局部重绘需要重绘蒙版区域,可能需要多次抽卡才能获得正常图片,更多地应用于重绘非蒙版区域)。
高效子蒙版区的作用和图生图-上传蒙版重绘功能基本一致,但是经过实测,文生图controlnet中inpaint功能中仅有预处理器inpaint_global_harmonious对上传的蒙版生效,另外两款预处理器无效。另外需要注意,inpaint中,白底黑色蒙版图中黑色区域为蒙版区域。
2.3 扩图
我们可以利用提示词+重绘功能来填充目标图像大于参考图像的范围空间,从而实现扩图的功能。
因为是扩图,我们需要用到原图中的描述,可以通过WD1.4反推获取提示词(使用完反推功能后一定记得卸载反推模型),并发送到文生图。
注意,图片尺寸需设置为扩图后尺寸,其余参数参考如下:
controlnet中选择inpaint,选择预处理与模型,注意缩放模式需选择“缩放后填充空白”,即扩充画布后将新增空白区域进行填充。
生成效果如下:
3 Tile分块
Tile分块的原理是将图片切分成多个分块,分别识别每个分快的信息并进行放大及细节增强,最后再通过特定算法将扩大后的分块重组成一张图片。Tile分块因为采取分块放大再组合的方式,可以有效避免整张图片放大时易爆显存情况。理论上只要分的块足够多,普通显存设备也能绘制任意尺寸的放大图,只是需要花费的时间长短问题。
因在优化图像细节的同时不会影响画面结构,除了将低像素图像清晰化外,Tile也可以用于增加画面细节,常用于模糊照片修复、图片放大、修复细节等。
Tile分块共有4 种预处理器:resample重采样、colorfix+sharp固定颜色+锐化、colorfix固定颜色,以及特殊的算法blur_gaussian高斯模糊(通过模糊输入图像的特征,再重新生成质量更的图像)。
3.1 案例
目标:将一张低像素模糊照片清晰化,并增加细节。
选择与目标图像风格对应的大模型;
提示词栏添加对图像内容简单描述词,也可通过WD1.4反推获得:
参数设置中主要注意宽度高度设置为原图的倍数,即放大倍数:
打开controlnet,上传底图(案例尺寸128×256),控制类型选择“Tile分块”,选择对应预处理器与模型等。
不同预处理器最终生图效果如下:
可以看出,图片在保持了原图片的原有结构基础上,通过增加细节变得更加清晰。这一点在图生图模块中很难实现,如采用图生图进行图像放大,调高重绘幅度虽然能增强画面细节,但是图片的变化可能会很大,导致与原图有明显差距。
其它1组案例:
3.2 案例2
一张原本清晰的照片,通过Tile功能增加细节(图像尺寸不变,不改变图像原有结构)
因不改变图像尺寸,只通过tile增加细节,所以此处目标图像尺寸通过controlnet直接同步即可,无需调整。
不同预处理器生成图像如下,可以看到后面两幅图较原图均有细节增加。
总结:
这里分享webUI的本地整合包资源,个人自用的整合包(超全插件及模型,本节课程所有涉及的模型均可在对应文件夹中找到下载)。
整合包形式,无需安装,Windows系统下载打开即用。
「webui全能包(内置超全插件、模型)--100G左右」https://pan.quark.cn/s/3647679a1966
欢迎正在学习comfyui等ai技术的伙伴V加 huaqs123 进入学习小组。在这里大家共同学习comfyui的基础知识、最新模型与工作流、行业前沿信息等,也可以讨论comfyui商业落地的思路与方向。 欢迎感兴趣的小伙伴,群共享资料会分享博主自用的comfyui整合包(已安装超全节点与必备模型)、基础学习资料、高级工作流等资源……
致敬每一位在路上的学习者,你我共勉!Ai技术发展迅速,学习comfyUI是紧跟时代的第一步,促进商业落地并创造价值才是学习的实际目标。
——画青山Ai学习专栏———————————————————————————————
零基础学Webui:
https://blog.csdn.net/vip_zgx888/category_13020854.html
Comfyui基础学习与实操:
https://blog.csdn.net/vip_zgx888/category_13006170.html
comfyui功能精进与探索:
https://blog.csdn.net/vip_zgx888/category_13005478.html
系列专栏持续更新中,欢迎订阅关注,共同学习,共同进步!
—————————————————————————————————————