{
  "revision": 0,
  "last_node_id": 167,
  "last_link_id": 0,
  "nodes": [
    {
      "id": 167,
      "type": "ca14b151-8f5e-4386-aab7-d2ec84eaf43c",
      "pos": [
        -3410,
        6100
      ],
      "size": [
        420,
        481.3125
      ],
      "flags": {},
      "order": 1,
      "mode": 0,
      "inputs": [
        {
          "name": "video",
          "type": "VIDEO",
          "link": null
        },
        {
          "label": "trim_audio",
          "name": "switch",
          "type": "BOOLEAN",
          "widget": {
            "name": "switch"
          },
          "link": null
        },
        {
          "name": "start_time",
          "type": "FLOAT",
          "widget": {
            "name": "start_time"
          },
          "link": null
        },
        {
          "name": "duration",
          "type": "FLOAT",
          "widget": {
            "name": "duration"
          },
          "link": null
        },
        {
          "label": "face_landmarker",
          "name": "face_landmarker_1",
          "type": "FACE_LANDMARKER",
          "link": null
        },
        {
          "label": "detector_variant",
          "name": "detector_variant_1",
          "type": "COMBO",
          "widget": {
            "name": "detector_variant_1"
          },
          "link": null
        },
        {
          "label": "num_faces",
          "name": "num_faces_1",
          "type": "INT",
          "widget": {
            "name": "num_faces_1"
          },
          "link": null
        },
        {
          "label": "face_oval",
          "name": "regions.face_oval",
          "type": "BOOLEAN",
          "widget": {
            "name": "regions.face_oval"
          },
          "link": null
        },
        {
          "label": "face_lips",
          "name": "regions.lips",
          "type": "BOOLEAN",
          "widget": {
            "name": "regions.lips"
          },
          "link": null
        },
        {
          "label": "left_eye",
          "name": "regions.left_eye",
          "type": "BOOLEAN",
          "widget": {
            "name": "regions.left_eye"
          },
          "link": null
        },
        {
          "label": "right_eye",
          "name": "regions.right_eye_1",
          "type": "BOOLEAN",
          "widget": {
            "name": "regions.right_eye_1"
          },
          "link": null
        },
        {
          "label": "irises",
          "name": "regions.irises_1",
          "type": "BOOLEAN",
          "widget": {
            "name": "regions.irises_1"
          },
          "link": null
        },
        {
          "name": "model_name",
          "type": "COMBO",
          "widget": {
            "name": "model_name"
          },
          "link": null
        }
      ],
      "outputs": [
        {
          "label": "mask",
          "name": "MASK_1",
          "type": "MASK",
          "links": []
        },
        {
          "label": "bboxes",
          "name": "bboxes_1",
          "type": "BOUNDING_BOX",
          "links": null
        },
        {
          "name": "face_landmarks",
          "type": "FACE_LANDMARKS",
          "links": null
        }
      ],
      "title": "Video Face Detection (Mediapipe)",
      "properties": {
        "proxyWidgets": [
          [
            "165",
            "switch"
          ],
          [
            "164",
            "start_time"
          ],
          [
            "164",
            "duration"
          ],
          [
            "11",
            "detector_variant"
          ],
          [
            "11",
            "num_faces"
          ],
          [
            "20",
            "regions.face_oval"
          ],
          [
            "20",
            "regions.lips"
          ],
          [
            "20",
            "regions.left_eye"
          ],
          [
            "20",
            "regions.right_eye"
          ],
          [
            "20",
            "regions.irises"
          ],
          [
            "2",
            "model_name"
          ]
        ],
        "enableTabs": false,
        "tabWidth": 65,
        "tabXOffset": 10,
        "hasSecondTab": false,
        "secondTabText": "Send Back",
        "secondTabOffset": 80,
        "secondTabWidth": 65,
        "cnr_id": "comfy-core",
        "ver": "0.22.0"
      },
      "widgets_values": []
    }
  ],
  "links": [],
  "version": 0.4,
  "definitions": {
    "subgraphs": [
      {
        "id": "ca14b151-8f5e-4386-aab7-d2ec84eaf43c",
        "version": 1,
        "state": {
          "lastGroupId": 2,
          "lastNodeId": 167,
          "lastLinkId": 168,
          "lastRerouteId": 0
        },
        "revision": 0,
        "config": {},
        "name": "Video Face Detection (Mediapipe)",
        "description": "Detects facial landmarks from a video using MediaPipe, outputting landmark data, face bounding boxes, and an optional face-region mask.",
        "inputNode": {
          "id": -10,
          "bounding": [
            -1060,
            4350,
            142.587890625,
            308
          ]
        },
        "outputNode": {
          "id": -20,
          "bounding": [
            470,
            4460,
            137.677734375,
            108
          ]
        },
        "inputs": [
          {
            "id": "16e5a20f-22bc-4960-a67b-e32c64409c49",
            "name": "video",
            "type": "VIDEO",
            "linkIds": [
              150,
              153
            ],
            "pos": [
              -941.412109375,
              4374
            ]
          },
          {
            "id": "cc7fc7d4-24ec-4c00-878e-1af1b6809b4b",
            "name": "switch",
            "type": "BOOLEAN",
            "linkIds": [
              154
            ],
            "label": "trim_audio",
            "pos": [
              -941.412109375,
              4394
            ]
          },
          {
            "id": "efa9ab9f-ca70-449c-be43-5ca60c7f0d59",
            "name": "start_time",
            "type": "FLOAT",
            "linkIds": [
              155
            ],
            "pos": [
              -941.412109375,
              4414
            ]
          },
          {
            "id": "45050127-4089-4b85-bf81-73b725196c2e",
            "name": "duration",
            "type": "FLOAT",
            "linkIds": [
              156
            ],
            "pos": [
              -941.412109375,
              4434
            ]
          },
          {
            "id": "239fcd3b-6324-4824-8255-98199ae58914",
            "name": "face_landmarker_1",
            "type": "FACE_LANDMARKER",
            "linkIds": [
              157
            ],
            "label": "face_landmarker",
            "pos": [
              -941.412109375,
              4454
            ]
          },
          {
            "id": "f79f67b9-5bcb-4cab-9101-8b9dee461bca",
            "name": "detector_variant_1",
            "type": "COMBO",
            "linkIds": [
              158
            ],
            "label": "detector_variant",
            "pos": [
              -941.412109375,
              4474
            ]
          },
          {
            "id": "3369790b-e730-41bf-b5b2-dc1f5fafbe11",
            "name": "num_faces_1",
            "type": "INT",
            "linkIds": [
              159
            ],
            "label": "num_faces",
            "pos": [
              -941.412109375,
              4494
            ]
          },
          {
            "id": "964f6b5f-44ac-456e-ba3a-a3039dfe0729",
            "name": "regions.face_oval",
            "type": "BOOLEAN",
            "linkIds": [
              160
            ],
            "label": "face_oval",
            "pos": [
              -941.412109375,
              4514
            ]
          },
          {
            "id": "d6e89b51-65a2-4f37-a561-8cec3a5040fd",
            "name": "regions.lips",
            "type": "BOOLEAN",
            "linkIds": [
              161
            ],
            "label": "face_lips",
            "pos": [
              -941.412109375,
              4534
            ]
          },
          {
            "id": "49f02319-ea4a-4a69-88f8-589d2ef7c97a",
            "name": "regions.left_eye",
            "type": "BOOLEAN",
            "linkIds": [
              162
            ],
            "label": "left_eye",
            "pos": [
              -941.412109375,
              4554
            ]
          },
          {
            "id": "89179a19-aca6-4469-a0b9-2a4bd21bceea",
            "name": "regions.right_eye_1",
            "type": "BOOLEAN",
            "linkIds": [
              163
            ],
            "label": "right_eye",
            "pos": [
              -941.412109375,
              4574
            ]
          },
          {
            "id": "f5667690-24b5-4df9-9210-b8610c68ff5f",
            "name": "regions.irises_1",
            "type": "BOOLEAN",
            "linkIds": [
              164
            ],
            "label": "irises",
            "pos": [
              -941.412109375,
              4594
            ]
          },
          {
            "id": "66c805f6-6ccd-41f9-8a77-fc934b7f4713",
            "name": "model_name",
            "type": "COMBO",
            "linkIds": [
              165
            ],
            "pos": [
              -941.412109375,
              4614
            ]
          }
        ],
        "outputs": [
          {
            "id": "f6309e1d-6397-4363-b38f-778a122abc51",
            "name": "MASK_1",
            "type": "MASK",
            "linkIds": [
              83
            ],
            "label": "mask",
            "pos": [
              494,
              4484
            ]
          },
          {
            "id": "59669f0a-b4b2-49d1-85f8-fc2a88059b1a",
            "name": "bboxes_1",
            "type": "BOUNDING_BOX",
            "linkIds": [
              166
            ],
            "label": "bboxes",
            "pos": [
              494,
              4504
            ]
          },
          {
            "id": "57f66731-e106-4f8b-a0a0-aed3c620b37b",
            "name": "face_landmarks",
            "type": "FACE_LANDMARKS",
            "linkIds": [
              167
            ],
            "pos": [
              494,
              4524
            ]
          }
        ],
        "widgets": [],
        "nodes": [
          {
            "id": 11,
            "type": "MediaPipeFaceLandmarker",
            "pos": [
              -60,
              4380
            ],
            "size": [
              350,
              220
            ],
            "flags": {},
            "order": 1,
            "mode": 0,
            "inputs": [
              {
                "localized_name": "face_detection_model",
                "name": "face_detection_model",
                "type": "FACE_DETECTION_MODEL",
                "link": 66
              },
              {
                "localized_name": "image",
                "name": "image",
                "type": "IMAGE",
                "link": 149
              },
              {
                "localized_name": "detector_variant",
                "name": "detector_variant",
                "type": "COMBO",
                "widget": {
                  "name": "detector_variant"
                },
                "link": 158
              },
              {
                "localized_name": "num_faces",
                "name": "num_faces",
                "type": "INT",
                "widget": {
                  "name": "num_faces"
                },
                "link": 159
              },
              {
                "localized_name": "min_confidence",
                "name": "min_confidence",
                "type": "FLOAT",
                "widget": {
                  "name": "min_confidence"
                },
                "link": null
              },
              {
                "localized_name": "missing_frame_fallback",
                "name": "missing_frame_fallback",
                "type": "COMBO",
                "widget": {
                  "name": "missing_frame_fallback"
                },
                "link": null
              },
              {
                "name": "face_landmarker",
                "type": "FACE_LANDMARKER",
                "link": 157
              }
            ],
            "outputs": [
              {
                "localized_name": "face_landmarks",
                "name": "face_landmarks",
                "type": "FACE_LANDMARKS",
                "links": [
                  46,
                  167
                ]
              },
              {
                "localized_name": "bboxes",
                "name": "bboxes",
                "type": "BOUNDING_BOX",
                "links": [
                  166
                ]
              }
            ],
            "properties": {
              "Node name for S&R": "MediaPipeFaceLandmarker",
              "enableTabs": false,
              "tabWidth": 65,
              "tabXOffset": 10,
              "hasSecondTab": false,
              "secondTabText": "Send Back",
              "secondTabOffset": 80,
              "secondTabWidth": 65,
              "cnr_id": "comfy-core",
              "ver": "0.22.0"
            },
            "widgets_values": [
              "full",
              0,
              0.5,
              "empty"
            ]
          },
          {
            "id": 2,
            "type": "LoadMediaPipeFaceLandmarker",
            "pos": [
              -70,
              4160
            ],
            "size": [
              350,
              140
            ],
            "flags": {},
            "order": 0,
            "mode": 0,
            "inputs": [
              {
                "localized_name": "model_name",
                "name": "model_name",
                "type": "COMBO",
                "widget": {
                  "name": "model_name"
                },
                "link": 165
              }
            ],
            "outputs": [
              {
                "localized_name": "FACE_DETECTION_MODEL",
                "name": "FACE_DETECTION_MODEL",
                "type": "FACE_DETECTION_MODEL",
                "links": [
                  66
                ]
              }
            ],
            "properties": {
              "Node name for S&R": "LoadMediaPipeFaceLandmarker",
              "enableTabs": false,
              "tabWidth": 65,
              "tabXOffset": 10,
              "hasSecondTab": false,
              "secondTabText": "Send Back",
              "secondTabOffset": 80,
              "secondTabWidth": 65,
              "cnr_id": "comfy-core",
              "ver": "0.22.0",
              "models": [
                {
                  "name": "mediapipe_face_fp32.safetensors",
                  "url": "https://huggingface.co/Comfy-Org/mediapipe/resolve/main/detection/mediapipe_face_fp32.safetensors",
                  "directory": "detection"
                }
              ]
            },
            "widgets_values": [
              "mediapipe_face_fp32.safetensors"
            ]
          },
          {
            "id": 20,
            "type": "MediaPipeFaceMask",
            "pos": [
              -70,
              4660
            ],
            "size": [
              360,
              180
            ],
            "flags": {},
            "order": 2,
            "mode": 0,
            "inputs": [
              {
                "localized_name": "face_landmarks",
                "name": "face_landmarks",
                "type": "FACE_LANDMARKS",
                "link": 46
              },
              {
                "localized_name": "regions",
                "name": "regions",
                "type": "COMFY_DYNAMICCOMBO_V3",
                "widget": {
                  "name": "regions"
                },
                "link": null
              },
              {
                "localized_name": "regions.face_oval",
                "name": "regions.face_oval",
                "type": "BOOLEAN",
                "widget": {
                  "name": "regions.face_oval"
                },
                "link": 160
              },
              {
                "localized_name": "regions.lips",
                "name": "regions.lips",
                "type": "BOOLEAN",
                "widget": {
                  "name": "regions.lips"
                },
                "link": 161
              },
              {
                "localized_name": "regions.left_eye",
                "name": "regions.left_eye",
                "type": "BOOLEAN",
                "widget": {
                  "name": "regions.left_eye"
                },
                "link": 162
              },
              {
                "localized_name": "regions.right_eye",
                "name": "regions.right_eye",
                "type": "BOOLEAN",
                "widget": {
                  "name": "regions.right_eye"
                },
                "link": 163
              },
              {
                "localized_name": "regions.irises",
                "name": "regions.irises",
                "type": "BOOLEAN",
                "widget": {
                  "name": "regions.irises"
                },
                "link": 164
              }
            ],
            "outputs": [
              {
                "localized_name": "MASK",
                "name": "MASK",
                "type": "MASK",
                "links": [
                  83
                ]
              }
            ],
            "properties": {
              "Node name for S&R": "MediaPipeFaceMask",
              "enableTabs": false,
              "tabWidth": 65,
              "tabXOffset": 10,
              "hasSecondTab": false,
              "secondTabText": "Send Back",
              "secondTabOffset": 80,
              "secondTabWidth": 65,
              "cnr_id": "comfy-core",
              "ver": "0.22.0"
            },
            "widgets_values": [
              "custom",
              true,
              false,
              false,
              false,
              false
            ]
          },
          {
            "id": 160,
            "type": "GetVideoComponents",
            "pos": [
              -420,
              4360
            ],
            "size": [
              230,
              120
            ],
            "flags": {},
            "order": 3,
            "mode": 0,
            "inputs": [
              {
                "localized_name": "video",
                "name": "video",
                "type": "VIDEO",
                "link": 152
              }
            ],
            "outputs": [
              {
                "localized_name": "images",
                "name": "images",
                "type": "IMAGE",
                "links": [
                  149
                ]
              },
              {
                "localized_name": "audio",
                "name": "audio",
                "type": "AUDIO",
                "links": null
              },
              {
                "localized_name": "fps",
                "name": "fps",
                "type": "FLOAT",
                "links": null
              }
            ],
            "properties": {
              "Node name for S&R": "GetVideoComponents",
              "enableTabs": false,
              "tabWidth": 65,
              "tabXOffset": 10,
              "hasSecondTab": false,
              "secondTabText": "Send Back",
              "secondTabOffset": 80,
              "secondTabWidth": 65,
              "cnr_id": "comfy-core",
              "ver": "0.22.0"
            }
          },
          {
            "id": 164,
            "type": "Video Slice",
            "pos": [
              -780,
              4330
            ],
            "size": [
              270,
              170
            ],
            "flags": {},
            "order": 4,
            "mode": 0,
            "inputs": [
              {
                "localized_name": "video",
                "name": "video",
                "type": "VIDEO",
                "link": 150
              },
              {
                "localized_name": "start_time",
                "name": "start_time",
                "type": "FLOAT",
                "widget": {
                  "name": "start_time"
                },
                "link": 155
              },
              {
                "localized_name": "duration",
                "name": "duration",
                "type": "FLOAT",
                "widget": {
                  "name": "duration"
                },
                "link": 156
              },
              {
                "localized_name": "strict_duration",
                "name": "strict_duration",
                "type": "BOOLEAN",
                "widget": {
                  "name": "strict_duration"
                },
                "link": null
              }
            ],
            "outputs": [
              {
                "localized_name": "VIDEO",
                "name": "VIDEO",
                "type": "VIDEO",
                "links": [
                  151
                ]
              }
            ],
            "properties": {
              "Node name for S&R": "Video Slice",
              "enableTabs": false,
              "tabWidth": 65,
              "tabXOffset": 10,
              "hasSecondTab": false,
              "secondTabText": "Send Back",
              "secondTabOffset": 80,
              "secondTabWidth": 65,
              "cnr_id": "comfy-core",
              "ver": "0.22.0"
            },
            "widgets_values": [
              0,
              0,
              false
            ]
          },
          {
            "id": 165,
            "type": "ComfySwitchNode",
            "pos": [
              -420,
              4590
            ],
            "size": [
              270,
              130
            ],
            "flags": {},
            "order": 5,
            "mode": 0,
            "inputs": [
              {
                "localized_name": "on_false",
                "name": "on_false",
                "type": "*",
                "link": 153
              },
              {
                "localized_name": "on_true",
                "name": "on_true",
                "type": "*",
                "link": 151
              },
              {
                "localized_name": "switch",
                "name": "switch",
                "type": "BOOLEAN",
                "widget": {
                  "name": "switch"
                },
                "link": 154
              }
            ],
            "outputs": [
              {
                "localized_name": "output",
                "name": "output",
                "type": "*",
                "links": [
                  152
                ]
              }
            ],
            "properties": {
              "Node name for S&R": "ComfySwitchNode",
              "enableTabs": false,
              "tabWidth": 65,
              "tabXOffset": 10,
              "hasSecondTab": false,
              "secondTabText": "Send Back",
              "secondTabOffset": 80,
              "secondTabWidth": 65,
              "cnr_id": "comfy-core",
              "ver": "0.22.0"
            },
            "widgets_values": [
              false
            ]
          }
        ],
        "groups": [],
        "links": [
          {
            "id": 66,
            "origin_id": 2,
            "origin_slot": 0,
            "target_id": 11,
            "target_slot": 0,
            "type": "FACE_DETECTION_MODEL"
          },
          {
            "id": 46,
            "origin_id": 11,
            "origin_slot": 0,
            "target_id": 20,
            "target_slot": 0,
            "type": "FACE_LANDMARKS"
          },
          {
            "id": 83,
            "origin_id": 20,
            "origin_slot": 0,
            "target_id": -20,
            "target_slot": 0,
            "type": "MASK"
          },
          {
            "id": 149,
            "origin_id": 160,
            "origin_slot": 0,
            "target_id": 11,
            "target_slot": 1,
            "type": "IMAGE"
          },
          {
            "id": 150,
            "origin_id": -10,
            "origin_slot": 0,
            "target_id": 164,
            "target_slot": 0,
            "type": "VIDEO"
          },
          {
            "id": 151,
            "origin_id": 164,
            "origin_slot": 0,
            "target_id": 165,
            "target_slot": 1,
            "type": "VIDEO"
          },
          {
            "id": 152,
            "origin_id": 165,
            "origin_slot": 0,
            "target_id": 160,
            "target_slot": 0,
            "type": "VIDEO"
          },
          {
            "id": 153,
            "origin_id": -10,
            "origin_slot": 0,
            "target_id": 165,
            "target_slot": 0,
            "type": "VIDEO"
          },
          {
            "id": 154,
            "origin_id": -10,
            "origin_slot": 1,
            "target_id": 165,
            "target_slot": 2,
            "type": "BOOLEAN"
          },
          {
            "id": 155,
            "origin_id": -10,
            "origin_slot": 2,
            "target_id": 164,
            "target_slot": 1,
            "type": "FLOAT"
          },
          {
            "id": 156,
            "origin_id": -10,
            "origin_slot": 3,
            "target_id": 164,
            "target_slot": 2,
            "type": "FLOAT"
          },
          {
            "id": 157,
            "origin_id": -10,
            "origin_slot": 4,
            "target_id": 11,
            "target_slot": 6,
            "type": "FACE_LANDMARKER"
          },
          {
            "id": 158,
            "origin_id": -10,
            "origin_slot": 5,
            "target_id": 11,
            "target_slot": 2,
            "type": "COMBO"
          },
          {
            "id": 159,
            "origin_id": -10,
            "origin_slot": 6,
            "target_id": 11,
            "target_slot": 3,
            "type": "INT"
          },
          {
            "id": 160,
            "origin_id": -10,
            "origin_slot": 7,
            "target_id": 20,
            "target_slot": 2,
            "type": "BOOLEAN"
          },
          {
            "id": 161,
            "origin_id": -10,
            "origin_slot": 8,
            "target_id": 20,
            "target_slot": 3,
            "type": "BOOLEAN"
          },
          {
            "id": 162,
            "origin_id": -10,
            "origin_slot": 9,
            "target_id": 20,
            "target_slot": 4,
            "type": "BOOLEAN"
          },
          {
            "id": 163,
            "origin_id": -10,
            "origin_slot": 10,
            "target_id": 20,
            "target_slot": 5,
            "type": "BOOLEAN"
          },
          {
            "id": 164,
            "origin_id": -10,
            "origin_slot": 11,
            "target_id": 20,
            "target_slot": 6,
            "type": "BOOLEAN"
          },
          {
            "id": 165,
            "origin_id": -10,
            "origin_slot": 12,
            "target_id": 2,
            "target_slot": 0,
            "type": "COMBO"
          },
          {
            "id": 166,
            "origin_id": 11,
            "origin_slot": 1,
            "target_id": -20,
            "target_slot": 1,
            "type": "BOUNDING_BOX"
          },
          {
            "id": 167,
            "origin_id": 11,
            "origin_slot": 0,
            "target_id": -20,
            "target_slot": 2,
            "type": "FACE_LANDMARKS"
          }
        ],
        "extra": {},
        "category": "Conditioning & Preprocessors/Face Detection"
      }
    ]
  },
  "extra": {}
}