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>
289 lines
5.5 KiB
JSON
289 lines
5.5 KiB
JSON
{
|
|
"id": "8c6e5ec1-4ff2-42d9-9408-fcd0a23d362a",
|
|
"revision": 0,
|
|
"last_node_id": 12,
|
|
"last_link_id": 17,
|
|
"nodes": [
|
|
{
|
|
"id": 3,
|
|
"type": "PreviewImage",
|
|
"pos": [
|
|
-5.768195629119873,
|
|
204.72561645507812
|
|
],
|
|
"size": [
|
|
210,
|
|
246
|
|
],
|
|
"flags": {},
|
|
"order": 2,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"localized_name": "images",
|
|
"name": "images",
|
|
"type": "IMAGE",
|
|
"link": 16
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"properties": {
|
|
"Node name for S&R": "PreviewImage"
|
|
},
|
|
"widgets_values": [
|
|
""
|
|
],
|
|
"title": "Result"
|
|
},
|
|
{
|
|
"id": 4,
|
|
"type": "MaskToImage",
|
|
"pos": [
|
|
-30.901016235351562,
|
|
532.864013671875
|
|
],
|
|
"size": [
|
|
264.5999755859375,
|
|
26
|
|
],
|
|
"flags": {},
|
|
"order": 3,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"localized_name": "mask",
|
|
"name": "mask",
|
|
"type": "MASK",
|
|
"link": 17
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"localized_name": "IMAGE",
|
|
"name": "IMAGE",
|
|
"type": "IMAGE",
|
|
"links": [
|
|
4
|
|
]
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "MaskToImage"
|
|
},
|
|
"widgets_values": []
|
|
},
|
|
{
|
|
"id": 2,
|
|
"type": "LoadImage",
|
|
"pos": [
|
|
-843.689208984375,
|
|
354.9311828613281
|
|
],
|
|
"size": [
|
|
315,
|
|
314
|
|
],
|
|
"flags": {},
|
|
"order": 0,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [
|
|
{
|
|
"localized_name": "IMAGE",
|
|
"name": "IMAGE",
|
|
"type": "IMAGE",
|
|
"links": [
|
|
15
|
|
]
|
|
},
|
|
{
|
|
"localized_name": "MASK",
|
|
"name": "MASK",
|
|
"type": "MASK",
|
|
"links": []
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "LoadImage"
|
|
},
|
|
"widgets_values": [
|
|
"flux_dev_example.png",
|
|
"image",
|
|
""
|
|
]
|
|
},
|
|
{
|
|
"id": 5,
|
|
"type": "PreviewImage",
|
|
"pos": [
|
|
296.6977844238281,
|
|
611.6702880859375
|
|
],
|
|
"size": [
|
|
210,
|
|
246
|
|
],
|
|
"flags": {},
|
|
"order": 4,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"localized_name": "images",
|
|
"name": "images",
|
|
"type": "IMAGE",
|
|
"link": 4
|
|
}
|
|
],
|
|
"outputs": [],
|
|
"properties": {
|
|
"Node name for S&R": "PreviewImage"
|
|
},
|
|
"widgets_values": [
|
|
""
|
|
],
|
|
"title": "Holes still to fill"
|
|
},
|
|
{
|
|
"id": 11,
|
|
"type": "OutpaintAnyProjection",
|
|
"pos": [
|
|
-498.9301452636719,
|
|
317.144287109375
|
|
],
|
|
"size": [
|
|
400,
|
|
492
|
|
],
|
|
"flags": {},
|
|
"order": 1,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{
|
|
"localized_name": "image",
|
|
"name": "image",
|
|
"type": "IMAGE",
|
|
"link": 15
|
|
},
|
|
{
|
|
"localized_name": "mask",
|
|
"name": "mask",
|
|
"shape": 7,
|
|
"type": "MASK",
|
|
"link": null
|
|
}
|
|
],
|
|
"outputs": [
|
|
{
|
|
"localized_name": "final_image",
|
|
"name": "final_image",
|
|
"type": "IMAGE",
|
|
"links": [
|
|
16
|
|
]
|
|
},
|
|
{
|
|
"localized_name": "needs_inpaint_mask",
|
|
"name": "needs_inpaint_mask",
|
|
"type": "MASK",
|
|
"links": [
|
|
17
|
|
]
|
|
}
|
|
],
|
|
"properties": {
|
|
"Node name for S&R": "OutpaintAnyProjection"
|
|
},
|
|
"widgets_values": [
|
|
"PINHOLE",
|
|
90,
|
|
"FISHEYE",
|
|
180,
|
|
4096,
|
|
4096,
|
|
"PINHOLE",
|
|
90,
|
|
1024,
|
|
45,
|
|
0,
|
|
"",
|
|
10,
|
|
false,
|
|
30,
|
|
1,
|
|
false
|
|
],
|
|
"title": "Outpaint one patch (yaw +45°)"
|
|
},
|
|
{
|
|
"id": 12,
|
|
"type": "MarkdownNote",
|
|
"title": "About this workflow",
|
|
"pos": [
|
|
-1403.689208984375,
|
|
204.72561645507812
|
|
],
|
|
"size": [
|
|
520,
|
|
288
|
|
],
|
|
"flags": {},
|
|
"order": 0,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [],
|
|
"properties": {},
|
|
"widgets_values": [
|
|
"# OutpaintAnyProjection smoke test\n\nSingle-node sanity check: a 90° pinhole image is placed on a 180° fisheye canvas and one 90° pinhole patch at yaw +45° is Flux-inpainted (10 steps for speed).\n\nOutputs: the partially outpainted canvas and the *remaining holes* mask — chain more OutpaintAnyProjection nodes at other angles to fill it (see `Outpaint_fisheye180.json`).\n\n- **Set:** input image; prompt inside the node (empty = unconditional).\n- **Requires:** `custom_nodes/inpainting_flux` (installed automatically by this pack's install.py) — downloads FLUX.1-Fill NF4 weights on first run."
|
|
],
|
|
"color": "#432",
|
|
"bgcolor": "#653"
|
|
}
|
|
],
|
|
"links": [
|
|
[
|
|
4,
|
|
4,
|
|
0,
|
|
5,
|
|
0,
|
|
"IMAGE"
|
|
],
|
|
[
|
|
15,
|
|
2,
|
|
0,
|
|
11,
|
|
0,
|
|
"IMAGE"
|
|
],
|
|
[
|
|
16,
|
|
11,
|
|
0,
|
|
3,
|
|
0,
|
|
"IMAGE"
|
|
],
|
|
[
|
|
17,
|
|
11,
|
|
1,
|
|
4,
|
|
0,
|
|
"MASK"
|
|
]
|
|
],
|
|
"groups": [],
|
|
"config": {},
|
|
"extra": {
|
|
"ds": {
|
|
"scale": 0.8390545288824094,
|
|
"offset": [
|
|
703.1897327574803,
|
|
-308.43624510132975
|
|
]
|
|
}
|
|
},
|
|
"version": 0.4
|
|
}
|