New node: Resize To Canvas Size (COI) - Computes a Centre of Interest from an optional mask (bounding box centre or weighted centroid/centre of mass) and places it at a user-selected point on the canvas - 7x7 target grid (49 dots overlaid on the 3x3 nonant background) lets the user pick any canvas fraction in steps of 1/6; default (3,3) = canvas centre - Three anchor modes: manual (image centre), mask_bbox_centre, mask_weighted_centre - Graceful fallback to image centre when no mask is connected or mask is all zeros - Mask is auto-resized if its dimensions differ from the source image - All existing fill/scale/padding options carried over from the original node Also adds: - examples/ResizeToCanvasSize_Example_Workflow.json demonstrating both nodes side by side with a face-detection COI pipeline (UltralyticsDetectorProvider -> BboxDetectorSEGS -> SAMDetectorCombined -> ResizeToCanvasSizeMask) - Updated README documenting both nodes, the 7x7 grid concept, COI modes, and a face-centred portrait crop recipe
661 lines
11 KiB
JSON
661 lines
11 KiB
JSON
{
|
|
"id": "a1eed0c4-1c0f-4742-81b7-0a68e029e2f2",
|
|
"revision": 0,
|
|
"last_node_id": 17,
|
|
"last_link_id": 18,
|
|
"nodes": [
|
|
{
|
|
"id": 1,
|
|
"type": "ResizeToCanvasSize",
|
|
"pos": [
|
|
1800,
|
|
1275
|
|
],
|
|
"size": [
|
|
263.76666259765625,
|
|
378
|
|
],
|
|
"flags": {},
|
|
"order": 3,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "image",
|
|
"type": "IMAGE",
|
|
"link": 1
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "IMAGE",
|
|
"type": "IMAGE",
|
|
"links": [
|
|
2
|
|
]
|
|
},
|
|
{
|
|
"name": "padding_mask",
|
|
"type": "MASK",
|
|
"links": [
|
|
3
|
|
]
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "ResizeToCanvasSize",
|
|
"ue_properties": {
|
|
"widget_ue_connectable": {},
|
|
"input_ue_unconnectable": {},
|
|
"version": "7.6.2"
|
|
}
|
|
},
|
|
"widgets_values": [
|
|
1280,
|
|
1536,
|
|
"top_center",
|
|
"Fit to Canvas short edge",
|
|
"crop",
|
|
"noise",
|
|
"#341cc1",
|
|
755004533296303,
|
|
"randomize"
|
|
]
|
|
},
|
|
{
|
|
"id": 3,
|
|
"type": "PreviewImage",
|
|
"pos": [
|
|
2190,
|
|
1245
|
|
],
|
|
"size": [
|
|
300,
|
|
405
|
|
],
|
|
"flags": {},
|
|
"order": 5,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "images",
|
|
"type": "IMAGE",
|
|
"link": 2
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"properties": {
|
|
"Node name for S&R": "PreviewImage",
|
|
"ue_properties": {
|
|
"widget_ue_connectable": {},
|
|
"input_ue_unconnectable": {},
|
|
"version": "7.6.2"
|
|
}
|
|
},
|
|
"widgets_values": []
|
|
},
|
|
{
|
|
"id": 16,
|
|
"type": "PreviewImage",
|
|
"pos": [
|
|
2205,
|
|
1770
|
|
],
|
|
"size": [
|
|
300,
|
|
405
|
|
],
|
|
"flags": {},
|
|
"order": 10,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "images",
|
|
"type": "IMAGE",
|
|
"link": 17
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"properties": {
|
|
"ue_properties": {
|
|
"widget_ue_connectable": {},
|
|
"input_ue_unconnectable": {},
|
|
"version": "7.6.2"
|
|
},
|
|
"Node name for S&R": "PreviewImage"
|
|
},
|
|
"widgets_values": []
|
|
},
|
|
{
|
|
"id": 5,
|
|
"type": "MaskPreview",
|
|
"pos": [
|
|
2595,
|
|
1530
|
|
],
|
|
"size": [
|
|
140,
|
|
246
|
|
],
|
|
"flags": {},
|
|
"order": 6,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "mask",
|
|
"type": "MASK",
|
|
"link": 3
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"properties": {
|
|
"Node name for S&R": "MaskPreview",
|
|
"ue_properties": {
|
|
"widget_ue_connectable": {},
|
|
"input_ue_unconnectable": {},
|
|
"version": "7.6.2"
|
|
}
|
|
},
|
|
"widgets_values": []
|
|
},
|
|
{
|
|
"id": 17,
|
|
"type": "MaskPreview",
|
|
"pos": [
|
|
2595,
|
|
1920
|
|
],
|
|
"size": [
|
|
140,
|
|
246
|
|
],
|
|
"flags": {},
|
|
"order": 11,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "mask",
|
|
"type": "MASK",
|
|
"link": 18
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"properties": {
|
|
"ue_properties": {
|
|
"widget_ue_connectable": {},
|
|
"input_ue_unconnectable": {},
|
|
"version": "7.6.2"
|
|
},
|
|
"Node name for S&R": "MaskPreview"
|
|
},
|
|
"widgets_values": []
|
|
},
|
|
{
|
|
"id": 7,
|
|
"type": "ResizeToCanvasSizeMask",
|
|
"pos": [
|
|
1810.2851536243224,
|
|
1770.9635148123862
|
|
],
|
|
"size": [
|
|
323.76666259765625,
|
|
436
|
|
],
|
|
"flags": {},
|
|
"order": 9,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "image",
|
|
"type": "IMAGE",
|
|
"link": 5
|
|
},
|
|
{
|
|
"name": "mask",
|
|
"shape": 7,
|
|
"type": "MASK",
|
|
"link": 16
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "IMAGE",
|
|
"type": "IMAGE",
|
|
"links": [
|
|
17
|
|
]
|
|
},
|
|
{
|
|
"name": "padding_mask",
|
|
"type": "MASK",
|
|
"links": [
|
|
18
|
|
]
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "ResizeToCanvasSizeMask",
|
|
"ue_properties": {
|
|
"widget_ue_connectable": {},
|
|
"input_ue_unconnectable": {},
|
|
"version": "7.6.2"
|
|
}
|
|
},
|
|
"widgets_values": [
|
|
1280,
|
|
1536,
|
|
"3,2",
|
|
"mask_bbox_centre",
|
|
"Fit to Canvas width",
|
|
"crop",
|
|
"noise",
|
|
"#000000",
|
|
937205624074127,
|
|
"randomize"
|
|
]
|
|
},
|
|
{
|
|
"id": 13,
|
|
"type": "BboxDetectorSEGS",
|
|
"pos": [
|
|
720,
|
|
1965
|
|
],
|
|
"size": [
|
|
400,
|
|
224
|
|
],
|
|
"flags": {},
|
|
"order": 4,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "bbox_detector",
|
|
"type": "BBOX_DETECTOR",
|
|
"link": 10
|
|
},
|
|
{
|
|
"name": "image",
|
|
"type": "IMAGE",
|
|
"link": 11
|
|
},
|
|
{
|
|
"name": "detailer_hook",
|
|
"shape": 7,
|
|
"type": "DETAILER_HOOK",
|
|
"link": null
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "SEGS",
|
|
"type": "SEGS",
|
|
"links": [
|
|
13
|
|
]
|
|
}
|
|
],
|
|
"properties": {
|
|
"ue_properties": {
|
|
"widget_ue_connectable": {},
|
|
"input_ue_unconnectable": {}
|
|
},
|
|
"Node name for S&R": "BboxDetectorSEGS"
|
|
},
|
|
"widgets_values": [
|
|
0.5,
|
|
10,
|
|
3,
|
|
10,
|
|
"all"
|
|
]
|
|
},
|
|
{
|
|
"id": 14,
|
|
"type": "SAMDetectorCombined",
|
|
"pos": [
|
|
1200,
|
|
1965
|
|
],
|
|
"size": [
|
|
301.3833312988281,
|
|
218
|
|
],
|
|
"flags": {},
|
|
"order": 7,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "sam_model",
|
|
"type": "SAM_MODEL",
|
|
"link": 12
|
|
},
|
|
{
|
|
"name": "segs",
|
|
"type": "SEGS",
|
|
"link": 13
|
|
},
|
|
{
|
|
"name": "image",
|
|
"type": "IMAGE",
|
|
"link": 14
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "MASK",
|
|
"type": "MASK",
|
|
"links": [
|
|
15,
|
|
16
|
|
]
|
|
}
|
|
],
|
|
"properties": {
|
|
"ue_properties": {
|
|
"widget_ue_connectable": {},
|
|
"input_ue_unconnectable": {}
|
|
},
|
|
"Node name for S&R": "SAMDetectorCombined"
|
|
},
|
|
"widgets_values": [
|
|
"center-1",
|
|
0,
|
|
0.93,
|
|
0,
|
|
0.7,
|
|
"False"
|
|
]
|
|
},
|
|
{
|
|
"id": 10,
|
|
"type": "SAMLoader",
|
|
"pos": [
|
|
795,
|
|
2250
|
|
],
|
|
"size": [
|
|
320,
|
|
91.33333841959636
|
|
],
|
|
"flags": {},
|
|
"order": 0,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [
|
|
{
|
|
"name": "SAM_MODEL",
|
|
"type": "SAM_MODEL",
|
|
"slot_index": 0,
|
|
"links": [
|
|
12
|
|
]
|
|
}
|
|
],
|
|
"properties": {
|
|
"ue_properties": {
|
|
"version": "7.0.1",
|
|
"widget_ue_connectable": {},
|
|
"input_ue_unconnectable": {}
|
|
},
|
|
"Node name for S&R": "SAMLoader",
|
|
"cnr_id": "comfyui-impact-pack",
|
|
"ver": "00c37316167ab36157ceaac54b8b3eab0f828e21"
|
|
},
|
|
"widgets_values": [
|
|
"sam_vit_b_01ec64.pth",
|
|
"AUTO"
|
|
],
|
|
"color": "#223",
|
|
"bgcolor": "#335"
|
|
},
|
|
{
|
|
"id": 11,
|
|
"type": "UltralyticsDetectorProvider",
|
|
"pos": [
|
|
375,
|
|
2265
|
|
],
|
|
"size": [
|
|
315,
|
|
83.00000508626303
|
|
],
|
|
"flags": {},
|
|
"order": 1,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [
|
|
{
|
|
"name": "BBOX_DETECTOR",
|
|
"type": "BBOX_DETECTOR",
|
|
"slot_index": 0,
|
|
"links": [
|
|
10
|
|
]
|
|
},
|
|
{
|
|
"name": "SEGM_DETECTOR",
|
|
"type": "SEGM_DETECTOR",
|
|
"links": null
|
|
}
|
|
],
|
|
"properties": {
|
|
"ue_properties": {
|
|
"version": "7.0.1",
|
|
"widget_ue_connectable": {},
|
|
"input_ue_unconnectable": {}
|
|
},
|
|
"Node name for S&R": "UltralyticsDetectorProvider",
|
|
"cnr_id": "comfyui-impact-subpack",
|
|
"ver": "1.3.5"
|
|
},
|
|
"widgets_values": [
|
|
"bbox/face_yolov8m.pt"
|
|
],
|
|
"color": "#223",
|
|
"bgcolor": "#335"
|
|
},
|
|
{
|
|
"id": 2,
|
|
"type": "LoadImage",
|
|
"pos": [
|
|
705,
|
|
1470
|
|
],
|
|
"size": [
|
|
280,
|
|
314
|
|
],
|
|
"flags": {},
|
|
"order": 2,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [
|
|
{
|
|
"name": "IMAGE",
|
|
"type": "IMAGE",
|
|
"links": [
|
|
1,
|
|
5,
|
|
11,
|
|
14
|
|
]
|
|
},
|
|
{
|
|
"name": "MASK",
|
|
"type": "MASK",
|
|
"links": null
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "LoadImage",
|
|
"ue_properties": {
|
|
"widget_ue_connectable": {},
|
|
"version": "7.6.2",
|
|
"input_ue_unconnectable": {}
|
|
}
|
|
},
|
|
"widgets_values": [
|
|
"Bowsett_rework_02-16x9.png",
|
|
"image"
|
|
]
|
|
},
|
|
{
|
|
"id": 15,
|
|
"type": "MaskPreview",
|
|
"pos": [
|
|
1530,
|
|
2100
|
|
],
|
|
"size": [
|
|
140,
|
|
246
|
|
],
|
|
"flags": {},
|
|
"order": 8,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "mask",
|
|
"type": "MASK",
|
|
"link": 15
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"properties": {
|
|
"ue_properties": {
|
|
"widget_ue_connectable": {},
|
|
"input_ue_unconnectable": {},
|
|
"version": "7.6.2"
|
|
},
|
|
"Node name for S&R": "MaskPreview"
|
|
},
|
|
"widgets_values": []
|
|
}
|
|
],
|
|
"links": [
|
|
[
|
|
1,
|
|
2,
|
|
0,
|
|
1,
|
|
0,
|
|
"IMAGE"
|
|
],
|
|
[
|
|
2,
|
|
1,
|
|
0,
|
|
3,
|
|
0,
|
|
"IMAGE"
|
|
],
|
|
[
|
|
3,
|
|
1,
|
|
1,
|
|
5,
|
|
0,
|
|
"MASK"
|
|
],
|
|
[
|
|
5,
|
|
2,
|
|
0,
|
|
7,
|
|
0,
|
|
"IMAGE"
|
|
],
|
|
[
|
|
10,
|
|
11,
|
|
0,
|
|
13,
|
|
0,
|
|
"BBOX_DETECTOR"
|
|
],
|
|
[
|
|
11,
|
|
2,
|
|
0,
|
|
13,
|
|
1,
|
|
"IMAGE"
|
|
],
|
|
[
|
|
12,
|
|
10,
|
|
0,
|
|
14,
|
|
0,
|
|
"SAM_MODEL"
|
|
],
|
|
[
|
|
13,
|
|
13,
|
|
0,
|
|
14,
|
|
1,
|
|
"SEGS"
|
|
],
|
|
[
|
|
14,
|
|
2,
|
|
0,
|
|
14,
|
|
2,
|
|
"IMAGE"
|
|
],
|
|
[
|
|
15,
|
|
14,
|
|
0,
|
|
15,
|
|
0,
|
|
"MASK"
|
|
],
|
|
[
|
|
16,
|
|
14,
|
|
0,
|
|
7,
|
|
1,
|
|
"MASK"
|
|
],
|
|
[
|
|
17,
|
|
7,
|
|
0,
|
|
16,
|
|
0,
|
|
"IMAGE"
|
|
],
|
|
[
|
|
18,
|
|
7,
|
|
1,
|
|
17,
|
|
0,
|
|
"MASK"
|
|
]
|
|
],
|
|
"groups": [],
|
|
"config": {},
|
|
"extra": {
|
|
"workflowRendererVersion": "LG",
|
|
"ue_links": [],
|
|
"links_added_by_ue": [],
|
|
"ds": {
|
|
"scale": 0.5209868481924376,
|
|
"offset": [
|
|
-82.00973280024787,
|
|
-805.0493159154729
|
|
]
|
|
},
|
|
"frontendVersion": "1.41.20",
|
|
"VHS_latentpreview": false,
|
|
"VHS_latentpreviewrate": 0,
|
|
"VHS_MetadataImage": false,
|
|
"VHS_KeepIntermediate": true
|
|
},
|
|
"version": 0.4
|
|
} |