Migrate widgets_values stored with pre-2026 node schemas (28 nodes across 9 files) to the current INPUT_TYPES: DepthEstimatorNode (+median_blur), FisheyeDepthEstimator (+mode/median_blur), PointCloudCleaner (new screen-space schema, reset to defaults), CameraMotionNode (+mask options), CameraInterpolationNode (+num_steps), PointcloudTrajectoryEnricher (20->16 widgets). Positionally-shifted values loaded silently wrong before. Fix broken references: - outpainting_fisheye.json: patch rotations lived in a removed ReprojectImage widget slot that now lands on `inverse` (42 -> truthy); rebuilt with explicit TransformToMatrix (±42°) nodes + inverse flags, mirroring the flux variant - outpainting_fisheye_flux.json: normalize inverse widgets stored as 0/45 - wan_vace_ref_to_video.json: UNET filename typo (wan2,1_vace14B -> wan2.1_vace_14B_fp16.safetensors) Explain and format every workflow: embedded "About this workflow" MarkdownNote (purpose, stages, what to set, required packs/models), meaningful group boxes (incl. retitling six anonymous "Group" boxes in Fisheye_depth_workflow), titles on user-editable nodes, pretty-printed JSON. Rename the two spaced filenames (pointcloud_walker, test_pointcloud_loading). Rewrite the README workflow table with an extras/dependencies column. Tooling (notebooks/): validate_workflows.py checks stored widgets against current INPUT_TYPES (count + combo values); rework_workflows_2026_07.py is the migration that produced this state. Analysis and proposed improvements in docs/workflows_review.md. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
320 lines
5.6 KiB
JSON
320 lines
5.6 KiB
JSON
{
|
|
"id": "dd56c0bf-7405-406e-924f-42b2feacb73f",
|
|
"revision": 0,
|
|
"last_node_id": 9,
|
|
"last_link_id": 9,
|
|
"nodes": [
|
|
{
|
|
"id": 3,
|
|
"type": "SaveWEBM",
|
|
"pos": [
|
|
606.5880737304688,
|
|
1515.5966796875
|
|
],
|
|
"size": [
|
|
315,
|
|
437
|
|
],
|
|
"flags": {},
|
|
"order": 5,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "images",
|
|
"type": "IMAGE",
|
|
"link": 5
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"properties": {},
|
|
"widgets_values": [
|
|
"ComfyUI",
|
|
"vp9",
|
|
10.000000000000002,
|
|
32
|
|
]
|
|
},
|
|
{
|
|
"id": 7,
|
|
"type": "CameraMotionNode",
|
|
"pos": [
|
|
176.07933044433594,
|
|
1504.22705078125
|
|
],
|
|
"size": [
|
|
278.75,
|
|
270
|
|
],
|
|
"flags": {},
|
|
"order": 4,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "pointcloud",
|
|
"type": "TENSOR",
|
|
"link": 6
|
|
},
|
|
{
|
|
"name": "trajectory",
|
|
"type": "TENSOR",
|
|
"link": 9
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "motion_frames",
|
|
"type": "IMAGE",
|
|
"links": [
|
|
5
|
|
]
|
|
},
|
|
{
|
|
"name": "mask_frames",
|
|
"type": "MASK",
|
|
"links": null
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "CameraMotionNode"
|
|
},
|
|
"widgets_values": [
|
|
10,
|
|
"PINHOLE",
|
|
90,
|
|
512,
|
|
512,
|
|
1,
|
|
0,
|
|
false,
|
|
false
|
|
],
|
|
"title": "Render motion"
|
|
},
|
|
{
|
|
"id": 6,
|
|
"type": "LoadPointCloud",
|
|
"pos": [
|
|
-357.24761962890625,
|
|
1294.427734375
|
|
],
|
|
"size": [
|
|
315,
|
|
58
|
|
],
|
|
"flags": {},
|
|
"order": 0,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [
|
|
{
|
|
"name": "loaded pointcloud",
|
|
"type": "TENSOR",
|
|
"links": [
|
|
6
|
|
]
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "LoadPointCloud"
|
|
},
|
|
"widgets_values": [
|
|
"ComfyUIPointCloud_00001.ply"
|
|
],
|
|
"title": "Load saved cloud (.ply/.npy)"
|
|
},
|
|
{
|
|
"id": 1,
|
|
"type": "TransformToMatrix",
|
|
"pos": [
|
|
-537.2319946289062,
|
|
1491.40380859375
|
|
],
|
|
"size": [
|
|
315,
|
|
154
|
|
],
|
|
"flags": {},
|
|
"order": 1,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [
|
|
{
|
|
"name": "transformation matrix",
|
|
"type": "MAT_4X4",
|
|
"links": [
|
|
7
|
|
]
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "TransformToMatrix"
|
|
},
|
|
"widgets_values": [
|
|
0,
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"title": "Start pose (identity)"
|
|
},
|
|
{
|
|
"id": 5,
|
|
"type": "TransformToMatrix",
|
|
"pos": [
|
|
-531.216796875,
|
|
1701.1632080078125
|
|
],
|
|
"size": [
|
|
315,
|
|
154
|
|
],
|
|
"flags": {},
|
|
"order": 2,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [
|
|
{
|
|
"name": "transformation matrix",
|
|
"type": "MAT_4X4",
|
|
"links": [
|
|
8
|
|
]
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "TransformToMatrix"
|
|
},
|
|
"widgets_values": [
|
|
0.10000000000000002,
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
],
|
|
"title": "End pose (dolly +0.1)"
|
|
},
|
|
{
|
|
"id": 8,
|
|
"type": "CameraInterpolationNode",
|
|
"pos": [
|
|
-121.91971588134766,
|
|
1597.3514404296875
|
|
],
|
|
"size": [
|
|
200.21640014648438,
|
|
46
|
|
],
|
|
"flags": {},
|
|
"order": 3,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"name": "initial_matrix",
|
|
"type": "MAT_4X4",
|
|
"link": 7
|
|
},
|
|
{
|
|
"name": "final_matrix",
|
|
"type": "MAT_4X4",
|
|
"link": 8
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"name": "trajectory",
|
|
"type": "TENSOR",
|
|
"links": [
|
|
9
|
|
]
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "CameraInterpolationNode"
|
|
},
|
|
"widgets_values": [
|
|
2
|
|
]
|
|
},
|
|
{
|
|
"id": 9,
|
|
"type": "MarkdownNote",
|
|
"title": "About this workflow",
|
|
"pos": [
|
|
-1097.2319946289062,
|
|
1294.427734375
|
|
],
|
|
"size": [
|
|
520,
|
|
236
|
|
],
|
|
"flags": {},
|
|
"order": 0,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [],
|
|
"properties": {},
|
|
"widgets_values": [
|
|
"# Load a saved point cloud & orbit\n\nReloads a point cloud saved by SavePointCloud and renders a short camera move between two poses (identity → 0.1 forward) as a WEBM.\n\n- **Set:** the file in LoadPointCloud (dropdown lists the ComfyUI input dir — run `PointCloud.json` or `fisheye_to_pointcloud.json` first); the two TransformToMatrix poses.\n- **Requires:** nothing beyond this pack."
|
|
],
|
|
"color": "#432",
|
|
"bgcolor": "#653"
|
|
}
|
|
],
|
|
"links": [
|
|
[
|
|
5,
|
|
7,
|
|
0,
|
|
3,
|
|
0,
|
|
"IMAGE"
|
|
],
|
|
[
|
|
6,
|
|
6,
|
|
0,
|
|
7,
|
|
0,
|
|
"TENSOR"
|
|
],
|
|
[
|
|
7,
|
|
1,
|
|
0,
|
|
8,
|
|
0,
|
|
"MAT_4X4"
|
|
],
|
|
[
|
|
8,
|
|
5,
|
|
0,
|
|
8,
|
|
1,
|
|
"MAT_4X4"
|
|
],
|
|
[
|
|
9,
|
|
8,
|
|
0,
|
|
7,
|
|
1,
|
|
"TENSOR"
|
|
]
|
|
],
|
|
"groups": [],
|
|
"config": {},
|
|
"extra": {
|
|
"ds": {
|
|
"scale": 1.015255979947716,
|
|
"offset": [
|
|
636.7531305750655,
|
|
-1186.3099424359816
|
|
]
|
|
},
|
|
"frontendVersion": "1.21.7"
|
|
},
|
|
"version": 0.4
|
|
}
|