Files
scraed-LanPaint/example_workflows/Flux2_Klein_EncodeDecode_Inpaint.json
T
scraed 59aa08dff0 Store masks inside exported videos and convert the example set to ImageEncode/ImageDecode
Mask-in-video (the masks now travel with the video file):
- New videometa module: write/read a JSON payload under the lanpaint-mask
  mp4 metadata tag via PyAV (stream copy, movflags=use_metadata_tags), so
  exporting produces a NEW file and the source is never modified.
- Two server routes: GET /lanpaint/video_mask_meta (read the payload back)
  and POST /lanpaint/export_mask_video (remux into input/<base>_masked.mp4).
- The mask editor exports the painted keyframes (base64 PNGs) + audio
  intervals into the video; loading a video with the tag auto-restores the
  masks (editor and node preview). A video without the tag clears the
  workflow's masks - the video is the source of truth. The export also
  offers a native save dialog (showSaveFilePicker) when available.
- The video widget upload now uses video_upload so MP4s are selectable in
  the file chooser (was image_upload).
- LanPaint_ImageEncode accepts 5D latents from video VAEs encoding a single
  image (e.g. the Hunyuan video VAE) - fixes the Hunyuan example.

Example set conversion (one example per supported model, new files, old
pairs removed after being superseded):
- New *ImageEncode/*EncodeDecode example workflows for SDXL, Flux.1,
  Flux.2 Dev, Flux2 Klein, SD3.5, Hunyuan, Ideogram4, Krea2, Qwen Edit,
  Qwen Image, Z-Image, Wan 2.2 and MiniMax H3 (AV), all using
  LanPaint_ImageEncode/ImageDecode instead of VAEEncode +
  SetLatentNoiseMask + VAEDecode + MaskBlend; every example references its
  own example folder's masked input (hash-verified); preview jpgs generated
  from the test runs; the H3 example ships its output mp4 as a preview.
- HiDream example removed on request; Example_29 added with the H3 masked
  input video.

Fixes along the way: normalize node input.link/output.links fields against
the links arrays in all converted workflows (the frontend renders
null-link nodes as disconnected); stale Inpainting_mode widget removed from
the Flux.2 sampler; Lambda defaults 5.0 (first-order scheme); torchaudio
resample test assertion relaxed (edge ringing); the videometa tests updated
to the final export signature.
2026-08-09 20:41:45 +08:00

2386 lines
47 KiB
JSON

{
"id": "92112d97-bb64-4b44-86f2-ea5691ef8f6e",
"revision": 0,
"last_node_id": 193,
"last_link_id": 358,
"nodes": [
{
"id": 9,
"type": "SaveImage",
"pos": [
2549.2912681843623,
1036.468767583056
],
"size": [
416.640625,
469.96875
],
"flags": {},
"order": 4,
"mode": 0,
"inputs": [
{
"localized_name": "images",
"name": "images",
"type": "IMAGE",
"link": 346
},
{
"localized_name": "filename_prefix",
"name": "filename_prefix",
"type": "STRING",
"widget": {
"name": "filename_prefix"
},
"link": null
}
],
"outputs": [
{
"localized_name": "images",
"name": "images",
"type": "IMAGE",
"links": null
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.8.2",
"Node name for S&R": "SaveImage",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65,
"ue_properties": {
"widget_ue_connectable": {},
"version": "7.1",
"input_ue_unconnectable": {}
}
},
"widgets_values": [
"Flux2-Klein-4b-base"
]
},
{
"id": 97,
"type": "MarkdownNote",
"pos": [
-1656.406269494769,
762.4937053843846
],
"size": [
609.96875,
802.046875
],
"flags": {},
"order": 0,
"mode": 0,
"inputs": [],
"outputs": [],
"properties": {
"ue_properties": {
"widget_ue_connectable": {},
"version": "7.1",
"input_ue_unconnectable": {}
}
},
"widgets_values": [
"Guide: [Subgraph](https://docs.comfy.org/interface/features/subgraph)\n\n## Model links (for local users)\n\n**text_encoders**\n\n- [qwen_3_4b.safetensors](https://huggingface.co/Comfy-Org/z_image_turbo/resolve/main/split_files/text_encoders/qwen_3_4b.safetensors)\n\n**diffusion_models**\n\n- [lux-2-klein-base-4b-fp8.safetensors](https://huggingface.co/black-forest-labs/FLUX.2-klein-base-4b-fp8/resolve/main/flux-2-klein-base-4b-fp8.safetensors)\n\n**vae**\n\n- [flux2-vae.safetensors](https://huggingface.co/Comfy-Org/flux2-dev/resolve/main/split_files/vae/flux2-vae.safetensors)\n\n\nModel Storage Location\n\n```\n📂 ComfyUI/\n├── 📂 models/\n│ ├── 📂 text_encoders/\n│ │ └── qwen_3_4b.safetensors\n│ ├── 📂 diffusion_models/\n│ │ └── lux-2-klein-base-4b-fp8.safetensors\n│ └── 📂 vae/\n│ └── flux2-vae.safetensors\n```\n\n## Report issue\n\nNote: please update ComfyUI first ([guide](https://docs.comfy.org/zh-CN/installation/update_comfyui)) and prepare the required models. Desktop/Cloud ship stable builds; nightly-supported models may not be included yet, please wait for the next stable release.\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\n"
],
"color": "#222",
"bgcolor": "#000"
},
{
"id": 76,
"type": "LoadImage",
"pos": [
-1412.9891350502332,
880.2411842998931
],
"size": [
319.96875,
469.96875
],
"flags": {},
"order": 1,
"mode": 0,
"inputs": [
{
"localized_name": "image",
"name": "image",
"type": "COMBO",
"widget": {
"name": "image"
},
"link": null
},
{
"localized_name": "choose file to upload",
"name": "upload",
"type": "IMAGEUPLOAD",
"widget": {
"name": "upload"
},
"link": null
}
],
"outputs": [
{
"localized_name": "IMAGE",
"name": "IMAGE",
"type": "IMAGE",
"links": [
345
]
},
{
"localized_name": "MASK",
"name": "MASK",
"type": "MASK",
"links": [
345
]
}
],
"properties": {
"Node name for S&R": "LoadImage",
"cnr_id": "comfy-core",
"ver": "0.8.2",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65,
"ue_properties": {
"widget_ue_connectable": {},
"version": "7.1",
"input_ue_unconnectable": {}
},
"image": "clipspace/clipspace-painted-masked-1774261273383.png [input]"
},
"widgets_values": [
"Masked_Load_Me_in_Loader (17).png",
"image"
]
},
{
"id": 150,
"type": "PrimitiveBoolean",
"pos": [
-1568.5474189838785,
1759.2225506066136
],
"size": [
986.1137330592571,
61.705337315487895
],
"flags": {},
"order": 2,
"mode": 0,
"inputs": [
{
"localized_name": "value",
"name": "value",
"type": "BOOLEAN",
"widget": {
"name": "value"
},
"link": null
}
],
"outputs": [
{
"localized_name": "BOOLEAN",
"name": "BOOLEAN",
"type": "BOOLEAN",
"links": [
344
]
}
],
"title": "Do you want the Klein model still reference the original image even in masked region? If not, use t2i style of promot instead of edit prompt",
"properties": {
"Node name for S&R": "PrimitiveBoolean"
},
"widgets_values": [
true
]
},
{
"id": 191,
"type": "0f9e08bc-ff60-41da-9d9f-0faf77cd927c",
"pos": [
581.9856411789561,
1053.0699675387564
],
"size": [
297.8452383647941,
218.704294345898
],
"flags": {},
"order": 3,
"mode": 0,
"inputs": [
{
"localized_name": "mask",
"name": "mask",
"type": "MASK",
"link": 343
},
{
"name": "",
"type": "*",
"widget": {
"name": ""
},
"link": 344
},
{
"localized_name": "image",
"name": "image",
"type": "IMAGE",
"link": 345
}
],
"outputs": [
{
"localized_name": "IMAGE",
"name": "IMAGE",
"type": "IMAGE",
"links": [
346
]
}
],
"title": "LanPaint + Klein",
"properties": {
"proxyWidgets": [
[
"182",
"switch"
],
[
"178",
"text"
],
[
"190",
"text"
]
]
},
"widgets_values": []
}
],
"links": [
[
343,
76,
1,
191,
0,
"MASK"
],
[
344,
150,
0,
191,
1,
"BOOLEAN"
],
[
345,
76,
0,
191,
2,
"IMAGE"
],
[
346,
191,
0,
9,
0,
"IMAGE"
]
],
"groups": [],
"definitions": {
"subgraphs": [
{
"id": "0f9e08bc-ff60-41da-9d9f-0faf77cd927c",
"version": 1,
"state": {
"lastGroupId": 4,
"lastNodeId": 193,
"lastLinkId": 358,
"lastRerouteId": 0
},
"revision": 0,
"config": {},
"name": "LanPaint + Klein",
"inputNode": {
"id": -10,
"bounding": [
-772.1778450451952,
1183.4392511563367,
128,
108
]
},
"outputNode": {
"id": -20,
"bounding": [
2584.495039374102,
1203.4392511563367,
128,
68
]
},
"inputs": [
{
"id": "1ecd71e3-93b0-4f8d-9e0d-aaf3c94076a3",
"name": "mask",
"type": "MASK",
"linkIds": [
337
],
"localized_name": "mask",
"pos": [
-668.1778450451952,
1207.4392511563367
]
},
{
"id": "26cd03c1-9e4d-4333-9a73-04f47685505e",
"name": "",
"type": "*",
"linkIds": [
338,
339,
340
],
"pos": [
-668.1778450451952,
1227.4392511563367
]
},
{
"id": "68f8fbb7-352f-46b9-aa46-28df70cac84a",
"name": "image",
"type": "IMAGE",
"linkIds": [
341
],
"localized_name": "image",
"pos": [
-668.1778450451952,
1247.4392511563367
]
}
],
"outputs": [
{
"id": "527ef442-5449-46c8-8943-d1380878e457",
"name": "IMAGE",
"type": "IMAGE",
"linkIds": [
342
],
"localized_name": "IMAGE",
"pos": [
2608.495039374102,
1227.4392511563367
]
}
],
"widgets": [],
"nodes": [
{
"id": 159,
"type": "MarkdownNote",
"pos": [
624.1600616207305,
703.9344334344975
],
"size": [
224.984375,
94.8125
],
"flags": {},
"order": 0,
"mode": 0,
"inputs": [],
"outputs": [],
"title": "Note",
"properties": {
"ue_properties": {
"widget_ue_connectable": {},
"version": "7.1",
"input_ue_unconnectable": {}
}
},
"widgets_values": [
"Click on the top-right corner of the node to open the [subgraph](https://docs.comfy.org/interface/features/subgraph) \n👇"
],
"color": "#222",
"bgcolor": "#000"
},
{
"id": 160,
"type": "VAELoader",
"pos": [
55.62812947641021,
1056.7864761842059
],
"size": [
364.40625,
82.25
],
"flags": {},
"order": 1,
"mode": 0,
"inputs": [
{
"localized_name": "vae_name",
"name": "vae_name",
"type": "COMBO",
"widget": {
"name": "vae_name"
},
"link": null
}
],
"outputs": [
{
"localized_name": "VAE",
"name": "VAE",
"type": "VAE",
"links": [
348,
354
]
}
],
"properties": {
"Node name for S&R": "VAELoader",
"cnr_id": "comfy-core",
"ver": "0.8.2",
"models": [
{
"name": "flux2-vae.safetensors",
"url": "https://huggingface.co/Comfy-Org/flux2-dev/resolve/main/split_files/vae/flux2-vae.safetensors",
"directory": "vae"
}
],
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65,
"ue_properties": {
"widget_ue_connectable": {},
"version": "7.1",
"input_ue_unconnectable": {}
}
},
"widgets_values": [
"flux2-vae.safetensors"
]
},
{
"id": 161,
"type": "CLIPLoader",
"pos": [
55.62812947641021,
886.7863888262327
],
"size": [
364.40625,
116.90625
],
"flags": {},
"order": 2,
"mode": 0,
"inputs": [
{
"localized_name": "clip_name",
"name": "clip_name",
"type": "COMBO",
"widget": {
"name": "clip_name"
},
"link": null
},
{
"localized_name": "type",
"name": "type",
"type": "COMBO",
"widget": {
"name": "type"
},
"link": null
},
{
"localized_name": "device",
"name": "device",
"shape": 7,
"type": "COMBO",
"widget": {
"name": "device"
},
"link": null
}
],
"outputs": [
{
"localized_name": "CLIP",
"name": "CLIP",
"type": "CLIP",
"links": [
320,
322
]
}
],
"properties": {
"Node name for S&R": "CLIPLoader",
"cnr_id": "comfy-core",
"ver": "0.8.2",
"models": [
{
"name": "qwen_3_4b.safetensors",
"url": "https://huggingface.co/Comfy-Org/z_image_turbo/resolve/main/split_files/text_encoders/qwen_3_4b.safetensors",
"directory": "text_encoders"
}
],
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65,
"ue_properties": {
"widget_ue_connectable": {},
"version": "7.1",
"input_ue_unconnectable": {}
}
},
"widgets_values": [
"qwen_3_8b_fp8mixed.safetensors",
"flux2",
"default"
]
},
{
"id": 163,
"type": "CFGGuider",
"pos": [
1139.5302658271462,
842.5132670132548
],
"size": [
269.96875,
127.578125
],
"flags": {},
"order": 14,
"mode": 0,
"inputs": [
{
"localized_name": "model",
"name": "model",
"type": "MODEL",
"link": 299
},
{
"localized_name": "positive",
"name": "positive",
"type": "CONDITIONING",
"link": 300
},
{
"localized_name": "negative",
"name": "negative",
"type": "CONDITIONING",
"link": 301
},
{
"localized_name": "cfg",
"name": "cfg",
"type": "FLOAT",
"widget": {
"name": "cfg"
},
"link": null
}
],
"outputs": [
{
"localized_name": "GUIDER",
"name": "GUIDER",
"type": "GUIDER",
"links": [
311
]
}
],
"properties": {
"Node name for S&R": "CFGGuider",
"cnr_id": "comfy-core",
"ver": "0.8.2",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65,
"ue_properties": {
"widget_ue_connectable": {},
"version": "7.1",
"input_ue_unconnectable": {}
}
},
"widgets_values": [
5
]
},
{
"id": 164,
"type": "KSamplerSelect",
"pos": [
1139.5302658271462,
982.5132431778821
],
"size": [
269.96875,
82.25
],
"flags": {},
"order": 3,
"mode": 0,
"inputs": [
{
"localized_name": "sampler_name",
"name": "sampler_name",
"type": "COMBO",
"widget": {
"name": "sampler_name"
},
"link": null
}
],
"outputs": [
{
"localized_name": "SAMPLER",
"name": "SAMPLER",
"type": "SAMPLER",
"links": [
312
]
}
],
"properties": {
"Node name for S&R": "KSamplerSelect",
"cnr_id": "comfy-core",
"ver": "0.8.2",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65,
"ue_properties": {
"widget_ue_connectable": {},
"version": "7.1",
"input_ue_unconnectable": {}
}
},
"widgets_values": [
"euler"
]
},
{
"id": 165,
"type": "Flux2Scheduler",
"pos": [
1139.5302658271462,
1082.5131030104587
],
"size": [
269.96875,
143.59375
],
"flags": {},
"order": 15,
"mode": 0,
"inputs": [
{
"localized_name": "steps",
"name": "steps",
"type": "INT",
"widget": {
"name": "steps"
},
"link": null
},
{
"localized_name": "width",
"name": "width",
"type": "INT",
"widget": {
"name": "width"
},
"link": 302
},
{
"localized_name": "height",
"name": "height",
"type": "INT",
"widget": {
"name": "height"
},
"link": 303
}
],
"outputs": [
{
"localized_name": "SIGMAS",
"name": "SIGMAS",
"type": "SIGMAS",
"links": [
313
]
}
],
"properties": {
"Node name for S&R": "Flux2Scheduler",
"cnr_id": "comfy-core",
"ver": "0.8.2",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65,
"ue_properties": {
"widget_ue_connectable": {},
"version": "7.1",
"input_ue_unconnectable": {}
}
},
"widgets_values": [
20,
1024,
1024
]
},
{
"id": 167,
"type": "GetImageSize",
"pos": [
623.9907022963915,
1267.2633222328395
],
"size": [
224.984375,
159.578125
],
"flags": {},
"order": 17,
"mode": 0,
"inputs": [
{
"localized_name": "image",
"name": "image",
"type": "IMAGE",
"link": 358
}
],
"outputs": [
{
"localized_name": "width",
"name": "width",
"type": "INT",
"links": [
302,
307
]
},
{
"localized_name": "height",
"name": "height",
"type": "INT",
"links": [
302,
307
]
},
{
"localized_name": "batch_size",
"name": "batch_size",
"type": "INT",
"links": [
302,
307
]
}
],
"properties": {
"Node name for S&R": "GetImageSize",
"cnr_id": "comfy-core",
"ver": "0.8.2",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65,
"ue_properties": {
"widget_ue_connectable": {},
"version": "7.1",
"input_ue_unconnectable": {}
}
},
"widgets_values": []
},
{
"id": 168,
"type": "RandomNoise",
"pos": [
1139.5302658271462,
722.5131574601864
],
"size": [
269.96875,
82
],
"flags": {},
"order": 4,
"mode": 0,
"inputs": [
{
"localized_name": "noise_seed",
"name": "noise_seed",
"type": "INT",
"widget": {
"name": "noise_seed"
},
"link": null
}
],
"outputs": [
{
"localized_name": "NOISE",
"name": "NOISE",
"type": "NOISE",
"links": [
310
]
}
],
"properties": {
"Node name for S&R": "RandomNoise",
"cnr_id": "comfy-core",
"ver": "0.8.2",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65,
"ue_properties": {
"widget_ue_connectable": {},
"version": "7.1",
"input_ue_unconnectable": {}
}
},
"widgets_values": [
0,
"fixed"
]
},
{
"id": 169,
"type": "EmptyFlux2LatentImage",
"pos": [
893.4228114475226,
1252.0446481437336
],
"size": [
269.96875,
143.59375
],
"flags": {},
"order": 18,
"mode": 0,
"inputs": [
{
"localized_name": "width",
"name": "width",
"type": "INT",
"widget": {
"name": "width"
},
"link": 307
},
{
"localized_name": "height",
"name": "height",
"type": "INT",
"widget": {
"name": "height"
},
"link": 308
},
{
"localized_name": "batch_size",
"name": "batch_size",
"type": "INT",
"widget": {
"name": "batch_size"
},
"link": null
}
],
"outputs": [
{
"localized_name": "LATENT",
"name": "LATENT",
"type": "LATENT",
"links": []
}
],
"properties": {
"Node name for S&R": "EmptyFlux2LatentImage",
"cnr_id": "comfy-core",
"ver": "0.8.2",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65,
"ue_properties": {
"widget_ue_connectable": {},
"version": "7.1",
"input_ue_unconnectable": {}
}
},
"widgets_values": [
1024,
1024,
1
]
},
{
"id": 170,
"type": "UNETLoader",
"pos": [
55.62812947641021,
736.7865990773674
],
"size": [
364.40625,
82.25
],
"flags": {},
"order": 5,
"mode": 0,
"inputs": [
{
"localized_name": "unet_name",
"name": "unet_name",
"type": "COMBO",
"widget": {
"name": "unet_name"
},
"link": null
},
{
"localized_name": "weight_dtype",
"name": "weight_dtype",
"type": "COMBO",
"widget": {
"name": "weight_dtype"
},
"link": null
}
],
"outputs": [
{
"localized_name": "MODEL",
"name": "MODEL",
"type": "MODEL",
"links": [
299
]
}
],
"properties": {
"Node name for S&R": "UNETLoader",
"cnr_id": "comfy-core",
"ver": "0.8.2",
"models": [
{
"name": "lux-2-klein-base-4b-fp8.safetensors",
"url": "https://huggingface.co/black-forest-labs/FLUX.2-klein-base-4b-fp8/resolve/main/flux-2-klein-base-4b-fp8.safetensors",
"directory": "diffusion_models"
}
],
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65,
"ue_properties": {
"widget_ue_connectable": {},
"version": "7.1",
"input_ue_unconnectable": {}
}
},
"widgets_values": [
"flux-2-klein-base-9b-fp8.safetensors",
"default"
]
},
{
"id": 174,
"type": "Reroute",
"pos": [
694.7566961139352,
2082.2818314829265
],
"size": [
75,
26
],
"flags": {},
"order": 22,
"mode": 0,
"inputs": [
{
"name": "",
"type": "*",
"widget": {
"name": "value"
},
"link": 338
}
],
"outputs": [
{
"name": "",
"type": "BOOLEAN",
"links": [
328
]
}
],
"properties": {
"showOutputText": false,
"horizontal": false
}
},
{
"id": 176,
"type": "ReferenceLatent",
"pos": [
1119.1810048876923,
1838.5403602983847
],
"size": [
204.134765625,
46
],
"flags": {
"collapsed": false
},
"order": 24,
"mode": 0,
"inputs": [
{
"localized_name": "conditioning",
"name": "conditioning",
"type": "CONDITIONING",
"link": 318
},
{
"localized_name": "latent",
"name": "latent",
"shape": 7,
"type": "LATENT",
"link": 350
}
],
"outputs": [
{
"localized_name": "CONDITIONING",
"name": "CONDITIONING",
"type": "CONDITIONING",
"links": [
330
]
}
],
"properties": {
"Node name for S&R": "ReferenceLatent",
"cnr_id": "comfy-core",
"ver": "0.8.2",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65,
"ue_properties": {
"widget_ue_connectable": {},
"version": "7.1",
"input_ue_unconnectable": {}
}
},
"widgets_values": []
},
{
"id": 177,
"type": "Reroute",
"pos": [
883.242794138779,
1650.5182917584234
],
"size": [
75,
26
],
"flags": {},
"order": 11,
"mode": 0,
"inputs": [
{
"name": "",
"type": "*",
"link": 321
}
],
"outputs": [
{
"name": "",
"type": "CONDITIONING",
"links": [
318,
329
]
}
],
"properties": {
"showOutputText": false,
"horizontal": false
}
},
{
"id": 178,
"type": "CLIPTextEncode",
"pos": [
485.6284462179291,
736.9532514630943
],
"size": [
429.96875,
229.96875
],
"flags": {},
"order": 10,
"mode": 0,
"inputs": [
{
"localized_name": "clip",
"name": "clip",
"type": "CLIP",
"link": 322
},
{
"localized_name": "text",
"name": "text",
"type": "STRING",
"widget": {
"name": "text"
},
"link": null
}
],
"outputs": [
{
"localized_name": "CONDITIONING",
"name": "CONDITIONING",
"type": "CONDITIONING",
"slot_index": 0,
"links": [
323
]
}
],
"title": "CLIP Text Encode (Positive Prompt)",
"properties": {
"Node name for S&R": "CLIPTextEncode",
"cnr_id": "comfy-core",
"ver": "0.8.2",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65,
"ue_properties": {
"widget_ue_connectable": {},
"version": "7.1",
"input_ue_unconnectable": {}
}
},
"widgets_values": [
"change building's window light color to blue"
],
"color": "#232",
"bgcolor": "#353"
},
{
"id": 179,
"type": "Reroute",
"pos": [
1033.2282553816917,
1504.614293060217
],
"size": [
75,
26
],
"flags": {},
"order": 12,
"mode": 0,
"inputs": [
{
"name": "",
"type": "*",
"link": 323
}
],
"outputs": [
{
"name": "",
"type": "CONDITIONING",
"links": [
324,
326
]
}
],
"properties": {
"showOutputText": false,
"horizontal": false
}
},
{
"id": 180,
"type": "ReferenceLatent",
"pos": [
1159.8019865130454,
1602.6058122453303
],
"size": [
210,
46
],
"flags": {
"collapsed": false
},
"order": 25,
"mode": 0,
"inputs": [
{
"localized_name": "conditioning",
"name": "conditioning",
"type": "CONDITIONING",
"link": 324
},
{
"localized_name": "latent",
"name": "latent",
"shape": 7,
"type": "LATENT",
"link": 351
}
],
"outputs": [
{
"localized_name": "CONDITIONING",
"name": "CONDITIONING",
"type": "CONDITIONING",
"links": [
327
]
}
],
"properties": {
"Node name for S&R": "ReferenceLatent",
"cnr_id": "comfy-core",
"ver": "0.8.2",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65,
"ue_properties": {
"widget_ue_connectable": {},
"version": "7.1",
"input_ue_unconnectable": {}
}
},
"widgets_values": []
},
{
"id": 181,
"type": "ComfySwitchNode",
"pos": [
1533.4447652944255,
1605.4094651677044
],
"size": [
270,
78
],
"flags": {},
"order": 26,
"mode": 0,
"inputs": [
{
"localized_name": "on_false",
"name": "on_false",
"type": "CONDITIONING",
"link": 326
},
{
"localized_name": "on_true",
"name": "on_true",
"type": "CONDITIONING",
"link": 327
},
{
"localized_name": "switch",
"name": "switch",
"type": "BOOLEAN",
"widget": {
"name": "switch"
},
"link": 328
}
],
"outputs": [
{
"localized_name": "output",
"name": "output",
"type": "CONDITIONING",
"links": [
300
]
}
],
"properties": {
"Node name for S&R": "ComfySwitchNode"
},
"widgets_values": [
false
]
},
{
"id": 182,
"type": "ComfySwitchNode",
"pos": [
1439.2947375314434,
1860.6802750453246
],
"size": [
270,
78
],
"flags": {},
"order": 27,
"mode": 0,
"inputs": [
{
"localized_name": "on_false",
"name": "on_false",
"type": "CONDITIONING",
"link": 329
},
{
"localized_name": "on_true",
"name": "on_true",
"type": "CONDITIONING",
"link": 330
},
{
"localized_name": "switch",
"name": "switch",
"type": "BOOLEAN",
"widget": {
"name": "switch"
},
"link": 339
}
],
"outputs": [
{
"localized_name": "output",
"name": "output",
"type": "CONDITIONING",
"links": [
301
]
}
],
"properties": {
"Node name for S&R": "ComfySwitchNode"
},
"widgets_values": [
false
]
},
{
"id": 183,
"type": "PrimitiveInt",
"pos": [
1037.7504677972097,
396.596670829747
],
"size": [
270,
82
],
"flags": {},
"order": 6,
"mode": 0,
"inputs": [
{
"localized_name": "value",
"name": "value",
"type": "INT",
"widget": {
"name": "value"
},
"link": null
}
],
"outputs": [
{
"localized_name": "INT",
"name": "INT",
"type": "INT",
"links": [
331
]
}
],
"properties": {
"Node name for S&R": "PrimitiveInt"
},
"widgets_values": [
5,
"fixed"
]
},
{
"id": 184,
"type": "PrimitiveInt",
"pos": [
1044.8491341138592,
533.3094780807312
],
"size": [
270,
82
],
"flags": {},
"order": 7,
"mode": 0,
"inputs": [
{
"localized_name": "value",
"name": "value",
"type": "INT",
"widget": {
"name": "value"
},
"link": null
}
],
"outputs": [
{
"localized_name": "INT",
"name": "INT",
"type": "INT",
"links": [
332
]
}
],
"properties": {
"Node name for S&R": "PrimitiveInt"
},
"widgets_values": [
2,
"fixed"
]
},
{
"id": 185,
"type": "ComfySwitchNode",
"pos": [
1369.337082676484,
467.165160354835
],
"size": [
270,
78
],
"flags": {},
"order": 28,
"mode": 0,
"inputs": [
{
"localized_name": "on_false",
"name": "on_false",
"type": "INT",
"link": 331
},
{
"localized_name": "on_true",
"name": "on_true",
"type": "INT",
"link": 332
},
{
"localized_name": "switch",
"name": "switch",
"type": "BOOLEAN",
"widget": {
"name": "switch"
},
"link": 340
}
],
"outputs": [
{
"localized_name": "output",
"name": "output",
"type": "INT",
"links": [
315
]
}
],
"properties": {
"Node name for S&R": "ComfySwitchNode"
},
"widgets_values": [
false
]
},
{
"id": 189,
"type": "Note",
"pos": [
1981.9631121916382,
1722.502836714068
],
"size": [
352.734375,
139.75
],
"flags": {},
"order": 8,
"mode": 0,
"inputs": [],
"outputs": [],
"properties": {
"ue_properties": {
"widget_ue_connectable": {},
"version": "7.1",
"input_ue_unconnectable": {}
}
},
"widgets_values": [
"Bypass reference conditioning if you don't need reference"
],
"color": "#432",
"bgcolor": "#653"
},
{
"id": 190,
"type": "CLIPTextEncode",
"pos": [
485.6284462179291,
1066.9532294858702
],
"size": [
429.96875,
115.59375
],
"flags": {
"collapsed": true
},
"order": 9,
"mode": 0,
"inputs": [
{
"localized_name": "clip",
"name": "clip",
"type": "CLIP",
"link": 320
},
{
"localized_name": "text",
"name": "text",
"type": "STRING",
"widget": {
"name": "text"
},
"link": null
}
],
"outputs": [
{
"localized_name": "CONDITIONING",
"name": "CONDITIONING",
"type": "CONDITIONING",
"slot_index": 0,
"links": [
321
]
}
],
"title": "CLIP Text Encode (Negative Prompt)",
"properties": {
"Node name for S&R": "CLIPTextEncode",
"cnr_id": "comfy-core",
"ver": "0.8.2",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65,
"ue_properties": {
"widget_ue_connectable": {},
"version": "7.1",
"input_ue_unconnectable": {}
}
},
"widgets_values": [
""
],
"color": "#322",
"bgcolor": "#533"
},
{
"id": 173,
"type": "LanPaint_SamplerCustomAdvanced",
"pos": [
1605.2161534535035,
660.0081874939478
],
"size": [
291.4830078125,
567.96875
],
"flags": {},
"order": 21,
"mode": 0,
"inputs": [
{
"localized_name": "noise",
"name": "noise",
"type": "NOISE",
"link": 310
},
{
"localized_name": "guider",
"name": "guider",
"type": "GUIDER",
"link": 311
},
{
"localized_name": "sampler",
"name": "sampler",
"type": "SAMPLER",
"link": 312
},
{
"localized_name": "sigmas",
"name": "sigmas",
"type": "SIGMAS",
"link": 313
},
{
"localized_name": "latent_image",
"name": "latent_image",
"type": "LATENT",
"link": 352
},
{
"localized_name": "LanPaint_NumSteps",
"name": "LanPaint_NumSteps",
"type": "INT",
"widget": {
"name": "LanPaint_NumSteps"
},
"link": 315
},
{
"localized_name": "LanPaint_Lambda",
"name": "LanPaint_Lambda",
"type": "FLOAT",
"widget": {
"name": "LanPaint_Lambda"
},
"link": null
},
{
"localized_name": "LanPaint_StepSize",
"name": "LanPaint_StepSize",
"type": "FLOAT",
"widget": {
"name": "LanPaint_StepSize"
},
"link": null
},
{
"localized_name": "LanPaint_Beta",
"name": "LanPaint_Beta",
"type": "FLOAT",
"widget": {
"name": "LanPaint_Beta"
},
"link": null
},
{
"localized_name": "LanPaint_Friction",
"name": "LanPaint_Friction",
"type": "FLOAT",
"widget": {
"name": "LanPaint_Friction"
},
"link": null
},
{
"localized_name": "LanPaint_PromptMode",
"name": "LanPaint_PromptMode",
"type": "COMBO",
"widget": {
"name": "LanPaint_PromptMode"
},
"link": null
},
{
"localized_name": "LanPaint_EarlyStop",
"name": "LanPaint_EarlyStop",
"type": "INT",
"widget": {
"name": "LanPaint_EarlyStop"
},
"link": null
},
{
"localized_name": "LanPaint_Info",
"name": "LanPaint_Info",
"type": "STRING",
"widget": {
"name": "LanPaint_Info"
},
"link": null
},
{
"localized_name": "LanPaint_InnerThreshold",
"name": "LanPaint_InnerThreshold",
"type": "FLOAT",
"widget": {
"name": "LanPaint_InnerThreshold"
},
"link": null
},
{
"localized_name": "LanPaint_InnerPatience",
"name": "LanPaint_InnerPatience",
"type": "INT",
"widget": {
"name": "LanPaint_InnerPatience"
},
"link": null
}
],
"outputs": [
{
"localized_name": "output",
"name": "output",
"type": "LATENT",
"links": [
353
]
},
{
"localized_name": "denoised_output",
"name": "denoised_output",
"type": "LATENT",
"links": [
353
]
}
],
"properties": {
"Node name for S&R": "LanPaint_SamplerCustomAdvanced",
"cnr_id": "LanPaint",
"ver": "7b0d144db9aca6a4601e7c179b4c8103036e6e2b",
"ue_properties": {
"widget_ue_connectable": {},
"version": "7.1",
"input_ue_unconnectable": {}
}
},
"widgets_values": [
2,
5.0,
0.2,
1,
15,
"Image First",
1,
"LanPaint Custom Sampler Adv. For more info, visit https://github.com/scraed/LanPaint. If you find it useful, please give a star ⭐️!",
0,
1,
"lanpaint_star_button"
]
},
{
"id": 192,
"type": "LanPaint_ImageEncode",
"pos": [
128,
1745
],
"size": [
270,
82
],
"flags": {},
"order": 32,
"mode": 0,
"inputs": [
{
"name": "image",
"type": "IMAGE",
"link": 347
},
{
"name": "vae",
"type": "VAE",
"link": 348
},
{
"name": "mask",
"type": "MASK",
"link": 349
}
],
"outputs": [
{
"name": "LATENT",
"type": "LATENT",
"slot_index": 0,
"links": [
350,
351,
352
]
}
],
"properties": {
"cnr_id": "LanPaint",
"ver": "7b0d144db9aca6a4601e7c179b4c8103036e6e2b",
"Node name for S&R": "LanPaint_ImageEncode",
"ue_properties": {
"widget_ue_connectable": {},
"version": "7.1",
"input_ue_unconnectable": {}
}
},
"widgets_values": []
},
{
"id": 193,
"type": "LanPaint_ImageDecode",
"pos": [
2255,
868
],
"size": [
270,
106
],
"flags": {},
"order": 33,
"mode": 0,
"inputs": [
{
"name": "samples",
"type": "LATENT",
"link": 353
},
{
"name": "vae",
"type": "VAE",
"link": 354
},
{
"name": "image",
"type": "IMAGE",
"link": 355
},
{
"name": "mask",
"type": "MASK",
"link": 356
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"slot_index": 0,
"links": [
357
]
}
],
"properties": {
"cnr_id": "LanPaint",
"ver": "7b0d144db9aca6a4601e7c179b4c8103036e6e2b",
"Node name for S&R": "LanPaint_ImageDecode",
"ue_properties": {
"widget_ue_connectable": {
"blend_overlap": true
},
"version": "7.1",
"input_ue_unconnectable": {}
}
},
"widgets_values": [
9
]
}
],
"groups": [
{
"id": 1,
"title": "Models",
"bounding": [
51.96151307983905,
652.925297851952,
380,
550
],
"color": "#3f789e",
"flags": {}
},
{
"id": 2,
"title": "Prompt",
"bounding": [
471.9615130798395,
652.925297851952,
470,
550
],
"color": "#3f789e",
"flags": {}
},
{
"id": 3,
"title": "Sampler",
"bounding": [
1139.8631647830107,
658.485215165444,
532.3638671875,
550
],
"color": "#3f789e",
"flags": {}
}
],
"links": [
{
"id": 299,
"origin_id": 170,
"origin_slot": 0,
"target_id": 163,
"target_slot": 0,
"type": "MODEL"
},
{
"id": 300,
"origin_id": 181,
"origin_slot": 0,
"target_id": 163,
"target_slot": 1,
"type": "CONDITIONING"
},
{
"id": 301,
"origin_id": 182,
"origin_slot": 0,
"target_id": 163,
"target_slot": 2,
"type": "CONDITIONING"
},
{
"id": 302,
"origin_id": 167,
"origin_slot": 0,
"target_id": 165,
"target_slot": 1,
"type": "INT"
},
{
"id": 303,
"origin_id": 167,
"origin_slot": 1,
"target_id": 165,
"target_slot": 2,
"type": "INT"
},
{
"id": 307,
"origin_id": 167,
"origin_slot": 0,
"target_id": 169,
"target_slot": 0,
"type": "INT"
},
{
"id": 308,
"origin_id": 167,
"origin_slot": 1,
"target_id": 169,
"target_slot": 1,
"type": "INT"
},
{
"id": 310,
"origin_id": 168,
"origin_slot": 0,
"target_id": 173,
"target_slot": 0,
"type": "NOISE"
},
{
"id": 311,
"origin_id": 163,
"origin_slot": 0,
"target_id": 173,
"target_slot": 1,
"type": "GUIDER"
},
{
"id": 312,
"origin_id": 164,
"origin_slot": 0,
"target_id": 173,
"target_slot": 2,
"type": "SAMPLER"
},
{
"id": 313,
"origin_id": 165,
"origin_slot": 0,
"target_id": 173,
"target_slot": 3,
"type": "SIGMAS"
},
{
"id": 315,
"origin_id": 185,
"origin_slot": 0,
"target_id": 173,
"target_slot": 5,
"type": "INT"
},
{
"id": 318,
"origin_id": 177,
"origin_slot": 0,
"target_id": 176,
"target_slot": 0,
"type": "CONDITIONING"
},
{
"id": 321,
"origin_id": 190,
"origin_slot": 0,
"target_id": 177,
"target_slot": 0,
"type": "CONDITIONING"
},
{
"id": 322,
"origin_id": 161,
"origin_slot": 0,
"target_id": 178,
"target_slot": 0,
"type": "CLIP"
},
{
"id": 323,
"origin_id": 178,
"origin_slot": 0,
"target_id": 179,
"target_slot": 0,
"type": "CONDITIONING"
},
{
"id": 324,
"origin_id": 179,
"origin_slot": 0,
"target_id": 180,
"target_slot": 0,
"type": "CONDITIONING"
},
{
"id": 326,
"origin_id": 179,
"origin_slot": 0,
"target_id": 181,
"target_slot": 0,
"type": "CONDITIONING"
},
{
"id": 327,
"origin_id": 180,
"origin_slot": 0,
"target_id": 181,
"target_slot": 1,
"type": "CONDITIONING"
},
{
"id": 328,
"origin_id": 174,
"origin_slot": 0,
"target_id": 181,
"target_slot": 2,
"type": "BOOLEAN"
},
{
"id": 329,
"origin_id": 177,
"origin_slot": 0,
"target_id": 182,
"target_slot": 0,
"type": "CONDITIONING"
},
{
"id": 330,
"origin_id": 176,
"origin_slot": 0,
"target_id": 182,
"target_slot": 1,
"type": "CONDITIONING"
},
{
"id": 331,
"origin_id": 183,
"origin_slot": 0,
"target_id": 185,
"target_slot": 0,
"type": "INT"
},
{
"id": 332,
"origin_id": 184,
"origin_slot": 0,
"target_id": 185,
"target_slot": 1,
"type": "INT"
},
{
"id": 320,
"origin_id": 161,
"origin_slot": 0,
"target_id": 190,
"target_slot": 0,
"type": "CLIP"
},
{
"id": 338,
"origin_id": -10,
"origin_slot": 1,
"target_id": 174,
"target_slot": 0,
"type": "BOOLEAN"
},
{
"id": 339,
"origin_id": -10,
"origin_slot": 1,
"target_id": 182,
"target_slot": 2,
"type": "BOOLEAN"
},
{
"id": 340,
"origin_id": -10,
"origin_slot": 1,
"target_id": 185,
"target_slot": 2,
"type": "BOOLEAN"
},
{
"id": 347,
"origin_id": -10,
"origin_slot": 2,
"target_id": 192,
"target_slot": 0,
"type": "IMAGE"
},
{
"id": 348,
"origin_id": 160,
"origin_slot": 0,
"target_id": 192,
"target_slot": 1,
"type": "VAE"
},
{
"id": 349,
"origin_id": -10,
"origin_slot": 0,
"target_id": 192,
"target_slot": 2,
"type": "MASK"
},
{
"id": 350,
"origin_id": 192,
"origin_slot": 0,
"target_id": 176,
"target_slot": 1,
"type": "LATENT"
},
{
"id": 351,
"origin_id": 192,
"origin_slot": 0,
"target_id": 180,
"target_slot": 1,
"type": "LATENT"
},
{
"id": 352,
"origin_id": 192,
"origin_slot": 0,
"target_id": 173,
"target_slot": 4,
"type": "LATENT"
},
{
"id": 353,
"origin_id": 173,
"origin_slot": 0,
"target_id": 193,
"target_slot": 0,
"type": "LATENT"
},
{
"id": 354,
"origin_id": 160,
"origin_slot": 0,
"target_id": 193,
"target_slot": 1,
"type": "VAE"
},
{
"id": 355,
"origin_id": -10,
"origin_slot": 2,
"target_id": 193,
"target_slot": 2,
"type": "IMAGE"
},
{
"id": 356,
"origin_id": -10,
"origin_slot": 0,
"target_id": 193,
"target_slot": 3,
"type": "MASK"
},
{
"id": 357,
"origin_id": 193,
"origin_slot": 0,
"target_id": -20,
"target_slot": 0,
"type": "IMAGE"
},
{
"id": 358,
"origin_id": -10,
"origin_slot": 2,
"target_id": 167,
"target_slot": 0,
"type": "IMAGE"
}
],
"extra": {}
}
]
},
"config": {},
"extra": {
"frontendVersion": "1.41.21",
"workflowRendererVersion": "LG",
"VHS_latentpreview": false,
"VHS_latentpreviewrate": 0,
"VHS_MetadataImage": true,
"VHS_KeepIntermediate": true,
"ue_links": [],
"links_added_by_ue": [],
"ds": {
"scale": 0.7400249944258278,
"offset": [
-41.52161391771749,
-779.6233510028867
]
}
},
"version": 0.4
}