Files
Alexankharin-camera-comfyUI/workflows/pointcloud_inpaint.json
T
Alexander KharinandClaude Fable 5 d77af07189 Apply workflow improvements: runnable defaults, templates, dep trim, CI
- Bundle example inputs (example_inputs/: pinhole + fisheye JPEG, example
  trajectory .npy); install.py copies them into ComfyUI's input/ folder and
  every LoadImage/LoadTrajectory default now points at them, so the shipped
  workflows queue on a fresh install.
- Template browser: add same-name .jpg thumbnails for 10 workflows
  (workflows/ is already a recognized template dir); drop the stray
  workflows/__init__.py.
- Move superseded reference graphs to workflows/legacy/ (SD-checkpoint
  outpaint variant, manual multi-view fisheye depth) - out of the template
  browser, still documented.
- video_camera.json: remove dead-end BlurMaskFast (radius 0/0 no-op),
  easy-mathInt pad math and dangling VHS_VideoInfo; swap KJNodes
  GetImageRangeFromBatch for built-in ImageFromBatch. Pack deps cut from
  five to two (VideoHelperSuite + Florence2).
- New workflows/record_trajectory.json - produces the .npy trajectory that
  PC_enricher and wan_vace_ref_to_video consume.
- Stamp extra.camera_comfyui_rev=1 in all workflows for future migrations;
  prune 8 pre-existing stale link references found by a bidirectional
  integrity sweep.
- CI: .github/workflows/validate.yml runs the schema validator,
  installer-logic tests and 4D smoke suite (CPU torch) on PRs and main.
- README + docs/workflows_review.md updated accordingly.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 18:49:14 +03:00

