工作流 /
图像工具 /
人脸检测: MediaPipe

人脸检测: MediaPipe
Face Detection: MediaPipe
输入图像并检测每张人脸最多6个面部特征点,实现超快速多人脸检测
图像工具
9 个节点 1 个输入 34 次使用 ComfyUI ≥ 0.23.0 ComfyUI 28 KB
需要的权重
这个工作流引用了 1 个权重文件,其中 1 个能在本站模型库里找到。
mediapipe_face_fp32.safetensors
在模型库查看
节点构成
PreviewImage
× 2
MarkdownNote
× 2
LoadImage
× 1
MediaPipeFaceMeshVisualize
× 1
DrawBBoxes
× 1
6062babb-b649-4a71-be9e-20ebce567744
× 1
MaskPreview
× 1
官方标注的模型
Mediapipe
工作流 JSON
和上面「下载工作流 JSON」是同一份文件。
1{
2 "id": "7c211339-edd3-4d98-adc5-690f8231e3c8",
3 "revision": 0,
4 "last_node_id": 158,
5 "last_link_id": 140,
6 "nodes": [
7 {
8 "id": 5,
9 "type": "LoadImage",
10 "pos": [
11 -820,
12 4240
13 ],
14 "size": [
15 300,
16 400
17 ],
18 "flags": [],
19 "order": 0,
20 "mode": 0,
21 "inputs": [],
22 "outputs": [
23 {
24 "name": "IMAGE",
25 "type": "IMAGE",
26 "links": [
27 61,
28 65,
29 89
30 ]
31 },
32 {
33 "name": "MASK",
34 "type": "MASK",
35 "links": null
36 }
37 ],
38 "properties": {
39 "Node name for S&R": "LoadImage",
40 "cnr_id": "comfy-core",
41 "ver": "0.22.0",
42 "enableTabs": false,
43 "tabWidth": 65,
44 "tabXOffset": 10,
45 "hasSecondTab": false,
46 "secondTabText": "Send Back",
47 "secondTabOffset": 80,
48 "secondTabWidth": 65
49 },
50 "widgets_values": [
51 "soft_neon_girl.png",
52 "image"
53 ]
54 },
55 {
56 "id": 19,
57 "type": "MediaPipeFaceMeshVisualize",
58 "pos": [
59 700,
60 4290
61 ],
62 "size": [
63 310,
64 230.65625
65 ],
66 "flags": [],
67 "order": 4,
68 "mode": 0,
69 "inputs": [
70 {
71 "name": "face_landmarks",
72 "type": "FACE_LANDMARKS",
73 "link": 70
74 },
75 {
76 "name": "image",
77 "shape": 7,
78 "type": "IMAGE",
79 "link": 65
80 }
81 ],
82 "outputs": [
83 {
84 "name": "IMAGE",
85 "type": "IMAGE",
86 "links": [
87 62
88 ]
89 }
90 ],
91 "properties": {
92 "Node name for S&R": "MediaPipeFaceMeshVisualize",
93 "cnr_id": "comfy-core",
94 "ver": "0.22.0",
95 "enableTabs": false,
96 "tabWidth": 65,
97 "tabXOffset": 10,
98 "hasSecondTab": false,
99 "secondTabText": "Send Back",
100 "secondTabOffset": 80,
101 "secondTabWidth": 65
102 },
103 "widgets_values": [
104 "all",
105 "#00ff40",
106 1,
107 2
108 ]
109 },
110 {
111 "id": 27,
112 "type": "PreviewImage",
113 "pos": [
114 1050,
115 4290
116 ],
117 "size": [
118 580,
119 600
120 ],
121 "flags": [],
122 "order": 7,
123 "mode": 0,
124 "inputs": [
125 {
126 "name": "images",
127 "type": "IMAGE",
128 "link": 62
129 }
130 ],
131 "outputs": [],
132 "properties": {
133 "Node name for S&R": "PreviewImage",
134 "cnr_id": "comfy-core",
135 "ver": "0.22.0",
136 "enableTabs": false,
137 "tabWidth": 65,
138 "tabXOffset": 10,
139 "hasSecondTab": false,
140 "secondTabText": "Send Back",
141 "secondTabOffset": 80,
142 "secondTabWidth": 65
143 },
144 "widgets_values": []
145 },
146 {
147 "id": 29,
148 "type": "PreviewImage",
149 "pos": [
150 2040,
151 4300
152 ],
153 "size": [
154 480,
155 580
156 ],
157 "flags": [],
158 "order": 8,
159 "mode": 0,
160 "inputs": [
161 {
162 "name": "images",
163 "type": "IMAGE",
164 "link": 64
165 }
166 ],
167 "outputs": [],
168 "properties": {
169 "Node name for S&R": "PreviewImage",
170 "cnr_id": "comfy-core",
171 "ver": "0.22.0",
172 "enableTabs": false,
173 "tabWidth": 65,
174 "tabXOffset": 10,
175 "hasSecondTab": false,
176 "secondTabText": "Send Back",
177 "secondTabOffset": 80,
178 "secondTabWidth": 65
179 },
180 "widgets_values": []
181 },
182 {
183 "id": 8,
184 "type": "DrawBBoxes",
185 "pos": [
186 1670,
187 4300
188 ],
189 "size": [
190 340,
191 100
192 ],
193 "flags": [],
194 "order": 5,
195 "mode": 0,
196 "inputs": [
197 {
198 "name": "bboxes",
199 "type": "BOUNDING_BOX",
200 "link": 71
201 },
202 {
203 "name": "image",
204 "shape": 7,
205 "type": "IMAGE",
206 "link": 61
207 }
208 ],
209 "outputs": [
210 {
211 "name": "out_image",
212 "type": "IMAGE",
213 "links": [
214 64
215 ]
216 }
217 ],
218 "properties": {
219 "Node name for S&R": "DrawBBoxes",
220 "cnr_id": "comfy-core",
221 "ver": "0.22.0",
222 "enableTabs": false,
223 "tabWidth": 65,
224 "tabXOffset": 10,
225 "hasSecondTab": false,
226 "secondTabText": "Send Back",
227 "secondTabOffset": 80,
228 "secondTabWidth": 65
229 },
230 "widgets_values": []
231 },
232 {
233 "id": 33,
234 "type": "6062babb-b649-4a71-be9e-20ebce567744",
235 "pos": [
236 -450,
237 4240
238 ],
239 "size": [
240 420,
241 400
242 ],
243 "flags": [],
244 "order": 3,
245 "mode": 0,
246 "inputs": [
247 {
248 "name": "image",
249 "type": "IMAGE",
250 "link": 89
251 },
252 {
253 "name": "face_landmarker",
254 "type": "FACE_LANDMARKER",
255 "link": null
256 },
257 {
258 "label": "custom_face_oval",
259 "name": "regions.face_oval",
260 "type": "BOOLEAN",
261 "widget": {
262 "name": "regions.face_oval"
263 },
264 "link": null
265 },
266 {
267 "label": "custom_lips",
268 "name": "regions.lips",
269 "type": "BOOLEAN",
270 "widget": {
271 "name": "regions.lips"
272 },
273 "link": null
274 },
275 {
276 "label": "custom_left_eye",
277 "name": "regions.left_eye",
278 "type": "BOOLEAN",
279 "widget": {
280 "name": "regions.left_eye"
281 },
282 "link": null
283 },
284 {
285 "label": "custom_right_eye",
286 "name": "regions.right_eye",
287 "type": "BOOLEAN",
288 "widget": {
289 "name": "regions.right_eye"
290 },
291 "link": null
292 },
293 {
294 "label": "custom_irises",
295 "name": "regions.irises",
296 "type": "BOOLEAN",
297 "widget": {
298 "name": "regions.irises"
299 },
300 "link": null
301 }
302 ],
303 "outputs": [
304 {
305 "name": "face_landmarks",
306 "type": "FACE_LANDMARKS",
307 "links": [
308 70
309 ]
310 },
311 {
312 "name": "bboxes",
313 "type": "BOUNDING_BOX",
314 "links": [
315 71
316 ]
317 },
318 {
319 "label": "mask",
320 "name": "MASK_1",
321 "type": "MASK",
322 "links": [
323 85
324 ]
325 }
326 ],
327 "properties": {
328 "proxyWidgets": [
329 [
330 "11",
331 "detector_variant"
332 ],
333 [
334 "11",
335 "num_faces"
336 ],
337 [
338 "20",
339 "regions.face_oval"
340 ],
341 [
342 "20",
343 "regions.lips"
344 ],
345 [
346 "20",
347 "regions.left_eye"
348 ],
349 [
350 "20",
351 "regions.right_eye"
352 ],
353 [
354 "20",
355 "regions.irises"
356 ],
357 [
358 "2",
359 "model_name"
360 ]
361 ],
362 "cnr_id": "comfy-core",
363 "ver": "0.22.0",
364 "enableTabs": false,
365 "tabWidth": 65,
366 "tabXOffset": 10,
367 "hasSecondTab": false,
368 "secondTabText": "Send Back",
369 "secondTabOffset": 80,
370 "secondTabWidth": 65
371 },
372 "widgets_values": []
373 },
374 {
375 "id": 34,
376 "type": "MaskPreview",
377 "pos": [
378 30,
379 4240
380 ],
381 "size": [
382 590,
383 770
384 ],
385 "flags": [],
386 "order": 6,
387 "mode": 0,
388 "inputs": [
389 {
390 "name": "mask",
391 "type": "MASK",
392 "link": 85
393 }
394 ],
395 "outputs": [],
396 "properties": {
397 "Node name for S&R": "MaskPreview",
398 "cnr_id": "comfy-core",
399 "ver": "0.22.0",
400 "enableTabs": false,
401 "tabWidth": 65,
402 "tabXOffset": 10,
403 "hasSecondTab": false,
404 "secondTabText": "Send Back",
405 "secondTabOffset": 80,
406 "secondTabWidth": 65
407 },
408 "widgets_values": []
409 },
410 {
411 "id": 157,
412 "type": "MarkdownNote",
413 "pos": [
414 -1910,
415 4240
416 ],
417 "size": [
418 520,
419 728.65625
420 ],
421 "flags": [],
422 "order": 1,
423 "mode": 0,
424 "inputs": [],
425 "outputs": [],
426 "title": "Setup & links",
427 "properties": [],
428 "widgets_values": [
429 "## Setup & links\n\n- [Hugging Face:Comfy-Org/mediapipe](https://huggingface.co/Comfy-Org/mediapipe)\n\n**ModelScope mirrors** (alternative repo location)\n\n- [ModelScope:Comfy-Org/mediapipe](https://modelscope.cn/models/Comfy-Org/mediapipe)\n\n- MediaPipe (upstream): [google-ai-edge/mediapipe](https://github.com/google-ai-edge/mediapipe)\n- ComfyUI feature: [#14009 — MediaPipe face detection](https://github.com/Comfy-Org/ComfyUI/pull/14009)\n- Subgraphs guide: [docs.comfy.org — Subgraph](https://docs.comfy.org/interface/features/subgraph)\n\n## Model (local)\n\n**detection**\n\n- [mediapipe_face_fp32.safetensors](https://huggingface.co/Comfy-Org/mediapipe/resolve/main/detection/mediapipe_face_fp32.safetensors) (5.2 MB)\n\n## Model path\n\n```\nComfyUI/\n└── models/\n └── detection/\n └── mediapipe_face_fp32.safetensors\n```\n\n## Report issues\n\nUpdate ComfyUI first ([guide](https://docs.comfy.org/installation/update_comfyui)) and download the model above. Desktop/Cloud may lag nightly builds.\n\n- Runtime / backend: [ComfyUI/issues](https://github.com/comfyanonymous/ComfyUI/issues)\n- UI / frontend: [ComfyUI_frontend/issues](https://github.com/Comfy-Org/ComfyUI_frontend/issues)\n- Workflow templates: [workflow_templates/issues](https://github.com/Comfy-Org/workflow_templates/issues)"
430 ],
431 "color": "#222",
432 "bgcolor": "#000"
433 },
434 {
435 "id": 158,
436 "type": "MarkdownNote",
437 "pos": [
438 -1370,
439 4240
440 ],
441 "size": [
442 520,
443 1651.96875
444 ],
445 "flags": [],
446 "order": 2,
447 "mode": 0,
448 "inputs": [],
449 "outputs": [],
450 "title": "MediaPipe Face Detection",
451 "properties": [],
452 "widgets_values": [
453 "## MediaPipe Face Detection\n\n**Scope (PR [#14009](https://github.com/Comfy-Org/ComfyUI/pull/14009))** \nFace only — BlazeFace + FaceMesh v2 + ARKit blendshapes. Not hand/pose/holistic. Upstream: [MediaPipe](https://github.com/google-ai-edge/mediapipe).\n\n**This workflow** \nOne subgraph drives detection; **Mask** and **Visualize** groups preview mask vs mesh/bboxes.\n\n---\n\n### Subgraph inputs\n\n| Pin | Description |\n|-----|-------------|\n| **image** | Input image batch to analyze. |\n| **face_landmarker** | Optional. Leave empty to use the built-in loader + `model_name` below. Connect an external `FACE_DETECTION_MODEL` to override. |\n\n### Subgraph parameters\n\n| Parameter | Description |\n|-----------|-------------|\n| **model_name** | Checkpoint in `ComfyUI/models/detection/` (default: `mediapipe_face_fp32.safetensors`). If this shows an error, download the model (see **Setup & links** note). |\n| **detector_variant** | **short** — close / large faces (~2 m). **full** — smaller or farther faces (~5 m), slower. **both** — runs both per frame and keeps the variant that found more faces (~2× cost). |\n| **num_faces** | Max faces per frame. **0** = no limit (return all detections). **1–16** = cap count (highest scores kept). |\n| **custom_face_oval** | Include face-outline region in the **mask** output. |\n| **custom_lips** | Include lips in the mask (union with other enabled regions). |\n| **custom_left_eye** | Include left eye region in the mask. |\n| **custom_right_eye** | Include right eye region in the mask. |\n| **custom_irises** | Include iris regions in the mask. |\n\nMask toggles use **custom** mode internally: only checked regions are filled; multiple ON regions are **unioned** into one mask per frame.\n\n### Subgraph outputs\n\n| Pin | Description |\n|-----|-------------|\n| **face_landmarks** | Per-frame faces: 478 landmarks, blendshapes, mesh topology (for mesh viz nodes). |\n| **bboxes** | Face bounding boxes — fed to **Draw BBoxes** in the Visualize group. |\n| **mask** | Binary mask from the region toggles above. |\n\n### Inside the subgraph (not on the widget panel)\n\nOpen the subgraph for advanced detection options: **min_confidence** (detection threshold), **missing_frame_fallback** (`empty` / `previous` / `interpolate` for failed frames in video batches).\n\n**Visualize group** uses separate nodes: mesh connection preset, color, line thickness (not exposed on the subgraph shell)."
454 ],
455 "color": "#222",
456 "bgcolor": "#000"
457 }
458 ],
459 "links": [
460 [
461 61,
462 5,
463 0,
464 8,
465 1,
466 "IMAGE"
467 ],
468 [
469 62,
470 19,
471 0,
472 27,
473 0,
474 "IMAGE"
475 ],
476 [
477 64,
478 8,
479 0,
480 29,
481 0,
482 "IMAGE"
483 ],
484 [
485 65,
486 5,
487 0,
488 19,
489 1,
490 "IMAGE"
491 ],
492 [
493 70,
494 33,
495 0,
496 19,
497 0,
498 "FACE_LANDMARKS"
499 ],
500 [
501 71,
502 33,
503 1,
504 8,
505 0,
506 "BOUNDING_BOX"
507 ],
508 [
509 85,
510 33,
511 2,
512 34,
513 0,
514 "MASK"
515 ],
516 [
517 89,
518 5,
519 0,
520 33,
521 0,
522 "IMAGE"
523 ]
524 ],
525 "groups": [
526 {
527 "id": 1,
528 "title": "Visualize",
529 "bounding": [
530 670,
531 4210,
532 1940,
533 680
534 ],
535 "color": "#3f789e",
536 "flags": []
537 }
538 ],
539 "definitions": {
540 "subgraphs": [
541 {
542 "id": "6062babb-b649-4a71-be9e-20ebce567744",
543 "version": 1,
544 "state": {
545 "lastGroupId": 2,
546 "lastNodeId": 158,
547 "lastLinkId": 140,
548 "lastRerouteId": 0
549 },
550 "revision": 0,
551 "config": [],
552 "name": "Face Detection (Mediapipe)",
553 "inputNode": {
554 "id": -10,
555 "bounding": [
556 -710,
557 4300,
558 148.880859375,
559 248
560 ]
561 },
562 "outputNode": {
563 "id": -20,
564 "bounding": [
565 140,
566 4480,
567 137.677734375,
568 108
569 ]
570 },
571 "inputs": [
572 {
573 "id": "705dc1ae-6dc9-4155-92df-52f816ad451e",
574 "name": "image",
575 "type": "IMAGE",
576 "linkIds": [
577 60
578 ],
579 "localized_name": "image",
580 "pos": [
581 -585.119140625,
582 4324
583 ]
584 },
585 {
586 "id": "d6277190-732c-4604-b7cd-d3a9588bf761",
587 "name": "face_landmarker",
588 "type": "FACE_LANDMARKER",
589 "linkIds": [
590 74
591 ],
592 "pos": [
593 -585.119140625,
594 4344
595 ]
596 },
597 {
598 "id": "ac473a08-6a86-42a7-b460-e70c6c5e1e2b",
599 "name": "detector_variant",
600 "type": "COMBO",
601 "linkIds": [
602 75
603 ],
604 "pos": [
605 -585.119140625,
606 4364
607 ]
608 },
609 {
610 "id": "1bec2252-ca2d-496e-8a33-33a61d21f897",
611 "name": "num_faces",
612 "type": "INT",
613 "linkIds": [
614 76
615 ],
616 "pos": [
617 -585.119140625,
618 4384
619 ]
620 },
621 {
622 "id": "17994fa2-0ea0-4c9b-a70a-19789c459c80",
623 "name": "regions.face_oval",
624 "type": "BOOLEAN",
625 "linkIds": [
626 77
627 ],
628 "label": "custom_face_oval",
629 "pos": [
630 -585.119140625,
631 4404
632 ]
633 },
634 {
635 "id": "1c6c5893-2aee-4c37-b702-15ef2e20d863",
636 "name": "regions.lips",
637 "type": "BOOLEAN",
638 "linkIds": [
639 78
640 ],
641 "label": "custom_lips",
642 "pos": [
643 -585.119140625,
644 4424
645 ]
646 },
647 {
648 "id": "f353fcea-4b6f-42a1-8fdd-32b3aa1e1f09",
649 "name": "regions.left_eye",
650 "type": "BOOLEAN",
651 "linkIds": [
652 79
653 ],
654 "label": "custom_left_eye",
655 "pos": [
656 -585.119140625,
657 4444
658 ]
659 },
660 {
661 "id": "1387e121-c1fb-4522-8f0d-43459e11dd86",
662 "name": "regions.right_eye",
663 "type": "BOOLEAN",
664 "linkIds": [
665 80
666 ],
667 "label": "custom_right_eye",
668 "pos": [
669 -585.119140625,
670 4464
671 ]
672 },
673 {
674 "id": "14acb0a0-d1f4-48f3-ba31-811b26236ef9",
675 "name": "regions.irises",
676 "type": "BOOLEAN",
677 "linkIds": [
678 81
679 ],
680 "label": "custom_irises",
681 "pos": [
682 -585.119140625,
683 4484
684 ]
685 },
686 {
687 "id": "25a82859-87de-42c8-8431-09948665546e",
688 "name": "model_name",
689 "type": "COMBO",
690 "linkIds": [
691 86
692 ],
693 "pos": [
694 -585.119140625,
695 4504
696 ]
697 }
698 ],
699 "outputs": [
700 {
701 "id": "d2ba3f92-e8b1-49c3-9590-cfad56c54cf4",
702 "name": "face_landmarks",
703 "type": "FACE_LANDMARKS",
704 "linkIds": [
705 44
706 ],
707 "localized_name": "face_landmarks",
708 "pos": [
709 164,
710 4504
711 ]
712 },
713 {
714 "id": "4f356bb0-d4c4-4f93-b4cf-0845a65c4e6d",
715 "name": "bboxes",
716 "type": "BOUNDING_BOX",
717 "linkIds": [
718 25
719 ],
720 "localized_name": "bboxes",
721 "pos": [
722 164,
723 4524
724 ]
725 },
726 {
727 "id": "f6309e1d-6397-4363-b38f-778a122abc51",
728 "name": "MASK_1",
729 "type": "MASK",
730 "linkIds": [
731 83
732 ],
733 "label": "mask",
734 "pos": [
735 164,
736 4544
737 ]
738 }
739 ],
740 "widgets": [],
741 "nodes": [
742 {
743 "id": 11,
744 "type": "MediaPipeFaceLandmarker",
745 "pos": [
746 -280,
747 4280
748 ],
749 "size": [
750 350,
751 220
752 ],
753 "flags": [],
754 "order": 1,
755 "mode": 0,
756 "inputs": [
757 {
758 "localized_name": "face_detection_model",
759 "name": "face_detection_model",
760 "type": "FACE_DETECTION_MODEL",
761 "link": 66
762 },
763 {
764 "localized_name": "image",
765 "name": "image",
766 "type": "IMAGE",
767 "link": 60
768 },
769 {
770 "localized_name": "detector_variant",
771 "name": "detector_variant",
772 "type": "COMBO",
773 "widget": {
774 "name": "detector_variant"
775 },
776 "link": 75
777 },
778 {
779 "localized_name": "num_faces",
780 "name": "num_faces",
781 "type": "INT",
782 "widget": {
783 "name": "num_faces"
784 },
785 "link": 76
786 },
787 {
788 "name": "face_landmarker",
789 "type": "FACE_LANDMARKER",
790 "link": 74
791 }
792 ],
793 "outputs": [
794 {
795 "localized_name": "face_landmarks",
796 "name": "face_landmarks",
797 "type": "FACE_LANDMARKS",
798 "links": [
799 44,
800 46
801 ]
802 },
803 {
804 "localized_name": "bboxes",
805 "name": "bboxes",
806 "type": "BOUNDING_BOX",
807 "links": [
808 25
809 ]
810 }
811 ],
812 "properties": {
813 "Node name for S&R": "MediaPipeFaceLandmarker",
814 "cnr_id": "comfy-core",
815 "ver": "0.22.0",
816 "enableTabs": false,
817 "tabWidth": 65,
818 "tabXOffset": 10,
819 "hasSecondTab": false,
820 "secondTabText": "Send Back",
821 "secondTabOffset": 80,
822 "secondTabWidth": 65
823 },
824 "widgets_values": [
825 "full",
826 0,
827 0.5,
828 "empty"
829 ]
830 },
831 {
832 "id": 2,
833 "type": "LoadMediaPipeFaceLandmarker",
834 "pos": [
835 -290,
836 4060
837 ],
838 "size": [
839 350,
840 140
841 ],
842 "flags": [],
843 "order": 0,
844 "mode": 0,
845 "inputs": [
846 {
847 "localized_name": "model_name",
848 "name": "model_name",
849 "type": "COMBO",
850 "widget": {
851 "name": "model_name"
852 },
853 "link": 86
854 }
855 ],
856 "outputs": [
857 {
858 "localized_name": "FACE_DETECTION_MODEL",
859 "name": "FACE_DETECTION_MODEL",
860 "type": "FACE_DETECTION_MODEL",
861 "links": [
862 66
863 ]
864 }
865 ],
866 "properties": {
867 "Node name for S&R": "LoadMediaPipeFaceLandmarker",
868 "cnr_id": "comfy-core",
869 "ver": "0.22.0",
870 "models": [
871 {
872 "name": "mediapipe_face_fp32.safetensors",
873 "url": "https://huggingface.co/Comfy-Org/mediapipe/resolve/main/detection/mediapipe_face_fp32.safetensors",
874 "directory": "detection"
875 }
876 ],
877 "enableTabs": false,
878 "tabWidth": 65,
879 "tabXOffset": 10,
880 "hasSecondTab": false,
881 "secondTabText": "Send Back",
882 "secondTabOffset": 80,
883 "secondTabWidth": 65
884 },
885 "widgets_values": [
886 "mediapipe_face_fp32.safetensors"
887 ]
888 },
889 {
890 "id": 20,
891 "type": "MediaPipeFaceMask",
892 "pos": [
893 -290,
894 4560
895 ],
896 "size": [
897 360,
898 180
899 ],
900 "flags": [],
901 "order": 2,
902 "mode": 0,
903 "inputs": [
904 {
905 "localized_name": "face_landmarks",
906 "name": "face_landmarks",
907 "type": "FACE_LANDMARKS",
908 "link": 46
909 },
910 {
911 "localized_name": "regions.face_oval",
912 "name": "regions.face_oval",
913 "type": "BOOLEAN",
914 "widget": {
915 "name": "regions.face_oval"
916 },
917 "link": 77
918 },
919 {
920 "localized_name": "regions.lips",
921 "name": "regions.lips",
922 "type": "BOOLEAN",
923 "widget": {
924 "name": "regions.lips"
925 },
926 "link": 78
927 },
928 {
929 "localized_name": "regions.left_eye",
930 "name": "regions.left_eye",
931 "type": "BOOLEAN",
932 "widget": {
933 "name": "regions.left_eye"
934 },
935 "link": 79
936 },
937 {
938 "localized_name": "regions.right_eye",
939 "name": "regions.right_eye",
940 "type": "BOOLEAN",
941 "widget": {
942 "name": "regions.right_eye"
943 },
944 "link": 80
945 },
946 {
947 "localized_name": "regions.irises",
948 "name": "regions.irises",
949 "type": "BOOLEAN",
950 "widget": {
951 "name": "regions.irises"
952 },
953 "link": 81
954 }
955 ],
956 "outputs": [
957 {
958 "localized_name": "MASK",
959 "name": "MASK",
960 "type": "MASK",
961 "links": [
962 83
963 ]
964 }
965 ],
966 "properties": {
967 "Node name for S&R": "MediaPipeFaceMask",
968 "cnr_id": "comfy-core",
969 "ver": "0.22.0",
970 "enableTabs": false,
971 "tabWidth": 65,
972 "tabXOffset": 10,
973 "hasSecondTab": false,
974 "secondTabText": "Send Back",
975 "secondTabOffset": 80,
976 "secondTabWidth": 65
977 },
978 "widgets_values": [
979 "custom",
980 true,
981 false,
982 false,
983 false,
984 false
985 ]
986 }
987 ],
988 "groups": [],
989 "links": [
990 {
991 "id": 66,
992 "origin_id": 2,
993 "origin_slot": 0,
994 "target_id": 11,
995 "target_slot": 0,
996 "type": "FACE_DETECTION_MODEL"
997 },
998 {
999 "id": 46,
1000 "origin_id": 11,
1001 "origin_slot": 0,
1002 "target_id": 20,
1003 "target_slot": 0,
1004 "type": "FACE_LANDMARKS"
1005 },
1006 {
1007 "id": 60,
1008 "origin_id": -10,
1009 "origin_slot": 0,
1010 "target_id": 11,
1011 "target_slot": 1,
1012 "type": "IMAGE"
1013 },
1014 {
1015 "id": 44,
1016 "origin_id": 11,
1017 "origin_slot": 0,
1018 "target_id": -20,
1019 "target_slot": 0,
1020 "type": "FACE_LANDMARKS"
1021 },
1022 {
1023 "id": 25,
1024 "origin_id": 11,
1025 "origin_slot": 1,
1026 "target_id": -20,
1027 "target_slot": 1,
1028 "type": "BOUNDING_BOX"
1029 },
1030 {
1031 "id": 74,
1032 "origin_id": -10,
1033 "origin_slot": 1,
1034 "target_id": 11,
1035 "target_slot": 4,
1036 "type": "FACE_LANDMARKER"
1037 },
1038 {
1039 "id": 75,
1040 "origin_id": -10,
1041 "origin_slot": 2,
1042 "target_id": 11,
1043 "target_slot": 2,
1044 "type": "COMBO"
1045 },
1046 {
1047 "id": 76,
1048 "origin_id": -10,
1049 "origin_slot": 3,
1050 "target_id": 11,
1051 "target_slot": 3,
1052 "type": "INT"
1053 },
1054 {
1055 "id": 77,
1056 "origin_id": -10,
1057 "origin_slot": 4,
1058 "target_id": 20,
1059 "target_slot": 1,
1060 "type": "BOOLEAN"
1061 },
1062 {
1063 "id": 78,
1064 "origin_id": -10,
1065 "origin_slot": 5,
1066 "target_id": 20,
1067 "target_slot": 2,
1068 "type": "BOOLEAN"
1069 },
1070 {
1071 "id": 79,
1072 "origin_id": -10,
1073 "origin_slot": 6,
1074 "target_id": 20,
1075 "target_slot": 3,
1076 "type": "BOOLEAN"
1077 },
1078 {
1079 "id": 80,
1080 "origin_id": -10,
1081 "origin_slot": 7,
1082 "target_id": 20,
1083 "target_slot": 4,
1084 "type": "BOOLEAN"
1085 },
1086 {
1087 "id": 81,
1088 "origin_id": -10,
1089 "origin_slot": 8,
1090 "target_id": 20,
1091 "target_slot": 5,
1092 "type": "BOOLEAN"
1093 },
1094 {
1095 "id": 83,
1096 "origin_id": 20,
1097 "origin_slot": 0,
1098 "target_id": -20,
1099 "target_slot": 2,
1100 "type": "MASK"
1101 },
1102 {
1103 "id": 86,
1104 "origin_id": -10,
1105 "origin_slot": 9,
1106 "target_id": 2,
1107 "target_slot": 0,
1108 "type": "COMBO"
1109 }
1110 ],
1111 "extra": []
1112 }
1113 ]
1114 },
1115 "config": [],
1116 "extra": {
1117 "ds": {
1118 "scale": 0.4027230802507587,
1119 "offset": [
1120 1264.8181692739117,
1121 -3412.6039527799962
1122 ]
1123 },
1124 "frontendVersion": "1.43.18",
1125 "VHS_latentpreview": false,
1126 "VHS_latentpreviewrate": 0,
1127 "VHS_MetadataImage": true,
1128 "VHS_KeepIntermediate": true
1129 },
1130 "version": 0.4
1131}