Files
scraed-LanPaint/example_workflows/Qwen_Image_Edit_EncodeDecode_Inpaint.json
T
scraed d1ee798b60 Convert the remaining examples to ImageEncode/ImageDecode and finish the example set
- Qwen Image Edit upgraded to the 2509 model (qwen_image_edit_2509_fp8_e4m3fn)
  with TextEncodeQwenImageEditPlus multi-image conditioning; old 2508/2509
  pairs removed.
- New Z-Image base example (z_image_bf16, Example_25 input) using default
  LanPaint parameters (NumSteps 5, Lambda 5.0, StepSize 0.2, Friction 15);
  old turbo/base pairs removed.
- Renamed the converted examples to the *_EncodeDecode_Inpaint convention
  (fresh names force the workflow gallery to reload them) and generated
  preview jpgs from the test run outputs; superseded old pairs removed,
  Qwen_Image_Outpaint and wan2_2_T2I_Partial kept as distinct use cases.
- Fixed the Qwen Image example mask reference: Example_12's file has no
  alpha channel (it is an output example), so it now points at Example_13's
  masked input (7).
- Repositioned the ImageEncode/ImageDecode nodes next to the sampler in all
  converted workflows (the conversion agents had placed them far off-canvas).
- SD3.5 and HiDream examples removed on request.
- Example_29 now ships the H3 masked input video and the inpainted output
  video (InPainted_Drag_Me_to_ComfyUI.mp4).
2026-08-09 22:46:51 +08:00

1256 lines
21 KiB
JSON