1748 lines
34 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"id": "292f4ed4-287f-4129-9677-308e20e7b88d",
"revision": 0,
"last_node_id": 70,
"last_link_id": 154,
"nodes": [
{
"id": 45,
"type": "PreviewImage",
"pos": [
258.9292297363281,
568.1746215820312
],
"size": [
210,
246
],
"flags": {},
"order": 9,
"mode": 0,
"inputs": [
{
"localized_name": "images",
"name": "images",
"type": "IMAGE",
"link": 113
}
],
"outputs": [],
"properties": {
"Node name for S&R": "PreviewImage"
},
"widgets_values": []
},
{
"id": 47,
"type": "PreviewImage",
"pos": [
1136.058837890625,
799.248779296875
],
"size": [
210,
246
],
"flags": {},
"order": 14,
"mode": 0,
"inputs": [
{
"localized_name": "images",
"name": "images",
"type": "IMAGE",
"link": 117
}
],
"outputs": [],
"properties": {
"Node name for S&R": "PreviewImage"
},
"widgets_values": []
},
{
"id": 27,
"type": "InvertMask",
"pos": [
222.3865509033203,
938.9392700195312
],
"size": [
159.60000610351562,
26
],
"flags": {},
"order": 10,
"mode": 0,
"inputs": [
{
"localized_name": "mask",
"name": "mask",
"type": "MASK",
"link": 105
}
],
"outputs": [
{
"localized_name": "MASK",
"name": "MASK",
"type": "MASK",
"links": [
106
]
}
],
"properties": {
"Node name for S&R": "InvertMask"
},
"widgets_values": []
},
{
"id": 46,
"type": "DepthEstimatorNode",
"pos": [
-1050.1966552734375,
1207.4327392578125
],
"size": [
315,
82
],
"flags": {},
"order": 4,
"mode": 0,
"inputs": [
{
"localized_name": "image",
"name": "image",
"type": "IMAGE",
"link": 114
},
{
"localized_name": "model_name",
"name": "model_name",
"type": "STRING",
"widget": {
"name": "model_name"
},
"link": null
},
{
"localized_name": "depth_scale",
"name": "depth_scale",
"type": "FLOAT",
"widget": {
"name": "depth_scale"
},
"link": null
}
],
"outputs": [
{
"localized_name": "depth tensor",
"name": "depth tensor",
"type": "TENSOR",
"links": [
115
]
}
],
"properties": {
"Node name for S&R": "DepthEstimatorNode"
},
"widgets_values": [
"Depth-Anything-V2-Metric-Indoor-Base-hf",
0.30000000000000004,
1
]
},
{
"id": 18,
"type": "DepthToPointCloud",
"pos": [
-896.3029174804688,
756.4371337890625
],
"size": [
315,
170
],
"flags": {},
"order": 6,
"mode": 0,
"inputs": [
{
"localized_name": "image",
"name": "image",
"type": "IMAGE",
"link": 41
},
{
"localized_name": "depthmap",
"name": "depthmap",
"shape": 7,
"type": "TENSOR",
"link": 115
},
{
"localized_name": "mask",
"name": "mask",
"shape": 7,
"type": "MASK",
"link": null
},
{
"localized_name": "input_projection",
"name": "input_projection",
"type": "COMBO",
"widget": {
"name": "input_projection"
},
"link": null
},
{
"localized_name": "input_horizontal_fov",
"name": "input_horizontal_fov",
"type": "FLOAT",
"widget": {
"name": "input_horizontal_fov"
},
"link": null
},
{
"localized_name": "depth_scale",
"name": "depth_scale",
"type": "FLOAT",
"widget": {
"name": "depth_scale"
},
"link": null
},
{
"localized_name": "invert_depth",
"name": "invert_depth",
"type": "BOOLEAN",
"widget": {
"name": "invert_depth"
},
"link": null
}
],
"outputs": [
{
"localized_name": "pointcloud",
"name": "pointcloud",
"type": "TENSOR",
"links": [
42
]
}
],
"properties": {
"Node name for S&R": "DepthToPointCloud"
},
"widgets_values": [
"PINHOLE",
90,
1,
false
]
},
{
"id": 26,
"type": "SaveImage",
"pos": [
-20.612165451049805,
1323.724609375
],
"size": [
360.54998779296875,
441.5299987792969
],
"flags": {},
"order": 15,
"mode": 0,
"inputs": [
{
"localized_name": "images",
"name": "images",
"type": "IMAGE",
"link": 102
},
{
"localized_name": "filename_prefix",
"name": "filename_prefix",
"type": "STRING",
"widget": {
"name": "filename_prefix"
},
"link": null
}
],
"outputs": [],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.18"
},
"widgets_values": [
"fluxout"
]
},
{
"id": 48,
"type": "MaskToImage",
"pos": [
805.2968139648438,
716.0382690429688
],
"size": [
264.5999755859375,
26
],
"flags": {},
"order": 12,
"mode": 0,
"inputs": [
{
"localized_name": "mask",
"name": "mask",
"type": "MASK",
"link": 116
}
],
"outputs": [
{
"localized_name": "IMAGE",
"name": "IMAGE",
"type": "IMAGE",
"links": [
117
]
}
],
"properties": {
"Node name for S&R": "MaskToImage"
},
"widgets_values": []
},
{
"id": 43,
"type": "Flux Inpainting",
"pos": [
322.84490966796875,
1090.0487060546875
],
"size": [
400,
200
],
"flags": {},
"order": 13,
"mode": 0,
"inputs": [
{
"localized_name": "image",
"name": "image",
"type": "IMAGE",
"link": 118
},
{
"localized_name": "mask",
"name": "mask",
"type": "MASK",
"link": 119
},
{
"localized_name": "prompt",
"name": "prompt",
"type": "STRING",
"widget": {
"name": "prompt"
},
"link": null
},
{
"localized_name": "num_inference_steps",
"name": "num_inference_steps",
"type": "INT",
"widget": {
"name": "num_inference_steps"
},
"link": null
},
{
"localized_name": "cached",
"name": "cached",
"type": "BOOLEAN",
"widget": {
"name": "cached"
},
"link": null
},
{
"localized_name": "guidance_scale",
"name": "guidance_scale",
"type": "FLOAT",
"widget": {
"name": "guidance_scale"
},
"link": null
}
],
"outputs": [
{
"localized_name": "image",
"name": "image",
"type": "IMAGE",
"links": [
102,
120,
121
]
}
],
"properties": {
"Node name for S&R": "Flux Inpainting"
},
"widgets_values": [
"",
50,
false,
30
],
"title": "Flux inpaint holes"
},
{
"id": 49,
"type": "DepthEstimatorNode",
"pos": [
538.0506591796875,
1368.599853515625
],
"size": [
315,
82
],
"flags": {},
"order": 16,
"mode": 0,
"inputs": [
{
"localized_name": "image",
"name": "image",
"type": "IMAGE",
"link": 120
},
{
"localized_name": "model_name",
"name": "model_name",
"type": "STRING",
"widget": {
"name": "model_name"
},
"link": null
},
{
"localized_name": "depth_scale",
"name": "depth_scale",
"type": "FLOAT",
"widget": {
"name": "depth_scale"
},
"link": null
}
],
"outputs": [
{
"localized_name": "depth tensor",
"name": "depth tensor",
"type": "TENSOR",
"links": [
126
]
}
],
"properties": {
"Node name for S&R": "DepthEstimatorNode"
},
"widgets_values": [
"Depth-Anything-V2-Metric-Indoor-Base-hf",
0.30000000000000004,
1
]
},
{
"id": 54,
"type": "DepthRenormalizer",
"pos": [
688.8441772460938,
1541.053466796875
],
"size": [
418.1999816894531,
98
],
"flags": {},
"order": 17,
"mode": 0,
"inputs": [
{
"localized_name": "depth",
"name": "depth",
"type": "TENSOR",
"link": 126
},
{
"localized_name": "guidance_depth",
"name": "guidance_depth",
"type": "TENSOR",
"link": 127
},
{
"localized_name": "guidance_mask",
"name": "guidance_mask",
"type": "MASK",
"link": 128
},
{
"localized_name": "use_inverse",
"name": "use_inverse",
"type": "BOOLEAN",
"widget": {
"name": "use_inverse"
},
"link": null
}
],
"outputs": [
{
"localized_name": "depth tensor",
"name": "depth tensor",
"type": "TENSOR",
"links": [
131
]
}
],
"properties": {
"Node name for S&R": "DepthRenormalizer"
},
"widgets_values": [
true
],
"title": "Align new depth to cloud"
},
{
"id": 9,
"type": "TransformPointCloud",
"pos": [
-509.0394287109375,
790.4733276367188
],
"size": [
329.20001220703125,
46
],
"flags": {},
"order": 7,
"mode": 0,
"inputs": [
{
"localized_name": "pointcloud",
"name": "pointcloud",
"type": "TENSOR",
"link": 42
},
{
"localized_name": "transform_matrix",
"name": "transform_matrix",
"type": "MAT_4X4",
"link": 17
}
],
"outputs": [
{
"localized_name": "transformed pointcloud",
"name": "transformed pointcloud",
"type": "TENSOR",
"links": [
34,
135
]
}
],
"properties": {
"Node name for S&R": "TransformPointCloud"
},
"widgets_values": []
},
{
"id": 50,
"type": "DepthToPointCloud",
"pos": [
1079.2274169921875,
1205.6041259765625
],
"size": [
315,
170
],
"flags": {},
"order": 18,
"mode": 0,
"inputs": [
{
"localized_name": "image",
"name": "image",
"type": "IMAGE",
"link": 121
},
{
"localized_name": "depthmap",
"name": "depthmap",
"shape": 7,
"type": "TENSOR",
"link": 131
},
{
"localized_name": "mask",
"name": "mask",
"shape": 7,
"type": "MASK",
"link": 146
},
{
"localized_name": "input_projection",
"name": "input_projection",
"type": "COMBO",
"widget": {
"name": "input_projection"
},
"link": null
},
{
"localized_name": "input_horizontal_fov",
"name": "input_horizontal_fov",
"type": "FLOAT",
"widget": {
"name": "input_horizontal_fov"
},
"link": null
},
{
"localized_name": "depth_scale",
"name": "depth_scale",
"type": "FLOAT",
"widget": {
"name": "depth_scale"
},
"link": null
},
{
"localized_name": "invert_depth",
"name": "invert_depth",
"type": "BOOLEAN",
"widget": {
"name": "invert_depth"
},
"link": null
}
],
"outputs": [
{
"localized_name": "pointcloud",
"name": "pointcloud",
"type": "TENSOR",
"links": [
134
]
}
],
"properties": {
"Node name for S&R": "DepthToPointCloud"
},
"widgets_values": [
"PINHOLE",
90,
1,
false
]
},
{
"id": 6,
"type": "TransformToMatrix",
"pos": [
-659.3237915039062,
1054.6514892578125
],
"size": [
315,
154
],
"flags": {},
"order": 0,
"mode": 0,
"inputs": [
{
"localized_name": "shiftX",
"name": "shiftX",
"type": "FLOAT",
"widget": {
"name": "shiftX"
},
"link": null
},
{
"localized_name": "shiftY",
"name": "shiftY",
"type": "FLOAT",
"widget": {
"name": "shiftY"
},
"link": null
},
{
"localized_name": "shiftZ",
"name": "shiftZ",
"type": "FLOAT",
"widget": {
"name": "shiftZ"
},
"link": null
},
{
"localized_name": "theta",
"name": "theta",
"type": "FLOAT",
"widget": {
"name": "theta"
},
"link": null
},
{
"localized_name": "phi",
"name": "phi",
"type": "FLOAT",
"widget": {
"name": "phi"
},
"link": null
}
],
"outputs": [
{
"localized_name": "transformation matrix",
"name": "transformation matrix",
"type": "MAT_4X4",
"links": [
17
]
}
],
"properties": {
"Node name for S&R": "TransformToMatrix"
},
"widgets_values": [
-0.1,
0,
0,
0,
0
],
"title": "Camera shift (dolly −0.1)"
},
{
"id": 63,
"type": "SaveWEBM",
"pos": [
2163.24658203125,
1041.8690185546875
],
"size": [
315,
437
],
"flags": {},
"order": 21,
"mode": 0,
"inputs": [
{
"localized_name": "images",
"name": "images",
"type": "IMAGE",
"link": 154
},
{
"localized_name": "filename_prefix",
"name": "filename_prefix",
"type": "STRING",
"widget": {
"name": "filename_prefix"
},
"link": null
},
{
"localized_name": "codec",
"name": "codec",
"type": "COMBO",
"widget": {
"name": "codec"
},
"link": null
},
{
"localized_name": "fps",
"name": "fps",
"type": "FLOAT",
"widget": {
"name": "fps"
},
"link": null
},
{
"localized_name": "crf",
"name": "crf",
"type": "FLOAT",
"widget": {
"name": "crf"
},
"link": null
}
],
"outputs": [],
"properties": {},
"widgets_values": [
"ComfyUI",
"vp9",
24,
32
]
},
{
"id": 10,
"type": "ProjectPointCloud",
"pos": [
-146.46339416503906,
791.6277465820312
],
"size": [
315,
218
],
"flags": {},
"order": 8,
"mode": 0,
"inputs": [
{
"localized_name": "pointcloud",
"name": "pointcloud",
"type": "TENSOR",
"link": 34
},
{
"localized_name": "output_projection",
"name": "output_projection",
"type": "COMBO",
"widget": {
"name": "output_projection"
},
"link": null
},
{
"localized_name": "output_horizontal_fov",
"name": "output_horizontal_fov",
"type": "FLOAT",
"widget": {
"name": "output_horizontal_fov"
},
"link": null
},
{
"localized_name": "output_width",
"name": "output_width",
"type": "INT",
"widget": {
"name": "output_width"
},
"link": null
},
{
"localized_name": "output_height",
"name": "output_height",
"type": "INT",
"widget": {
"name": "output_height"
},
"link": null
},
{
"localized_name": "point_size",
"name": "point_size",
"type": "INT",
"widget": {
"name": "point_size"
},
"link": null
},
{
"localized_name": "return_inverse_depth",
"name": "return_inverse_depth",
"type": "BOOLEAN",
"widget": {
"name": "return_inverse_depth"
},
"link": null
}
],
"outputs": [
{
"localized_name": "image",
"name": "image",
"type": "IMAGE",
"links": [
113,
118
]
},
{
"localized_name": "mask",
"name": "mask",
"type": "MASK",
"links": [
105,
128
]
},
{
"localized_name": "depth tensor",
"name": "depth tensor",
"type": "TENSOR",
"links": [
127
]
}
],
"properties": {
"Node name for S&R": "ProjectPointCloud"
},
"widgets_values": [
"PINHOLE",
90,
1024,
1024,
2,
false
]
},
{
"id": 1,
"type": "LoadImage",
"pos": [
-1259.08349609375,
769.6061401367188
],
"size": [
315,
314
],
"flags": {},
"order": 1,
"mode": 0,
"inputs": [
{
"localized_name": "image",
"name": "image",
"type": "COMBO",
"widget": {
"name": "image"
},
"link": null
},
{
"localized_name": "choose file to upload",
"name": "upload",
"type": "IMAGEUPLOAD",
"widget": {
"name": "upload"
},
"link": null
}
],
"outputs": [
{
"localized_name": "IMAGE",
"name": "IMAGE",
"type": "IMAGE",
"links": [
41,
114
]
},
{
"localized_name": "MASK",
"name": "MASK",
"type": "MASK",
"links": null
}
],
"properties": {
"Node name for S&R": "LoadImage"
},
"widgets_values": [
"camera_example_pinhole.jpg",
"image"
]
},
{
"id": 35,
"type": "GrowMask",
"pos": [
429.3408203125,
883.9153442382812
],
"size": [
315,
82
],
"flags": {},
"order": 11,
"mode": 0,
"inputs": [
{
"localized_name": "mask",
"name": "mask",
"type": "MASK",
"link": 106
},
{
"localized_name": "expand",
"name": "expand",
"type": "INT",
"widget": {
"name": "expand"
},
"link": null
},
{
"localized_name": "tapered_corners",
"name": "tapered_corners",
"type": "BOOLEAN",
"widget": {
"name": "tapered_corners"
},
"link": null
}
],
"outputs": [
{
"localized_name": "MASK",
"name": "MASK",
"type": "MASK",
"links": [
116,
119,
146
]
}
],
"properties": {
"Node name for S&R": "GrowMask"
},
"widgets_values": [
3,
false
]
},
{
"id": 55,
"type": "PointCloudUnion",
"pos": [
1526.904052734375,
1011.9266967773438
],
"size": [
367.79998779296875,
46
],
"flags": {},
"order": 19,
"mode": 0,
"inputs": [
{
"localized_name": "pointcloud1",
"name": "pointcloud1",
"type": "TENSOR",
"link": 135
},
{
"localized_name": "pointcloud2",
"name": "pointcloud2",
"type": "TENSOR",
"link": 134
}
],
"outputs": [
{
"localized_name": "merged pointcloud",
"name": "merged pointcloud",
"type": "TENSOR",
"links": [
152
]
}
],
"properties": {
"Node name for S&R": "PointCloudUnion"
},
"widgets_values": [],
"title": "Merge old + new points"
},
{
"id": 68,
"type": "CameraInterpolationNode",
"pos": [
1570.71630859375,
1636.495361328125
],
"size": [
200.21640014648438,
46
],
"flags": {},
"order": 5,
"mode": 0,
"inputs": [
{
"localized_name": "initial_matrix",
"name": "initial_matrix",
"type": "MAT_4X4",
"link": 149
},
{
"localized_name": "final_matrix",
"name": "final_matrix",
"type": "MAT_4X4",
"link": 148
}
],
"outputs": [
{
"localized_name": "trajectory",
"name": "trajectory",
"type": "TENSOR",
"links": [
153
]
}
],
"properties": {
"Node name for S&R": "CameraInterpolationNode"
},
"widgets_values": [
2
]
},
{
"id": 69,
"type": "CameraMotionNode",
"pos": [
1743.3812255859375,
1234.6585693359375
],
"size": [
278.75,
198
],
"flags": {},
"order": 20,
"mode": 0,
"inputs": [
{
"localized_name": "pointcloud",
"name": "pointcloud",
"type": "TENSOR",
"link": 152
},
{
"localized_name": "trajectory",
"name": "trajectory",
"type": "TENSOR",
"link": 153
},
{
"localized_name": "n_points",
"name": "n_points",
"type": "INT",
"widget": {
"name": "n_points"
},
"link": null
},
{
"localized_name": "output_projection",
"name": "output_projection",
"type": "COMBO",
"widget": {
"name": "output_projection"
},
"link": null
},
{
"localized_name": "output_horizontal_fov",
"name": "output_horizontal_fov",
"type": "FLOAT",
"widget": {
"name": "output_horizontal_fov"
},
"link": null
},
{
"localized_name": "output_width",
"name": "output_width",
"type": "INT",
"widget": {
"name": "output_width"
},
"link": null
},
{
"localized_name": "output_height",
"name": "output_height",
"type": "INT",
"widget": {
"name": "output_height"
},
"link": null
},
{
"localized_name": "point_size",
"name": "point_size",
"type": "INT",
"widget": {
"name": "point_size"
},
"link": null
}
],
"outputs": [
{
"localized_name": "motion_frames",
"name": "motion_frames",
"type": "IMAGE",
"links": [
154
]
}
],
"properties": {
"Node name for S&R": "CameraMotionNode"
},
"widgets_values": [
10,
"PINHOLE",
90,
512,
512,
1,
0,
false,
false
]
},
{
"id": 61,
"type": "TransformToMatrix",
"pos": [
1221.929443359375,
1524.7064208984375
],
"size": [
315,
154
],
"flags": {},
"order": 2,
"mode": 0,
"inputs": [
{
"localized_name": "shiftX",
"name": "shiftX",
"type": "FLOAT",
"widget": {
"name": "shiftX"
},
"link": null
},
{
"localized_name": "shiftY",
"name": "shiftY",
"type": "FLOAT",
"widget": {
"name": "shiftY"
},
"link": null
},
{
"localized_name": "shiftZ",
"name": "shiftZ",
"type": "FLOAT",
"widget": {
"name": "shiftZ"
},
"link": null
},
{
"localized_name": "theta",
"name": "theta",
"type": "FLOAT",
"widget": {
"name": "theta"
},
"link": null
},
{
"localized_name": "phi",
"name": "phi",
"type": "FLOAT",
"widget": {
"name": "phi"
},
"link": null
}
],
"outputs": [
{
"localized_name": "transformation matrix",
"name": "transformation matrix",
"type": "MAT_4X4",
"links": [
149
]
}
],
"properties": {
"Node name for S&R": "TransformToMatrix"
},
"widgets_values": [
0.10000000000000002,
0,
0,
0,
0
]
},
{
"id": 67,
"type": "TransformToMatrix",
"pos": [
1205.505126953125,
1794.5091552734375
],
"size": [
270,
154
],
"flags": {},
"order": 3,
"mode": 0,
"inputs": [
{
"localized_name": "shiftX",
"name": "shiftX",
"type": "FLOAT",
"widget": {
"name": "shiftX"
},
"link": null
},
{
"localized_name": "shiftY",
"name": "shiftY",
"type": "FLOAT",
"widget": {
"name": "shiftY"
},
"link": null
},
{
"localized_name": "shiftZ",
"name": "shiftZ",
"type": "FLOAT",
"widget": {
"name": "shiftZ"
},
"link": null
},
{
"localized_name": "theta",
"name": "theta",
"type": "FLOAT",
"widget": {
"name": "theta"
},
"link": null
},
{
"localized_name": "phi",
"name": "phi",
"type": "FLOAT",
"widget": {
"name": "phi"
},
"link": null
}
],
"outputs": [
{
"localized_name": "transformation matrix",
"name": "transformation matrix",
"type": "MAT_4X4",
"links": [
148
]
}
],
"properties": {
"Node name for S&R": "TransformToMatrix"
},
"widgets_values": [
0.20000000000000004,
0,
0,
0,
0
]
},
{
"id": 70,
"type": "MarkdownNote",
"title": "About this workflow",
"pos": [
-1819.08349609375,
568.1746215820312
],
"size": [
520,
288
],
"flags": {},
"order": 0,
"mode": 0,
"inputs": [],
"outputs": [],
"properties": {},
"widgets_values": [
"# Iterative point-cloud inpainting\n\nEnriches a single-image point cloud with generated content: move the camera back → render the cloud (holes appear) → grow + invert the coverage mask → **Flux-inpaint the holes** → re-estimate depth on the inpainted image → **DepthRenormalizer** aligns it to the original cloud's depth → lift the new pixels to 3D → **PointCloudUnion** merges everything → orbit render of the enriched scene.\n\nOne-node alternative: PointcloudTrajectoryEnricher (`PC_enricher.json`).\n\n- **Set:** input image; camera shift; inpaint prompt.\n- **Requires:** inpainting_flux (auto-installed), Depth-Anything V2."
],
"color": "#432",
"bgcolor": "#653"
}
],
"links": [
[
17,
6,
0,
9,
1,
"MAT_4X4"
],
[
34,
9,
0,
10,
0,
"TENSOR"
],
[
41,
1,
0,
18,
0,
"IMAGE"
],
[
42,
18,
0,
9,
0,
"TENSOR"
],
[
102,
43,
0,
26,
0,
"IMAGE"
],
[
105,
10,
1,
27,
0,
"MASK"
],
[
106,
27,
0,
35,
0,
"MASK"
],
[
113,
10,
0,
45,
0,
"IMAGE"
],
[
114,
1,
0,
46,
0,
"IMAGE"
],
[
115,
46,
0,
18,
1,
"TENSOR"
],
[
116,
35,
0,
48,
0,
"MASK"
],
[
117,
48,
0,
47,
0,
"IMAGE"
],
[
118,
10,
0,
43,
0,
"IMAGE"
],
[
119,
35,
0,
43,
1,
"MASK"
],
[
120,
43,
0,
49,
0,
"IMAGE"
],
[
121,
43,
0,
50,
0,
"IMAGE"
],
[
126,
49,
0,
54,
0,
"TENSOR"
],
[
127,
10,
2,
54,
1,
"TENSOR"
],
[
128,
10,
1,
54,
2,
"MASK"
],
[
131,
54,
0,
50,
1,
"TENSOR"
],
[
134,
50,
0,
55,
1,
"TENSOR"
],
[
135,
9,
0,
55,
0,
"TENSOR"
],
[
146,
35,
0,
50,
2,
"MASK"
],
[
148,
67,
0,
68,
1,
"MAT_4X4"
],
[
149,
61,
0,
68,
0,
"MAT_4X4"
],
[
152,
55,
0,
69,
0,
"TENSOR"
],
[
153,
68,
0,
69,
1,
"TENSOR"
],
[
154,
69,
0,
63,
0,
"IMAGE"
]
],
"groups": [
{
"id": 1,
"title": "1. Image → point cloud",
"bounding": [
-1279.08349609375,
696.4371337890625,
717.7805786132812,
612.99560546875
],
"color": "#3f789e",
"font_size": 24,
"flags": {}
},
{
"id": 2,
"title": "2. Novel view & hole mask",
"bounding": [
-679.3237915039062,
508.17462158203125,
2045.3826293945312,
720.4768676757812
],
"color": "#a1309b",
"font_size": 24,
"flags": {}
},
{
"id": 3,
"title": "3. Flux inpaint",
"bounding": [
-40.612165451049805,
1030.0487060546875,
783.4570751190186,
755.2059020996094
],
"color": "#8A8",
"font_size": 24,
"flags": {}
},
{
"id": 4,
"title": "4. Lift inpainted region & merge",
"bounding": [
518.0506591796875,
951.9266967773438,
1396.6533813476562,
707.1267700195312
],
"color": "#b58b2a",
"font_size": 24,
"flags": {}
},
{
"id": 5,
"title": "5. Orbit render",
"bounding": [
1185.505126953125,
981.8690185546875,
1312.741455078125,
986.64013671875
],
"color": "#88A",
"font_size": 24,
"flags": {}
}
],
"config": {},
"extra": {
"ds": {
"scale": 0.611590904484147,
"offset": [
781.292906075573,
-479.4680770622288
]
},
"frontendVersion": "1.18.9",
"camera_comfyui_rev": 1
},
"version": 0.4
}