{
  "id": "a7d1c2e3-0f4b-4c5d-8e6f-1a2b3c4d5e01",
  "revision": 0,
  "last_node_id": 28,
  "last_link_id": 33,
  "nodes": [
    {
      "id": 11,
      "type": "LoadImage",
      "pos": [
        0,
        0
      ],
      "size": [
        380,
        520
      ],
      "flags": {},
      "order": 0,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            11
          ]
        },
        {
          "name": "MASK",
          "type": "MASK",
          "links": null
        }
      ],
      "properties": {
        "Node name for S&R": "LoadImage"
      },
      "widgets_values": [
        "referenz-portrait.jpg",
        "image"
      ],
      "title": "Figure 1 · portrait"
    },
    {
      "id": 12,
      "type": "LoadImage",
      "pos": [
        0,
        560
      ],
      "size": [
        380,
        520
      ],
      "flags": {},
      "order": 1,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            12
          ]
        },
        {
          "name": "MASK",
          "type": "MASK",
          "links": null
        }
      ],
      "properties": {
        "Node name for S&R": "LoadImage"
      },
      "widgets_values": [
        "produkt-cargo.jpg",
        "image"
      ],
      "title": "Figure 2 · product shot"
    },
    {
      "id": 1,
      "type": "UnetLoaderGGUF",
      "pos": [
        420,
        0
      ],
      "size": [
        340,
        58
      ],
      "flags": {},
      "order": 2,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "MODEL",
          "type": "MODEL",
          "links": [
            1
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "UnetLoaderGGUF"
      },
      "widgets_values": [
        "flux-2-klein-9b-Q8_0.gguf"
      ]
    },
    {
      "id": 2,
      "type": "CLIPLoader",
      "pos": [
        420,
        100
      ],
      "size": [
        340,
        106
      ],
      "flags": {},
      "order": 3,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "CLIP",
          "type": "CLIP",
          "links": [
            2
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "CLIPLoader"
      },
      "widgets_values": [
        "qwen_3_8b.safetensors",
        "flux2",
        "default"
      ]
    },
    {
      "id": 3,
      "type": "VAELoader",
      "pos": [
        420,
        240
      ],
      "size": [
        340,
        58
      ],
      "flags": {},
      "order": 4,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "VAE",
          "type": "VAE",
          "links": [
            3,
            4,
            5
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "VAELoader"
      },
      "widgets_values": [
        "flux2-vae.safetensors"
      ]
    },
    {
      "id": 8,
      "type": "ImageScaleToTotalPixels",
      "pos": [
        420,
        560
      ],
      "size": [
        270,
        106
      ],
      "flags": {},
      "order": 5,
      "mode": 0,
      "inputs": [
        {
          "name": "image",
          "type": "IMAGE",
          "link": 11
        }
      ],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            13
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "ImageScaleToTotalPixels"
      },
      "widgets_values": [
        "lanczos",
        1,
        1
      ],
      "title": "Figure 1 · 1 MP"
    },
    {
      "id": 9,
      "type": "ImageScaleToTotalPixels",
      "pos": [
        420,
        720
      ],
      "size": [
        270,
        106
      ],
      "flags": {},
      "order": 6,
      "mode": 0,
      "inputs": [
        {
          "name": "image",
          "type": "IMAGE",
          "link": 12
        }
      ],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            14
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "ImageScaleToTotalPixels"
      },
      "widgets_values": [
        "lanczos",
        1,
        1
      ],
      "title": "Figure 2 · 1 MP"
    },
    {
      "id": 4,
      "type": "CLIPTextEncode",
      "pos": [
        800,
        0
      ],
      "size": [
        480,
        640
      ],
      "flags": {},
      "order": 7,
      "mode": 0,
      "inputs": [
        {
          "name": "clip",
          "type": "CLIP",
          "link": 2
        }
      ],
      "outputs": [
        {
          "name": "CONDITIONING",
          "type": "CONDITIONING",
          "links": [
            6,
            7
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "CLIPTextEncode"
      },
      "widgets_values": [
        "{\n  \"image_type\": \"full-length commercial studio fashion photograph\",\n  \"references\": {\n    \"Figure 1\": \"identity of the woman: face, hair, skin, freckles\",\n    \"Figure 2\": \"the cargo pants: fabric\"\n  },\n  \"subject\": {\n    \"who\": \"the woman from Figure 1\",\n    \"body\": \"slim and trained\",\n    \"expression\": \"neutral and editorial\",\n    \"head\": \"lifted chin\",\n    \"pose\": \"relaxed contrapposto: weight on one leg, the other knee slightly bent, shoulders turned a little away from the camera, one hand loosely in a pant pocket, the other arm hanging naturally\",\n    \"feet\": \"bare feet, no shoes\",\n    \"priority\": 1\n  },\n  \"wardrobe\": {\n    \"sweater\": {\n      \"description\": \"oversized wide grey one-shoulder knit sweater with a loose, chunky rib texture\",\n      \"fit\": \"loosely slung, as if it has slipped: the frame-left shoulder and collarbone are bare, the knit rests softly on the frame-right shoulder\",\n      \"length\": \"ends at the hips, the hem falling loosely over the waistband\",\n      \"priority\": 1\n    },\n    \"pants\": {\n      \"reference\": \"Figure 2\",\n      \"cut\": \"barrel-cut camouflage cargo pants: legs curve outward from the hips, widest at the knee, and taper slightly toward the hem\",\n      \"fit\": \"baggy, very loose\",\n      \"rise\": \"worn low on the hips\",\n      \"priority\": 1\n    }\n  },\n  \"interactions\": [\n    \"the soft key light brings out the rib texture of the knit and falls evenly on the bare shoulder\",\n    \"the wide pant legs fall to the floor and rest on the bare feet\"\n  ],\n  \"setting\": {\n    \"backdrop\": \"seamless pale grey studio backdrop\",\n    \"priority\": 3\n  },\n  \"lighting\": {\n    \"key\": \"large soft diffused key light\",\n    \"priority\": 2\n  },\n  \"style\": {\n    \"palette\": \"neutral\",\n    \"quality\": \"clean high-end fashion catalogue\",\n    \"priority\": 2\n  }\n}"
      ],
      "title": "Positive Prompt",
      "color": "#232",
      "bgcolor": "#353"
    },
    {
      "id": 5,
      "type": "ConditioningZeroOut",
      "pos": [
        800,
        680
      ],
      "size": [
        225,
        46
      ],
      "flags": {},
      "order": 8,
      "mode": 0,
      "inputs": [
        {
          "name": "conditioning",
          "type": "CONDITIONING",
          "link": 7
        }
      ],
      "outputs": [
        {
          "name": "CONDITIONING",
          "type": "CONDITIONING",
          "links": [
            8
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "ConditioningZeroOut"
      }
    },
    {
      "id": 10,
      "type": "VAEEncode",
      "pos": [
        800,
        780
      ],
      "size": [
        190,
        46
      ],
      "flags": {},
      "order": 9,
      "mode": 0,
      "inputs": [
        {
          "name": "pixels",
          "type": "IMAGE",
          "link": 13
        },
        {
          "name": "vae",
          "type": "VAE",
          "link": 3
        }
      ],
      "outputs": [
        {
          "name": "LATENT",
          "type": "LATENT",
          "links": [
            15,
            16
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "VAEEncode"
      },
      "title": "VAE Encode · Figure 1"
    },
    {
      "id": 13,
      "type": "VAEEncode",
      "pos": [
        800,
        880
      ],
      "size": [
        190,
        46
      ],
      "flags": {},
      "order": 10,
      "mode": 0,
      "inputs": [
        {
          "name": "pixels",
          "type": "IMAGE",
          "link": 14
        },
        {
          "name": "vae",
          "type": "VAE",
          "link": 4
        }
      ],
      "outputs": [
        {
          "name": "LATENT",
          "type": "LATENT",
          "links": [
            17,
            18
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "VAEEncode"
      },
      "title": "VAE Encode · Figure 2"
    },
    {
      "id": 14,
      "type": "ReferenceLatent",
      "pos": [
        1320,
        560
      ],
      "size": [
        210,
        46
      ],
      "flags": {},
      "order": 11,
      "mode": 0,
      "inputs": [
        {
          "name": "conditioning",
          "type": "CONDITIONING",
          "link": 6
        },
        {
          "name": "latent",
          "type": "LATENT",
          "link": 15,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "CONDITIONING",
          "type": "CONDITIONING",
          "links": [
            19
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "ReferenceLatent"
      },
      "title": "Figure 1 · positive"
    },
    {
      "id": 15,
      "type": "ReferenceLatent",
      "pos": [
        1320,
        660
      ],
      "size": [
        210,
        46
      ],
      "flags": {},
      "order": 12,
      "mode": 0,
      "inputs": [
        {
          "name": "conditioning",
          "type": "CONDITIONING",
          "link": 8
        },
        {
          "name": "latent",
          "type": "LATENT",
          "link": 16,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "CONDITIONING",
          "type": "CONDITIONING",
          "links": [
            20
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "ReferenceLatent"
      },
      "title": "Figure 1 · negative"
    },
    {
      "id": 16,
      "type": "ReferenceLatent",
      "pos": [
        1560,
        560
      ],
      "size": [
        210,
        46
      ],
      "flags": {},
      "order": 13,
      "mode": 0,
      "inputs": [
        {
          "name": "conditioning",
          "type": "CONDITIONING",
          "link": 19
        },
        {
          "name": "latent",
          "type": "LATENT",
          "link": 17,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "CONDITIONING",
          "type": "CONDITIONING",
          "links": [
            21
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "ReferenceLatent"
      },
      "title": "Figure 2 · positive"
    },
    {
      "id": 17,
      "type": "ReferenceLatent",
      "pos": [
        1560,
        660
      ],
      "size": [
        210,
        46
      ],
      "flags": {},
      "order": 14,
      "mode": 0,
      "inputs": [
        {
          "name": "conditioning",
          "type": "CONDITIONING",
          "link": 20
        },
        {
          "name": "latent",
          "type": "LATENT",
          "link": 18,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "CONDITIONING",
          "type": "CONDITIONING",
          "links": [
            22
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "ReferenceLatent"
      },
      "title": "Figure 2 · negative"
    },
    {
      "id": 18,
      "type": "RandomNoise",
      "pos": [
        1820,
        0
      ],
      "size": [
        300,
        82
      ],
      "flags": {},
      "order": 15,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "NOISE",
          "type": "NOISE",
          "links": [
            23
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "RandomNoise"
      },
      "widgets_values": [
        1110905281820985,
        "fixed"
      ]
    },
    {
      "id": 19,
      "type": "CFGGuider",
      "pos": [
        1820,
        120
      ],
      "size": [
        270,
        98
      ],
      "flags": {},
      "order": 16,
      "mode": 0,
      "inputs": [
        {
          "name": "model",
          "type": "MODEL",
          "link": 1
        },
        {
          "name": "positive",
          "type": "CONDITIONING",
          "link": 21
        },
        {
          "name": "negative",
          "type": "CONDITIONING",
          "link": 22
        }
      ],
      "outputs": [
        {
          "name": "GUIDER",
          "type": "GUIDER",
          "links": [
            24
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "CFGGuider"
      },
      "widgets_values": [
        1
      ]
    },
    {
      "id": 20,
      "type": "KSamplerSelect",
      "pos": [
        1820,
        260
      ],
      "size": [
        270,
        58
      ],
      "flags": {},
      "order": 17,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "SAMPLER",
          "type": "SAMPLER",
          "links": [
            25
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "KSamplerSelect"
      },
      "widgets_values": [
        "euler"
      ]
    },
    {
      "id": 21,
      "type": "PrimitiveInt",
      "pos": [
        1820,
        360
      ],
      "size": [
        270,
        82
      ],
      "flags": {},
      "order": 18,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "INT",
          "type": "INT",
          "links": [
            26,
            27
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "PrimitiveInt"
      },
      "widgets_values": [
        1408,
        "fixed"
      ],
      "title": "Width"
    },
    {
      "id": 22,
      "type": "PrimitiveInt",
      "pos": [
        1820,
        470
      ],
      "size": [
        270,
        82
      ],
      "flags": {},
      "order": 19,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "INT",
          "type": "INT",
          "links": [
            28,
            29
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "PrimitiveInt"
      },
      "widgets_values": [
        1408,
        "fixed"
      ],
      "title": "Height"
    },
    {
      "id": 23,
      "type": "Flux2Scheduler",
      "pos": [
        1820,
        590
      ],
      "size": [
        270,
        106
      ],
      "flags": {},
      "order": 20,
      "mode": 0,
      "inputs": [
        {
          "name": "width",
          "type": "INT",
          "link": 26,
          "widget": {
            "name": "width"
          }
        },
        {
          "name": "height",
          "type": "INT",
          "link": 28,
          "widget": {
            "name": "height"
          }
        }
      ],
      "outputs": [
        {
          "name": "SIGMAS",
          "type": "SIGMAS",
          "links": [
            30
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "Flux2Scheduler"
      },
      "widgets_values": [
        4,
        1408,
        1408
      ]
    },
    {
      "id": 24,
      "type": "EmptyFlux2LatentImage",
      "pos": [
        1820,
        730
      ],
      "size": [
        270,
        106
      ],
      "flags": {},
      "order": 21,
      "mode": 0,
      "inputs": [
        {
          "name": "width",
          "type": "INT",
          "link": 27,
          "widget": {
            "name": "width"
          }
        },
        {
          "name": "height",
          "type": "INT",
          "link": 29,
          "widget": {
            "name": "height"
          }
        }
      ],
      "outputs": [
        {
          "name": "LATENT",
          "type": "LATENT",
          "links": [
            31
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "EmptyFlux2LatentImage"
      },
      "widgets_values": [
        1408,
        1408,
        1
      ]
    },
    {
      "id": 25,
      "type": "SamplerCustomAdvanced",
      "pos": [
        2140,
        0
      ],
      "size": [
        260,
        106
      ],
      "flags": {},
      "order": 22,
      "mode": 0,
      "inputs": [
        {
          "name": "noise",
          "type": "NOISE",
          "link": 23
        },
        {
          "name": "guider",
          "type": "GUIDER",
          "link": 24
        },
        {
          "name": "sampler",
          "type": "SAMPLER",
          "link": 25
        },
        {
          "name": "sigmas",
          "type": "SIGMAS",
          "link": 30
        },
        {
          "name": "latent_image",
          "type": "LATENT",
          "link": 31
        }
      ],
      "outputs": [
        {
          "name": "output",
          "type": "LATENT",
          "links": [
            32
          ]
        },
        {
          "name": "denoised_output",
          "type": "LATENT",
          "links": []
        }
      ],
      "properties": {
        "Node name for S&R": "SamplerCustomAdvanced"
      }
    },
    {
      "id": 26,
      "type": "VAEDecode",
      "pos": [
        2140,
        160
      ],
      "size": [
        210,
        46
      ],
      "flags": {},
      "order": 23,
      "mode": 0,
      "inputs": [
        {
          "name": "samples",
          "type": "LATENT",
          "link": 32
        },
        {
          "name": "vae",
          "type": "VAE",
          "link": 5
        }
      ],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            33
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "VAEDecode"
      }
    },
    {
      "id": 27,
      "type": "SaveImage",
      "pos": [
        2440,
        0
      ],
      "size": [
        600,
        700
      ],
      "flags": {},
      "order": 24,
      "mode": 0,
      "inputs": [
        {
          "name": "images",
          "type": "IMAGE",
          "link": 33
        }
      ],
      "outputs": [],
      "properties": {
        "Node name for S&R": "SaveImage"
      },
      "widgets_values": [
        "Flux2_Klein_reference"
      ]
    },
    {
      "id": 28,
      "type": "MarkdownNote",
      "pos": [
        1320,
        780
      ],
      "size": [
        450,
        260
      ],
      "flags": {},
      "order": 25,
      "mode": 0,
      "inputs": [],
      "outputs": [],
      "properties": {},
      "widgets_values": [
        "**Flux.2 Klein · two reference images** · flat, no subgraphs · 3dwrkshp.com\n\nFigure 1 = portrait (identity), Figure 2 = product shot. Each reference: Load Image → 1 MP → VAE Encode → ReferenceLatent on the positive AND the negative chain. The sampler starts on an empty latent — this is not img2img.\n\nDistilled model only — the Base variant ignores references. Needs ComfyUI-GGUF for the GGUF loader.\n\nOutput size is set in Width/Height only (decoupled from Figure 1). 4 steps are enough."
      ],
      "title": "Read me",
      "color": "#222",
      "bgcolor": "#000"
    }
  ],
  "links": [
    [
      1,
      1,
      0,
      19,
      0,
      "MODEL"
    ],
    [
      2,
      2,
      0,
      4,
      0,
      "CLIP"
    ],
    [
      3,
      3,
      0,
      10,
      1,
      "VAE"
    ],
    [
      4,
      3,
      0,
      13,
      1,
      "VAE"
    ],
    [
      5,
      3,
      0,
      26,
      1,
      "VAE"
    ],
    [
      6,
      4,
      0,
      14,
      0,
      "CONDITIONING"
    ],
    [
      7,
      4,
      0,
      5,
      0,
      "CONDITIONING"
    ],
    [
      8,
      5,
      0,
      15,
      0,
      "CONDITIONING"
    ],
    [
      11,
      11,
      0,
      8,
      0,
      "IMAGE"
    ],
    [
      12,
      12,
      0,
      9,
      0,
      "IMAGE"
    ],
    [
      13,
      8,
      0,
      10,
      0,
      "IMAGE"
    ],
    [
      14,
      9,
      0,
      13,
      0,
      "IMAGE"
    ],
    [
      15,
      10,
      0,
      14,
      1,
      "LATENT"
    ],
    [
      16,
      10,
      0,
      15,
      1,
      "LATENT"
    ],
    [
      17,
      13,
      0,
      16,
      1,
      "LATENT"
    ],
    [
      18,
      13,
      0,
      17,
      1,
      "LATENT"
    ],
    [
      19,
      14,
      0,
      16,
      0,
      "CONDITIONING"
    ],
    [
      20,
      15,
      0,
      17,
      0,
      "CONDITIONING"
    ],
    [
      21,
      16,
      0,
      19,
      1,
      "CONDITIONING"
    ],
    [
      22,
      17,
      0,
      19,
      2,
      "CONDITIONING"
    ],
    [
      23,
      18,
      0,
      25,
      0,
      "NOISE"
    ],
    [
      24,
      19,
      0,
      25,
      1,
      "GUIDER"
    ],
    [
      25,
      20,
      0,
      25,
      2,
      "SAMPLER"
    ],
    [
      26,
      21,
      0,
      23,
      0,
      "INT"
    ],
    [
      27,
      21,
      0,
      24,
      0,
      "INT"
    ],
    [
      28,
      22,
      0,
      23,
      1,
      "INT"
    ],
    [
      29,
      22,
      0,
      24,
      1,
      "INT"
    ],
    [
      30,
      23,
      0,
      25,
      3,
      "SIGMAS"
    ],
    [
      31,
      24,
      0,
      25,
      4,
      "LATENT"
    ],
    [
      32,
      25,
      0,
      26,
      0,
      "LATENT"
    ],
    [
      33,
      26,
      0,
      27,
      0,
      "IMAGE"
    ]
  ],
  "groups": [],
  "config": {},
  "extra": {
    "ds": {
      "scale": 0.55,
      "offset": [
        80,
        80
      ]
    }
  },
  "version": 0.4
}