{
"id": "91f6bbe2-ed41-4fd6-bac7-71d5b5864ecb",
"revision": 0,
"last_node_id": 129,
"last_link_id": 261,
"nodes": [
{
"id": 38,
"type": "CLIPLoader",
"pos": [
-250,
160
],
"size": [
330,
110
],
"flags": {},
"order": 0,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "CLIP",
"type": "CLIP",
"slot_index": 0,
"links": [
204,
205
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.48",
"Node name for S&R": "CLIPLoader",
"models": [
{
"name": "qwen_2.5_vl_7b_fp8_scaled.safetensors",
"url": "https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI/resolve/main/split_files/text_encoders/qwen_2.5_vl_7b_fp8_scaled.safetensors",
"directory": "text_encoders"
}
],
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65,
"widget_ue_connectable": {}
},
"widgets_values": [
"qwen_2.5_vl_7b_fp8_scaled.safetensors",
"qwen_image",
"default"
]
},
{
"id": 66,
"type": "ModelSamplingAuraFlow",
"pos": [
740,
-130
],
"size": [
290,
60
],
"flags": {},
"order": 17,
"mode": 0,
"inputs": [
{
"name": "model",
"type": "MODEL",
"link": 185
}
],
"outputs": [
{
"name": "MODEL",
"type": "MODEL",
"links": [
141
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.48",
"Node name for S&R": "ModelSamplingAuraFlow",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65,
"widget_ue_connectable": {}
},
"widgets_values": [
3
]
},
{
"id": 106,
"type": "LoadImage",
"pos": [
56.080078125,
530
],
"size": [
274.080078125,
314.0000305175781
],
"flags": {},
"order": 1,
"mode": 4,
"inputs": [],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
219,
220
]
},
{
"name": "MASK",
"type": "MASK",
"links": null
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.50",
"Node name for S&R": "LoadImage",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65,
"ue_properties": {
"widget_ue_connectable": {
"image": true,
"upload": true
}
}
},
"widgets_values": [
"Masked_Load_Me_in_Loader.png",
"image"
]
},
{
"id": 108,
"type": "LoadImage",
"pos": [
352.16015625,
530
],
"size": [
274.080078125,
314.0000305175781
],
"flags": {},
"order": 2,
"mode": 4,
"inputs": [],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
217,
218
]
},
{
"name": "MASK",
"type": "MASK",
"links": null
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.50",
"Node name for S&R": "LoadImage",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65,
"ue_properties": {
"widget_ue_connectable": {
"image": true,
"upload": true
}
}
},
"widgets_values": [
"Masked_Load_Me_in_Loader.png",
"image"
]
},
{
"id": 113,
"type": "MarkdownNote",
"pos": [
730,
1030
],
"size": [
330,
90
],
"flags": {},
"order": 4,
"mode": 0,
"inputs": [],
"outputs": [],
"title": "Note: About image size",
"properties": {},
"widgets_values": [
"You can use the latent from the **EmptySD3LatentImage** to replace **VAE Encode**, so you can customize the image size."
],
"color": "#432",
"bgcolor": "#653"
},
{
"id": 97,
"type": "MarkdownNote",
"pos": [
740,
610
],
"size": [
300,
160
],
"flags": {},
"order": 5,
"mode": 0,
"inputs": [],
"outputs": [],
"title": "Note: KSampler settings",
"properties": {},
"widgets_values": [
"You can test and find the best setting by yourself. The following table is for reference.\n\n| Model | Steps | CFG |\n|---------------------|---------------|---------------|\n| Offical | 50 | 4.0 \n| fp8_e4m3fn | 20 | 2.5 |\n| fp8_e4m3fn + 4steps LoRA | 4 | 1.0 |\n"
],
"color": "#432",
"bgcolor": "#653"
},
{
"id": 110,
"type": "TextEncodeQwenImageEditPlus",
"pos": [
220.83323669433594,
178.33360290527344
],
"size": [
400,
200
],
"flags": {},
"order": 15,
"mode": 0,
"inputs": [
{
"name": "clip",
"type": "CLIP",
"link": 204
},
{
"name": "vae",
"shape": 7,
"type": "VAE",
"link": 206
},
{
"name": "image1",
"shape": 7,
"type": "IMAGE",
"link": 225
},
{
"name": "image2",
"shape": 7,
"type": "IMAGE",
"link": 220
},
{
"name": "image3",
"shape": 7,
"type": "IMAGE",
"link": 218
}
],
"outputs": [
{
"name": "CONDITIONING",
"type": "CONDITIONING",
"links": [
245
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.59",
"Node name for S&R": "TextEncodeQwenImageEditPlus"
},
"widgets_values": [
""
],
"color": "#223",
"bgcolor": "#335"
},
{
"id": 99,
"type": "MarkdownNote",
"pos": [
-840,
-140
],
"size": [
550,
550
],
"flags": {},
"order": 6,
"mode": 0,
"inputs": [],
"outputs": [],
"title": "Model links",
"properties": {
"widget_ue_connectable": {}
},
"widgets_values": [
"[Tutorial](https://docs.comfy.org/tutorials/image/qwen/qwen-image-edit) | [\u6559\u7a0b](https://docs.comfy.org/zh-CN/tutorials/image/qwen/qwen-image-edit)\n\n\n## Model links\n\nYou can find all the models on [Comfy-Org/Qwen-Image_ComfyUI](https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI/tree/main) and [Comfy-Org/Qwen-Image-Edit_ComfyUI](https://huggingface.co/Comfy-Org/Qwen-Image-Edit_ComfyUI) \n\n**Diffusion model**\n\n- [qwen_image_edit_2509_fp8_e4m3fn.safetensors](https://huggingface.co/Comfy-Org/Qwen-Image-Edit_ComfyUI/resolve/main/split_files/diffusion_models/qwen_image_edit_2509_fp8_e4m3fn.safetensors)\n\n**LoRA**\n\n- [Qwen-Image-Lightning-4steps-V1.0.safetensors](https://huggingface.co/lightx2v/Qwen-Image-Lightning/resolve/main/Qwen-Image-Lightning-4steps-V1.0.safetensors)\n\n**Text encoder**\n\n- [qwen_2.5_vl_7b_fp8_scaled.safetensors](https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI/resolve/main/split_files/text_encoders/qwen_2.5_vl_7b_fp8_scaled.safetensors)\n\n**VAE**\n\n- [qwen_image_vae.safetensors](https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI/resolve/main/split_files/vae/qwen_image_vae.safetensors)\n\nModel Storage Location\n\n```\n\ud83d\udcc2 ComfyUI/\n\u251c\u2500\u2500 \ud83d\udcc2 models/\n\u2502 \u251c\u2500\u2500 \ud83d\udcc2 diffusion_models/\n\u2502 \u2502 \u2514\u2500\u2500 qwen_image_edit_2509_fp8_e4m3fn.safetensors\n\u2502 \u251c\u2500\u2500 \ud83d\udcc2 loras/\n\u2502 \u2502 \u2514\u2500\u2500 Qwen-Image-Lightning-4steps-V1.0.safetensors\n\u2502 \u251c\u2500\u2500 \ud83d\udcc2 vae/\n\u2502 \u2502 \u2514\u2500\u2500 qwen_image_vae.safetensors\n\u2502 \u2514\u2500\u2500 \ud83d\udcc2 text_encoders/\n\u2502 \u2514\u2500\u2500 qwen_2.5_vl_7b_fp8_scaled.safetensors\n```\n"
],
"color": "#432",
"bgcolor": "#653"
},
{
"id": 96,
"type": "MarkdownNote",
"pos": [
-240,
1030
],
"size": [
290,
140
],
"flags": {},
"order": 7,
"mode": 0,
"inputs": [],
"outputs": [],
"properties": {},
"widgets_values": [
"This node is to avoid bad output results caused by excessively large input image sizes. Because when we input one image, we use the size of that input image.\n\nThe **TextEncodeQwenImageEditPlus** will scale your input to 1024\u00d7104 pixels. We use the size of your first input image. This node is to avoid having an input image size that is too large (such as 3000\u00d73000 pixels), which could bring bad results."
],
"color": "#432",
"bgcolor": "#653"
},
{
"id": 93,
"type": "ImageScaleToTotalPixels",
"pos": [
-230,
890
],
"size": [
270,
82
],
"flags": {},
"order": 11,
"mode": 0,
"inputs": [
{
"name": "image",
"type": "IMAGE",
"link": 177
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
224,
225
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.50",
"Node name for S&R": "ImageScaleToTotalPixels",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65,
"ue_properties": {
"widget_ue_connectable": {
"upscale_method": true,
"megapixels": true
}
}
},
"widgets_values": [
"lanczos",
1
]
},
{
"id": 111,
"type": "TextEncodeQwenImageEditPlus",
"pos": [
220,
-90
],
"size": [
400,
200
],
"flags": {},
"order": 14,
"mode": 0,
"inputs": [
{
"name": "clip",
"type": "CLIP",
"link": 205
},
{
"name": "vae",
"shape": 7,
"type": "VAE",
"link": 207
},
{
"name": "image1",
"shape": 7,
"type": "IMAGE",
"link": 224
},
{
"name": "image2",
"shape": 7,
"type": "IMAGE",
"link": 219
},
{
"name": "image3",
"shape": 7,
"type": "IMAGE",
"link": 217
}
],
"outputs": [
{
"name": "CONDITIONING",
"type": "CONDITIONING",
"links": [
244
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.59",
"Node name for S&R": "TextEncodeQwenImageEditPlus"
},
"widgets_values": [
"change the girl's cloth to red evening gown "
],
"color": "#232",
"bgcolor": "#353"
},
{
"id": 78,
"type": "LoadImage",
"pos": [
-238.3336944580078,
517.50244140625
],
"size": [
274.080078125,
314.0000305175781
],
"flags": {},
"order": 8,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
177,
253,
259
]
},
{
"name": "MASK",
"type": "MASK",
"links": [
255,
260
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.50",
"Node name for S&R": "LoadImage",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65,
"ue_properties": {
"widget_ue_connectable": {
"image": true,
"upload": true
}
}
},
"widgets_values": [
"Masked_Load_Me_in_Loader (9).png",
"image"
]
},
{
"id": 39,
"type": "VAELoader",
"pos": [
-250,
320
],
"size": [
330,
60
],
"flags": {},
"order": 9,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "VAE",
"type": "VAE",
"slot_index": 0,
"links": [
206,
207,
254,
258
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.48",
"Node name for S&R": "VAELoader",
"models": [
{
"name": "qwen_image_vae.safetensors",
"url": "https://huggingface.co/Comfy-Org/Qwen-Image_ComfyUI/resolve/main/split_files/vae/qwen_image_vae.safetensors",
"directory": "vae"
}
],
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65,
"widget_ue_connectable": {}
},
"widgets_values": [
"qwen_image_vae.safetensors"
]
},
{
"id": 89,
"type": "LoraLoaderModelOnly",
"pos": [
-240,
40
],
"size": [
310,
82
],
"flags": {},
"order": 13,
"mode": 4,
"inputs": [
{
"name": "model",
"type": "MODEL",
"link": 184
}
],
"outputs": [
{
"name": "MODEL",
"type": "MODEL",
"links": [
185
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.50",
"Node name for S&R": "LoraLoaderModelOnly",
"models": [
{
"name": "Qwen-Image-Lightning-4steps-V1.0.safetensors",
"url": "https://huggingface.co/lightx2v/Qwen-Image-Lightning/resolve/main/Qwen-Image-Lightning-4steps-V1.0.safetensors",
"directory": "loras"
}
],
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65,
"ue_properties": {
"widget_ue_connectable": {
"lora_name": true,
"strength_model": true
}
}
},
"widgets_values": [
"Qwen-Image-Lightning-4steps-V1.0.safetensors",
1
]
},
{
"id": 75,
"type": "CFGNorm",
"pos": [
740,
-20
],
"size": [
290,
60
],
"flags": {},
"order": 19,
"mode": 0,
"inputs": [
{
"name": "model",
"type": "MODEL",
"link": 141
}
],
"outputs": [
{
"name": "patched_model",
"type": "MODEL",
"links": [
247
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.50",
"Node name for S&R": "CFGNorm",
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65,
"ue_properties": {
"widget_ue_connectable": {
"strength": true
}
}
},
"widgets_values": [
1
]
},
{
"id": 37,
"type": "UNETLoader",
"pos": [
-250,
-100
],
"size": [
330,
90
],
"flags": {},
"order": 10,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "MODEL",
"type": "MODEL",
"slot_index": 0,
"links": [
184
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.48",
"Node name for S&R": "UNETLoader",
"models": [
{
"name": "qwen_image_edit_2509_fp8_e4m3fn.safetensors",
"url": "https://huggingface.co/Comfy-Org/Qwen-Image-Edit_ComfyUI/resolve/main/split_files/diffusion_models/qwen_image_edit_2509_fp8_e4m3fn.safetensors",
"directory": "diffusion_models"
}
],
"enableTabs": false,
"tabWidth": 65,
"tabXOffset": 10,
"hasSecondTab": false,
"secondTabText": "Send Back",
"secondTabOffset": 80,
"secondTabWidth": 65,
"widget_ue_connectable": {}
},
"widgets_values": [
"qwen_image_edit_2509_fp8_e4m3fn.safetensors",
"default"
]
},
{
"id": 125,
"type": "LanPaint_KSampler",
"pos": [
739.589599609375,
84.47759246826172
],
"size": [
292.9582214355469,
572
],
"flags": {},
"order": 26,
"mode": 0,
"inputs": [
{
"name": "model",
"type": "MODEL",
"link": 247
},
{
"name": "positive",
"type": "CONDITIONING",
"link": 244
},
{
"name": "negative",
"type": "CONDITIONING",
"link": 245
},
{
"name": "latent_image",
"type": "LATENT",
"link": 256
}
],
"outputs": [
{
"name": "LATENT",
"type": "LATENT",
"links": [
257
]
}
],
"properties": {
"cnr_id": "LanPaint",
"ver": "453b6c090e400123bb82f5bc0c97854031b09274",
"Node name for S&R": "LanPaint_KSampler"
},
"widgets_values": [
0,
"fixed",
20,
2.5,
"euler",
"simple",
1,
1,
"Image First",
"LanPaint KSampler. For more info, visit https://github.com/scraed/LanPaint. If you find it useful, please give a star \u2b50\ufe0f!"
]
},
{
"id": 127,
"type": "SaveImage",
"pos": [
1090.8616943359375,
133.32968139648438
],
"size": [
711.9912109375,
634.4884643554688
],
"flags": {},
"order": 29,
"mode": 0,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 261
}
],
"outputs": [],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.23"
},
"widgets_values": [
"ComfyUI"
]
},
{
"id": 128,
"type": "LanPaint_ImageEncode",
"pos": [
369.6,
104.5
],
"size": [
270,
110
],
"flags": {},
"order": 50,
"mode": 0,
"inputs": [
{
"localized_name": "image",
"name": "image",
"type": "IMAGE",
"link": 253
},
{
"localized_name": "vae",
"name": "vae",
"type": "VAE",
"link": 254
},
{
"localized_name": "mask",
"name": "mask",
"type": "MASK",
"link": 255
}
],
"outputs": [
{
"localized_name": "latent",
"name": "latent",
"type": "LATENT",
"links": [
256
]
}
],
"properties": {
"Node name for S&R": "LanPaint_ImageEncode",
"cnr_id": "LanPaint"
},
"widgets_values": []
},
{
"id": 129,
"type": "LanPaint_ImageDecode",
"pos": [
1089.6,
104.5
],
"size": [
270,
150
],
"flags": {},
"order": 51,
"mode": 0,
"inputs": [
{
"localized_name": "samples",
"name": "samples",
"type": "LATENT",
"link": 257
},
{
"localized_name": "vae",
"name": "vae",
"type": "VAE",
"link": 258
},
{
"localized_name": "image",
"name": "image",
"type": "IMAGE",
"link": 259
},
{
"localized_name": "mask",
"name": "mask",
"type": "MASK",
"link": 260
},
{
"localized_name": "blend_overlap",
"name": "blend_overlap",
"type": "INT",
"widget": {
"name": "blend_overlap"
},
"link": null
}
],
"outputs": [
{
"localized_name": "image",
"name": "image",
"type": "IMAGE",
"links": [
261
]
}
],
"properties": {
"Node name for S&R": "LanPaint_ImageDecode",
"cnr_id": "LanPaint"
},
"widgets_values": [
9
]
}
],
"links": [
[
141,
66,
0,
75,
0,
"MODEL"
],
[
177,
78,
0,
93,
0,
"IMAGE"
],
[
184,
37,
0,
89,
0,
"MODEL"
],
[
185,
89,
0,
66,
0,
"MODEL"
],
[
204,
38,
0,
110,
0,
"CLIP"
],
[
205,
38,
0,
111,
0,
"CLIP"
],
[
206,
39,
0,
110,
1,
"VAE"
],
[
207,
39,
0,
111,
1,
"VAE"
],
[
217,
108,
0,
111,
4,
"IMAGE"
],
[
218,
108,
0,
110,
4,
"IMAGE"
],
[
219,
106,
0,
111,
3,
"IMAGE"
],
[
220,
106,
0,
110,
3,
"IMAGE"
],
[
224,
93,
0,
111,
2,
"IMAGE"
],
[
225,
93,
0,
110,
2,
"IMAGE"
],
[
244,
111,
0,
125,
1,
"CONDITIONING"
],
[
245,
110,
0,
125,
2,
"CONDITIONING"
],
[
247,
75,
0,
125,
0,
"MODEL"
],
[
253,
78,
0,
128,
0,
"IMAGE"
],
[
254,
39,
0,
128,
1,
"VAE"
],
[
255,
78,
1,
128,
2,
"MASK"
],
[
256,
128,
0,
125,
3,
"LATENT"
],
[
257,
125,
0,
129,
0,
"LATENT"
],
[
258,
39,
0,
129,
1,
"VAE"
],
[
259,
78,
0,
129,
2,
"IMAGE"
],
[
260,
78,
1,
129,
3,
"MASK"
],
[
261,
129,
0,
127,
0,
"IMAGE"
]
],
"groups": [
{
"id": 1,
"title": "Step1 - Load models",
"bounding": [
-270,
-170,
370,
570
],
"color": "#3f789e",
"font_size": 24,
"flags": {}
},
{
"id": 2,
"title": "Step 2 - Upload image for editing",
"bounding": [
-270,
430,
970,
550
],
"color": "#3f789e",
"font_size": 24,
"flags": {}
},
{
"id": 3,
"title": "Step 4 - Prompt",
"bounding": [
130,
-170,
570,
570
],
"color": "#3f789e",
"font_size": 24,
"flags": {}
},
{
"id": 4,
"title": "Step3 - Image Size",
"bounding": [
730,
780,
310,
200
],
"color": "#3f789e",
"font_size": 24,
"flags": {}
}
],
"config": {},
"extra": {
"ds": {
"scale": 0.6413348663336585,
"offset": [
-528.1379465475136,
63.45086652498852
]
},
"frontendVersion": "1.26.15",
"ue_links": [],
"links_added_by_ue": [],
"VHS_latentpreview": false,
"VHS_latentpreviewrate": 0,
"VHS_MetadataImage": true,
"VHS_KeepIntermediate": true
},
"version": 0.4
}