{
  "id": "0ae2b50b-b07a-4465-bb7c-d8fe58e8e0ac",
  "revision": 0,
  "last_node_id": 53,
  "last_link_id": 72,
  "nodes": [
    {
      "id": 1,
      "type": "UNETLoader",
      "pos": [
        -100,
        -140
      ],
      "size": [
        440,
        90
      ],
      "flags": {},
      "order": 0,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "MODEL",
          "type": "MODEL",
          "slot_index": 0,
          "links": [
            1
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "UNETLoader",
        "models": [
          {
            "name": "flux3-image-klein-int8-convrot.safetensors",
            "url": "https://huggingface.co/black-forest-labs/flux-3-image-klein-comfy/resolve/main/diffusion_models/flux3-image-klein-int8-convrot.safetensors",
            "directory": "diffusion_models"
          }
        ]
      },
      "widgets_values": [
        "flux3-image-klein-int8-convrot.safetensors",
        "default"
      ],
      "widgets_values_named": {
        "unet_name": "flux3-image-klein-int8-convrot.safetensors",
        "weight_dtype": "default"
      }
    },
    {
      "id": 2,
      "type": "CLIPLoader",
      "pos": [
        -100,
        20
      ],
      "size": [
        440,
        120
      ],
      "flags": {},
      "order": 1,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "CLIP",
          "type": "CLIP",
          "slot_index": 0,
          "links": [
            43
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "CLIPLoader",
        "models": [
          {
            "name": "qwen3vl_4b_int8_convrot.safetensors",
            "url": "https://huggingface.co/black-forest-labs/flux-3-image-klein-comfy/resolve/main/text_encoders/qwen3vl_4b_int8_convrot.safetensors",
            "directory": "text_encoders"
          }
        ]
      },
      "widgets_values": [
        "qwen3vl_4b_int8_convrot.safetensors",
        "flux3",
        "default"
      ],
      "widgets_values_named": {
        "clip_name": "qwen3vl_4b_int8_convrot.safetensors",
        "type": "flux3",
        "device": "default"
      }
    },
    {
      "id": 3,
      "type": "VAELoader",
      "pos": [
        -100,
        210
      ],
      "size": [
        450,
        70
      ],
      "flags": {},
      "order": 2,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "VAE",
          "type": "VAE",
          "slot_index": 0,
          "links": [
            5,
            25
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "VAELoader",
        "models": [
          {
            "name": "flux2-vae.safetensors",
            "url": "https://huggingface.co/black-forest-labs/flux-3-image-klein-comfy/resolve/main/vae/flux2-vae.safetensors",
            "directory": "vae"
          }
        ]
      },
      "widgets_values": [
        "flux2-vae.safetensors"
      ],
      "widgets_values_named": {
        "vae_name": "flux2-vae.safetensors"
      }
    },
    {
      "id": 4,
      "type": "CLIPTextEncode",
      "pos": [
        420,
        -140
      ],
      "size": [
        430,
        370
      ],
      "flags": {},
      "order": 18,
      "mode": 0,
      "inputs": [
        {
          "name": "clip",
          "type": "CLIP",
          "link": 43
        },
        {
          "name": "text",
          "type": "STRING",
          "widget": {
            "name": "text"
          },
          "link": 70
        }
      ],
      "outputs": [
        {
          "name": "CONDITIONING",
          "type": "CONDITIONING",
          "slot_index": 0,
          "links": [
            20,
            44
          ]
        }
      ],
      "title": "Positive Prompt",
      "properties": {
        "Node name for S&R": "CLIPTextEncode"
      },
      "widgets_values": [
        ""
      ],
      "widgets_values_named": {
        "text": ""
      }
    },
    {
      "id": 7,
      "type": "KSampler",
      "pos": [
        1440,
        -170
      ],
      "size": [
        340,
        520
      ],
      "flags": {},
      "order": 21,
      "mode": 0,
      "inputs": [
        {
          "name": "model",
          "type": "MODEL",
          "link": 1
        },
        {
          "name": "positive",
          "type": "CONDITIONING",
          "link": 22
        },
        {
          "name": "negative",
          "type": "CONDITIONING",
          "link": 23
        },
        {
          "name": "latent_image",
          "type": "LATENT",
          "link": 24
        }
      ],
      "outputs": [
        {
          "name": "LATENT",
          "type": "LATENT",
          "slot_index": 0,
          "links": [
            4
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "KSampler"
      },
      "widgets_values": [
        563228241303057,
        "randomize",
        16,
        1,
        "euler",
        "simple",
        1
      ],
      "widgets_values_named": {
        "seed": 563228241303057,
        "control_after_generate": "randomize",
        "steps": 16,
        "cfg": 1,
        "sampler_name": "euler",
        "scheduler": "simple",
        "denoise": 1
      }
    },
    {
      "id": 8,
      "type": "VAEDecode",
      "pos": [
        1870,
        -210
      ],
      "size": [
        210,
        50
      ],
      "flags": {
        "collapsed": false
      },
      "order": 22,
      "mode": 0,
      "inputs": [
        {
          "name": "samples",
          "type": "LATENT",
          "link": 4
        },
        {
          "name": "vae",
          "type": "VAE",
          "link": 5
        }
      ],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "slot_index": 0,
          "links": [
            6
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "VAEDecode"
      }
    },
    {
      "id": 9,
      "type": "SaveImage",
      "pos": [
        2160,
        -210
      ],
      "size": [
        530,
        620
      ],
      "flags": {},
      "order": 23,
      "mode": 0,
      "inputs": [
        {
          "name": "images",
          "type": "IMAGE",
          "link": 6
        }
      ],
      "outputs": [
        {
          "name": "images",
          "type": "IMAGE",
          "links": [
            30
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "SaveImage"
      },
      "widgets_values": [
        "image_flux3_klein_distilled_image_edit"
      ],
      "widgets_values_named": {
        "filename_prefix": "image_flux3_klein_distilled_image_edit"
      }
    },
    {
      "id": 10,
      "type": "MarkdownNote",
      "pos": [
        -1060,
        -210
      ],
      "size": [
        360,
        270
      ],
      "flags": {},
      "order": 3,
      "mode": 0,
      "inputs": [],
      "outputs": [],
      "title": "Notes",
      "properties": {
        "Node name for S&R": "MarkdownNote"
      },
      "widgets_values": [
        "## FLUX 3 Image Klein: editing\n\nSame files and sampler settings as text-to-image (50 steps, cfg 3.5, euler / simple).\n\n**References**: plug more input image to the `Set Reference Multi Latent` node, the first one is `<ref_image_0>` in the prompt, the next `<ref_image_1>`, and so on. Add every reference to **both** the positive and the negative, as the reference pipeline does.\n\n**Size**: the reference is scaled to ~1 MP here and the output latent takes its size. BFL's pipeline keeps references at native size (up to ~16 MP): raise the megapixels for more reference detail at a higher cost.\n\n**Prompting**: write a full caption of the result, with the edit folded in."
      ],
      "widgets_values_named": {
        "text": "## FLUX 3 Image Klein: editing\n\nSame files and sampler settings as text-to-image (50 steps, cfg 3.5, euler / simple).\n\n**References**: plug more input image to the `Set Reference Multi Latent` node, the first one is `<ref_image_0>` in the prompt, the next `<ref_image_1>`, and so on. Add every reference to **both** the positive and the negative, as the reference pipeline does.\n\n**Size**: the reference is scaled to ~1 MP here and the output latent takes its size. BFL's pipeline keeps references at native size (up to ~16 MP): raise the megapixels for more reference detail at a higher cost.\n\n**Prompting**: write a full caption of the result, with the edit folded in."
      },
      "color": "#222",
      "bgcolor": "#000"
    },
    {
      "id": 11,
      "type": "LoadImage",
      "pos": [
        -630,
        -160
      ],
      "size": [
        440,
        500
      ],
      "flags": {},
      "order": 4,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "slot_index": 0,
          "links": [
            27,
            29,
            58,
            67
          ]
        },
        {
          "name": "MASK",
          "type": "MASK",
          "slot_index": 1,
          "links": []
        }
      ],
      "properties": {
        "Node name for S&R": "LoadImage"
      },
      "widgets_values": [
        "woman_gold_earring_teal_top_portrait.png",
        "image"
      ],
      "widgets_values_named": {
        "image": "woman_gold_earring_teal_top_portrait.png",
        "upload": "image"
      }
    },
    {
      "id": 17,
      "type": "ReferenceMultiLatent",
      "pos": [
        990,
        -150
      ],
      "size": [
        280,
        170
      ],
      "flags": {},
      "order": 20,
      "mode": 0,
      "inputs": [
        {
          "name": "positive",
          "type": "CONDITIONING",
          "link": 20
        },
        {
          "name": "negative",
          "shape": 7,
          "type": "CONDITIONING",
          "link": 45
        },
        {
          "name": "vae",
          "shape": 7,
          "type": "VAE",
          "link": 25
        },
        {
          "name": "images.image0",
          "shape": 7,
          "type": "IMAGE",
          "link": 27
        },
        {
          "name": "images.image1",
          "shape": 7,
          "type": "IMAGE",
          "link": null
        }
      ],
      "outputs": [
        {
          "name": "positive",
          "type": "CONDITIONING",
          "links": [
            22
          ]
        },
        {
          "name": "negative",
          "type": "CONDITIONING",
          "links": [
            23
          ]
        },
        {
          "name": "empty_latent",
          "type": "LATENT",
          "links": [
            24
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "ReferenceMultiLatent"
      },
      "widgets_values": [
        "resize",
        1
      ],
      "widgets_values_named": {
        "resolution": "resize",
        "resolution.megapixels": 1
      },
      "color": "#322",
      "bgcolor": "#533"
    },
    {
      "id": 18,
      "type": "ImageCompare",
      "pos": [
        2730,
        -210
      ],
      "size": [
        510,
        620
      ],
      "flags": {},
      "order": 24,
      "mode": 0,
      "inputs": [
        {
          "name": "image_a",
          "shape": 7,
          "type": "IMAGE",
          "link": 29
        },
        {
          "name": "image_b",
          "shape": 7,
          "type": "IMAGE",
          "link": 30
        }
      ],
      "outputs": [],
      "properties": {
        "Node name for S&R": "ImageCompare"
      },
      "widgets_values": [],
      "widgets_values_named": {}
    },
    {
      "id": 26,
      "type": "MarkdownNote",
      "pos": [
        -1550,
        -210
      ],
      "size": [
        450,
        650
      ],
      "flags": {},
      "order": 6,
      "mode": 0,
      "inputs": [],
      "outputs": [],
      "properties": {},
      "widgets_values": [
        "## Input Asset\n\n- [woman_gold_earring_teal_top_portrait.png](https://raw.githubusercontent.com/Comfy-Org/workflow_templates/refs/heads/main/input/woman_gold_earring_teal_top_portrait.png)\n\n## Model Links\n\n- [Hugging Face:black-forest-labs/flux-3-image-klein-comfy](https://huggingface.co/black-forest-labs/flux-3-image-klein-comfy)\n\n> **VRAM tip** — this template ships the quantised distilled checkpoint to keep the footprint small. With more than 24 GB of VRAM, use the bf16 weights instead: [`flux3-image-klein-bf16.safetensors`](https://huggingface.co/black-forest-labs/flux-3-image-klein-comfy/resolve/main/diffusion_models/flux3-image-klein-bf16.safetensors).\n\n**diffusion_models**\n\n- [flux3-image-klein-int8-convrot.safetensors](https://huggingface.co/black-forest-labs/flux-3-image-klein-comfy/resolve/main/diffusion_models/flux3-image-klein-int8-convrot.safetensors)\n\n**text_encoders**\n\n- [qwen3.5_9b_flux3_prompt_upsampler_w4a8.safetensors](https://huggingface.co/black-forest-labs/flux-3-image-klein-comfy/blob/main/text_encoders/qwen3.5_9b_flux3_prompt_upsampler_w4a8.safetensors)\n- [qwen3vl_4b_int8_convrot.safetensors](https://huggingface.co/black-forest-labs/flux-3-image-klein-comfy/resolve/main/text_encoders/qwen3vl_4b_int8_convrot.safetensors)\n\n**vae**\n\n- [flux2-vae.safetensors](https://huggingface.co/black-forest-labs/flux-3-image-klein-comfy/resolve/main/vae/flux2-vae.safetensors)\n\n\n## Model Storage Location\n\n```\n📂 ComfyUI/\n├── 📂 models/\n│   ├── 📂 diffusion_models/\n│   │   └── flux3-image-klein-int8-convrot.safetensors\n│   ├── 📂 text_encoders/\n│   │   ├── qwen3.5_9b_flux3_prompt_upsampler_w4a8.safetensors\n│   │   └── qwen3vl_4b_int8_convrot.safetensors\n│   └── 📂 vae/\n│       └── flux2-vae.safetensors\n```\n\n## Report Issue\n\nNote: Please update ComfyUI first ([guide](https://docs.comfy.org/installation/update_comfyui)) and prepare required models. Desktop/Cloud updates follow stable releases, so some nightly-supported models may not be available yet.\n\n- Cannot run / runtime errors: [ComfyUI/issues](https://github.com/comfyanonymous/ComfyUI/issues)\n- UI / frontend issues: [ComfyUI_frontend/issues](https://github.com/Comfy-Org/ComfyUI_frontend/issues)\n- Workflow issues: [workflow_templates/issues](https://github.com/Comfy-Org/workflow_templates/issues)\n"
      ],
      "widgets_values_named": {
        "text": "## Input Asset\n\n- [woman_gold_earring_teal_top_portrait.png](https://raw.githubusercontent.com/Comfy-Org/workflow_templates/refs/heads/main/input/woman_gold_earring_teal_top_portrait.png)\n\n## Model Links\n\n- [Hugging Face:black-forest-labs/flux-3-image-klein-comfy](https://huggingface.co/black-forest-labs/flux-3-image-klein-comfy)\n\n> **VRAM tip** — this template ships the quantised distilled checkpoint to keep the footprint small. With more than 24 GB of VRAM, use the bf16 weights instead: [`flux3-image-klein-bf16.safetensors`](https://huggingface.co/black-forest-labs/flux-3-image-klein-comfy/resolve/main/diffusion_models/flux3-image-klein-bf16.safetensors).\n\n**diffusion_models**\n\n- [flux3-image-klein-int8-convrot.safetensors](https://huggingface.co/black-forest-labs/flux-3-image-klein-comfy/resolve/main/diffusion_models/flux3-image-klein-int8-convrot.safetensors)\n\n**text_encoders**\n\n- [qwen3.5_9b_flux3_prompt_upsampler_w4a8.safetensors](https://huggingface.co/black-forest-labs/flux-3-image-klein-comfy/blob/main/text_encoders/qwen3.5_9b_flux3_prompt_upsampler_w4a8.safetensors)\n- [qwen3vl_4b_int8_convrot.safetensors](https://huggingface.co/black-forest-labs/flux-3-image-klein-comfy/resolve/main/text_encoders/qwen3vl_4b_int8_convrot.safetensors)\n\n**vae**\n\n- [flux2-vae.safetensors](https://huggingface.co/black-forest-labs/flux-3-image-klein-comfy/resolve/main/vae/flux2-vae.safetensors)\n\n\n## Model Storage Location\n\n```\n📂 ComfyUI/\n├── 📂 models/\n│   ├── 📂 diffusion_models/\n│   │   └── flux3-image-klein-int8-convrot.safetensors\n│   ├── 📂 text_encoders/\n│   │   ├── qwen3.5_9b_flux3_prompt_upsampler_w4a8.safetensors\n│   │   └── qwen3vl_4b_int8_convrot.safetensors\n│   └── 📂 vae/\n│       └── flux2-vae.safetensors\n```\n\n## Report Issue\n\nNote: Please update ComfyUI first ([guide](https://docs.comfy.org/installation/update_comfyui)) and prepare required models. Desktop/Cloud updates follow stable releases, so some nightly-supported models may not be available yet.\n\n- Cannot run / runtime errors: [ComfyUI/issues](https://github.com/comfyanonymous/ComfyUI/issues)\n- UI / frontend issues: [ComfyUI_frontend/issues](https://github.com/Comfy-Org/ComfyUI_frontend/issues)\n- Workflow issues: [workflow_templates/issues](https://github.com/Comfy-Org/workflow_templates/issues)\n"
      },
      "color": "#222",
      "bgcolor": "#000"
    },
    {
      "id": 32,
      "type": "ConditioningZeroOut",
      "pos": [
        630,
        290
      ],
      "size": [
        210,
        30
      ],
      "flags": {},
      "order": 19,
      "mode": 0,
      "inputs": [
        {
          "name": "conditioning",
          "type": "CONDITIONING",
          "link": 44
        }
      ],
      "outputs": [
        {
          "name": "CONDITIONING",
          "type": "CONDITIONING",
          "links": [
            45
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "ConditioningZeroOut"
      }
    },
    {
      "id": 33,
      "type": "CreateBoundingBoxes",
      "pos": [
        -630,
        410
      ],
      "size": [
        440,
        540
      ],
      "flags": {},
      "order": 11,
      "mode": 0,
      "inputs": [
        {
          "name": "background",
          "shape": 7,
          "type": "IMAGE",
          "link": 58
        },
        {
          "name": "bboxes",
          "shape": 7,
          "type": "BOUNDING_BOX,ARRAY,STRING",
          "link": null
        }
      ],
      "outputs": [
        {
          "name": "preview",
          "type": "IMAGE",
          "links": null
        },
        {
          "name": "bboxes",
          "type": "BOUNDING_BOX",
          "links": null
        },
        {
          "name": "elements",
          "type": "ARRAY",
          "links": [
            59
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "CreateBoundingBoxes"
      },
      "widgets_values": [
        1360,
        752,
        [
          {
            "x": 512,
            "y": 288,
            "width": 224,
            "height": 224,
            "metadata": {
              "type": "obj",
              "text": "",
              "desc": "earring",
              "palette": []
            }
          }
        ],
        []
      ],
      "widgets_values_named": {
        "width": 1360,
        "height": 752,
        "editor_state": [
          {
            "x": 512,
            "y": 288,
            "width": 224,
            "height": 224,
            "metadata": {
              "type": "obj",
              "text": "",
              "desc": "earring",
              "palette": []
            }
          }
        ],
        "last_incoming": []
      },
      "color": "#322",
      "bgcolor": "#533"
    },
    {
      "id": 34,
      "type": "PreviewAny",
      "pos": [
        440,
        490
      ],
      "size": [
        390,
        330
      ],
      "flags": {},
      "order": 14,
      "mode": 0,
      "inputs": [
        {
          "name": "source",
          "type": "*",
          "link": 63
        }
      ],
      "outputs": [
        {
          "name": "STRING",
          "type": "STRING",
          "links": [
            64,
            71
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "PreviewAny"
      },
      "widgets_values": [],
      "widgets_values_named": {}
    },
    {
      "id": 35,
      "type": "MarkdownNote",
      "pos": [
        1010,
        250
      ],
      "size": [
        250,
        100
      ],
      "flags": {},
      "order": 7,
      "mode": 0,
      "inputs": [],
      "outputs": [],
      "properties": {},
      "widgets_values": [
        "Use `Empty Flux 2 Latent` node to customize image size\n\n`Create Bounding Boxes` node for node for creating prompts for precise editing"
      ],
      "widgets_values_named": {
        "text": "Use `Empty Flux 2 Latent` node to customize image size\n\n`Create Bounding Boxes` node for node for creating prompts for precise editing"
      },
      "color": "#222",
      "bgcolor": "#000"
    },
    {
      "id": 44,
      "type": "EmptyFlux2LatentImage",
      "pos": [
        1000,
        80
      ],
      "size": [
        270,
        110
      ],
      "flags": {},
      "order": 8,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "LATENT",
          "type": "LATENT",
          "links": null
        }
      ],
      "properties": {
        "Node name for S&R": "EmptyFlux2LatentImage"
      },
      "widgets_values": [
        1024,
        1024,
        1
      ],
      "widgets_values_named": {
        "width": 1024,
        "height": 1024,
        "batch_size": 1
      }
    },
    {
      "id": 46,
      "type": "CLIPLoader",
      "pos": [
        -110,
        -760
      ],
      "size": [
        440,
        120
      ],
      "flags": {},
      "order": 9,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "CLIP",
          "type": "CLIP",
          "slot_index": 0,
          "links": [
            54
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "CLIPLoader",
        "models": [
          {
            "name": "qwen3.5_9b_flux3_prompt_upsampler_w4a8.safetensors",
            "url": "https://huggingface.co/black-forest-labs/flux-3-image-klein-comfy/resolve/main/text_encoders/qwen3.5_9b_flux3_prompt_upsampler_w4a8.safetensors",
            "directory": "text_encoders"
          }
        ]
      },
      "widgets_values": [
        "qwen3.5_9b_flux3_prompt_upsampler_w4a8.safetensors",
        "flux3",
        "default"
      ],
      "widgets_values_named": {
        "clip_name": "qwen3.5_9b_flux3_prompt_upsampler_w4a8.safetensors",
        "type": "flux3",
        "device": "default"
      }
    },
    {
      "id": 47,
      "type": "TextGenerate",
      "pos": [
        390,
        -760
      ],
      "size": [
        400,
        460
      ],
      "flags": {},
      "order": 15,
      "mode": 0,
      "showAdvanced": false,
      "inputs": [
        {
          "name": "clip",
          "type": "CLIP",
          "link": 54
        },
        {
          "name": "image",
          "shape": 7,
          "type": "IMAGE",
          "link": 66
        },
        {
          "name": "video",
          "shape": 7,
          "type": "IMAGE",
          "link": null
        },
        {
          "name": "audio",
          "shape": 7,
          "type": "AUDIO",
          "link": null
        },
        {
          "name": "system_prompt",
          "shape": 7,
          "type": "STRING",
          "link": 60
        },
        {
          "name": "prompt",
          "type": "STRING",
          "widget": {
            "name": "prompt"
          },
          "link": 64
        }
      ],
      "outputs": [
        {
          "name": "generated_text",
          "type": "STRING",
          "links": [
            69
          ]
        },
        {
          "name": "thinking",
          "type": "STRING",
          "links": []
        }
      ],
      "properties": {
        "Node name for S&R": "TextGenerate"
      },
      "widgets_values": [
        "",
        3584,
        "on",
        1,
        1,
        0.95,
        0,
        1.05,
        0,
        0,
        false,
        true,
        "off"
      ],
      "widgets_values_named": {
        "prompt": "",
        "max_length": 3584,
        "sampling_mode": "on",
        "sampling_mode.temperature": 1,
        "sampling_mode.top_k": 1,
        "sampling_mode.top_p": 0.95,
        "sampling_mode.min_p": 0,
        "sampling_mode.repetition_penalty": 1.05,
        "sampling_mode.seed": 0,
        "sampling_mode.presence_penalty": 0,
        "thinking": false,
        "use_default_template": true,
        "mtp": "off"
      }
    },
    {
      "id": 48,
      "type": "PrimitiveStringMultiline",
      "pos": [
        -110,
        -580
      ],
      "size": [
        440,
        180
      ],
      "flags": {},
      "order": 10,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "STRING",
          "type": "STRING",
          "links": [
            60
          ]
        }
      ],
      "title": "Text (System prompt)",
      "properties": {
        "Node name for S&R": "PrimitiveStringMultiline"
      },
      "widgets_values": [
        "You are the prompt upsampler of an image-editing model. You see the reference image(s), attached in order (the first image, the second image, ...), and the user's short request. Expand it into ONE detailed, self-contained instruction: the caption the editing model receives together with the same images. Output only the instruction as one continuous English prose block, with no greetings, explanations, Markdown, JSON, coordinates, ids or angle-bracket tokens. Read a vague or conversational request as the most plausible edit of the supplied images.\\n\\nPick the voice by task shape. When one reference stays and gets bounded changes, write an imperative editing instruction on it (\\\"Remove the ...\\\", \\\"Change the ... to ...\\\", \\\"Zoom in on ...\\\"); a whole-image transformation opens with its scope (\\\"Convert the entire image into ...\\\", \\\"Apply a ... filter over the entire scene\\\", \\\"Horizontally flip the entire image so that ...\\\", \\\"Shift the camera viewpoint to ...\\\", then where the major elements should now be). When the references are drawn into a newly composed frame (combining subjects, a new scene, a garment, object or style donor), write a generation request (\\\"Create a photograph of ...\\\", \\\"Create an anime-style illustration of ...\\\", \\\"Generate a new image featuring ...\\\") that says what to take from each image, by ordinal, and what is newly generated.\\n\\nKeep every explicit edit, constraint, count, position, style cue and piece of wording, and decide what is left open as one concrete plan. Ground everything in what is actually visible: identify each referent unambiguously by its real appearance, never mention content that is not there, and use every image the user attached. State every end state concretely (which color, how large, which pose, which material) and give new content enough appearance to be generated. Cover the knock-on effects of the change (shadows, reflections, occlusion, perspective, scale, lighting) and say what fills a removed region. A zoom-in names what stays in frame and which neighbors are cropped out; an outpainting continues the scene in the same medium. Describe the change, not the whole scene, and close an editing instruction with one compact clause naming what stays unchanged; transferred people keep their identity, face and accessories unless asked otherwise. Transcribe on-image text verbatim in its original language inside double quotes, with line breaks as \\\\n, and match the original font, size and color when replacing it. Name recognizable public figures, brands and landmarks you can see. Directions are frame-relative; use no evaluative or quality words. Typical length is 50 to 150 words.\\n\\nOutput only the instruction."
      ],
      "widgets_values_named": {
        "value": "You are the prompt upsampler of an image-editing model. You see the reference image(s), attached in order (the first image, the second image, ...), and the user's short request. Expand it into ONE detailed, self-contained instruction: the caption the editing model receives together with the same images. Output only the instruction as one continuous English prose block, with no greetings, explanations, Markdown, JSON, coordinates, ids or angle-bracket tokens. Read a vague or conversational request as the most plausible edit of the supplied images.\\n\\nPick the voice by task shape. When one reference stays and gets bounded changes, write an imperative editing instruction on it (\\\"Remove the ...\\\", \\\"Change the ... to ...\\\", \\\"Zoom in on ...\\\"); a whole-image transformation opens with its scope (\\\"Convert the entire image into ...\\\", \\\"Apply a ... filter over the entire scene\\\", \\\"Horizontally flip the entire image so that ...\\\", \\\"Shift the camera viewpoint to ...\\\", then where the major elements should now be). When the references are drawn into a newly composed frame (combining subjects, a new scene, a garment, object or style donor), write a generation request (\\\"Create a photograph of ...\\\", \\\"Create an anime-style illustration of ...\\\", \\\"Generate a new image featuring ...\\\") that says what to take from each image, by ordinal, and what is newly generated.\\n\\nKeep every explicit edit, constraint, count, position, style cue and piece of wording, and decide what is left open as one concrete plan. Ground everything in what is actually visible: identify each referent unambiguously by its real appearance, never mention content that is not there, and use every image the user attached. State every end state concretely (which color, how large, which pose, which material) and give new content enough appearance to be generated. Cover the knock-on effects of the change (shadows, reflections, occlusion, perspective, scale, lighting) and say what fills a removed region. A zoom-in names what stays in frame and which neighbors are cropped out; an outpainting continues the scene in the same medium. Describe the change, not the whole scene, and close an editing instruction with one compact clause naming what stays unchanged; transferred people keep their identity, face and accessories unless asked otherwise. Transcribe on-image text verbatim in its original language inside double quotes, with line breaks as \\\\n, and match the original font, size and color when replacing it. Name recognizable public figures, brands and landmarks you can see. Directions are frame-relative; use no evaluative or quality words. Typical length is 50 to 150 words.\\n\\nOutput only the instruction."
      }
    },
    {
      "id": 49,
      "type": "Flux3LayoutPrompt",
      "pos": [
        -90,
        490
      ],
      "size": [
        400,
        200
      ],
      "flags": {},
      "order": 13,
      "mode": 0,
      "inputs": [
        {
          "name": "element",
          "type": "ARRAY",
          "link": 59
        }
      ],
      "outputs": [
        {
          "name": "prompt",
          "type": "STRING",
          "links": [
            63
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "Flux3LayoutPrompt"
      },
      "widgets_values": [
        "In <ref_image_0>, replace the earring <obj_1> with a single large openwork metal statement earring, one bold curved pendant, intricate hollow metal cutouts, layered metal wires, polished warm bronze finish, structured artistic shape, keep it attached to the correct ear position. Match the character's existing lighting, shadows and skin tone. No pearls, no pearl beads, no scattered small beads. Keep all other parts of the image completely unchanged."
      ],
      "widgets_values_named": {
        "prompt": "In <ref_image_0>, replace the earring <obj_1> with a single large openwork metal statement earring, one bold curved pendant, intricate hollow metal cutouts, layered metal wires, polished warm bronze finish, structured artistic shape, keep it attached to the correct ear position. Match the character's existing lighting, shadows and skin tone. No pearls, no pearl beads, no scattered small beads. Keep all other parts of the image completely unchanged."
      },
      "color": "#232",
      "bgcolor": "#353"
    },
    {
      "id": 50,
      "type": "BatchImagesNode",
      "pos": [
        100,
        -340
      ],
      "size": [
        140,
        70
      ],
      "flags": {},
      "order": 12,
      "mode": 0,
      "inputs": [
        {
          "name": "images.image0",
          "type": "IMAGE",
          "link": 67
        },
        {
          "name": "images.image1",
          "shape": 7,
          "type": "IMAGE",
          "link": null
        }
      ],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            66
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "BatchImagesNode"
      }
    },
    {
      "id": 51,
      "type": "ComfySwitchNode",
      "pos": [
        900,
        -750
      ],
      "size": [
        270,
        80
      ],
      "flags": {},
      "order": 16,
      "mode": 0,
      "inputs": [
        {
          "name": "on_false",
          "shape": 7,
          "type": "STRING",
          "link": 69
        },
        {
          "name": "on_true",
          "shape": 7,
          "type": "STRING",
          "link": 71
        }
      ],
      "outputs": [
        {
          "name": "output",
          "type": "STRING",
          "links": [
            68
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "ComfySwitchNode"
      },
      "widgets_values": [
        false
      ],
      "widgets_values_named": {
        "switch": false
      }
    },
    {
      "id": 52,
      "type": "PreviewAny",
      "pos": [
        900,
        -560
      ],
      "size": [
        430,
        260
      ],
      "flags": {},
      "order": 17,
      "mode": 0,
      "inputs": [
        {
          "name": "source",
          "type": "*",
          "link": 68
        }
      ],
      "outputs": [
        {
          "name": "STRING",
          "type": "STRING",
          "links": [
            70
          ]
        }
      ],
      "properties": {
        "Node name for S&R": "PreviewAny"
      },
      "widgets_values": [],
      "widgets_values_named": {}
    }
  ],
  "links": [
    [
      1,
      1,
      0,
      7,
      0,
      "MODEL"
    ],
    [
      4,
      7,
      0,
      8,
      0,
      "LATENT"
    ],
    [
      5,
      3,
      0,
      8,
      1,
      "VAE"
    ],
    [
      6,
      8,
      0,
      9,
      0,
      "IMAGE"
    ],
    [
      22,
      17,
      0,
      7,
      1,
      "CONDITIONING"
    ],
    [
      23,
      17,
      1,
      7,
      2,
      "CONDITIONING"
    ],
    [
      24,
      17,
      2,
      7,
      3,
      "LATENT"
    ],
    [
      29,
      11,
      0,
      18,
      0,
      "IMAGE"
    ],
    [
      30,
      9,
      0,
      18,
      1,
      "IMAGE"
    ],
    [
      43,
      2,
      0,
      4,
      0,
      "CLIP"
    ],
    [
      44,
      4,
      0,
      32,
      0,
      "CONDITIONING"
    ],
    [
      58,
      11,
      0,
      33,
      0,
      "IMAGE"
    ],
    [
      59,
      33,
      2,
      49,
      0,
      "ARRAY"
    ],
    [
      63,
      49,
      0,
      34,
      0,
      "STRING"
    ],
    [
      68,
      51,
      0,
      52,
      0,
      "*"
    ],
    [
      69,
      47,
      0,
      51,
      0,
      "STRING"
    ],
    [
      70,
      52,
      0,
      4,
      1,
      "STRING"
    ],
    [
      71,
      34,
      0,
      51,
      1,
      "STRING"
    ],
    [
      20,
      4,
      0,
      17,
      0,
      "CONDITIONING"
    ],
    [
      45,
      32,
      0,
      17,
      1,
      "CONDITIONING"
    ],
    [
      25,
      3,
      0,
      17,
      2,
      "VAE"
    ],
    [
      27,
      11,
      0,
      17,
      3,
      "IMAGE"
    ],
    [
      54,
      46,
      0,
      47,
      0,
      "CLIP"
    ],
    [
      66,
      50,
      0,
      47,
      1,
      "IMAGE"
    ],
    [
      60,
      48,
      0,
      47,
      4,
      "STRING"
    ],
    [
      64,
      34,
      0,
      47,
      5,
      "STRING"
    ],
    [
      67,
      11,
      0,
      50,
      0,
      "IMAGE"
    ]
  ],
  "groups": [
    {
      "id": 1,
      "title": "Models",
      "bounding": [
        -120,
        -240,
        490,
        610
      ],
      "color": "#3f789e",
      "flags": {}
    },
    {
      "id": 2,
      "title": "Prompt",
      "bounding": [
        400,
        -240,
        470,
        610
      ],
      "color": "#3f789e",
      "flags": {}
    },
    {
      "id": 3,
      "title": "Sampling",
      "bounding": [
        1380,
        -240,
        460,
        610
      ],
      "color": "#3f789e",
      "flags": {}
    },
    {
      "id": 4,
      "title": "Plug more reference images here",
      "bounding": [
        900,
        -240,
        450,
        610
      ],
      "color": "#A88",
      "flags": {}
    },
    {
      "id": 5,
      "title": "Reference Image",
      "bounding": [
        -120,
        400,
        1470,
        440
      ],
      "color": "#A88",
      "flags": {}
    },
    {
      "id": 6,
      "title": "Prompt Enhancer",
      "bounding": [
        -120,
        -830,
        1470,
        560
      ],
      "color": "#444",
      "flags": {}
    },
    {
      "id": 7,
      "title": "Upload Input Image here",
      "bounding": [
        -670,
        -240,
        520,
        1240
      ],
      "color": "#3f789e",
      "flags": {}
    }
  ],
  "config": {},
  "extra": {
    "ds": {
      "scale": 0.4459463246315217,
      "offset": [
        1812.9438327775536,
        1355.5669873956635
      ]
    },
    "frontendVersion": "1.55.17"
  },
  "version": 0.4
}