Files
adachi0130-Adachi-Inpaint-W…/examples/02-modular-inpaint.json
T
Adachi c49cae39e2 Make user-facing strings English for ComfyUI Manager listing
Node display names, category, descriptions, tooltips and all frontend labels are
now English so the nodes are usable for the general Manager audience. Node class
IDs, parameter identifiers and enum values are unchanged, so existing workflows
stay compatible. Also documents how this pack differs from ComfyUI's built-in
modal mask editor and Painter node.
2026-10-15 19:07:41 +08:00

909 lines
15 KiB
JSON

{
"id": "00000000-0000-0000-0000-000000000000",
"revision": 0,
"last_node_id": 13,
"last_link_id": 19,
"nodes": [
{
"id": 1,
"type": "AdachiInlineMask",
"pos": [
40,
80
],
"size": [
660,
700
],
"flags": {},
"order": 0,
"mode": 0,
"inputs": [
{
"name": "image",
"type": "STRING",
"widget": {
"name": "image"
},
"link": null
},
{
"name": "mask_data",
"type": "STRING",
"widget": {
"name": "mask_data"
},
"link": null
},
{
"name": "source_data",
"type": "STRING",
"widget": {
"name": "source_data"
},
"link": null
}
],
"outputs": [
{
"name": "image",
"type": "IMAGE",
"links": [
3,
17
]
},
{
"name": "mask",
"type": "MASK",
"links": [
4
]
}
],
"properties": {
"Node name for S&R": "AdachiInlineMask"
},
"widgets_values": [
"",
"",
""
]
},
{
"id": 2,
"type": "CheckpointLoaderSimple",
"pos": [
780,
80
],
"size": [
340,
110
],
"flags": {},
"order": 1,
"mode": 0,
"inputs": [
{
"name": "ckpt_name",
"type": "COMBO",
"widget": {
"name": "ckpt_name"
},
"link": null
}
],
"outputs": [
{
"name": "MODEL",
"type": "MODEL",
"links": [
9
]
},
{
"name": "CLIP",
"type": "CLIP",
"links": [
1,
2
]
},
{
"name": "VAE",
"type": "VAE",
"links": [
6,
14
]
}
],
"properties": {
"Node name for S&R": "CheckpointLoaderSimple"
},
"widgets_values": [
"CHOOSE_YOUR_CHECKPOINT.safetensors"
]
},
{
"id": 3,
"type": "CLIPTextEncode",
"pos": [
780,
250
],
"size": [
350,
150
],
"flags": {},
"order": 4,
"mode": 0,
"inputs": [
{
"name": "clip",
"type": "CLIP",
"link": 1
},
{
"name": "text",
"type": "STRING",
"widget": {
"name": "text"
},
"link": null
}
],
"outputs": [
{
"name": "CONDITIONING",
"type": "CONDITIONING",
"links": [
10
]
}
],
"title": "Positive",
"properties": {
"Node name for S&R": "CLIPTextEncode"
},
"widgets_values": [
"A detailed natural photograph, coherent lighting, high quality"
]
},
{
"id": 4,
"type": "CLIPTextEncode",
"pos": [
780,
450
],
"size": [
350,
150
],
"flags": {},
"order": 5,
"mode": 0,
"inputs": [
{
"name": "clip",
"type": "CLIP",
"link": 2
},
{
"name": "text",
"type": "STRING",
"widget": {
"name": "text"
},
"link": null
}
],
"outputs": [
{
"name": "CONDITIONING",
"type": "CONDITIONING",
"links": [
11
]
}
],
"title": "Negative",
"properties": {
"Node name for S&R": "CLIPTextEncode"
},
"widgets_values": [
"blurry, distorted, artifacts"
]
},
{
"id": 5,
"type": "AdachiInpaintPrepare",
"pos": [
1220,
80
],
"size": [
350,
763
],
"flags": {},
"order": 3,
"mode": 0,
"inputs": [
{
"name": "image",
"type": "IMAGE",
"link": 3
},
{
"name": "mask",
"type": "MASK",
"link": 4
},
{
"name": "area",
"type": "COMBO",
"widget": {
"name": "area"
},
"link": null
},
{
"name": "width",
"type": "INT",
"widget": {
"name": "width"
},
"link": null
},
{
"name": "height",
"type": "INT",
"widget": {
"name": "height"
},
"link": null
},
{
"name": "padding",
"type": "INT",
"widget": {
"name": "padding"
},
"link": null
},
{
"name": "mask_blur",
"type": "FLOAT",
"widget": {
"name": "mask_blur"
},
"link": null
},
{
"name": "mask_grow",
"type": "INT",
"widget": {
"name": "mask_grow"
},
"link": null
},
{
"name": "mask_mode",
"type": "COMBO",
"widget": {
"name": "mask_mode"
},
"link": null
},
{
"name": "fill",
"type": "COMBO",
"widget": {
"name": "fill"
},
"link": null
},
{
"name": "resize_mode",
"type": "COMBO",
"widget": {
"name": "resize_mode"
},
"link": null
},
{
"name": "soft_edge",
"shape": 7,
"type": "BOOLEAN",
"widget": {
"name": "soft_edge"
},
"link": null
},
{
"name": "soft_strength",
"shape": 7,
"type": "FLOAT",
"widget": {
"name": "soft_strength"
},
"link": null
}
],
"outputs": [
{
"name": "pixels",
"type": "IMAGE",
"links": [
5
]
},
{
"name": "mask",
"type": "MASK",
"links": [
8
]
},
{
"name": "context",
"type": "ADACHI_INPAINT_CONTEXT",
"links": [
16
]
}
],
"properties": {
"Node name for S&R": "AdachiInpaintPrepare"
},
"widgets_values": [
"only_masked",
1024,
1024,
32,
4,
0,
"inside",
"original",
"stretch",
false,
0.5
]
},
{
"id": 6,
"type": "VAEEncode",
"pos": [
1640,
80
],
"size": [
240,
90
],
"flags": {},
"order": 6,
"mode": 0,
"inputs": [
{
"name": "pixels",
"type": "IMAGE",
"link": 5
},
{
"name": "vae",
"type": "VAE",
"link": 6
}
],
"outputs": [
{
"name": "LATENT",
"type": "LATENT",
"links": [
7
]
}
],
"properties": {
"Node name for S&R": "VAEEncode"
},
"widgets_values": []
},
{
"id": 7,
"type": "SetLatentNoiseMask",
"pos": [
1640,
260
],
"size": [
240,
100
],
"flags": {},
"order": 7,
"mode": 0,
"inputs": [
{
"name": "samples",
"type": "LATENT",
"link": 7
},
{
"name": "mask",
"type": "MASK",
"link": 8
}
],
"outputs": [
{
"name": "LATENT",
"type": "LATENT",
"links": [
12
]
}
],
"properties": {
"Node name for S&R": "SetLatentNoiseMask"
},
"widgets_values": []
},
{
"id": 8,
"type": "KSampler",
"pos": [
1980,
80
],
"size": [
330,
317.3125
],
"flags": {},
"order": 8,
"mode": 0,
"inputs": [
{
"name": "model",
"type": "MODEL",
"link": 9
},
{
"name": "positive",
"type": "CONDITIONING",
"link": 10
},
{
"name": "negative",
"type": "CONDITIONING",
"link": 11
},
{
"name": "latent_image",
"type": "LATENT",
"link": 12
},
{
"name": "seed",
"type": "INT",
"widget": {
"name": "seed"
},
"link": null
},
{
"name": "steps",
"type": "INT",
"widget": {
"name": "steps"
},
"link": null
},
{
"name": "cfg",
"type": "FLOAT",
"widget": {
"name": "cfg"
},
"link": null
},
{
"name": "sampler_name",
"type": "COMBO",
"widget": {
"name": "sampler_name"
},
"link": null
},
{
"name": "scheduler",
"type": "COMBO",
"widget": {
"name": "scheduler"
},
"link": null
},
{
"name": "denoise",
"type": "FLOAT",
"widget": {
"name": "denoise"
},
"link": null
}
],
"outputs": [
{
"name": "LATENT",
"type": "LATENT",
"links": [
13
]
}
],
"properties": {
"Node name for S&R": "KSampler"
},
"widgets_values": [
42,
"fixed",
20,
7,
"dpmpp_2m",
"karras",
0.75
]
},
{
"id": 9,
"type": "VAEDecode",
"pos": [
2410,
80
],
"size": [
240,
90
],
"flags": {},
"order": 9,
"mode": 0,
"inputs": [
{
"name": "samples",
"type": "LATENT",
"link": 13
},
{
"name": "vae",
"type": "VAE",
"link": 14
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
15
]
}
],
"properties": {
"Node name for S&R": "VAEDecode"
},
"widgets_values": []
},
{
"id": 10,
"type": "AdachiInpaintComposite",
"pos": [
2410,
260
],
"size": [
300,
110
],
"flags": {},
"order": 10,
"mode": 0,
"inputs": [
{
"name": "generated",
"type": "IMAGE",
"link": 15
},
{
"name": "context",
"type": "ADACHI_INPAINT_CONTEXT",
"link": 16
}
],
"outputs": [
{
"name": "image",
"type": "IMAGE",
"links": [
18
]
}
],
"properties": {
"Node name for S&R": "AdachiInpaintComposite"
},
"widgets_values": []
},
{
"id": 11,
"type": "AdachiImageCompare",
"pos": [
2800,
80
],
"size": [
590,
620
],
"flags": {},
"order": 11,
"mode": 0,
"inputs": [
{
"name": "original",
"type": "IMAGE",
"link": 17
},
{
"name": "result",
"type": "IMAGE",
"link": 18
}
],
"outputs": [
{
"name": "image",
"type": "IMAGE",
"links": [
19
]
}
],
"properties": {
"Node name for S&R": "AdachiImageCompare"
},
"widgets_values": []
},
{
"id": 12,
"type": "SaveImage",
"pos": [
3500,
80
],
"size": [
430,
450
],
"flags": {},
"order": 12,
"mode": 0,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 19
},
{
"name": "filename_prefix",
"type": "STRING",
"widget": {
"name": "filename_prefix"
},
"link": null
}
],
"outputs": [],
"properties": {},
"widgets_values": [
"Adachi/Modular"
]
},
{
"id": 13,
"type": "Note",
"pos": [
1220,
600
],
"size": [
520,
230
],
"flags": {},
"order": 2,
"mode": 0,
"inputs": [],
"outputs": [],
"properties": {},
"widgets_values": [
"Adachi-Inpaint-Workbench - standard node combination\nPick a model, load an image, paint, then run\nPrepare -> VAE Encode -> Set Latent Noise Mask -> KSampler -> VAE Decode -> Composite\nFor standalone Prepare, choose fill = original or fill\nlatent_noise / latent_nothing are implemented by the all-in-one sampler; standalone Prepare does not touch the latent\nWith a dedicated inpaint checkpoint, use native InpaintModelConditioning or the all-in-one node's inpaint_model"
],
"color": "#432",
"bgcolor": "#653"
}
],
"links": [
[
1,
2,
1,
3,
0,
"CLIP"
],
[
2,
2,
1,
4,
0,
"CLIP"
],
[
3,
1,
0,
5,
0,
"IMAGE"
],
[
4,
1,
1,
5,
1,
"MASK"
],
[
5,
5,
0,
6,
0,
"IMAGE"
],
[
6,
2,
2,
6,
1,
"VAE"
],
[
7,
6,
0,
7,
0,
"LATENT"
],
[
8,
5,
1,
7,
1,
"MASK"
],
[
9,
2,
0,
8,
0,
"MODEL"
],
[
10,
3,
0,
8,
1,
"CONDITIONING"
],
[
11,
4,
0,
8,
2,
"CONDITIONING"
],
[
12,
7,
0,
8,
3,
"LATENT"
],
[
13,
8,
0,
9,
0,
"LATENT"
],
[
14,
2,
2,
9,
1,
"VAE"
],
[
15,
9,
0,
10,
0,
"IMAGE"
],
[
16,
5,
2,
10,
1,
"ADACHI_INPAINT_CONTEXT"
],
[
17,
1,
0,
11,
0,
"IMAGE"
],
[
18,
10,
0,
11,
1,
"IMAGE"
],
[
19,
11,
0,
12,
0,
"IMAGE"
]
],
"groups": [],
"config": {},
"extra": {
"ds": {
"scale": 1,
"offset": [
0,
0
]
}
},
"version": 0.4
}