- 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>
1325 lines
22 KiB
JSON
1325 lines
22 KiB
JSON
{
|
|
"id": "4e89c8a4-594b-4d15-a089-da088966adee",
|
|
"revision": 0,
|
|
"last_node_id": 45,
|
|
"last_link_id": 87,
|
|
"nodes": [
|
|
{
|
|
"id": 30,
|
|
"type": "DepthToPointCloud",
|
|
"pos": [
|
|
2300.80615234375,
|
|
2022.771240234375
|
|
],
|
|
"size": [
|
|
315,
|
|
170
|
|
],
|
|
"flags": {},
|
|
"order": 5,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "image",
|
|
"type": "IMAGE",
|
|
"link": 45
|
|
},
|
|
{
|
|
"name": "depthmap",
|
|
"shape": 7,
|
|
"type": "TENSOR",
|
|
"link": 43
|
|
},
|
|
{
|
|
"name": "mask",
|
|
"shape": 7,
|
|
"type": "MASK",
|
|
"link": 44
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "pointcloud",
|
|
"type": "TENSOR",
|
|
"links": [
|
|
48
|
|
]
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "DepthToPointCloud"
|
|
},
|
|
"widgets_values": [
|
|
"FISHEYE",
|
|
180,
|
|
1,
|
|
false
|
|
]
|
|
},
|
|
{
|
|
"id": 32,
|
|
"type": "TransformPointCloud",
|
|
"pos": [
|
|
2825.2060546875,
|
|
1832.0804443359375
|
|
],
|
|
"size": [
|
|
493.8000183105469,
|
|
46
|
|
],
|
|
"flags": {},
|
|
"order": 9,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "pointcloud",
|
|
"type": "TENSOR",
|
|
"link": 50
|
|
},
|
|
{
|
|
"name": "transform_matrix",
|
|
"type": "MAT_4X4",
|
|
"link": 51
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "transformed pointcloud",
|
|
"type": "TENSOR",
|
|
"links": [
|
|
53
|
|
]
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "TransformPointCloud"
|
|
},
|
|
"widgets_values": []
|
|
},
|
|
{
|
|
"id": 28,
|
|
"type": "FisheyeDepthEstimator",
|
|
"pos": [
|
|
1827.8929443359375,
|
|
1735.1136474609375
|
|
],
|
|
"size": [
|
|
315,
|
|
246
|
|
],
|
|
"flags": {},
|
|
"order": 2,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "image",
|
|
"type": "IMAGE",
|
|
"link": 36
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "depthmap",
|
|
"type": "TENSOR",
|
|
"links": [
|
|
38,
|
|
43
|
|
]
|
|
},
|
|
{
|
|
"name": "mask",
|
|
"type": "MASK",
|
|
"links": [
|
|
44
|
|
]
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "FisheyeDepthEstimator"
|
|
},
|
|
"widgets_values": [
|
|
"Depth-Anything-V2-Metric-Indoor-Base-hf",
|
|
1,
|
|
90,
|
|
1024,
|
|
4096,
|
|
"DISTANCE_AWARE",
|
|
25,
|
|
1
|
|
]
|
|
},
|
|
{
|
|
"id": 17,
|
|
"type": "MaskToImage",
|
|
"pos": [
|
|
3318.493408203125,
|
|
1596.000244140625
|
|
],
|
|
"size": [
|
|
184.62362670898438,
|
|
26
|
|
],
|
|
"flags": {},
|
|
"order": 13,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "mask",
|
|
"type": "MASK",
|
|
"link": 60
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "IMAGE",
|
|
"type": "IMAGE",
|
|
"links": [
|
|
22
|
|
]
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "MaskToImage"
|
|
},
|
|
"widgets_values": []
|
|
},
|
|
{
|
|
"id": 29,
|
|
"type": "DepthToImageNode",
|
|
"pos": [
|
|
2889.773681640625,
|
|
1182.0992431640625
|
|
],
|
|
"size": [
|
|
315,
|
|
58
|
|
],
|
|
"flags": {},
|
|
"order": 4,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "depth",
|
|
"type": "TENSOR",
|
|
"link": 38
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "depth image",
|
|
"type": "IMAGE",
|
|
"links": [
|
|
39
|
|
]
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "DepthToImageNode"
|
|
},
|
|
"widgets_values": [
|
|
false
|
|
]
|
|
},
|
|
{
|
|
"id": 5,
|
|
"type": "PreviewImage",
|
|
"pos": [
|
|
3339.436279296875,
|
|
1152.5965576171875
|
|
],
|
|
"size": [
|
|
140,
|
|
246
|
|
],
|
|
"flags": {},
|
|
"order": 7,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "images",
|
|
"type": "IMAGE",
|
|
"link": 39
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"properties": {
|
|
"Node name for S&R": "PreviewImage"
|
|
},
|
|
"widgets_values": []
|
|
},
|
|
{
|
|
"id": 12,
|
|
"type": "PreviewImage",
|
|
"pos": [
|
|
3172.22607421875,
|
|
1381.792724609375
|
|
],
|
|
"size": [
|
|
140,
|
|
246
|
|
],
|
|
"flags": {},
|
|
"order": 11,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "images",
|
|
"type": "IMAGE",
|
|
"link": 54
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"properties": {
|
|
"Node name for S&R": "PreviewImage"
|
|
},
|
|
"widgets_values": []
|
|
},
|
|
{
|
|
"id": 20,
|
|
"type": "PreviewImage",
|
|
"pos": [
|
|
4084.4384765625,
|
|
1416.01318359375
|
|
],
|
|
"size": [
|
|
140,
|
|
246.0001220703125
|
|
],
|
|
"flags": {},
|
|
"order": 21,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "images",
|
|
"type": "IMAGE",
|
|
"link": 68
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"properties": {
|
|
"Node name for S&R": "PreviewImage"
|
|
},
|
|
"widgets_values": []
|
|
},
|
|
{
|
|
"id": 39,
|
|
"type": "PreviewImage",
|
|
"pos": [
|
|
3710.058837890625,
|
|
1380.8360595703125
|
|
],
|
|
"size": [
|
|
140,
|
|
246
|
|
],
|
|
"flags": {},
|
|
"order": 19,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "images",
|
|
"type": "IMAGE",
|
|
"link": 83
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"properties": {
|
|
"Node name for S&R": "PreviewImage"
|
|
},
|
|
"widgets_values": []
|
|
},
|
|
{
|
|
"id": 16,
|
|
"type": "InvertMask",
|
|
"pos": [
|
|
3491.69091796875,
|
|
2060.49462890625
|
|
],
|
|
"size": [
|
|
140,
|
|
26
|
|
],
|
|
"flags": {},
|
|
"order": 12,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "mask",
|
|
"type": "MASK",
|
|
"link": 55
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "MASK",
|
|
"type": "MASK",
|
|
"links": [
|
|
60,
|
|
75
|
|
]
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "InvertMask"
|
|
},
|
|
"widgets_values": []
|
|
},
|
|
{
|
|
"id": 38,
|
|
"type": "OutpaintAnyProjection",
|
|
"pos": [
|
|
3742.106201171875,
|
|
1847.061279296875
|
|
],
|
|
"size": [
|
|
400,
|
|
492
|
|
],
|
|
"flags": {},
|
|
"order": 14,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "image",
|
|
"type": "IMAGE",
|
|
"link": 72
|
|
},
|
|
{
|
|
"name": "mask",
|
|
"shape": 7,
|
|
"type": "MASK",
|
|
"link": 75
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "final_image",
|
|
"type": "IMAGE",
|
|
"links": [
|
|
77
|
|
]
|
|
},
|
|
{
|
|
"name": "needs_inpaint_mask",
|
|
"type": "MASK",
|
|
"links": [
|
|
78
|
|
]
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "OutpaintAnyProjection"
|
|
},
|
|
"widgets_values": [
|
|
"FISHEYE",
|
|
180,
|
|
"FISHEYE",
|
|
180,
|
|
4096,
|
|
4096,
|
|
"PINHOLE",
|
|
90,
|
|
1024,
|
|
45,
|
|
0,
|
|
"",
|
|
10,
|
|
false,
|
|
30,
|
|
1,
|
|
false
|
|
]
|
|
},
|
|
{
|
|
"id": 40,
|
|
"type": "OutpaintAnyProjection",
|
|
"pos": [
|
|
4194.630859375,
|
|
1868.2874755859375
|
|
],
|
|
"size": [
|
|
400,
|
|
492
|
|
],
|
|
"flags": {},
|
|
"order": 16,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "image",
|
|
"type": "IMAGE",
|
|
"link": 77
|
|
},
|
|
{
|
|
"name": "mask",
|
|
"shape": 7,
|
|
"type": "MASK",
|
|
"link": 78
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "final_image",
|
|
"type": "IMAGE",
|
|
"links": [
|
|
79
|
|
]
|
|
},
|
|
{
|
|
"name": "needs_inpaint_mask",
|
|
"type": "MASK",
|
|
"links": [
|
|
80
|
|
]
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "OutpaintAnyProjection"
|
|
},
|
|
"widgets_values": [
|
|
"FISHEYE",
|
|
180,
|
|
"FISHEYE",
|
|
180,
|
|
4096,
|
|
4096,
|
|
"PINHOLE",
|
|
90,
|
|
1024,
|
|
-45,
|
|
0,
|
|
"",
|
|
10,
|
|
false,
|
|
30,
|
|
1,
|
|
false
|
|
]
|
|
},
|
|
{
|
|
"id": 41,
|
|
"type": "OutpaintAnyProjection",
|
|
"pos": [
|
|
4633.0263671875,
|
|
1854.4434814453125
|
|
],
|
|
"size": [
|
|
400,
|
|
492
|
|
],
|
|
"flags": {},
|
|
"order": 17,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "image",
|
|
"type": "IMAGE",
|
|
"link": 79
|
|
},
|
|
{
|
|
"name": "mask",
|
|
"shape": 7,
|
|
"type": "MASK",
|
|
"link": 80
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "final_image",
|
|
"type": "IMAGE",
|
|
"links": [
|
|
81
|
|
]
|
|
},
|
|
{
|
|
"name": "needs_inpaint_mask",
|
|
"type": "MASK",
|
|
"links": [
|
|
82
|
|
]
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "OutpaintAnyProjection"
|
|
},
|
|
"widgets_values": [
|
|
"FISHEYE",
|
|
180,
|
|
"FISHEYE",
|
|
180,
|
|
4096,
|
|
4096,
|
|
"PINHOLE",
|
|
90,
|
|
1024,
|
|
0,
|
|
45,
|
|
"",
|
|
10,
|
|
false,
|
|
30,
|
|
1,
|
|
false
|
|
]
|
|
},
|
|
{
|
|
"id": 42,
|
|
"type": "OutpaintAnyProjection",
|
|
"pos": [
|
|
5052.3095703125,
|
|
1850.2620849609375
|
|
],
|
|
"size": [
|
|
400,
|
|
492
|
|
],
|
|
"flags": {},
|
|
"order": 18,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "image",
|
|
"type": "IMAGE",
|
|
"link": 81
|
|
},
|
|
{
|
|
"name": "mask",
|
|
"shape": 7,
|
|
"type": "MASK",
|
|
"link": 82
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "final_image",
|
|
"type": "IMAGE",
|
|
"links": [
|
|
83,
|
|
84
|
|
]
|
|
},
|
|
{
|
|
"name": "needs_inpaint_mask",
|
|
"type": "MASK",
|
|
"links": []
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "OutpaintAnyProjection"
|
|
},
|
|
"widgets_values": [
|
|
"FISHEYE",
|
|
180,
|
|
"FISHEYE",
|
|
180,
|
|
4096,
|
|
4096,
|
|
"PINHOLE",
|
|
90,
|
|
1024,
|
|
0,
|
|
-45,
|
|
"",
|
|
10,
|
|
false,
|
|
30,
|
|
1,
|
|
false
|
|
]
|
|
},
|
|
{
|
|
"id": 18,
|
|
"type": "PreviewImage",
|
|
"pos": [
|
|
3533.38916015625,
|
|
1426.0350341796875
|
|
],
|
|
"size": [
|
|
140,
|
|
246
|
|
],
|
|
"flags": {},
|
|
"order": 15,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "images",
|
|
"type": "IMAGE",
|
|
"link": 22
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"properties": {
|
|
"Node name for S&R": "PreviewImage"
|
|
},
|
|
"widgets_values": []
|
|
},
|
|
{
|
|
"id": 33,
|
|
"type": "TransformToMatrix",
|
|
"pos": [
|
|
2689.815185546875,
|
|
2013.3233642578125
|
|
],
|
|
"size": [
|
|
315,
|
|
154
|
|
],
|
|
"flags": {},
|
|
"order": 0,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [
|
|
{
|
|
"name": "transformation matrix",
|
|
"type": "MAT_4X4",
|
|
"links": [
|
|
51
|
|
]
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "TransformToMatrix"
|
|
},
|
|
"widgets_values": [
|
|
0.10000000000000002,
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"title": "Eye baseline (shiftX 0.1)"
|
|
},
|
|
{
|
|
"id": 31,
|
|
"type": "PointCloudCleaner",
|
|
"pos": [
|
|
2393.899169921875,
|
|
1825.4063720703125
|
|
],
|
|
"size": [
|
|
367.79998779296875,
|
|
130
|
|
],
|
|
"flags": {},
|
|
"order": 8,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "pointcloud",
|
|
"type": "TENSOR",
|
|
"link": 48
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "cleaned_pointcloud",
|
|
"type": "TENSOR",
|
|
"links": [
|
|
50
|
|
]
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "PointCloudCleaner"
|
|
},
|
|
"widgets_values": [
|
|
1024,
|
|
1024,
|
|
1,
|
|
8
|
|
]
|
|
},
|
|
{
|
|
"id": 36,
|
|
"type": "ReprojectImage",
|
|
"pos": [
|
|
5468.1796875,
|
|
2178.5615234375
|
|
],
|
|
"size": [
|
|
430.8000183105469,
|
|
266
|
|
],
|
|
"flags": {},
|
|
"order": 20,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "image",
|
|
"type": "IMAGE",
|
|
"link": 84
|
|
},
|
|
{
|
|
"name": "mask",
|
|
"shape": 7,
|
|
"type": "MASK",
|
|
"link": null
|
|
},
|
|
{
|
|
"name": "transform_matrix",
|
|
"shape": 7,
|
|
"type": "MAT_4X4",
|
|
"link": null
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "reprojected image",
|
|
"type": "IMAGE",
|
|
"links": [
|
|
68,
|
|
69
|
|
]
|
|
},
|
|
{
|
|
"name": "reprojected mask",
|
|
"type": "MASK",
|
|
"links": null
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "ReprojectImage"
|
|
},
|
|
"widgets_values": [
|
|
180,
|
|
180,
|
|
"FISHEYE",
|
|
"EQUIRECTANGULAR",
|
|
4096,
|
|
4096,
|
|
false,
|
|
40
|
|
]
|
|
},
|
|
{
|
|
"id": 34,
|
|
"type": "ProjectPointCloud",
|
|
"pos": [
|
|
3049.35498046875,
|
|
1952.12939453125
|
|
],
|
|
"size": [
|
|
315,
|
|
218
|
|
],
|
|
"flags": {},
|
|
"order": 10,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "pointcloud",
|
|
"type": "TENSOR",
|
|
"link": 53
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "image",
|
|
"type": "IMAGE",
|
|
"links": [
|
|
54,
|
|
72
|
|
]
|
|
},
|
|
{
|
|
"name": "mask",
|
|
"type": "MASK",
|
|
"links": [
|
|
55
|
|
]
|
|
},
|
|
{
|
|
"name": "depth",
|
|
"type": "TENSOR",
|
|
"links": null
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "ProjectPointCloud"
|
|
},
|
|
"widgets_values": [
|
|
"FISHEYE",
|
|
180,
|
|
1024,
|
|
1024,
|
|
3,
|
|
false
|
|
]
|
|
},
|
|
{
|
|
"id": 37,
|
|
"type": "SaveImage",
|
|
"pos": [
|
|
5578.32861328125,
|
|
1834.2066650390625
|
|
],
|
|
"size": [
|
|
315,
|
|
270
|
|
],
|
|
"flags": {},
|
|
"order": 22,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "images",
|
|
"type": "IMAGE",
|
|
"link": 69
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"properties": {},
|
|
"widgets_values": [
|
|
"shifted_camera_equirect"
|
|
],
|
|
"title": "Right eye (equirect)"
|
|
},
|
|
{
|
|
"id": 27,
|
|
"type": "LoadImage",
|
|
"pos": [
|
|
1489.3206787109375,
|
|
1821.21142578125
|
|
],
|
|
"size": [
|
|
315,
|
|
314
|
|
],
|
|
"flags": {},
|
|
"order": 1,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [
|
|
{
|
|
"name": "IMAGE",
|
|
"type": "IMAGE",
|
|
"links": [
|
|
36,
|
|
45,
|
|
87
|
|
]
|
|
},
|
|
{
|
|
"name": "MASK",
|
|
"type": "MASK",
|
|
"links": null
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "LoadImage"
|
|
},
|
|
"widgets_values": [
|
|
"camera_example_fisheye.jpg",
|
|
"image"
|
|
]
|
|
},
|
|
{
|
|
"id": 43,
|
|
"type": "ReprojectImage",
|
|
"pos": [
|
|
5192.03466796875,
|
|
1422.08984375
|
|
],
|
|
"size": [
|
|
430.8000183105469,
|
|
266
|
|
],
|
|
"flags": {},
|
|
"order": 3,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "image",
|
|
"type": "IMAGE",
|
|
"link": 87
|
|
},
|
|
{
|
|
"name": "mask",
|
|
"shape": 7,
|
|
"type": "MASK",
|
|
"link": null
|
|
},
|
|
{
|
|
"name": "transform_matrix",
|
|
"shape": 7,
|
|
"type": "MAT_4X4",
|
|
"link": null
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "reprojected image",
|
|
"type": "IMAGE",
|
|
"links": [
|
|
86
|
|
]
|
|
},
|
|
{
|
|
"name": "reprojected mask",
|
|
"type": "MASK",
|
|
"links": null
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "ReprojectImage"
|
|
},
|
|
"widgets_values": [
|
|
180,
|
|
180,
|
|
"FISHEYE",
|
|
"EQUIRECTANGULAR",
|
|
4096,
|
|
4096,
|
|
false,
|
|
40
|
|
]
|
|
},
|
|
{
|
|
"id": 44,
|
|
"type": "SaveImage",
|
|
"pos": [
|
|
5903.30322265625,
|
|
1833.707763671875
|
|
],
|
|
"size": [
|
|
315,
|
|
270
|
|
],
|
|
"flags": {},
|
|
"order": 6,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "images",
|
|
"type": "IMAGE",
|
|
"link": 86
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"properties": {},
|
|
"widgets_values": [
|
|
"init_camera_equirect"
|
|
],
|
|
"title": "Left eye (equirect)"
|
|
},
|
|
{
|
|
"id": 45,
|
|
"type": "MarkdownNote",
|
|
"title": "About this workflow",
|
|
"pos": [
|
|
929.3206787109375,
|
|
1152.5965576171875
|
|
],
|
|
"size": [
|
|
520,
|
|
262
|
|
],
|
|
"flags": {},
|
|
"order": 0,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [],
|
|
"properties": {},
|
|
"widgets_values": [
|
|
"# SBS VR180: synthesize the second eye\n\nFrom one 180° fisheye view, synthesizes a stereo pair: fisheye metric depth → point cloud → clean → shift the camera by the eye baseline (TransformToMatrix shiftX = 0.1) → re-project to fisheye → four chained OutpaintAnyProjection passes fill the disocclusions → both eyes are exported as 180° equirectangular images.\n\n- **Set:** fisheye input (e.g. from `Outpaint_fisheye180.json`); the baseline (0.1 ≈ 6.5 cm when depth is metric); prompts optional.\n- **Requires:** inpainting_flux (auto-installed), Depth-Anything V2.\n- **Output:** `init_camera_equirect` + `shifted_camera_equirect` — combine side-by-side for a VR180 player."
|
|
],
|
|
"color": "#432",
|
|
"bgcolor": "#653"
|
|
}
|
|
],
|
|
"links": [
|
|
[
|
|
22,
|
|
17,
|
|
0,
|
|
18,
|
|
0,
|
|
"IMAGE"
|
|
],
|
|
[
|
|
36,
|
|
27,
|
|
0,
|
|
28,
|
|
0,
|
|
"IMAGE"
|
|
],
|
|
[
|
|
38,
|
|
28,
|
|
0,
|
|
29,
|
|
0,
|
|
"TENSOR"
|
|
],
|
|
[
|
|
39,
|
|
29,
|
|
0,
|
|
5,
|
|
0,
|
|
"IMAGE"
|
|
],
|
|
[
|
|
43,
|
|
28,
|
|
0,
|
|
30,
|
|
1,
|
|
"TENSOR"
|
|
],
|
|
[
|
|
44,
|
|
28,
|
|
1,
|
|
30,
|
|
2,
|
|
"MASK"
|
|
],
|
|
[
|
|
45,
|
|
27,
|
|
0,
|
|
30,
|
|
0,
|
|
"IMAGE"
|
|
],
|
|
[
|
|
48,
|
|
30,
|
|
0,
|
|
31,
|
|
0,
|
|
"TENSOR"
|
|
],
|
|
[
|
|
50,
|
|
31,
|
|
0,
|
|
32,
|
|
0,
|
|
"TENSOR"
|
|
],
|
|
[
|
|
51,
|
|
33,
|
|
0,
|
|
32,
|
|
1,
|
|
"MAT_4X4"
|
|
],
|
|
[
|
|
53,
|
|
32,
|
|
0,
|
|
34,
|
|
0,
|
|
"TENSOR"
|
|
],
|
|
[
|
|
54,
|
|
34,
|
|
0,
|
|
12,
|
|
0,
|
|
"IMAGE"
|
|
],
|
|
[
|
|
55,
|
|
34,
|
|
1,
|
|
16,
|
|
0,
|
|
"MASK"
|
|
],
|
|
[
|
|
60,
|
|
16,
|
|
0,
|
|
17,
|
|
0,
|
|
"MASK"
|
|
],
|
|
[
|
|
68,
|
|
36,
|
|
0,
|
|
20,
|
|
0,
|
|
"IMAGE"
|
|
],
|
|
[
|
|
69,
|
|
36,
|
|
0,
|
|
37,
|
|
0,
|
|
"IMAGE"
|
|
],
|
|
[
|
|
72,
|
|
34,
|
|
0,
|
|
38,
|
|
0,
|
|
"IMAGE"
|
|
],
|
|
[
|
|
75,
|
|
16,
|
|
0,
|
|
38,
|
|
1,
|
|
"MASK"
|
|
],
|
|
[
|
|
77,
|
|
38,
|
|
0,
|
|
40,
|
|
0,
|
|
"IMAGE"
|
|
],
|
|
[
|
|
78,
|
|
38,
|
|
1,
|
|
40,
|
|
1,
|
|
"MASK"
|
|
],
|
|
[
|
|
79,
|
|
40,
|
|
0,
|
|
41,
|
|
0,
|
|
"IMAGE"
|
|
],
|
|
[
|
|
80,
|
|
40,
|
|
1,
|
|
41,
|
|
1,
|
|
"MASK"
|
|
],
|
|
[
|
|
81,
|
|
41,
|
|
0,
|
|
42,
|
|
0,
|
|
"IMAGE"
|
|
],
|
|
[
|
|
82,
|
|
41,
|
|
1,
|
|
42,
|
|
1,
|
|
"MASK"
|
|
],
|
|
[
|
|
83,
|
|
42,
|
|
0,
|
|
39,
|
|
0,
|
|
"IMAGE"
|
|
],
|
|
[
|
|
84,
|
|
42,
|
|
0,
|
|
36,
|
|
0,
|
|
"IMAGE"
|
|
],
|
|
[
|
|
86,
|
|
43,
|
|
0,
|
|
44,
|
|
0,
|
|
"IMAGE"
|
|
],
|
|
[
|
|
87,
|
|
27,
|
|
0,
|
|
43,
|
|
0,
|
|
"IMAGE"
|
|
]
|
|
],
|
|
"groups": [
|
|
{
|
|
"id": 1,
|
|
"title": "1. Fisheye metric depth",
|
|
"bounding": [
|
|
1474.8399658203125,
|
|
1625.7159423828125,
|
|
679.0551147460938,
|
|
582.09521484375
|
|
],
|
|
"color": "#3f789e",
|
|
"font_size": 24,
|
|
"flags": {}
|
|
},
|
|
{
|
|
"id": 2,
|
|
"title": "2. Point cloud & eye-baseline shift",
|
|
"bounding": [
|
|
2231.516845703125,
|
|
1746.5635986328125,
|
|
1201.385009765625,
|
|
465.3291015625
|
|
],
|
|
"color": "#3f789e",
|
|
"font_size": 24,
|
|
"flags": {}
|
|
},
|
|
{
|
|
"id": 4,
|
|
"title": "3. Outpaint disocclusions & export equirect",
|
|
"bounding": [
|
|
3721.45654296875,
|
|
1723.2581787109375,
|
|
2169.7470703125,
|
|
772.406494140625
|
|
],
|
|
"color": "#3f789e",
|
|
"font_size": 24,
|
|
"flags": {}
|
|
},
|
|
{
|
|
"id": 5,
|
|
"title": "Previews",
|
|
"bounding": [
|
|
2852.595703125,
|
|
1071.784912109375,
|
|
1400.6845703125,
|
|
617.4415893554688
|
|
],
|
|
"color": "#3f789e",
|
|
"font_size": 24,
|
|
"flags": {}
|
|
}
|
|
],
|
|
"config": {},
|
|
"extra": {
|
|
"ds": {
|
|
"scale": 1.3513057093104064,
|
|
"offset": [
|
|
-5500.948642760503,
|
|
-1811.182955009025
|
|
]
|
|
},
|
|
"frontendVersion": "1.20.4",
|
|
"camera_comfyui_rev": 1
|
|
},
|
|
"version": 0.4
|
|
}
|