{
  "id": "26d0d199-1925-4395-ac1f-57e3cbc6bcd4",
  "revision": 0,
  "last_node_id": 19,
  "last_link_id": 24,
  "nodes": [
    {
      "id": 7,
      "type": "BeebleSwitchXImageEdit",
      "pos": [
        600,
        1250
      ],
      "size": [
        400,
        265.328125
      ],
      "flags": {},
      "order": 3,
      "mode": 0,
      "inputs": [
        {
          "name": "image",
          "type": "IMAGE",
          "link": 7
        },
        {
          "name": "reference_image",
          "shape": 7,
          "type": "IMAGE",
          "link": 24
        }
      ],
      "outputs": [
        {
          "name": "image",
          "type": "IMAGE",
          "links": [
            5,
            19
          ]
        },
        {
          "name": "alpha",
          "type": "MASK",
          "links": [
            11
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "BeebleSwitchXImageEdit"
      },
      "widgets_values": [
        "Characters listening to music in the scene, product photography",
        "auto",
        "720p",
        1784980040,
        "randomize"
      ],
      "color": "#432",
      "bgcolor": "#653"
    },
    {
      "id": 8,
      "type": "SaveImage",
      "pos": [
        1050,
        1250
      ],
      "size": [
        450,
        470
      ],
      "flags": {},
      "order": 4,
      "mode": 0,
      "inputs": [
        {
          "name": "images",
          "type": "IMAGE",
          "link": 5
        }
      ],
      "outputs": [],
      "properties": {},
      "widgets_values": [
        "Beeble_SwitchX"
      ]
    },
    {
      "id": 9,
      "type": "JoinImageWithAlpha",
      "pos": [
        1070,
        1840
      ],
      "size": [
        225,
        8
      ],
      "flags": {
        "collapsed": true
      },
      "order": 7,
      "mode": 0,
      "inputs": [
        {
          "name": "image",
          "type": "IMAGE",
          "link": 8
        },
        {
          "name": "alpha",
          "type": "MASK",
          "link": 12
        }
      ],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            9
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "JoinImageWithAlpha"
      },
      "widgets_values": []
    },
    {
      "id": 10,
      "type": "LoadImage",
      "pos": [
        170,
        1250
      ],
      "size": [
        360,
        490
      ],
      "flags": {},
      "order": 0,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            7,
            8,
            18
          ]
        },
        {
          "name": "MASK",
          "type": "MASK",
          "links": []
        }
      ],
      "properties": {
        "Node name for S&R": "LoadImage"
      },
      "widgets_values": [
        "soft_light_headphones_man.png",
        "image"
      ]
    },
    {
      "id": 11,
      "type": "SaveImage",
      "pos": [
        1070,
        1900
      ],
      "size": [
        550,
        460
      ],
      "flags": {},
      "order": 8,
      "mode": 0,
      "inputs": [
        {
          "name": "images",
          "type": "IMAGE",
          "link": 9
        }
      ],
      "outputs": [],
      "properties": {},
      "widgets_values": [
        "Beeble_SX_cutout"
      ]
    },
    {
      "id": 13,
      "type": "InvertMask",
      "pos": [
        1070,
        1790
      ],
      "size": [
        225,
        8
      ],
      "flags": {
        "collapsed": true
      },
      "order": 6,
      "mode": 0,
      "inputs": [
        {
          "name": "mask",
          "type": "MASK",
          "link": 11
        }
      ],
      "outputs": [
        {
          "name": "MASK",
          "type": "MASK",
          "links": [
            12
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "InvertMask"
      },
      "widgets_values": []
    },
    {
      "id": 16,
      "type": "ImageCompare",
      "pos": [
        1560,
        1250
      ],
      "size": [
        490,
        470
      ],
      "flags": {},
      "order": 5,
      "mode": 0,
      "inputs": [
        {
          "name": "image_a",
          "shape": 7,
          "type": "IMAGE",
          "link": 18
        },
        {
          "name": "image_b",
          "shape": 7,
          "type": "IMAGE",
          "link": 19
        }
      ],
      "outputs": [],
      "properties": {
        "Node name for S&R": "ImageCompare"
      },
      "widgets_values": []
    },
    {
      "id": 17,
      "type": "LoadImage",
      "pos": [
        180,
        1820
      ],
      "size": [
        350,
        420
      ],
      "flags": {},
      "order": 1,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            24
          ]
        },
        {
          "name": "MASK",
          "type": "MASK",
          "links": null
        }
      ],
      "title": "Load Image (Optional)",
      "properties": {
        "Node name for S&R": "LoadImage"
      },
      "widgets_values": [
        "simple_modern_living_space.png",
        "image"
      ]
    },
    {
      "id": 19,
      "type": "MarkdownNote",
      "pos": [
        -460,
        1250
      ],
      "size": [
        550,
        1066.53125
      ],
      "flags": {},
      "order": 2,
      "mode": 0,
      "inputs": [],
      "outputs": [],
      "title": "Beeble SwitchX Image Edit",
      "properties": {},
      "widgets_values": [
        "## Beeble SwitchX — Image Edit\n\n**Switch anything, keep what matters.** Masked regions follow your prompt and reference; unmasked regions keep the source pixels and are relit to match.\n\n---\n\n### What this graph does\n\n1. **Source image** — the still SwitchX edits.\n2. **Reference image** (optional) — visual blueprint for background, lighting, mood, and costumes. Masked areas are filled from it; the subject adopts its look without replacing unmasked pixels.\n3. **Beeble API** — uploads both, runs SwitchX, then downloads the **render** and the **alpha matte** Beeble used.\n4. **Outputs you get:** the composited result, a before/after compare, and (via alpha) a transparent cutout PNG.\n\nAt least one of **prompt** or **reference_image** is required.\n\n---\n\n### Alpha modes\n\n| Comfy | Beeble | Best for |\n|-------|--------|----------|\n| **auto** | Auto | Background swap, relighting, virtual production |\n| **select** | Select | Targeted edits (outfit, inpainting); connect your mask |\n| **fill** | Fill | Full-frame relight/restyle; no separate alpha output |\n| **custom** | Upload | Custom matte from Nuke, After Effects, etc. |\n\n---\n\n### Prompting \n\nBe specific — environment, lighting, mood:\n\n*\"A dramatic cliff in Ireland, soft overcast lighting, highly detailed props.\"*\n\nAvoid vague prompts (e.g. *\"Take me to heaven\"*).\n\n**Reference image:** does not need to match the source perfectly; SwitchX keeps your real pixels outside the mask and only pulls style/lighting from the reference.\n\nVideo: use **Beeble SwitchX Video Edit** (max 240 frames)."
      ],
      "color": "#222",
      "bgcolor": "#000"
    }
  ],
  "links": [
    [
      5,
      7,
      0,
      8,
      0,
      "IMAGE"
    ],
    [
      7,
      10,
      0,
      7,
      0,
      "IMAGE"
    ],
    [
      8,
      10,
      0,
      9,
      0,
      "IMAGE"
    ],
    [
      9,
      9,
      0,
      11,
      0,
      "IMAGE"
    ],
    [
      11,
      7,
      1,
      13,
      0,
      "MASK"
    ],
    [
      12,
      13,
      0,
      9,
      1,
      "MASK"
    ],
    [
      18,
      10,
      0,
      16,
      0,
      "IMAGE"
    ],
    [
      19,
      7,
      0,
      16,
      1,
      "IMAGE"
    ],
    [
      24,
      17,
      0,
      7,
      1,
      "IMAGE"
    ]
  ],
  "groups": [],
  "config": {},
  "extra": {
    "ds": {
      "scale": 0.22598469443037644,
      "offset": [
        3709.0954069031814,
        613.1346540992765
      ]
    },
    "frontendVersion": "1.44.19"
  },
  "version": 0.4
}