{
  "id": "66082823-9e09-4435-b776-55cf840218bc",
  "revision": 0,
  "last_node_id": 13,
  "last_link_id": 16,
  "nodes": [
    {
      "id": 1,
      "type": "LoadImage",
      "pos": [
        35,
        300
      ],
      "size": [
        280,
        310
      ],
      "flags": {},
      "order": 0,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            2,
            4,
            9,
            11
          ]
        },
        {
          "name": "MASK",
          "type": "MASK",
          "links": []
        }
      ],
      "title": "01 原始宠物照片",
      "properties": {
        "Node name for S&R": "LoadImage"
      },
      "widgets_values": [
        "橘猫.jpg",
        "image"
      ],
      "color": "#233b49",
      "bgcolor": "#202830"
    },
    {
      "id": 2,
      "type": "LoadBackgroundRemovalModel",
      "pos": [
        35,
        50
      ],
      "size": [
        280,
        110
      ],
      "flags": {},
      "order": 1,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "bg_model",
          "type": "BACKGROUND_REMOVAL",
          "links": [
            1
          ]
        }
      ],
      "title": "02 BiRefNet 本地模型",
      "properties": {
        "Node name for S&R": "LoadBackgroundRemovalModel",
        "models": [
          {
            "name": "birefnet.safetensors",
            "url": "https://huggingface.co/Comfy-Org/BiRefNet/resolve/main/background_removal/birefnet.safetensors",
            "directory": "background_removal"
          }
        ]
      },
      "widgets_values": [
        "birefnet.safetensors"
      ],
      "color": "#233b49",
      "bgcolor": "#202830"
    },
    {
      "id": 3,
      "type": "RemoveBackground",
      "pos": [
        370,
        100
      ],
      "size": [
        270,
        100
      ],
      "flags": {},
      "order": 2,
      "mode": 0,
      "inputs": [
        {
          "name": "bg_removal_model",
          "type": "BACKGROUND_REMOVAL",
          "link": 1
        },
        {
          "name": "image",
          "type": "IMAGE",
          "link": 2
        }
      ],
      "outputs": [
        {
          "name": "mask",
          "type": "MASK",
          "links": [
            3,
            7,
            15
          ]
        }
      ],
      "title": "03 宠物前景软蒙版",
      "properties": {
        "Node name for S&R": "RemoveBackground"
      },
      "widgets_values": [],
      "color": "#233b49",
      "bgcolor": "#202830"
    },
    {
      "id": 4,
      "type": "InvertMask",
      "pos": [
        720,
        30
      ],
      "size": [
        250,
        75
      ],
      "flags": {},
      "order": 3,
      "mode": 0,
      "inputs": [
        {
          "name": "mask",
          "type": "MASK",
          "link": 3
        }
      ],
      "outputs": [
        {
          "name": "MASK",
          "type": "MASK",
          "links": [
            5
          ]
        }
      ],
      "title": "04 alpha 约定转换",
      "properties": {
        "Node name for S&R": "InvertMask"
      },
      "widgets_values": [],
      "color": "#375040",
      "bgcolor": "#202830"
    },
    {
      "id": 5,
      "type": "JoinImageWithAlpha",
      "pos": [
        1020,
        30
      ],
      "size": [
        280,
        100
      ],
      "flags": {},
      "order": 4,
      "mode": 0,
      "inputs": [
        {
          "name": "image",
          "type": "IMAGE",
          "link": 4
        },
        {
          "name": "alpha",
          "type": "MASK",
          "link": 5
        }
      ],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            6
          ]
        }
      ],
      "title": "05 原图 RGB + 透明通道",
      "properties": {
        "Node name for S&R": "JoinImageWithAlpha"
      },
      "widgets_values": [],
      "color": "#375040",
      "bgcolor": "#202830"
    },
    {
      "id": 6,
      "type": "SaveImage",
      "pos": [
        1360,
        30
      ],
      "size": [
        310,
        170
      ],
      "flags": {},
      "order": 5,
      "mode": 0,
      "inputs": [
        {
          "name": "images",
          "type": "IMAGE",
          "link": 6
        }
      ],
      "outputs": [
        {
          "name": "images",
          "type": "IMAGE",
          "links": []
        }
      ],
      "title": "06 保存真正 RGBA PNG",
      "properties": {
        "Node name for S&R": "SaveImage"
      },
      "widgets_values": [
        "pet_split/foreground_rgba"
      ],
      "color": "#375040",
      "bgcolor": "#202830"
    },
    {
      "id": 7,
      "type": "ThresholdMask",
      "pos": [
        720,
        270
      ],
      "size": [
        250,
        90
      ],
      "flags": {},
      "order": 6,
      "mode": 0,
      "inputs": [
        {
          "name": "mask",
          "type": "MASK",
          "link": 7
        }
      ],
      "outputs": [
        {
          "name": "MASK",
          "type": "MASK",
          "links": [
            8
          ]
        }
      ],
      "title": "07 二值化删除区域",
      "properties": {
        "Node name for S&R": "ThresholdMask"
      },
      "widgets_values": [
        0.1
      ],
      "color": "#514732",
      "bgcolor": "#202830"
    },
    {
      "id": 8,
      "type": "GrowMask",
      "pos": [
        1020,
        260
      ],
      "size": [
        280,
        120
      ],
      "flags": {},
      "order": 7,
      "mode": 0,
      "inputs": [
        {
          "name": "mask",
          "type": "MASK",
          "link": 8
        }
      ],
      "outputs": [
        {
          "name": "MASK",
          "type": "MASK",
          "links": [
            10,
            13
          ]
        }
      ],
      "title": "08 扩张 16 px 去掉边缘残影",
      "properties": {
        "Node name for S&R": "GrowMask"
      },
      "widgets_values": [
        16,
        true
      ],
      "color": "#514732",
      "bgcolor": "#202830"
    },
    {
      "id": 9,
      "type": "LamaRemover",
      "pos": [
        1360,
        275
      ],
      "size": [
        310,
        170
      ],
      "flags": {},
      "order": 8,
      "mode": 0,
      "inputs": [
        {
          "name": "images",
          "type": "IMAGE",
          "link": 9
        },
        {
          "name": "masks",
          "type": "MASK",
          "link": 10
        }
      ],
      "outputs": [
        {
          "name": "images",
          "type": "IMAGE",
          "links": [
            12
          ]
        }
      ],
      "title": "09 LaMa 本地补洞 / CPU",
      "properties": {
        "Node name for S&R": "LamaRemover"
      },
      "widgets_values": [
        127,
        0,
        false
      ],
      "color": "#514732",
      "bgcolor": "#202830"
    },
    {
      "id": 10,
      "type": "ImageCompositeMasked",
      "pos": [
        1720,
        270
      ],
      "size": [
        330,
        180
      ],
      "flags": {},
      "order": 9,
      "mode": 0,
      "inputs": [
        {
          "name": "destination",
          "type": "IMAGE",
          "link": 11
        },
        {
          "name": "source",
          "type": "IMAGE",
          "link": 12
        },
        {
          "name": "mask",
          "type": "MASK",
          "link": 13
        }
      ],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            14
          ]
        }
      ],
      "title": "10 仅替换删除区 / 区外用原图",
      "properties": {
        "Node name for S&R": "ImageCompositeMasked"
      },
      "widgets_values": [
        0,
        0,
        false
      ],
      "color": "#514732",
      "bgcolor": "#202830"
    },
    {
      "id": 11,
      "type": "SaveImage",
      "pos": [
        2110,
        270
      ],
      "size": [
        310,
        180
      ],
      "flags": {},
      "order": 10,
      "mode": 0,
      "inputs": [
        {
          "name": "images",
          "type": "IMAGE",
          "link": 14
        }
      ],
      "outputs": [
        {
          "name": "images",
          "type": "IMAGE",
          "links": []
        }
      ],
      "title": "11 保存补全后的纯背景",
      "properties": {
        "Node name for S&R": "SaveImage"
      },
      "widgets_values": [
        "pet_split/background_inpainted"
      ],
      "color": "#514732",
      "bgcolor": "#202830"
    },
    {
      "id": 12,
      "type": "MaskToImage",
      "pos": [
        720,
        530
      ],
      "size": [
        250,
        75
      ],
      "flags": {},
      "order": 11,
      "mode": 0,
      "inputs": [
        {
          "name": "mask",
          "type": "MASK",
          "link": 15
        }
      ],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            16
          ]
        }
      ],
      "title": "12 导出前景蒙版供检查",
      "properties": {
        "Node name for S&R": "MaskToImage"
      },
      "widgets_values": [],
      "color": "#233b49",
      "bgcolor": "#202830"
    },
    {
      "id": 13,
      "type": "SaveImage",
      "pos": [
        1020,
        520
      ],
      "size": [
        280,
        180
      ],
      "flags": {},
      "order": 12,
      "mode": 0,
      "inputs": [
        {
          "name": "images",
          "type": "IMAGE",
          "link": 16
        }
      ],
      "outputs": [
        {
          "name": "images",
          "type": "IMAGE",
          "links": []
        }
      ],
      "title": "13 保存蒙版 / 白色是宠物",
      "properties": {
        "Node name for S&R": "SaveImage"
      },
      "widgets_values": [
        "pet_split/subject_mask"
      ],
      "color": "#233b49",
      "bgcolor": "#202830"
    }
  ],
  "links": [
    [
      1,
      2,
      0,
      3,
      0,
      "BACKGROUND_REMOVAL"
    ],
    [
      2,
      1,
      0,
      3,
      1,
      "IMAGE"
    ],
    [
      3,
      3,
      0,
      4,
      0,
      "MASK"
    ],
    [
      4,
      1,
      0,
      5,
      0,
      "IMAGE"
    ],
    [
      5,
      4,
      0,
      5,
      1,
      "MASK"
    ],
    [
      6,
      5,
      0,
      6,
      0,
      "IMAGE"
    ],
    [
      7,
      3,
      0,
      7,
      0,
      "MASK"
    ],
    [
      8,
      7,
      0,
      8,
      0,
      "MASK"
    ],
    [
      9,
      1,
      0,
      9,
      0,
      "IMAGE"
    ],
    [
      10,
      8,
      0,
      9,
      1,
      "MASK"
    ],
    [
      11,
      1,
      0,
      10,
      0,
      "IMAGE"
    ],
    [
      12,
      9,
      0,
      10,
      1,
      "IMAGE"
    ],
    [
      13,
      8,
      0,
      10,
      2,
      "MASK"
    ],
    [
      14,
      10,
      0,
      11,
      0,
      "IMAGE"
    ],
    [
      15,
      3,
      0,
      12,
      0,
      "MASK"
    ],
    [
      16,
      12,
      0,
      13,
      0,
      "IMAGE"
    ]
  ],
  "groups": [
    {
      "id": 1,
      "title": "输入与自动抠像 / Local BiRefNet",
      "bounding": [
        15,
        5,
        650,
        635
      ],
      "color": "#40697a",
      "font_size": 24,
      "flags": {}
    },
    {
      "id": 2,
      "title": "前景：保留原图颜色 + soft alpha",
      "bounding": [
        690,
        -30,
        1005,
        265
      ],
      "color": "#507961",
      "font_size": 24,
      "flags": {}
    },
    {
      "id": 3,
      "title": "背景：删除宠物 → LaMa 补洞 → 区外原图合回",
      "bounding": [
        690,
        220,
        1760,
        285
      ],
      "color": "#967f52",
      "font_size": 24,
      "flags": {}
    },
    {
      "id": 4,
      "title": "蒙版检查 / 多物体误选时手动修正",
      "bounding": [
        690,
        485,
        640,
        245
      ],
      "color": "#40697a",
      "font_size": 24,
      "flags": {}
    }
  ],
  "config": {},
  "extra": {
    "ds": {
      "scale": 0.58,
      "offset": [
        35,
        65
      ]
    },
    "workflowRendererVersion": "LG",
    "info": {
      "name": "宠物照片自动拆分：透明前景与补全背景",
      "description": "全本地；需要下载BiRefNet和LaMa权重。已验证节点注册与连接，未运行模型推理。"
    }
  },
  "version": 0.4
}