文档 /
教程 /
MediaPipe:ComfyUI 人脸检测
MediaPipe:ComfyUI 人脸检测
了解如何在 ComfyUI 中使用 MediaPipe Face Detection 检测人脸,提取面部关键点、边界框和区域遮罩
教程
mediapipe 更新于 2026-11-12
MediaPipe:ComfyUI 人脸检测
了解如何在 ComfyUI 中使用 MediaPipe Face Detection 检测人脸,提取面部关键点、边界框和区域遮罩
[!TIP] > [tab] 本地用户 > > 请确保你的 ComfyUI 已经更新。 > > ComfyUI 下载 > ComfyUI 更新教程 > > 本指南里的工作流可以在工作流模板中找到。如果找不到,可能是 ComfyUI 没有更新。 > > 如果加载工作流时有节点缺失,可能原因有: > > 1. 你用的不是最新版(每夜版)。 > 2. 启动时有些节点导入失败。 > [tab] 云端用户 > > * Cloud 会在 ComfyUI 稳定版本发布后更新。 > > 所以,如果你发现本文档中有任何核心节点缺失,可能是因为新核心节点尚未在最新稳定版中发布。请等待下一个稳定版发布。
MediaPipe 是 Google 开源的实时感知机器学习解决方案。在 ComfyUI 中,MediaPipe Face Detection 集成了 BlazeFace 检测、FaceMesh v2 关键点估计和 ARKit-52 blendshape,全部在一个统一的工作流中完成。
MediaPipe Face Detection 已原生集成到 ComfyUI(PR #14009),模型权重基于 Apache 2.0 License 提供。
MediaPipe GitHub | Comfy-Org Model Repository
主要功能
- 快速人脸检测 — 基于 BlazeFace 的检测器,支持近距离(约 2 米)和远距离(约 5 米)检测
- 478 个面部关键点 — 每张人脸密集的 FaceMesh v2 关键点
- ARKit-52 blendshape — 实时面部表情系数
- 面部区域遮罩 — 面部轮廓、嘴唇、眼睛和虹膜的逐区域遮罩
- 人脸边界框 — 输出兼容
DrawBBoxes节点用于边界框可视化
范围说明: 仅人脸检测 — BlazeFace + FaceMesh v2 + ARKit blendshape。不包括手部、姿态或整体检测。
MediaPipe Face Detection 工作流
1. 下载工作流
将 ComfyUI 更新到最新版本,然后进入 Workflow → Browse Templates,在 Utility 分类下找到 "Mediapipe: Image Face Detection"。
[card] 下载工作流 JSON 文件 下载工作流
[card] 在 Comfy Cloud 上运行 在云端打开
[card] 下载示例图片 获取此工作流的示例输入图片

2. 下载模型
MediaPipe Face Detection 模型托管在 Comfy-Org MediaPipe model repository 上。
将其放置在以下目录结构中:
📂 ComfyUI/
└── 📂 models/
└── 📂 detection/
└── mediapipe_face_fp32.safetensors
3. 使用工作流
本工作流使用一个 subgraph(子图)节点来协调人脸检测、可视化和遮罩生成。子图暴露了以下控制参数:
[card] 了解 Subgraph 本工作流使用 Subgraph 节点进行模块化处理。查看 Subgraph 文档了解如何自定义和扩展工作流。
子图输入:
| 输入 | 描述 |
|---|---|
| image | 要分析的输入图片批次 |
| face\_landmarker | 可选。留空则使用内置模型加载器。连接外部 FACE_DETECTION_MODEL 输出可覆盖 |
子图参数:
| 参数 | 默认值 | 描述 |
|---|---|---|
| model\_name | mediapipe_face_fp32.safetensors | ComfyUI/models/detection/ 目录下的模型文件。如缺失则下载上述模型 |
| detector\_variant | short | short — 针对近距离/大脸优化(约 2 米范围)。full — 覆盖更小/更远的人脸(约 5 米),速度较慢。both — 同时运行两个检测器,保留每帧检测到更多人脸的结果(约 2 倍开销) |
| num\_faces | 1 | 每帧最多返回的人脸数。0 = 不限制(返回所有检测结果)。范围:0–16 |
| custom\_face\_oval | false | 在遮罩输出中包含面部轮廓区域 |
| custom\_lips | false | 在遮罩中包含嘴唇(与其他启用的区域合并) |
| custom\_left\_eye | false | 在遮罩中包含左眼区域 |
| custom\_right\_eye | false | 在遮罩中包含右眼区域 |
| custom\_irises | false | 在遮罩中包含虹膜区域 |
遮罩切换在内部使用自定义模式:仅填充勾选的区域;多个开启的区域会合并为每帧一个遮罩。
子图输出:
| 输出 | 类型 | 描述 |
|---|---|---|
| face\_landmarks | FACE_LANDMARKS | 每帧人脸数据,包含 478 个 2D/3D 关键点、ARKit-52 blendshape、网格拓扑数据——输入到可视化和遮罩节点 |
| bboxes | BOUNDING_BOX | 人脸边界框——兼容 DrawBBoxes 节点 |
| mask | MASK | 基于启用的区域切换生成的二值遮罩 |
4. 运行工作流
- 确保模型文件已放置在
ComfyUI/models/detection/目录 - 在
Load Image节点加载一张图片 - 根据需要调整检测参数
- 点击
Queue或使用Ctrl(Cmd) + Enter运行 - 工作流输出网格覆盖图、边界框和遮罩预览
社区资源
- MediaPipe GitHub — MediaPipe 上游框架
- Comfy-Org/mediapipe — 官方 ComfyUI 模型权重
- ComfyUI Subgraph 指南 — 了解子图的工作原理