{
  "last_node_id": 59,
  "last_link_id": 33,
  "nodes": [
    {
      "id": 11,
      "type": "LoadImage",
      "pos": [
        0.0,
        0.0
      ],
      "size": [
        380.0,
        300
      ],
      "flags": {},
      "order": 0,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            11
          ],
          "slot_index": 0
        },
        {
          "name": "MASK",
          "type": "MASK",
          "links": null,
          "slot_index": 1
        }
      ],
      "properties": {
        "Node name for S&R": "LoadImage"
      },
      "widgets_values": [
        "3d/multiview_navy/navy_front_mask.png",
        "image"
      ]
    },
    {
      "id": 1,
      "type": "StableFast3DLoader",
      "pos": [
        480.0,
        400.0
      ],
      "size": [
        340.0,
        30
      ],
      "flags": {},
      "order": 2,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "sf3d_model",
          "type": "SF3D_MODEL",
          "links": [
            1,
            2,
            3
          ],
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "StableFast3DLoader"
      },
      "widgets_values": []
    },
    {
      "id": 10,
      "type": "LoadImage",
      "pos": [
        0.0,
        484.2
      ],
      "size": [
        380.0,
        300
      ],
      "flags": {},
      "order": 3,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            10
          ],
          "slot_index": 0
        },
        {
          "name": "MASK",
          "type": "MASK",
          "links": null,
          "slot_index": 1
        }
      ],
      "properties": {
        "Node name for S&R": "LoadImage"
      },
      "widgets_values": [
        "3d/multiview_navy/navy_front.png",
        "image"
      ]
    },
    {
      "id": 12,
      "type": "ImageToMask",
      "pos": [
        920.0,
        400.0
      ],
      "size": [
        340.0,
        58
      ],
      "flags": {},
      "order": 4,
      "mode": 0,
      "inputs": [
        {
          "name": "image",
          "type": "IMAGE",
          "link": 11
        }
      ],
      "outputs": [
        {
          "name": "MASK",
          "type": "MASK",
          "links": [
            12
          ],
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "ImageToMask"
      },
      "widgets_values": [
        "red"
      ]
    },
    {
      "id": 13,
      "type": "StableFast3DSampler",
      "pos": [
        1340.0,
        0.0
      ],
      "size": [
        340.0,
        200
      ],
      "flags": {},
      "order": 5,
      "mode": 0,
      "inputs": [
        {
          "name": "model",
          "type": "SF3D_MODEL",
          "link": 1
        },
        {
          "name": "image",
          "type": "IMAGE",
          "link": 10
        },
        {
          "name": "mask",
          "type": "MASK",
          "link": 12
        }
      ],
      "outputs": [
        {
          "name": "mesh",
          "type": "MESH",
          "links": [
            13
          ],
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "StableFast3DSampler"
      },
      "widgets_values": [
        0.85,
        2048,
        "triangle",
        20000
      ]
    },
    {
      "id": 14,
      "type": "StableFast3DSave",
      "pos": [
        1760.0,
        400.0
      ],
      "size": [
        340.0,
        80
      ],
      "flags": {},
      "order": 6,
      "mode": 0,
      "inputs": [
        {
          "name": "mesh",
          "type": "MESH",
          "link": 13
        }
      ],
      "outputs": [],
      "properties": {
        "Node name for S&R": "StableFast3DSave"
      },
      "widgets_values": [
        "3D_Compare/B_SF3D_front"
      ]
    },
    {
      "id": 21,
      "type": "LoadImage",
      "pos": [
        0.0,
        968.4
      ],
      "size": [
        380.0,
        300
      ],
      "flags": {},
      "order": 7,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            21
          ],
          "slot_index": 0
        },
        {
          "name": "MASK",
          "type": "MASK",
          "links": null,
          "slot_index": 1
        }
      ],
      "properties": {
        "Node name for S&R": "LoadImage"
      },
      "widgets_values": [
        "3d/multiview_navy/navy_right_mask.png",
        "image"
      ]
    },
    {
      "id": 31,
      "type": "LoadImage",
      "pos": [
        0.0,
        1452.6
      ],
      "size": [
        380.0,
        300
      ],
      "flags": {},
      "order": 8,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            31
          ],
          "slot_index": 0
        },
        {
          "name": "MASK",
          "type": "MASK",
          "links": null,
          "slot_index": 1
        }
      ],
      "properties": {
        "Node name for S&R": "LoadImage"
      },
      "widgets_values": [
        "3d/multiview_navy/navy_back_mask.png",
        "image"
      ]
    },
    {
      "id": 20,
      "type": "LoadImage",
      "pos": [
        0.0,
        1936.8
      ],
      "size": [
        380.0,
        300
      ],
      "flags": {},
      "order": 9,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            20
          ],
          "slot_index": 0
        },
        {
          "name": "MASK",
          "type": "MASK",
          "links": null,
          "slot_index": 1
        }
      ],
      "properties": {
        "Node name for S&R": "LoadImage"
      },
      "widgets_values": [
        "3d/multiview_navy/navy_right.png",
        "image"
      ]
    },
    {
      "id": 22,
      "type": "ImageToMask",
      "pos": [
        920.0,
        1153.0
      ],
      "size": [
        340.0,
        58
      ],
      "flags": {},
      "order": 10,
      "mode": 0,
      "inputs": [
        {
          "name": "image",
          "type": "IMAGE",
          "link": 21
        }
      ],
      "outputs": [
        {
          "name": "MASK",
          "type": "MASK",
          "links": [
            22
          ],
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "ImageToMask"
      },
      "widgets_values": [
        "red"
      ]
    },
    {
      "id": 23,
      "type": "StableFast3DSampler",
      "pos": [
        1340.0,
        537.5
      ],
      "size": [
        340.0,
        200
      ],
      "flags": {},
      "order": 11,
      "mode": 0,
      "inputs": [
        {
          "name": "model",
          "type": "SF3D_MODEL",
          "link": 2
        },
        {
          "name": "image",
          "type": "IMAGE",
          "link": 20
        },
        {
          "name": "mask",
          "type": "MASK",
          "link": 22
        }
      ],
      "outputs": [
        {
          "name": "mesh",
          "type": "MESH",
          "links": [
            23
          ],
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "StableFast3DSampler"
      },
      "widgets_values": [
        0.85,
        2048,
        "triangle",
        20000
      ]
    },
    {
      "id": 24,
      "type": "StableFast3DSave",
      "pos": [
        1760.0,
        600.0
      ],
      "size": [
        340.0,
        80
      ],
      "flags": {},
      "order": 12,
      "mode": 0,
      "inputs": [
        {
          "name": "mesh",
          "type": "MESH",
          "link": 23
        }
      ],
      "outputs": [],
      "properties": {
        "Node name for S&R": "StableFast3DSave"
      },
      "widgets_values": [
        "3D_Compare/B_SF3D_right"
      ]
    },
    {
      "id": 30,
      "type": "LoadImage",
      "pos": [
        0.0,
        2421.0
      ],
      "size": [
        380.0,
        300
      ],
      "flags": {},
      "order": 13,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            30
          ],
          "slot_index": 0
        },
        {
          "name": "MASK",
          "type": "MASK",
          "links": null,
          "slot_index": 1
        }
      ],
      "properties": {
        "Node name for S&R": "LoadImage"
      },
      "widgets_values": [
        "3d/multiview_navy/navy_back.png",
        "image"
      ]
    },
    {
      "id": 32,
      "type": "ImageToMask",
      "pos": [
        920.0,
        1906.0
      ],
      "size": [
        340.0,
        58
      ],
      "flags": {},
      "order": 14,
      "mode": 0,
      "inputs": [
        {
          "name": "image",
          "type": "IMAGE",
          "link": 31
        }
      ],
      "outputs": [
        {
          "name": "MASK",
          "type": "MASK",
          "links": [
            32
          ],
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "ImageToMask"
      },
      "widgets_values": [
        "red"
      ]
    },
    {
      "id": 33,
      "type": "StableFast3DSampler",
      "pos": [
        1340.0,
        1075.0
      ],
      "size": [
        340.0,
        200
      ],
      "flags": {},
      "order": 15,
      "mode": 0,
      "inputs": [
        {
          "name": "model",
          "type": "SF3D_MODEL",
          "link": 3
        },
        {
          "name": "image",
          "type": "IMAGE",
          "link": 30
        },
        {
          "name": "mask",
          "type": "MASK",
          "link": 32
        }
      ],
      "outputs": [
        {
          "name": "mesh",
          "type": "MESH",
          "links": [
            33
          ],
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "StableFast3DSampler"
      },
      "widgets_values": [
        0.85,
        2048,
        "triangle",
        20000
      ]
    },
    {
      "id": 34,
      "type": "StableFast3DSave",
      "pos": [
        1760.0,
        800.0
      ],
      "size": [
        340.0,
        80
      ],
      "flags": {},
      "order": 16,
      "mode": 0,
      "inputs": [
        {
          "name": "mesh",
          "type": "MESH",
          "link": 33
        }
      ],
      "outputs": [],
      "properties": {
        "Node name for S&R": "StableFast3DSave"
      },
      "widgets_values": [
        "3D_Compare/B_SF3D_back"
      ]
    },
    {
      "id": 59,
      "type": "MarkdownNote",
      "pos": [
        -720.0,
        -420.0
      ],
      "size": [
        640,
        520
      ],
      "flags": {
        "collapsed": false
      },
      "order": 18,
      "mode": 0,
      "inputs": [],
      "outputs": [],
      "properties": {},
      "title": "README",
      "widgets_values": [
        "## What this workflow does\nCompare Stable Fast 3D reconstructions from separate views with their matching masks.\n\n## How to use it\nLoad each view with its corresponding mask. Keep photo/mask pairs matched, generate the meshes and compare their shape. These are separate single-view reconstructions.\n\n## Included input examples\n- `3d/multiview_navy/navy_front_mask.png`\n- `3d/multiview_navy/navy_front.png`\n- `3d/multiview_navy/navy_right_mask.png`\n- `3d/multiview_navy/navy_back_mask.png`\n- `3d/multiview_navy/navy_right.png`\n- `3d/multiview_navy/navy_back.png`\n\n## Inspect and save\nFollow the existing saved-output nodes. Change one creative variable at a time so you can understand what changed. Generated views and 3D surfaces are proposals, not proof of real construction."
      ],
      "color": "#343a3a",
      "bgcolor": "#202626"
    },
    {
      "id": 58,
      "type": "MarkdownNote",
      "pos": [
        -720.0,
        160.0
      ],
      "size": [
        640,
        660
      ],
      "flags": {
        "collapsed": false
      },
      "order": 17,
      "mode": 0,
      "inputs": [],
      "outputs": [],
      "title": "Model Information",
      "properties": {},
      "widgets_values": [
        "# Models you need\n\nThis workflow needs 1 model file. Download each one, then move it from your **Downloads** folder into the folder shown.\n\n## Step 1 - Find your ComfyUI `models` folder\n\nEvery file below goes into a sub-folder of `ComfyUI/models/`. Where that folder is depends on how you installed ComfyUI:\n\n- **ComfyUI Desktop app:** click the menu (top-left) > **Desktop Settings** > **Storage**. Under **Shared Models**, click the folder icon next to the directory marked **Primary**. That opens your `models` folder.\n- **Windows portable (zip) version:** `ComfyUI_windows_portable/ComfyUI/models/`\n- **Manual / git install:** the `models` folder inside the `ComfyUI` folder you cloned.\n\nInside `models` you will find sub-folders such as `unet`, `vae`, `checkpoints` and `loras`. If a sub-folder named below does not exist, create it (the name must match exactly).\n\n## Step 2 - Download each file and move it into place\n\n**1. Stable Fast 3D - turns a photo into a 3D model**\n- Download: [config.yaml and model.safetensors](https://huggingface.co/stabilityai/stable-fast-3d)\n- Move it to: `ComfyUI/models/3D/stable-fast-3d/`\n- Tip: Download both files and put them together in `ComfyUI/models/3D/stable-fast-3d/` (create the folders if needed).\n- Licence: Stability AI Community License - read and accept it on the model page before downloading.\n\nWhen you are done, your folders should look like this:\n\n```text\nComfyUI/\n└── models/\n    └── 3D/stable-fast-3d/\n        └── config.yaml and model.safetensors\n```\n\n## Step 3 - Let ComfyUI find the files\n\n1. Restart ComfyUI, or click on the empty canvas and press **R** to refresh the model lists.\n2. Check each loader node in the workflow: the file name shown must match the file you downloaded. If a loader shows a red outline or \"value not in list\", click the file name and pick the file from the list.\n3. If a node itself is red or missing, open the **Manager** and click **Install Missing Custom Nodes**, then restart ComfyUI.\n\n**Licences:** each model has its own licence - read it on the model page before you download. Several models here are for non-commercial use only. Model files are not included with these workflows.\n\n## ComfyUI references\n- [ComfyUI update guide](https://docs.comfy.org/installation/update_comfyui)\n- [ComfyUI runtime issues](https://github.com/comfyanonymous/ComfyUI/issues)\n- [ComfyUI frontend issues](https://github.com/Comfy-Org/ComfyUI_frontend/issues)\n- [Workflow template issues](https://github.com/Comfy-Org/workflow_templates/issues)"
      ],
      "widgets_values_named": {
        "text": "# Models you need\n\nThis workflow needs 1 model file. Download each one, then move it from your **Downloads** folder into the folder shown.\n\n## Step 1 - Find your ComfyUI `models` folder\n\nEvery file below goes into a sub-folder of `ComfyUI/models/`. Where that folder is depends on how you installed ComfyUI:\n\n- **ComfyUI Desktop app:** click the menu (top-left) > **Desktop Settings** > **Storage**. Under **Shared Models**, click the folder icon next to the directory marked **Primary**. That opens your `models` folder.\n- **Windows portable (zip) version:** `ComfyUI_windows_portable/ComfyUI/models/`\n- **Manual / git install:** the `models` folder inside the `ComfyUI` folder you cloned.\n\nInside `models` you will find sub-folders such as `unet`, `vae`, `checkpoints` and `loras`. If a sub-folder named below does not exist, create it (the name must match exactly).\n\n## Step 2 - Download each file and move it into place\n\n**1. Stable Fast 3D - turns a photo into a 3D model**\n- Download: [config.yaml and model.safetensors](https://huggingface.co/stabilityai/stable-fast-3d)\n- Move it to: `ComfyUI/models/3D/stable-fast-3d/`\n- Tip: Download both files and put them together in `ComfyUI/models/3D/stable-fast-3d/` (create the folders if needed).\n- Licence: Stability AI Community License - read and accept it on the model page before downloading.\n\nWhen you are done, your folders should look like this:\n\n```text\nComfyUI/\n└── models/\n    └── 3D/stable-fast-3d/\n        └── config.yaml and model.safetensors\n```\n\n## Step 3 - Let ComfyUI find the files\n\n1. Restart ComfyUI, or click on the empty canvas and press **R** to refresh the model lists.\n2. Check each loader node in the workflow: the file name shown must match the file you downloaded. If a loader shows a red outline or \"value not in list\", click the file name and pick the file from the list.\n3. If a node itself is red or missing, open the **Manager** and click **Install Missing Custom Nodes**, then restart ComfyUI.\n\n**Licences:** each model has its own licence - read it on the model page before you download. Several models here are for non-commercial use only. Model files are not included with these workflows.\n\n## ComfyUI references\n- [ComfyUI update guide](https://docs.comfy.org/installation/update_comfyui)\n- [ComfyUI runtime issues](https://github.com/comfyanonymous/ComfyUI/issues)\n- [ComfyUI frontend issues](https://github.com/Comfy-Org/ComfyUI_frontend/issues)\n- [Workflow template issues](https://github.com/Comfy-Org/workflow_templates/issues)"
      },
      "color": "#373044",
      "bgcolor": "#241f30"
    }
  ],
  "links": [
    [
      1,
      1,
      0,
      13,
      0,
      "SF3D_MODEL"
    ],
    [
      2,
      1,
      0,
      23,
      0,
      "SF3D_MODEL"
    ],
    [
      3,
      1,
      0,
      33,
      0,
      "SF3D_MODEL"
    ],
    [
      10,
      10,
      0,
      13,
      1,
      "IMAGE"
    ],
    [
      11,
      11,
      0,
      12,
      0,
      "IMAGE"
    ],
    [
      12,
      12,
      0,
      13,
      2,
      "MASK"
    ],
    [
      13,
      13,
      0,
      14,
      0,
      "MESH"
    ],
    [
      20,
      20,
      0,
      23,
      1,
      "IMAGE"
    ],
    [
      21,
      21,
      0,
      22,
      0,
      "IMAGE"
    ],
    [
      22,
      22,
      0,
      23,
      2,
      "MASK"
    ],
    [
      23,
      23,
      0,
      24,
      0,
      "MESH"
    ],
    [
      30,
      30,
      0,
      33,
      1,
      "IMAGE"
    ],
    [
      31,
      31,
      0,
      32,
      0,
      "IMAGE"
    ],
    [
      32,
      32,
      0,
      33,
      2,
      "MASK"
    ],
    [
      33,
      33,
      0,
      34,
      0,
      "MESH"
    ]
  ],
  "groups": [
    {
      "title": "1. Start / Inputs",
      "bounding": [
        -20,
        -85,
        420,
        2846
      ],
      "color": "#456b82",
      "font_size": 24,
      "flags": {}
    },
    {
      "title": "2. Models",
      "bounding": [
        440,
        -505,
        420,
        975
      ],
      "color": "#6a5884",
      "font_size": 24,
      "flags": {}
    },
    {
      "title": "3. Prepare References",
      "bounding": [
        900,
        315,
        380,
        1689
      ],
      "color": "#4d806d",
      "font_size": 24,
      "flags": {}
    },
    {
      "title": "4. Generate",
      "bounding": [
        1320,
        -85,
        380,
        1400
      ],
      "color": "#7b5362",
      "font_size": 24,
      "flags": {}
    },
    {
      "title": "5. Inspect / Save",
      "bounding": [
        1740,
        315,
        380,
        605
      ],
      "color": "#63824d",
      "font_size": 24,
      "flags": {}
    }
  ],
  "config": {},
  "extra": {
    "ds": {
      "scale": 0.35,
      "offset": [
        80,
        120
      ]
    }
  },
  "version": 0.4,
  "license_compliance_voiceover_layout_v1": true
}