在 ComfyUI 工作流里处理人像生成任务时,主模型输出的脸部常常出现眼睛大小不一、牙齿扭曲或者分辨率偏低的情况。Face Detailer 节点组的作用就是在不重画整张图的前提下,自动把人脸找出来并做高精度修复。它把目标检测、图像裁剪、潜空间重绘和原图融合串成一个可复用流程,用户只需要接好加载器与采样器就能跑通。

Face Detailer 节点组的工作机制
Face Detailer 并不是一个单一节点,而是一组封装好的子图,核心逻辑分为四步。第一步是检测,节点内部调用 face_yolov8n.pt 之类的 YOLO 模型,对输入图像做推理,输出若干个人脸边界框。第二步根据框体把对应区域从原图裁切出来,并放大到设定尺寸,方便后续细化。第三步把裁剪图送入独立的采样回路,使用用户指定的修复模型或原模型配合重绘提示词生成新脸部。第四步将修复后的区域按原坐标无缝贴回,完成融合。
这种分段处理带来两个明显好处。其一是显存友好,因为只在人脸小图上跑二次扩散,而不是整图潜空间计算,中端显卡也能处理大尺寸出图。其二是可控性强,检测模型和修复模型解耦,你可以检测用 YOLOv8,修复用专门的人脸微调模型。下面是一段简化版的调用逻辑伪代码,展示节点组内部如何串联:
# 伪代码:Face Detailer 核心流程
def face_detailer(image, detect_model, seed, denoise):
boxes = detect_model.detect(image) # 返回人脸框列表
result = image.copy()
for box in boxes:
crop = image.crop(box).resize((512, 512))
latent = vae.encode(crop)
sampled = sampler.sample(latent, denoise=denoise, seed=seed)
new_face = vae.decode(sampled)
result.paste(new_face, box.topleft)
return result
从代码可以看出,检测框数量直接决定循环次数,多脸图片会依次修复。如果检测阈值过高,部分侧脸可能漏检;阈值过低则会把相似色块误判为人脸,导致背景被重绘。因此实际使用中要根据构图调整 confidence 参数。
关键参数与常见误区
在节点组界面里,最容易被忽略的是 detection_threshold 和 dilation。前者控制检测置信度,默认 0.5 在某些动漫模型上会漏掉风格化人脸,建议降到 0.35 左右。dilation 则是在检测框外扩像素,避免修复边缘出现硬切痕,一般设 10 到 20 像素。另一个重绘相关参数是 denoise,它不等于修复强度单一映射;denoise 过高会让脸部脱离原姿态,过低则改不动畸形,通常 0.4 到 0.6 是平衡点。
很多人在使用时会误以为 Face Detailer 能替代高清放大。其实两者目的不同:高清放大解决整体分辨率,Face Detailer 只解决脸部结构错误。如果把二者顺序颠倒,先修复后放大,放大器的插值可能再次模糊刚修好的眼睛。正确顺序应是先潜空间放大或原图出大图,再用 Face Detailer 做局部精修。此外,检测模型要和图像域匹配,真人模型配动漫检测权重会大量误检。
还有一个坑是批量多脸时的种子管理。节点组默认每框共享一个 seed,这会导致同一张图里多张脸长得一模一样。高级用法里可以勾选 random_per_box,让每个框采不同噪声,从而保留脸型差异。下表列出常用参数与推荐值:
| 参数名 | 作用 | 推荐值 |
|---|---|---|
| detection_threshold | 人脸检测置信度 | 0.35-0.5 |
| dilation | 检测框外扩像素 | 10-20 |
| denoise | 重绘幅度 | 0.4-0.6 |
| random_per_box | 每框独立随机种子 | 开启多脸场景 |
在 ComfyUI 中搭建基础修复流
要把 Face Detailer 接进既有工作流,首先确保安装了 ComfyUI-Impact-Pack,这是节点组来源。加载后,在画布右键添加 FaceDetailer 节点,它的输入包括 model、clip、vae、image、positive、negative,输出为修复后 image。你需要把主采样器的同套模型引线接入,保证修复风格一致。如果主图用了 refiner,修复回路建议也接 refiner 以免肤色偏移。
一个实用技巧是在 Face Detailer 之前放一个 ImageScale 节点,把短边统一到 1024 以上再检测,这样小图人脸也能被 YOLO 稳定识别。修复完成后,可接 FreeU 或锐化节点提升纹理。注意 Impact-Pack 的检测模型需手动下载到 modelsbbox 目录,文件名要和节点下拉框一致,否则会报空权重错误。以下为最小可运行 JSON 片段里的节点连接示意:
{
"nodes": [
{"id": 1, "type": "CheckpointLoaderSimple", "outputs": ["MODEL", "CLIP", "VAE"]},
{"id": 2, "type": "FaceDetailer", "inputs": {"image": 3, "model": 1, "clip": 1, "vae": 1}}
]
}
当工作流跑通后,可以批量处理图集。Impact-Pack 提供 Queue Trigger 配合通配符读取文件夹,Face Detailer 会自动跳过无人脸的图,只修有人物的帧,这对短视频分镜修复尤其高效。若发现修复后脸部光照和原图不融,可在贴回前对 new_face 做均值漂移对齐,或降低 denoise 并加强 negative 里的模糊词权重。
最后提醒,Face Detailer 节点组虽自动化程度高,但仍依赖前端检测质量。遇到戴口罩、极度侧脸或手遮脸,检测框会畸变,此时应切到 manual 遮罩模式,用 Paint 节点手绘区域再交由修复子图处理。把自动与手动结合,才能覆盖复杂生产环境的人脸修复需求。
ComfyUIFace_Detailer人脸修复修改时间:2026-08-13 06:42:35