原理
通过检测脸部,高分辨率还原因分辨率低而受损的面部,从而恢复细节。
脸部修复过程
正常文生图(或直接加载一张图片) -> FaceDetailer 节点进行修复 (检测人轮廓、检测脸部、放大脸部重新采样 ) -> 生成脸部修复好的图片
下载模型
bbox检测脸部模型
face_yolov8m.pt放在以下路径
E:\Comfyui\ComfyUI\models\ultralytics\bbox
sam模型检测人
sam也叫segment anything model(段任意模型),段任意模型(SAM)可根据输入提示(如点或框)生成高质量的对象蒙版
sam_vit_l_0b3195.pth放在以下路径
E:\Comfyui\ComfyUI\models\sams
安装插件
插件解压位置
E:\Comfyui\ComfyUI\custom_nodes
ComfyUI-Impact-Pack
https://github.com/ltdrdata/ComfyUI-Impact-Pack
使用该插件的FaceDetailer 节点, 该节点整合了脸部修复的功能模块。
FaceDetailer节点是用于面部检测的检测器节点和用于图像增强的细化器节点组合。
FaceDetailer节点
节点出入点介绍
- bbox_detector 旨在检测图像中的边界框,利用高级检测模型以高精度识别和分割对象。用于检测面部
- sam_model 用于检测整个人
- FaceDetailer的MASK输出提供了检测和增强区域所在位置的可视化
检测器节点
- threshold 阈值,只检测识别置信度高于此设定值的对象
- dilation 扩张,扩展检测到的蒙版区域
- crop_factor 根据检测到的遮挡区域,确定在细节恢复过程中应将周围区域包含多少次。如果该值较小,修复效果可能不佳,因为无法知道周围的背景情况
细化器节点
- guide_size 辅助尺寸 ,该功能仅在检测到的遮罩尺寸小于此值时尝试恢复细节。如果尺寸较大,此功能会提高分辨率并尝试恢复细节。
- guide_size_for, bbox基于脸部区域 ,crop_region是基于裁剪区域
- max_size 限制遮罩的最大尺寸
- feather 羽化,越大使边界连接处越不明显
- force_inpaint 尝试强制生成,即使它小于 guide_size。当您只想切换到另一种提示词而不是保存细节的功能时,这个函数非常有用。不过,在这种情况下,upscale 会被强制固定为 1
- noise_mask 启用噪声蒙版时,只有图像的蒙版区域会被再生,如果禁用,整个裁剪区域的图像都会被再生
ComfyUI-WD14-Tagger
图片反推提示词插件
https://github.com/pythongosssss/ComfyUI-WD14-Tagger
如果直接上传一张图片进行脸部修复,用这个插件会加快效率,因为FaceDetailer节点需要提供大模型,clip(提示词),VAE,而这个插件能够生成提示词(clip)。
rgthree-comfy(可选)
https://github.com/rgthree/rgthree-comfy
可以使用**image comparer(rgthree)**这个节点,对比原图和修复图的区别
更多FaceDetailer节点细节
查看以下网址
https://github.com/ltdrdata/ComfyUI-extension-tutorials/blob/Main/ComfyUI-Impact-Pack/tutorial/advanced.md
网盘资源
我用夸克网盘分享了「ComfyUI教程」,点击链接即可保存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。
链接:https://pan.quark.cn/s/274b451a3072
视频讲解
b站视频
https://www.bilibili.com/video/BV1tbxjeEErS/?vd_source=f7ba66eceb00e4805d1897131c92dd15