{ "id": "3756b0c2-4256-4d3b-9e90-307bc38858da", "revision": 0, "last_node_id": 115, "last_link_id": 234, "nodes": [ { "id": 75, "type": "LoadImage", "pos": [ 600, -2880 ], "size": [ 214.080078125, 326 ], "flags": {}, "order": 0, "mode": 0, "inputs": [], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "slot_index": 0, "links": [ 219, 223 ] }, { "name": "MASK", "type": "MASK", "links": null } ], "title": "Load Image (source 0)", "properties": { "cnr_id": "comfy-core", "ver": "0.3.43", "Node name for S&R": "LoadImage", "ue_properties": { "widget_ue_connectable": {}, "version": "7.1", "input_ue_unconnectable": {} } }, "widgets_values": [ "", "image" ] }, { "id": 86, "type": "LoadImage", "pos": [ 840, -2880 ], "size": [ 214.080078125, 326 ], "flags": {}, "order": 1, "mode": 0, "inputs": [], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "slot_index": 0, "links": [ 171, 172 ] }, { "name": "MASK", "type": "MASK", "links": null } ], "title": "Load Image (source 0)", "properties": { "cnr_id": "comfy-core", "ver": "0.3.43", "Node name for S&R": "LoadImage", "ue_properties": { "widget_ue_connectable": {}, "version": "7.1", "input_ue_unconnectable": {} } }, "widgets_values": [ "", "image" ] }, { "id": 85, "type": "LoadImage", "pos": [ 840, -2280 ], "size": [ 214.080078125, 326 ], "flags": {}, "order": 2, "mode": 0, "inputs": [], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "slot_index": 0, "links": [ 169, 170 ] }, { "name": "MASK", "type": "MASK", "links": null } ], "title": "Load Image (source 0)", "properties": { "cnr_id": "comfy-core", "ver": "0.3.43", "Node name for S&R": "LoadImage", "ue_properties": { "widget_ue_connectable": {}, "version": "7.1", "input_ue_unconnectable": {} } }, "widgets_values": [ "", "image" ] }, { "id": 65, "type": "LoadImage", "pos": [ 600, -2280 ], "size": [ 214.080078125, 326 ], "flags": {}, "order": 3, "mode": 0, "inputs": [], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "slot_index": 0, "links": [ 210, 227 ] }, { "name": "MASK", "type": "MASK", "links": null } ], "title": "Load Image (source 0)", "properties": { "cnr_id": "comfy-core", "ver": "0.3.43", "Node name for S&R": "LoadImage", "ue_properties": { "widget_ue_connectable": {}, "version": "7.1", "input_ue_unconnectable": {} } }, "widgets_values": [ "", "image" ] }, { "id": 14, "type": "LoadImage", "pos": [ 420, -1680 ], "size": [ 660, 420 ], "flags": {}, "order": 4, "mode": 0, "inputs": [], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "links": [ 3, 173 ] }, { "name": "MASK", "type": "MASK", "links": [ 4 ] } ], "title": "Load Image (base)", "properties": { "cnr_id": "comfy-core", "ver": "0.3.59", "Node name for S&R": "LoadImage", "ue_properties": { "widget_ue_connectable": { "image": true, "upload": true }, "version": "7.1", "input_ue_unconnectable": {} } }, "widgets_values": [ "", "image" ] }, { "id": 27, "type": "SaveImage", "pos": [ 1140, -1680 ], "size": [ 660, 420 ], "flags": {}, "order": 30, "mode": 0, "inputs": [ { "name": "images", "type": "IMAGE", "link": 55 } ], "outputs": [], "properties": { "cnr_id": "comfy-core", "ver": "0.3.59", "Node name for S&R": "SaveImage", "ue_properties": { "widget_ue_connectable": { "filename_prefix": true }, "version": "7.1", "input_ue_unconnectable": {} } }, "widgets_values": [ "ComfyUI" ] }, { "id": 104, "type": "FaceFilterNode", "pos": [ 1560, -3480 ], "size": [ 240, 360 ], "flags": {}, "order": 20, "mode": 0, "inputs": [ { "name": "ref_images", "type": "IMAGE", "link": 223 }, { "name": "candidate_images", "type": "IMAGE", "link": 224 } ], "outputs": [ { "name": "MATCHING", "type": "IMAGE", "links": [ 225 ] }, { "name": "REJECTED", "type": "IMAGE", "links": null }, { "name": "DEBUG", "type": "STRING", "links": [] } ], "properties": { "aux_id": "Kidev/ComfyUI-FaceFilter", "ver": "eea179ed67e06bc0e702dbbcde3e3a8f8a7d7c4a", "Node name for S&R": "FaceFilterNode" }, "widgets_values": [ 0.3, "black_512", "black_512", false, "antelopev2", "auto(cuda+cpu)", 256, "fit_min_side" ] }, { "id": 103, "type": "FaceFilterNode", "pos": [ 1560, -3900 ], "size": [ 240, 360 ], "flags": {}, "order": 19, "mode": 0, "inputs": [ { "name": "ref_images", "type": "IMAGE", "link": 219 }, { "name": "candidate_images", "type": "IMAGE", "link": 220 } ], "outputs": [ { "name": "MATCHING", "type": "IMAGE", "links": [ 221 ] }, { "name": "REJECTED", "type": "IMAGE", "links": null }, { "name": "DEBUG", "type": "STRING", "links": null } ], "properties": { "aux_id": "Kidev/ComfyUI-FaceFilter", "ver": "eea179ed67e06bc0e702dbbcde3e3a8f8a7d7c4a", "Node name for S&R": "FaceFilterNode" }, "widgets_values": [ 0.3, "black_512", "black_512", false, "antelopev2", "auto(cuda+cpu)", 256, "fit_min_side" ] }, { "id": 78, "type": "ReActorFaceSwap", "pos": [ 1860, -3900 ], "size": [ 240, 358 ], "flags": {}, "order": 23, "mode": 0, "inputs": [ { "name": "input_image", "type": "IMAGE", "link": 221 }, { "name": "source_image", "shape": 7, "type": "IMAGE", "link": 171 }, { "name": "face_model", "shape": 7, "type": "FACE_MODEL", "link": null }, { "name": "face_boost", "shape": 7, "type": "FACE_BOOST", "link": null } ], "outputs": [ { "name": "SWAPPED_IMAGE", "type": "IMAGE", "links": [ 161 ] }, { "name": "FACE_MODEL", "type": "FACE_MODEL", "links": null }, { "name": "ORIGINAL_IMAGE", "type": "IMAGE", "links": null } ], "properties": { "cnr_id": "comfyui-reactor", "ver": "a2ad854a096e8e60967ed3c2a87cc8e79a1f414c", "Node name for S&R": "ReActorFaceSwap" }, "widgets_values": [ true, "inswapper_128.onnx", "retinaface_resnet50", "GPEN-BFR-512.onnx", 1, 0.5, "no", "no", "0", "0", 1 ] }, { "id": 79, "type": "ReActorFaceSwap", "pos": [ 1860, -3480 ], "size": [ 240, 360 ], "flags": {}, "order": 24, "mode": 0, "inputs": [ { "name": "input_image", "type": "IMAGE", "link": 225 }, { "name": "source_image", "shape": 7, "type": "IMAGE", "link": 172 }, { "name": "face_model", "shape": 7, "type": "FACE_MODEL", "link": null }, { "name": "face_boost", "shape": 7, "type": "FACE_BOOST", "link": null } ], "outputs": [ { "name": "SWAPPED_IMAGE", "type": "IMAGE", "links": [ 162 ] }, { "name": "FACE_MODEL", "type": "FACE_MODEL", "links": null }, { "name": "ORIGINAL_IMAGE", "type": "IMAGE", "links": null } ], "properties": { "cnr_id": "comfyui-reactor", "ver": "a2ad854a096e8e60967ed3c2a87cc8e79a1f414c", "Node name for S&R": "ReActorFaceSwap" }, "widgets_values": [ true, "inswapper_128.onnx", "retinaface_resnet50", "GPEN-BFR-512.onnx", 1, 0.5, "no", "no", "0", "0", 1 ] }, { "id": 80, "type": "ImageBatch", "pos": [ 2160, -3660 ], "size": [ 140, 46 ], "flags": {}, "order": 26, "mode": 0, "inputs": [ { "name": "image1", "type": "IMAGE", "link": 161 }, { "name": "image2", "type": "IMAGE", "link": 162 } ], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "links": [ 188 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.59", "Node name for S&R": "ImageBatch", "ue_properties": { "widget_ue_connectable": {}, "version": "7.1", "input_ue_unconnectable": {} } }, "widgets_values": [] }, { "id": 96, "type": "FaceFilterNode", "pos": [ 1560, -3000 ], "size": [ 240, 360 ], "flags": {}, "order": 18, "mode": 0, "inputs": [ { "name": "ref_images", "type": "IMAGE", "link": 210 }, { "name": "candidate_images", "type": "IMAGE", "link": 202 } ], "outputs": [ { "name": "MATCHING", "type": "IMAGE", "links": [ 201 ] }, { "name": "REJECTED", "type": "IMAGE", "links": null }, { "name": "DEBUG", "type": "STRING", "links": null } ], "properties": { "aux_id": "Kidev/ComfyUI-FaceFilter", "ver": "eea179ed67e06bc0e702dbbcde3e3a8f8a7d7c4a", "Node name for S&R": "FaceFilterNode" }, "widgets_values": [ 0.3, "black_512", "black_512", false, "antelopev2", "auto(cuda+cpu)", 256, "fit_min_side" ] }, { "id": 28, "type": "ImageFromBatch", "pos": [ 1200, -3000 ], "size": [ 270, 82 ], "flags": {}, "order": 15, "mode": 0, "inputs": [ { "name": "image", "type": "IMAGE", "link": 56 } ], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "links": [ 202, 220 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.59", "Node name for S&R": "ImageFromBatch", "ue_properties": { "widget_ue_connectable": { "batch_index": true, "length": true }, "version": "7.1", "input_ue_unconnectable": {} } }, "widgets_values": [ 0, 1 ] }, { "id": 61, "type": "ImageFromBatch", "pos": [ 1200, -3180 ], "size": [ 270, 82 ], "flags": {}, "order": 16, "mode": 0, "inputs": [ { "name": "image", "type": "IMAGE", "link": 131 } ], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "links": [ 224, 228 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.59", "Node name for S&R": "ImageFromBatch", "ue_properties": { "widget_ue_connectable": { "batch_index": true, "length": true }, "version": "7.1", "input_ue_unconnectable": {} } }, "widgets_values": [ 1, 1 ] }, { "id": 59, "type": "ReActorFaceSwap", "pos": [ 1860, -3000 ], "size": [ 240, 360 ], "flags": {}, "order": 22, "mode": 0, "inputs": [ { "name": "input_image", "type": "IMAGE", "link": 201 }, { "name": "source_image", "shape": 7, "type": "IMAGE", "link": 169 }, { "name": "face_model", "shape": 7, "type": "FACE_MODEL", "link": null }, { "name": "face_boost", "shape": 7, "type": "FACE_BOOST", "link": null } ], "outputs": [ { "name": "SWAPPED_IMAGE", "type": "IMAGE", "links": [ 154 ] }, { "name": "FACE_MODEL", "type": "FACE_MODEL", "links": null }, { "name": "ORIGINAL_IMAGE", "type": "IMAGE", "links": null } ], "properties": { "cnr_id": "comfyui-reactor", "ver": "a2ad854a096e8e60967ed3c2a87cc8e79a1f414c", "Node name for S&R": "ReActorFaceSwap" }, "widgets_values": [ true, "inswapper_128.onnx", "retinaface_resnet50", "GPEN-BFR-512.onnx", 1, 0.5, "no", "no", "0", "0", 1 ] }, { "id": 105, "type": "FaceFilterNode", "pos": [ 1560, -2580 ], "size": [ 240, 360 ], "flags": {}, "order": 21, "mode": 0, "inputs": [ { "name": "ref_images", "type": "IMAGE", "link": 227 }, { "name": "candidate_images", "type": "IMAGE", "link": 228 } ], "outputs": [ { "name": "MATCHING", "type": "IMAGE", "links": [ 229 ] }, { "name": "REJECTED", "type": "IMAGE", "links": null }, { "name": "DEBUG", "type": "STRING", "links": null } ], "properties": { "aux_id": "Kidev/ComfyUI-FaceFilter", "ver": "eea179ed67e06bc0e702dbbcde3e3a8f8a7d7c4a", "Node name for S&R": "FaceFilterNode" }, "widgets_values": [ 0.3, "black_512", "black_512", false, "antelopev2", "auto(cuda+cpu)", 256, "fit_min_side" ] }, { "id": 66, "type": "ReActorFaceSwap", "pos": [ 1860, -2580 ], "size": [ 225.287109375, 360 ], "flags": {}, "order": 25, "mode": 0, "inputs": [ { "name": "input_image", "type": "IMAGE", "link": 229 }, { "name": "source_image", "shape": 7, "type": "IMAGE", "link": 170 }, { "name": "face_model", "shape": 7, "type": "FACE_MODEL", "link": null }, { "name": "face_boost", "shape": 7, "type": "FACE_BOOST", "link": null } ], "outputs": [ { "name": "SWAPPED_IMAGE", "type": "IMAGE", "links": [ 187 ] }, { "name": "FACE_MODEL", "type": "FACE_MODEL", "links": null }, { "name": "ORIGINAL_IMAGE", "type": "IMAGE", "links": null } ], "properties": { "cnr_id": "comfyui-reactor", "ver": "a2ad854a096e8e60967ed3c2a87cc8e79a1f414c", "Node name for S&R": "ReActorFaceSwap" }, "widgets_values": [ true, "inswapper_128.onnx", "retinaface_resnet50", "GPEN-BFR-512.onnx", 1, 0.5, "no", "no", "0", "0", 1 ] }, { "id": 77, "type": "ImageBatch", "pos": [ 2160, -2760 ], "size": [ 140, 46 ], "flags": {}, "order": 27, "mode": 0, "inputs": [ { "name": "image1", "type": "IMAGE", "link": 154 }, { "name": "image2", "type": "IMAGE", "link": 187 } ], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "links": [ 189 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.59", "Node name for S&R": "ImageBatch", "ue_properties": { "widget_ue_connectable": {}, "version": "7.1", "input_ue_unconnectable": {} } }, "widgets_values": [] }, { "id": 114, "type": "Note", "pos": [ 1200, -2820 ], "size": [ 300, 300 ], "flags": {}, "order": 5, "mode": 0, "inputs": [], "outputs": [], "properties": {}, "widgets_values": [ "Here, each face from input, after being cropped, is placed in a batch of images. Then each image of that batch is sent to each filter. If it goes through the filter, then it is the right face, and is then faceswapped with the corresponding source. If not, a black square is outputed for the next step." ], "color": "#432", "bgcolor": "#653" }, { "id": 109, "type": "Note", "pos": [ 840, -3000 ], "size": [ 210, 88 ], "flags": {}, "order": 6, "mode": 0, "inputs": [], "outputs": [], "properties": {}, "widgets_values": [ "Source face 1:\nWill be swapped with this one (Hank)" ], "color": "#323", "bgcolor": "#535" }, { "id": 110, "type": "Note", "pos": [ 600, -2400 ], "size": [ 210, 88 ], "flags": {}, "order": 7, "mode": 0, "inputs": [], "outputs": [], "properties": {}, "widgets_values": [ "Input face 2:\nThe faces who look like this one (Jesus)" ], "color": "#323", "bgcolor": "#535" }, { "id": 111, "type": "Note", "pos": [ 840, -2400 ], "size": [ 210, 88 ], "flags": {}, "order": 8, "mode": 0, "inputs": [], "outputs": [], "properties": {}, "widgets_values": [ "Source face 2:\nWill be swapped with this one (Mr Bean)" ], "color": "#323", "bgcolor": "#535" }, { "id": 113, "type": "Note", "pos": [ 1140, -1800 ], "size": [ 660, 88 ], "flags": {}, "order": 9, "mode": 0, "inputs": [], "outputs": [], "properties": {}, "widgets_values": [ "The result can be quite high quality by using GPEN-BFR-1024 or GPEN-BFR-2048 as face restore models. It will also work quite well with low VRAM even on huge images (8k+) because all the work is done after cropping and filtering." ], "color": "#323", "bgcolor": "#535" }, { "id": 115, "type": "Note", "pos": [ 2160, -3480 ], "size": [ 300, 360 ], "flags": {}, "order": 10, "mode": 0, "inputs": [], "outputs": [], "properties": {}, "widgets_values": [ "After we are done, we have two batches of images: one batch of 2 images from the filters of input 1, and one batch of 2 images from the filters of input 2. Each batch have at least one black image in it, and we want to merge those two batches to create only one batch of 2 images. To do this, we use 'Merge image batches' that will squash the batches together by keeping the images at their current index, but replacing the black squares of one batch by the real images of the other (with X images and 0 black squares):\n|X| |0| |X|\n|0| + |X| = |X|\n\nFinally we send back that batch, with the faceswapped faces, that will get warped back into the input picture, creating the desired output." ], "color": "#432", "bgcolor": "#653" }, { "id": 89, "type": "MergeImageBatches", "pos": [ 2160, -3060 ], "size": [ 270, 78 ], "flags": {}, "order": 28, "mode": 0, "inputs": [ { "name": "batch1", "type": "IMAGE", "link": 188 }, { "name": "batch2", "type": "IMAGE", "link": 189 } ], "outputs": [ { "name": "MERGED", "type": "IMAGE", "links": [ 193 ] } ], "properties": { "aux_id": "Kidev/ComfyUI-FaceFilter", "ver": "eea179ed67e06bc0e702dbbcde3e3a8f8a7d7c4a", "Node name for S&R": "MergeImageBatches" }, "widgets_values": [ "batch1" ] }, { "id": 5, "type": "DetectFaces", "pos": [ 1200, -2100 ], "size": [ 240, 180 ], "flags": {}, "order": 13, "mode": 0, "inputs": [ { "name": "image", "type": "IMAGE", "link": 3 }, { "name": "mask", "shape": 7, "type": "MASK", "link": 4 } ], "outputs": [ { "name": "faces", "type": "FACE", "links": [ 233, 234 ] } ], "properties": { "cnr_id": "comfyui_facetools", "ver": "9292be419adaf6bed05b1fbd449c6a27dcf7b1ee", "Node name for S&R": "DetectFaces", "ue_properties": { "widget_ue_connectable": { "threshold": true, "min_size": true, "max_size": true }, "version": "7.1", "input_ue_unconnectable": {} } }, "widgets_values": [ 0.6, 32, 2048 ] }, { "id": 12, "type": "CropFaces", "pos": [ 1500, -2100 ], "size": [ 240, 180 ], "flags": {}, "order": 14, "mode": 0, "inputs": [ { "name": "faces", "type": "FACE", "link": 233 } ], "outputs": [ { "name": "crops", "type": "IMAGE", "links": [ 56, 131 ] }, { "name": "masks", "type": "MASK", "links": [ 90 ] }, { "name": "warps", "type": "WARP", "links": [ 17 ] } ], "title": "CropFaces (inputs)", "properties": { "cnr_id": "comfyui_facetools", "ver": "9292be419adaf6bed05b1fbd449c6a27dcf7b1ee", "Node name for S&R": "CropFaces", "ue_properties": { "widget_ue_connectable": { "crop_size": true, "crop_factor": true, "mask_type": true }, "version": "7.1", "input_ue_unconnectable": {} } }, "widgets_values": [ 512, 1.2, "simple_square" ] }, { "id": 48, "type": "FeatherMask", "pos": [ 1800, -2100 ], "size": [ 240, 180 ], "flags": {}, "order": 17, "mode": 0, "inputs": [ { "name": "mask", "type": "MASK", "link": 90 } ], "outputs": [ { "name": "MASK", "type": "MASK", "links": [ 91 ] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.3.59", "Node name for S&R": "FeatherMask", "ue_properties": { "widget_ue_connectable": { "left": true, "top": true, "right": true, "bottom": true }, "version": "7.1", "input_ue_unconnectable": {} } }, "widgets_values": [ 16, 16, 16, 16 ] }, { "id": 13, "type": "WarpFacesBack", "pos": [ 2100, -2100 ], "size": [ 300, 180 ], "flags": {}, "order": 29, "mode": 0, "inputs": [ { "name": "images", "type": "IMAGE", "link": 173 }, { "name": "face", "type": "FACE", "link": 234 }, { "name": "crop", "type": "IMAGE", "link": 193 }, { "name": "mask", "type": "MASK", "link": 91 }, { "name": "warp", "type": "WARP", "link": 17 } ], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "links": [ 55 ] } ], "properties": { "cnr_id": "comfyui_facetools", "ver": "9292be419adaf6bed05b1fbd449c6a27dcf7b1ee", "Node name for S&R": "WarpFacesBack", "ue_properties": { "widget_ue_connectable": {}, "version": "7.1", "input_ue_unconnectable": {} } }, "widgets_values": [] }, { "id": 112, "type": "Note", "pos": [ 420, -1800 ], "size": [ 660, 88 ], "flags": {}, "order": 11, "mode": 0, "inputs": [], "outputs": [], "properties": {}, "widgets_values": [ "Picture where the faceswap is applied. It will look for the faces on the first column above (the inputs), and will replace them with their matching source. So Jesus will become Mr Bean, and Jesus' partner will become Hank. Notice how the pictures are not the same for the inputs as in the picture below: it is on purpose to show you how well it works" ], "color": "#323", "bgcolor": "#535" }, { "id": 108, "type": "Note", "pos": [ 600, -3000 ], "size": [ 210, 88 ], "flags": {}, "order": 12, "mode": 0, "inputs": [], "outputs": [], "properties": {}, "widgets_values": [ "Input face 1:\nThe faces who look like this one (Jesus' partner)" ], "color": "#323", "bgcolor": "#535" } ], "links": [ [ 3, 14, 0, 5, 0, "IMAGE" ], [ 4, 14, 1, 5, 1, "MASK" ], [ 17, 12, 2, 13, 4, "WARP" ], [ 55, 13, 0, 27, 0, "IMAGE" ], [ 56, 12, 0, 28, 0, "IMAGE" ], [ 90, 12, 1, 48, 0, "MASK" ], [ 91, 48, 0, 13, 3, "MASK" ], [ 131, 12, 0, 61, 0, "IMAGE" ], [ 154, 59, 0, 77, 0, "IMAGE" ], [ 161, 78, 0, 80, 0, "IMAGE" ], [ 162, 79, 0, 80, 1, "IMAGE" ], [ 169, 85, 0, 59, 1, "IMAGE" ], [ 170, 85, 0, 66, 1, "IMAGE" ], [ 171, 86, 0, 78, 1, "IMAGE" ], [ 172, 86, 0, 79, 1, "IMAGE" ], [ 173, 14, 0, 13, 0, "IMAGE" ], [ 187, 66, 0, 77, 1, "IMAGE" ], [ 188, 80, 0, 89, 0, "IMAGE" ], [ 189, 77, 0, 89, 1, "IMAGE" ], [ 193, 89, 0, 13, 2, "IMAGE" ], [ 201, 96, 0, 59, 0, "IMAGE" ], [ 202, 28, 0, 96, 1, "IMAGE" ], [ 210, 65, 0, 96, 0, "IMAGE" ], [ 219, 75, 0, 103, 0, "IMAGE" ], [ 220, 28, 0, 103, 1, "IMAGE" ], [ 221, 103, 0, 78, 0, "IMAGE" ], [ 223, 75, 0, 104, 0, "IMAGE" ], [ 224, 61, 0, 104, 1, "IMAGE" ], [ 225, 104, 0, 79, 0, "IMAGE" ], [ 227, 65, 0, 105, 0, "IMAGE" ], [ 228, 61, 0, 105, 1, "IMAGE" ], [ 229, 105, 0, 66, 0, "IMAGE" ], [ 233, 5, 0, 12, 0, "FACE" ], [ 234, 5, 0, 13, 1, "FACE" ] ], "groups": [ { "id": 1, "title": "Face filtering and swapping", "bounding": [ 1140, -3960, 1320, 1800 ], "color": "#b58b2a", "font_size": 24, "flags": {} }, { "id": 2, "title": "Faceswap target 2", "bounding": [ 600, -2460, 480, 540 ], "color": "#8A8", "font_size": 24, "flags": {} }, { "id": 3, "title": "Faceswap target 1", "bounding": [ 600, -3060, 480, 540 ], "color": "#8A8", "font_size": 24, "flags": {} }, { "id": 4, "title": "Faces detection, cropping, masking, warping", "bounding": [ 1140, -2160, 1320, 240 ], "color": "#b58b2a", "font_size": 24, "flags": {} }, { "id": 5, "title": "Input picture", "bounding": [ 420, -1860, 660, 600 ], "color": "#8A8", "font_size": 24, "flags": {} }, { "id": 6, "title": "Result", "bounding": [ 1140, -1860, 660, 600 ], "color": "#8A8", "font_size": 24, "flags": {} } ], "config": {}, "extra": { "ds": { "scale": 0.7247295000000961, "offset": [ 90.58128616172627, 3096.608746920955 ] }, "frontendVersion": "1.27.7", "ue_links": [], "links_added_by_ue": [], "VHS_latentpreview": false, "VHS_latentpreviewrate": 0, "VHS_MetadataImage": true, "VHS_KeepIntermediate": true }, "version": 0.4 }