Files
Kidev-ComfyUI-FaceFilter/examples/FaceFilter-Faceswap.json
T

1866 lines
34 KiB
JSON

{
"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": [
"2025-10-03_15-00.png",
"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": [
"2025-10-03_15-06.png",
"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": [
"2025-10-03_15-11.png",
"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": [
"2025-10-03_15-01_1.png",
"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": [
"2025-10-03_15-16.png",
"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
}