Files
Alexankharin-camera-comfyUI/workflows/Outpaint_node_test.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

290 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": [
"camera_example_pinhole.jpg",
"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
]
},
"camera_comfyui_rev": 1
},
"version": 0.4
}