[ComfyUI]ノード圧縮! EasyUseで楽をする(中級編)別ノードのビルドインを使う

ComfyUI関連

前回の続きで、今回は配布ワークフローの右半分です。
ワークフローは初級編で配布しています。
EasyUseにビルドインされている機能を使う事にフォーカスしているので、個別の機能に対する細かい説明はありません。

各種ビルドイン系ノードを使用する場合、元になるベースのカスタムノードがインストールされていないと使えない可能性があります。
なんかエラー出たら疑ってください。

Controlnet

Stack

最もシンプル。Loaderに繋ぎます。
最大3で更に必要な場合は同じものを直列でいいはずです。
3で足りないことある…?

途中に挟む場合はeasy controlnetStackApplyをPipeで繋いでStackをつないでください。
HiresFixだけにAnytestとかを効かせる時は途中繋ぎですね。

EasyUseのCNはSoftWeightがデフォで入っているのがいいですね。最高です。


■サンプルワークフロー

{
  "last_node_id": 7,
  "last_link_id": 4,
  "nodes": [
    {
      "id": 1,
      "type": "easy comfyLoader",
      "pos": {
        "0": -1721.841552734375,
        "1": -677.8846435546875
      },
      "size": [
        262,
        360
      ],
      "flags": {},
      "order": 4,
      "mode": 0,
      "inputs": [
        {
          "name": "optional_lora_stack",
          "type": "LORA_STACK",
          "link": null,
          "shape": 7
        },
        {
          "name": "optional_controlnet_stack",
          "type": "CONTROL_NET_STACK",
          "link": 1,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "links": [
            2
          ],
          "slot_index": 0
        },
        {
          "name": "model",
          "type": "MODEL",
          "links": null
        },
        {
          "name": "vae",
          "type": "VAE",
          "links": null
        }
      ],
      "title": "easy comfyLoader",
      "properties": {
        "Node name for S&R": "easy comfyLoader"
      },
      "widgets_values": [
        "SDXL\\osukinimixXL_v10.safetensors",
        "Baked VAE",
        -2,
        "None",
        1,
        1,
        "1280 x 768",
        512,
        512,
        "1girl,multiple views",
        "worst quality,low quality,normal quality,oldest,early,mid",
        1
      ]
    },
    {
      "id": 2,
      "type": "easy preSampling",
      "pos": {
        "0": -1434.842041015625,
        "1": -672.8846435546875
      },
      "size": [
        210,
        242
      ],
      "flags": {},
      "order": 5,
      "mode": 0,
      "inputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "link": 2
        },
        {
          "name": "image_to_latent",
          "type": "IMAGE",
          "link": null,
          "shape": 7
        },
        {
          "name": "latent",
          "type": "LATENT",
          "link": null,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "links": [
            3
          ],
          "slot_index": 0
        }
      ],
      "title": "easy preSampling",
      "properties": {
        "Node name for S&R": "easy preSampling"
      },
      "widgets_values": [
        20,
        8,
        "euler_ancestral",
        "karras",
        1,
        273368864666126,
        "randomize"
      ]
    },
    {
      "id": 3,
      "type": "easy kSampler",
      "pos": {
        "0": -1200.842041015625,
        "1": -669.8846435546875
      },
      "size": [
        320,
        290
      ],
      "flags": {},
      "order": 6,
      "mode": 0,
      "inputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "link": 3
        },
        {
          "name": "model",
          "type": "MODEL",
          "link": null,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "links": null
        },
        {
          "name": "image",
          "type": "IMAGE",
          "links": null
        }
      ],
      "title": "easy kSampler",
      "properties": {
        "Node name for S&R": "easy kSampler"
      },
      "widgets_values": [
        "Preview",
        0,
        "ComfyUI"
      ]
    },
    {
      "id": 4,
      "type": "easy controlnetStack",
      "pos": {
        "0": -2101.841552734375,
        "1": -657.8845825195312
      },
      "size": [
        354.3999938964844,
        286
      ],
      "flags": {},
      "order": 3,
      "mode": 0,
      "inputs": [
        {
          "name": "optional_controlnet_stack",
          "type": "CONTROL_NET_STACK",
          "link": null,
          "shape": 7
        },
        {
          "name": "image_1",
          "type": "IMAGE",
          "link": 4,
          "shape": 7
        },
        {
          "name": "image_2",
          "type": "IMAGE",
          "link": null,
          "shape": 7
        },
        {
          "name": "image_3",
          "type": "IMAGE",
          "link": null,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "controlnet_stack",
          "type": "CONTROL_NET_STACK",
          "links": [
            1
          ],
          "slot_index": 0
        }
      ],
      "title": "easy controlnetStack",
      "properties": {
        "Node name for S&R": "easy controlnetStack"
      },
      "widgets_values": [
        true,
        "advanced",
        1,
        "sdxl\\xinsir_cn-openpose-sdxl-1.0\\xinsir_cn-openpose-sdxl-1.0.safetensors",
        1,
        0,
        1,
        1,
        "None",
        1,
        0,
        1,
        1,
        "None",
        1,
        0,
        1,
        1
      ]
    },
    {
      "id": 5,
      "type": "LoadImage",
      "pos": {
        "0": -2370.841796875,
        "1": -638.8845825195312
      },
      "size": {
        "0": 240,
        "1": 314
      },
      "flags": {},
      "order": 0,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            4
          ],
          "slot_index": 0
        },
        {
          "name": "MASK",
          "type": "MASK",
          "links": null
        }
      ],
      "properties": {
        "Node name for S&R": "LoadImage"
      },
      "widgets_values": [
        "ComfyUI_temp_jlvih_00003_.png",
        "image"
      ]
    },
    {
      "id": 6,
      "type": "easy controlnetStackApply",
      "pos": {
        "0": -1433.350830078125,
        "1": -368.8717956542969
      },
      "size": {
        "0": 210,
        "1": 50
      },
      "flags": {},
      "order": 1,
      "mode": 0,
      "inputs": [
        {
          "name": "controlnet_stack",
          "type": "CONTROL_NET_STACK",
          "link": null
        },
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "link": null
        }
      ],
      "outputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "links": null
        }
      ],
      "title": "easy controlnetStackApply",
      "properties": {
        "Node name for S&R": "easy controlnetStackApply"
      }
    },
    {
      "id": 7,
      "type": "Note",
      "pos": {
        "0": -1362,
        "1": -274
      },
      "size": [
        354.63922119140625,
        81.43138122558594
      ],
      "flags": {},
      "order": 2,
      "mode": 0,
      "inputs": [],
      "outputs": [],
      "properties": {},
      "widgets_values": [
        "↑間に挟む場合はこっち"
      ],
      "color": "#432",
      "bgcolor": "#653"
    }
  ],
  "links": [
    [
      1,
      4,
      0,
      1,
      1,
      "CONTROL_NET_STACK"
    ],
    [
      2,
      1,
      0,
      2,
      0,
      "PIPE_LINE"
    ],
    [
      3,
      2,
      0,
      3,
      0,
      "PIPE_LINE"
    ],
    [
      4,
      5,
      0,
      4,
      1,
      "IMAGE"
    ]
  ],
  "groups": [],
  "config": {},
  "extra": {
    "0246.VERSION": [
      0,
      0,
      4
    ]
  },
  "version": 0.4
}

シングル

途中Pipe接続。こちらはシングル接続のみです。直列もできません。
Stackだとデカい…とか別のノードにConditioning渡すって時に。
経験上1つでいいかなって思って繋いだけど2つ欲しいなってなる時は割とありますw

CN-i2iをしたい場合はPreSamplingにImageを繋ぎ、
サンプルはデノイズ1なので適宜下げてください。

■サンプルワークフロー

{
  "last_node_id": 24,
  "last_link_id": 23,
  "nodes": [
    {
      "id": 9,
      "type": "easy comfyLoader",
      "pos": {
        "0": -2246.733642578125,
        "1": -888.7149658203125
      },
      "size": [
        262,
        360
      ],
      "flags": {},
      "order": 0,
      "mode": 0,
      "inputs": [
        {
          "name": "optional_lora_stack",
          "type": "LORA_STACK",
          "link": null,
          "shape": 7
        },
        {
          "name": "optional_controlnet_stack",
          "type": "CONTROL_NET_STACK",
          "link": null,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "links": [
            5
          ],
          "slot_index": 0
        },
        {
          "name": "model",
          "type": "MODEL",
          "links": null
        },
        {
          "name": "vae",
          "type": "VAE",
          "links": null
        }
      ],
      "title": "easy comfyLoader",
      "properties": {
        "Node name for S&R": "easy comfyLoader"
      },
      "widgets_values": [
        "SDXL\\osukinimixXL_v10.safetensors",
        "XL\\sdxl-vae-fp16-fix.safetensors",
        -2,
        "None",
        1,
        1,
        "1024 x 1024",
        512,
        512,
        "1girl,chibi",
        "worst quality,low quality,normal quality,oldest,early,mid",
        1
      ]
    },
    {
      "id": 10,
      "type": "easy preSampling",
      "pos": {
        "0": -1316.3780517578125,
        "1": -891.9578857421875
      },
      "size": [
        210,
        242
      ],
      "flags": {},
      "order": 11,
      "mode": 0,
      "inputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "link": 23
        },
        {
          "name": "image_to_latent",
          "type": "IMAGE",
          "link": null,
          "shape": 7
        },
        {
          "name": "latent",
          "type": "LATENT",
          "link": null,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "links": [
            8
          ],
          "slot_index": 0
        }
      ],
      "title": "easy preSampling",
      "properties": {
        "Node name for S&R": "easy preSampling"
      },
      "widgets_values": [
        20,
        8,
        "euler_ancestral",
        "karras",
        1,
        749184183382816,
        "randomize"
      ]
    },
    {
      "id": 11,
      "type": "easy kSampler",
      "pos": {
        "0": -1082.3780517578125,
        "1": -888.9578857421875
      },
      "size": [
        320,
        290
      ],
      "flags": {},
      "order": 12,
      "mode": 0,
      "inputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "link": 8
        },
        {
          "name": "model",
          "type": "MODEL",
          "link": null,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "links": null
        },
        {
          "name": "image",
          "type": "IMAGE",
          "links": null
        }
      ],
      "title": "easy kSampler",
      "properties": {
        "Node name for S&R": "easy kSampler"
      },
      "widgets_values": [
        "Preview",
        0,
        "ComfyUI"
      ]
    },
    {
      "id": 14,
      "type": "easy pipeIn",
      "pos": {
        "0": -1450.3785400390625,
        "1": -449.9580078125
      },
      "size": {
        "0": 140,
        "1": 190
      },
      "flags": {},
      "order": 9,
      "mode": 0,
      "inputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "link": 10,
          "shape": 7
        },
        {
          "name": "model",
          "type": "MODEL",
          "link": null,
          "shape": 7
        },
        {
          "name": "pos",
          "type": "CONDITIONING",
          "link": 11,
          "shape": 7
        },
        {
          "name": "neg",
          "type": "CONDITIONING",
          "link": 12,
          "shape": 7
        },
        {
          "name": "latent",
          "type": "LATENT",
          "link": null,
          "shape": 7
        },
        {
          "name": "vae",
          "type": "VAE",
          "link": null,
          "shape": 7
        },
        {
          "name": "clip",
          "type": "CLIP",
          "link": null,
          "shape": 7
        },
        {
          "name": "image",
          "type": "IMAGE",
          "link": null,
          "shape": 7
        },
        {
          "name": "xyPlot",
          "type": "XYPLOT",
          "link": null,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "links": null
        }
      ],
      "title": "easy pipeIn",
      "properties": {
        "Node name for S&R": "easy pipeIn"
      }
    },
    {
      "id": 15,
      "type": "Note",
      "pos": {
        "0": -1289.3780517578125,
        "1": -333.957763671875
      },
      "size": [
        360.0992431640625,
        108.87568664550781
      ],
      "flags": {},
      "order": 1,
      "mode": 0,
      "inputs": [],
      "outputs": [],
      "properties": {},
      "widgets_values": [
        "←別のノードのCNを繋ぐ場合はPipeIn、ONTなどで中継する"
      ],
      "color": "#432",
      "bgcolor": "#653"
    },
    {
      "id": 16,
      "type": "ACN_AdvancedControlNetApply",
      "pos": {
        "0": -1720.3780517578125,
        "1": -409.9580078125
      },
      "size": {
        "0": 240,
        "1": 290
      },
      "flags": {},
      "order": 7,
      "mode": 0,
      "inputs": [
        {
          "name": "positive",
          "type": "CONDITIONING",
          "link": 13
        },
        {
          "name": "negative",
          "type": "CONDITIONING",
          "link": 14
        },
        {
          "name": "control_net",
          "type": "CONTROL_NET",
          "link": 15
        },
        {
          "name": "image",
          "type": "IMAGE",
          "link": null
        },
        {
          "name": "mask_optional",
          "type": "MASK",
          "link": null,
          "shape": 7
        },
        {
          "name": "timestep_kf",
          "type": "TIMESTEP_KEYFRAME",
          "link": null,
          "shape": 7
        },
        {
          "name": "latent_kf_override",
          "type": "LATENT_KEYFRAME",
          "link": null,
          "shape": 7
        },
        {
          "name": "weights_override",
          "type": "CONTROL_NET_WEIGHTS",
          "link": 16,
          "shape": 7
        },
        {
          "name": "model_optional",
          "type": "MODEL",
          "link": null,
          "shape": 7
        },
        {
          "name": "vae_optional",
          "type": "VAE",
          "link": null,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "positive",
          "type": "CONDITIONING",
          "links": [
            11
          ],
          "slot_index": 0
        },
        {
          "name": "negative",
          "type": "CONDITIONING",
          "links": [
            12
          ],
          "slot_index": 1
        },
        {
          "name": "model_opt",
          "type": "MODEL",
          "links": null
        }
      ],
      "title": "ACN_AdvancedControlNetApply",
      "properties": {
        "Node name for S&R": "ACN_AdvancedControlNetApply"
      },
      "widgets_values": [
        1,
        0,
        1,
        ""
      ]
    },
    {
      "id": 17,
      "type": "ControlNetLoaderAdvanced",
      "pos": {
        "0": -2002.37744140625,
        "1": -340.957763671875
      },
      "size": {
        "0": 250,
        "1": 60
      },
      "flags": {},
      "order": 2,
      "mode": 0,
      "inputs": [
        {
          "name": "tk_optional",
          "type": "TIMESTEP_KEYFRAME",
          "link": null,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "CONTROL_NET",
          "type": "CONTROL_NET",
          "links": [
            15
          ],
          "slot_index": 0
        }
      ],
      "title": "ControlNetLoaderAdvanced",
      "properties": {
        "Node name for S&R": "ControlNetLoaderAdvanced"
      },
      "widgets_values": [
        "sdxl\\CN_Next_animeCanny.safetensors"
      ]
    },
    {
      "id": 18,
      "type": "easy pipeOut",
      "pos": {
        "0": -2156.37744140625,
        "1": -446.9580078125
      },
      "size": {
        "0": 140,
        "1": 190
      },
      "flags": {},
      "order": 3,
      "mode": 0,
      "inputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "link": null
        }
      ],
      "outputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "links": [
            10
          ],
          "slot_index": 0
        },
        {
          "name": "model",
          "type": "MODEL",
          "links": null
        },
        {
          "name": "pos",
          "type": "CONDITIONING",
          "links": [
            13
          ],
          "slot_index": 2
        },
        {
          "name": "neg",
          "type": "CONDITIONING",
          "links": [
            14
          ],
          "slot_index": 3
        },
        {
          "name": "latent",
          "type": "LATENT",
          "links": null
        },
        {
          "name": "vae",
          "type": "VAE",
          "links": null
        },
        {
          "name": "clip",
          "type": "CLIP",
          "links": null
        },
        {
          "name": "image",
          "type": "IMAGE",
          "links": null
        },
        {
          "name": "seed",
          "type": "INT",
          "links": null
        }
      ],
      "title": "easy pipeOut",
      "properties": {
        "Node name for S&R": "easy pipeOut"
      }
    },
    {
      "id": 19,
      "type": "ACN_ScaledSoftControlNetWeights",
      "pos": {
        "0": -2004.37744140625,
        "1": -238.957763671875
      },
      "size": {
        "0": 260.3999938964844,
        "1": 102
      },
      "flags": {},
      "order": 4,
      "mode": 0,
      "inputs": [
        {
          "name": "cn_extras",
          "type": "CN_WEIGHTS_EXTRAS",
          "link": null,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "CN_WEIGHTS",
          "type": "CONTROL_NET_WEIGHTS",
          "links": [
            16
          ],
          "slot_index": 0
        },
        {
          "name": "TK_SHORTCUT",
          "type": "TIMESTEP_KEYFRAME",
          "links": null,
          "slot_index": 1
        }
      ],
      "title": "ACN_ScaledSoftControlNetWeights",
      "properties": {
        "Node name for S&R": "ACN_ScaledSoftControlNetWeights"
      },
      "widgets_values": [
        0.825,
        1,
        ""
      ]
    },
    {
      "id": 20,
      "type": "Note",
      "pos": {
        "0": -1310.5015869140625,
        "1": -600.640625
      },
      "size": [
        360.0992431640625,
        108.87568664550781
      ],
      "flags": {},
      "order": 5,
      "mode": 0,
      "inputs": [],
      "outputs": [],
      "properties": {},
      "widgets_values": [
        "↑i2iCNをする場合はpreSamplingのimage to latentにLoadImageをつなぎ、denoiseを0.3-0.6くらいに調整する"
      ],
      "color": "#432",
      "bgcolor": "#653"
    },
    {
      "id": 12,
      "type": "LoadImage",
      "pos": {
        "0": -1965.37744140625,
        "1": -824.9580688476562
      },
      "size": {
        "0": 290,
        "1": 314
      },
      "flags": {},
      "order": 6,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            9
          ],
          "slot_index": 0
        },
        {
          "name": "MASK",
          "type": "MASK",
          "links": null
        }
      ],
      "properties": {
        "Node name for S&R": "LoadImage"
      },
      "widgets_values": [
        "00002-method:DPM++ 2M_Steps:30_CFG:8_SEED:2867746613.png",
        "image"
      ]
    },
    {
      "id": 13,
      "type": "AIO_Preprocessor",
      "pos": {
        "0": -1666,
        "1": -685
      },
      "size": {
        "0": 210,
        "1": 82
      },
      "flags": {},
      "order": 8,
      "mode": 0,
      "inputs": [
        {
          "name": "image",
          "type": "IMAGE",
          "link": 9
        }
      ],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            6
          ],
          "slot_index": 0
        }
      ],
      "title": "AIO_Preprocessor",
      "properties": {
        "Node name for S&R": "AIO_Preprocessor"
      },
      "widgets_values": [
        "CannyEdgePreprocessor",
        512
      ]
    },
    {
      "id": 8,
      "type": "easy controlnetLoader",
      "pos": {
        "0": -1573,
        "1": -891
      },
      "size": {
        "0": 220,
        "1": 150
      },
      "flags": {},
      "order": 10,
      "mode": 0,
      "inputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "link": 5
        },
        {
          "name": "image",
          "type": "IMAGE",
          "link": 6
        },
        {
          "name": "control_net",
          "type": "CONTROL_NET",
          "link": null,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "links": [
            23
          ],
          "slot_index": 0
        },
        {
          "name": "positive",
          "type": "CONDITIONING",
          "links": [],
          "slot_index": 1
        },
        {
          "name": "negative",
          "type": "CONDITIONING",
          "links": [],
          "slot_index": 2
        }
      ],
      "title": "easy controlnetLoader",
      "properties": {
        "Node name for S&R": "easy controlnetLoader"
      },
      "widgets_values": [
        "sdxl\\xinsir_cn-canny-sdxl-1.0_V2\\xinsir_cn-canny-sdxl-1.0_V2.safetensors",
        0.934,
        0.868
      ]
    }
  ],
  "links": [
    [
      5,
      9,
      0,
      8,
      0,
      "PIPE_LINE"
    ],
    [
      6,
      13,
      0,
      8,
      1,
      "IMAGE"
    ],
    [
      8,
      10,
      0,
      11,
      0,
      "PIPE_LINE"
    ],
    [
      9,
      12,
      0,
      13,
      0,
      "IMAGE"
    ],
    [
      10,
      18,
      0,
      14,
      0,
      "PIPE_LINE"
    ],
    [
      11,
      16,
      0,
      14,
      2,
      "CONDITIONING"
    ],
    [
      12,
      16,
      1,
      14,
      3,
      "CONDITIONING"
    ],
    [
      13,
      18,
      2,
      16,
      0,
      "CONDITIONING"
    ],
    [
      14,
      18,
      3,
      16,
      1,
      "CONDITIONING"
    ],
    [
      15,
      17,
      0,
      16,
      2,
      "CONTROL_NET"
    ],
    [
      16,
      19,
      0,
      16,
      7,
      "CONTROL_NET_WEIGHTS"
    ],
    [
      23,
      8,
      0,
      10,
      0,
      "PIPE_LINE"
    ]
  ],
  "groups": [],
  "config": {},
  "extra": {
    "0246.VERSION": [
      0,
      0,
      4
    ]
  },
  "version": 0.4
}

ACNなどベーシックなCNノードを使いたい場合はPipeIN-OUTなどで接続します。

スポンサーリンク

Controlnet++(CN-Union)

通常のCNノードではUnionモデルは処理できません。

なんで名前ばらけてん…というのは置いといて、これは何かというと1つのモデルに複数のCNを学習させてあるもので精度は個別のものと遜色ない(と書かれている)らしいです。

モデルはこちら

xinsir/controlnet-union-sdxl-1.0 at main
We’re on a journey to advance and democratize artificial intelligence through open source and open science.

自分の用途ではAnytestで割と何でも処理できてしまうため、テスト出力程度しかしていないので詳しい所はよくわかりません。

Type指定で何をさせるかを明確に選ぶこともできるし、autoでお任せにすることも可能です。

{
  "last_node_id": 30,
  "last_link_id": 29,
  "nodes": [
    {
      "id": 25,
      "type": "easy comfyLoader",
      "pos": {
        "0": -1840.6961669921875,
        "1": -999.8836669921875
      },
      "size": [
        262,
        360
      ],
      "flags": {},
      "order": 0,
      "mode": 0,
      "inputs": [
        {
          "name": "optional_lora_stack",
          "type": "LORA_STACK",
          "link": null,
          "shape": 7
        },
        {
          "name": "optional_controlnet_stack",
          "type": "CONTROL_NET_STACK",
          "link": null,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "links": [
            28
          ],
          "slot_index": 0
        },
        {
          "name": "model",
          "type": "MODEL",
          "links": null
        },
        {
          "name": "vae",
          "type": "VAE",
          "links": null
        }
      ],
      "title": "easy comfyLoader",
      "properties": {
        "Node name for S&R": "easy comfyLoader"
      },
      "widgets_values": [
        "SDXL\\osukinimixXL_v10.safetensors",
        "XL\\sdxl-vae-fp16-fix.safetensors",
        -2,
        "None",
        1,
        1,
        "1024 x 1024",
        512,
        512,
        "1girl,chibi",
        "worst quality,low quality,normal quality,oldest,early,mid",
        1
      ]
    },
    {
      "id": 26,
      "type": "easy preSampling",
      "pos": {
        "0": -808.9998168945312,
        "1": -1002.6732177734375
      },
      "size": [
        210,
        242
      ],
      "flags": {},
      "order": 4,
      "mode": 0,
      "inputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "link": 25
        },
        {
          "name": "image_to_latent",
          "type": "IMAGE",
          "link": null,
          "shape": 7
        },
        {
          "name": "latent",
          "type": "LATENT",
          "link": null,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "links": [
            26
          ],
          "slot_index": 0
        }
      ],
      "title": "easy preSampling",
      "properties": {
        "Node name for S&R": "easy preSampling"
      },
      "widgets_values": [
        20,
        8,
        "euler_ancestral",
        "karras",
        1,
        990935372509924,
        "randomize"
      ]
    },
    {
      "id": 27,
      "type": "easy kSampler",
      "pos": {
        "0": -582.9998168945312,
        "1": -1003.6732177734375
      },
      "size": [
        320,
        290
      ],
      "flags": {},
      "order": 5,
      "mode": 0,
      "inputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "link": 26
        },
        {
          "name": "model",
          "type": "MODEL",
          "link": null,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "links": null
        },
        {
          "name": "image",
          "type": "IMAGE",
          "links": null
        }
      ],
      "title": "easy kSampler",
      "properties": {
        "Node name for S&R": "easy kSampler"
      },
      "widgets_values": [
        "Preview",
        0,
        "ComfyUI"
      ]
    },
    {
      "id": 28,
      "type": "LoadImage",
      "pos": {
        "0": -1562.9998779296875,
        "1": -946.6732177734375
      },
      "size": {
        "0": 290,
        "1": 314
      },
      "flags": {},
      "order": 1,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            27
          ],
          "slot_index": 0
        },
        {
          "name": "MASK",
          "type": "MASK",
          "links": null
        }
      ],
      "properties": {
        "Node name for S&R": "LoadImage"
      },
      "widgets_values": [
        "00002-method:DPM++ 2M_Steps:30_CFG:8_SEED:2867746613.png",
        "image"
      ]
    },
    {
      "id": 29,
      "type": "AIO_Preprocessor",
      "pos": {
        "0": -1249.9998779296875,
        "1": -717.6732177734375
      },
      "size": {
        "0": 210,
        "1": 82
      },
      "flags": {},
      "order": 2,
      "mode": 0,
      "inputs": [
        {
          "name": "image",
          "type": "IMAGE",
          "link": 27
        }
      ],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            29
          ],
          "slot_index": 0
        }
      ],
      "title": "AIO_Preprocessor",
      "properties": {
        "Node name for S&R": "AIO_Preprocessor"
      },
      "widgets_values": [
        "AnyLineArtPreprocessor_aux",
        1024
      ]
    },
    {
      "id": 30,
      "type": "easy controlnetLoader++",
      "pos": {
        "0": -1140.9998779296875,
        "1": -1002.6732177734375
      },
      "size": {
        "0": 320,
        "1": 220
      },
      "flags": {},
      "order": 3,
      "mode": 0,
      "inputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "link": 28
        },
        {
          "name": "image",
          "type": "IMAGE",
          "link": 29
        },
        {
          "name": "control_net",
          "type": "CONTROL_NET",
          "link": null,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "links": [
            25
          ],
          "slot_index": 0
        },
        {
          "name": "positive",
          "type": "CONDITIONING",
          "links": null
        },
        {
          "name": "negative",
          "type": "CONDITIONING",
          "links": null
        }
      ],
      "title": "easy controlnetLoader++",
      "properties": {
        "Node name for S&R": "easy controlnetLoader++"
      },
      "widgets_values": [
        "SDXL\\controlnet-union-sdxl-1.0\\iffusion_pytorch_model_promax.safetensors",
        0.896,
        0,
        1,
        0.8,
        "canny/lineart/anime_lineart/mlsd"
      ]
    }
  ],
  "links": [
    [
      25,
      30,
      0,
      26,
      0,
      "PIPE_LINE"
    ],
    [
      26,
      26,
      0,
      27,
      0,
      "PIPE_LINE"
    ],
    [
      27,
      28,
      0,
      29,
      0,
      "IMAGE"
    ],
    [
      28,
      25,
      0,
      30,
      0,
      "PIPE_LINE"
    ],
    [
      29,
      29,
      0,
      30,
      1,
      "IMAGE"
    ]
  ],
  "groups": [],
  "config": {},
  "extra": {
    "0246.VERSION": [
      0,
      0,
      4
    ]
  },
  "version": 0.4
}

IPAdapter

シングル

地味に繋ぐの面倒なやつ。
でもEasyUseさんにかかれば1ノードPipeするだけ。ワァ…

■サンプルワークフロー

{
  "last_node_id": 49,
  "last_link_id": 80,
  "nodes": [
    {
      "id": 35,
      "type": "easy ipadapterApplyADV",
      "pos": {
        "0": -1220,
        "1": -1180
      },
      "size": [
        270,
        416
      ],
      "flags": {},
      "order": 10,
      "mode": 0,
      "inputs": [
        {
          "name": "model",
          "type": "MODEL",
          "link": 35
        },
        {
          "name": "image",
          "type": "IMAGE",
          "link": 36
        },
        {
          "name": "image_negative",
          "type": "IMAGE",
          "link": null,
          "shape": 7
        },
        {
          "name": "attn_mask",
          "type": "MASK",
          "link": null,
          "shape": 7
        },
        {
          "name": "clip_vision",
          "type": "CLIP_VISION",
          "link": null,
          "shape": 7
        },
        {
          "name": "optional_ipadapter",
          "type": "IPADAPTER",
          "link": null,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "model",
          "type": "MODEL",
          "links": [
            34
          ],
          "slot_index": 0
        },
        {
          "name": "images",
          "type": "IMAGE",
          "links": [
            32
          ],
          "slot_index": 1
        },
        {
          "name": "masks",
          "type": "MASK",
          "links": null
        },
        {
          "name": "ipadapter",
          "type": "IPADAPTER",
          "links": null
        }
      ],
      "title": "easy ipadapterApplyADV",
      "properties": {
        "Node name for S&R": "easy ipadapterApplyADV"
      },
      "widgets_values": [
        "VIT-G (medium strength)",
        0.6,
        "CPU",
        0.721,
        1,
        "style and composition",
        "concat",
        0,
        1,
        "V only",
        "all",
        false,
        false,
        0,
        ""
      ]
    },
    {
      "id": 32,
      "type": "easy preSampling",
      "pos": {
        "0": -900,
        "1": -1170
      },
      "size": [
        210,
        242
      ],
      "flags": {},
      "order": 12,
      "mode": 0,
      "inputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "link": 31
        },
        {
          "name": "image_to_latent",
          "type": "IMAGE",
          "link": 32,
          "shape": 7
        },
        {
          "name": "latent",
          "type": "LATENT",
          "link": null,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "links": [
            33
          ],
          "slot_index": 0
        }
      ],
      "title": "easy preSampling",
      "properties": {
        "Node name for S&R": "easy preSampling"
      },
      "widgets_values": [
        20,
        8,
        "euler_ancestral",
        "karras",
        1,
        315511197620847,
        "fixed"
      ]
    },
    {
      "id": 33,
      "type": "easy kSampler",
      "pos": {
        "0": -660,
        "1": -1180
      },
      "size": [
        320,
        290
      ],
      "flags": {},
      "order": 14,
      "mode": 0,
      "inputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "link": 33
        },
        {
          "name": "model",
          "type": "MODEL",
          "link": 34,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "links": null
        },
        {
          "name": "image",
          "type": "IMAGE",
          "links": null
        }
      ],
      "title": "easy kSampler",
      "properties": {
        "Node name for S&R": "easy kSampler"
      },
      "widgets_values": [
        "Preview",
        0,
        "ComfyUI"
      ]
    },
    {
      "id": 39,
      "type": "easy preSampling",
      "pos": {
        "0": -570,
        "1": -290
      },
      "size": [
        210,
        242
      ],
      "flags": {},
      "order": 8,
      "mode": 0,
      "inputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "link": 80
        },
        {
          "name": "image_to_latent",
          "type": "IMAGE",
          "link": null,
          "shape": 7
        },
        {
          "name": "latent",
          "type": "LATENT",
          "link": null,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "links": [
            42
          ],
          "slot_index": 0
        }
      ],
      "title": "easy preSampling",
      "properties": {
        "Node name for S&R": "easy preSampling"
      },
      "widgets_values": [
        20,
        8,
        "euler_ancestral",
        "karras",
        1,
        315511197620847,
        "fixed"
      ]
    },
    {
      "id": 40,
      "type": "easy kSampler",
      "pos": {
        "0": -314,
        "1": -289
      },
      "size": [
        320,
        290
      ],
      "flags": {},
      "order": 13,
      "mode": 0,
      "inputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "link": 42
        },
        {
          "name": "model",
          "type": "MODEL",
          "link": 43,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "links": null
        },
        {
          "name": "image",
          "type": "IMAGE",
          "links": null
        }
      ],
      "title": "easy kSampler",
      "properties": {
        "Node name for S&R": "easy kSampler"
      },
      "widgets_values": [
        "Preview",
        0,
        "ComfyUI"
      ]
    },
    {
      "id": 37,
      "type": "easy ipadapterApplyEmbeds",
      "pos": {
        "0": -850,
        "1": -290
      },
      "size": {
        "0": 210,
        "1": 254
      },
      "flags": {},
      "order": 11,
      "mode": 0,
      "inputs": [
        {
          "name": "model",
          "type": "MODEL",
          "link": 72
        },
        {
          "name": "clip_vision",
          "type": "CLIP_VISION",
          "link": 73
        },
        {
          "name": "ipadapter",
          "type": "IPADAPTER",
          "link": 74
        },
        {
          "name": "pos_embed",
          "type": "EMBEDS",
          "link": 75
        },
        {
          "name": "neg_embed",
          "type": "EMBEDS",
          "link": 76,
          "shape": 7
        },
        {
          "name": "attn_mask",
          "type": "MASK",
          "link": null,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "model",
          "type": "MODEL",
          "links": [
            43
          ],
          "slot_index": 0
        },
        {
          "name": "ipadapter",
          "type": "IPADAPTER",
          "links": null
        }
      ],
      "title": "easy ipadapterApplyEmbeds",
      "properties": {
        "Node name for S&R": "easy ipadapterApplyEmbeds"
      },
      "widgets_values": [
        1,
        "linear",
        0,
        1,
        "V only"
      ]
    },
    {
      "id": 47,
      "type": "easy ipadapterApplyEncoder",
      "pos": {
        "0": -1180,
        "1": -290
      },
      "size": [
        290,
        418
      ],
      "flags": {},
      "order": 9,
      "mode": 0,
      "inputs": [
        {
          "name": "model",
          "type": "MODEL",
          "link": 79
        },
        {
          "name": "clip_vision",
          "type": "CLIP_VISION",
          "link": 77
        },
        {
          "name": "image1",
          "type": "IMAGE",
          "link": 78
        },
        {
          "name": "image2",
          "type": "IMAGE",
          "link": 70,
          "shape": 7
        },
        {
          "name": "image3",
          "type": "IMAGE",
          "link": 71,
          "shape": 7
        },
        {
          "name": "image4",
          "type": "IMAGE",
          "link": null,
          "shape": 7
        },
        {
          "name": "mask1",
          "type": "MASK",
          "link": null,
          "shape": 7
        },
        {
          "name": "mask2",
          "type": "MASK",
          "link": null,
          "shape": 7
        },
        {
          "name": "mask3",
          "type": "MASK",
          "link": null,
          "shape": 7
        },
        {
          "name": "mask4",
          "type": "MASK",
          "link": null,
          "shape": 7
        },
        {
          "name": "optional_ipadapter",
          "type": "IPADAPTER",
          "link": null,
          "shape": 7
        },
        {
          "name": "pos_embeds",
          "type": "EMBEDS",
          "link": null,
          "shape": 7
        },
        {
          "name": "neg_embeds",
          "type": "EMBEDS",
          "link": null,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "model",
          "type": "MODEL",
          "links": [
            72
          ]
        },
        {
          "name": "clip_vision",
          "type": "CLIP_VISION",
          "links": [
            73
          ]
        },
        {
          "name": "ipadapter",
          "type": "IPADAPTER",
          "links": [
            74
          ]
        },
        {
          "name": "pos_embed",
          "type": "EMBEDS",
          "links": [
            75
          ]
        },
        {
          "name": "neg_embed",
          "type": "EMBEDS",
          "links": [
            76
          ]
        }
      ],
      "title": "easy ipadapterApplyEncoder",
      "properties": {
        "Node name for S&R": "easy ipadapterApplyEncoder"
      },
      "widgets_values": [
        "PLUS (high strength)",
        3,
        0.68,
        0.724,
        0.28800000000000003,
        1,
        "concat"
      ]
    },
    {
      "id": 42,
      "type": "LoadImage",
      "pos": {
        "0": -1543,
        "1": 157
      },
      "size": {
        "0": 290,
        "1": 314
      },
      "flags": {},
      "order": 0,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            71
          ],
          "slot_index": 0
        },
        {
          "name": "MASK",
          "type": "MASK",
          "links": null
        }
      ],
      "properties": {
        "Node name for S&R": "LoadImage"
      },
      "widgets_values": [
        "grass-trees-stairs1-1024x576.jpg",
        "image"
      ]
    },
    {
      "id": 41,
      "type": "LoadImage",
      "pos": {
        "0": -1542,
        "1": -198
      },
      "size": {
        "0": 290,
        "1": 314
      },
      "flags": {},
      "order": 1,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            70
          ],
          "slot_index": 0
        },
        {
          "name": "MASK",
          "type": "MASK",
          "links": null
        }
      ],
      "properties": {
        "Node name for S&R": "LoadImage"
      },
      "widgets_values": [
        "00014-method:DPM++ 2M Karras_Steps:69_CFG:5.5_SEED:1893827543.png",
        "image"
      ]
    },
    {
      "id": 34,
      "type": "LoadImage",
      "pos": {
        "0": -1550,
        "1": -1130
      },
      "size": [
        290,
        314
      ],
      "flags": {},
      "order": 2,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            36
          ],
          "slot_index": 0
        },
        {
          "name": "MASK",
          "type": "MASK",
          "links": null
        }
      ],
      "properties": {
        "Node name for S&R": "LoadImage"
      },
      "widgets_values": [
        "00002-method:DPM++ 2M_Steps:30_CFG:8_SEED:1805276761.png",
        "image"
      ]
    },
    {
      "id": 49,
      "type": "LoadImage",
      "pos": {
        "0": -1540,
        "1": -570
      },
      "size": {
        "0": 290,
        "1": 314
      },
      "flags": {},
      "order": 3,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            78
          ],
          "slot_index": 0
        },
        {
          "name": "MASK",
          "type": "MASK",
          "links": null
        }
      ],
      "properties": {
        "Node name for S&R": "LoadImage"
      },
      "widgets_values": [
        "00002-method:DPM++ 2M_Steps:30_CFG:8_SEED:1805276761.png",
        "image"
      ]
    },
    {
      "id": 48,
      "type": "easy comfyLoader",
      "pos": {
        "0": -1834,
        "1": -295
      },
      "size": [
        262,
        360
      ],
      "flags": {},
      "order": 4,
      "mode": 0,
      "inputs": [
        {
          "name": "optional_lora_stack",
          "type": "LORA_STACK",
          "link": null,
          "shape": 7
        },
        {
          "name": "optional_controlnet_stack",
          "type": "CONTROL_NET_STACK",
          "link": null,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "links": [
            80
          ],
          "slot_index": 0
        },
        {
          "name": "model",
          "type": "MODEL",
          "links": [
            79
          ],
          "slot_index": 1
        },
        {
          "name": "vae",
          "type": "VAE",
          "links": null
        }
      ],
      "title": "easy comfyLoader",
      "properties": {
        "Node name for S&R": "easy comfyLoader"
      },
      "widgets_values": [
        "SDXL\\osukinimixXL_v10.safetensors",
        "Baked VAE",
        -2,
        "None",
        1,
        1,
        "1024 x 1024",
        512,
        512,
        "1girl,chibi",
        "worst quality,low quality,normal quality,oldest,early,mid",
        1
      ]
    },
    {
      "id": 45,
      "type": "CLIPVisionLoader",
      "pos": {
        "0": -1175,
        "1": -412
      },
      "size": [
        268.5837701490668,
        58
      ],
      "flags": {},
      "order": 5,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "CLIP_VISION",
          "type": "CLIP_VISION",
          "links": [
            77
          ],
          "slot_index": 0
        }
      ],
      "properties": {
        "Node name for S&R": "CLIPVisionLoader"
      },
      "widgets_values": [
        "CLIP-ViT-H-14-laion2B-s32B-b79K.safetensors"
      ]
    },
    {
      "id": 38,
      "type": "Note",
      "pos": {
        "0": -2002,
        "1": -506
      },
      "size": [
        360.0992431640625,
        108.87568664550781
      ],
      "flags": {},
      "order": 6,
      "mode": 0,
      "inputs": [],
      "outputs": [],
      "properties": {},
      "widgets_values": [
        "複数参照はこっち→\n標準IpAから持ってきてもOK"
      ],
      "color": "#432",
      "bgcolor": "#653"
    },
    {
      "id": 31,
      "type": "easy comfyLoader",
      "pos": {
        "0": -1830,
        "1": -1170
      },
      "size": [
        262,
        360
      ],
      "flags": {},
      "order": 7,
      "mode": 0,
      "inputs": [
        {
          "name": "optional_lora_stack",
          "type": "LORA_STACK",
          "link": null,
          "shape": 7
        },
        {
          "name": "optional_controlnet_stack",
          "type": "CONTROL_NET_STACK",
          "link": null,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "links": [
            31
          ],
          "slot_index": 0
        },
        {
          "name": "model",
          "type": "MODEL",
          "links": [
            35
          ],
          "slot_index": 1
        },
        {
          "name": "vae",
          "type": "VAE",
          "links": null
        }
      ],
      "title": "easy comfyLoader",
      "properties": {
        "Node name for S&R": "easy comfyLoader"
      },
      "widgets_values": [
        "SDXL\\osukinimixXL_v10.safetensors",
        "Baked VAE",
        -2,
        "None",
        1,
        1,
        "1024 x 1024",
        512,
        512,
        "1girl,chibi",
        "worst quality,low quality,normal quality,oldest,early,mid",
        1
      ]
    }
  ],
  "links": [
    [
      31,
      31,
      0,
      32,
      0,
      "PIPE_LINE"
    ],
    [
      32,
      35,
      1,
      32,
      1,
      "IMAGE"
    ],
    [
      33,
      32,
      0,
      33,
      0,
      "PIPE_LINE"
    ],
    [
      34,
      35,
      0,
      33,
      1,
      "MODEL"
    ],
    [
      35,
      31,
      1,
      35,
      0,
      "MODEL"
    ],
    [
      36,
      34,
      0,
      35,
      1,
      "IMAGE"
    ],
    [
      42,
      39,
      0,
      40,
      0,
      "PIPE_LINE"
    ],
    [
      43,
      37,
      0,
      40,
      1,
      "MODEL"
    ],
    [
      70,
      41,
      0,
      47,
      3,
      "IMAGE"
    ],
    [
      71,
      42,
      0,
      47,
      4,
      "IMAGE"
    ],
    [
      72,
      47,
      0,
      37,
      0,
      "MODEL"
    ],
    [
      73,
      47,
      1,
      37,
      1,
      "CLIP_VISION"
    ],
    [
      74,
      47,
      2,
      37,
      2,
      "IPADAPTER"
    ],
    [
      75,
      47,
      3,
      37,
      3,
      "EMBEDS"
    ],
    [
      76,
      47,
      4,
      37,
      4,
      "EMBEDS"
    ],
    [
      77,
      45,
      0,
      47,
      1,
      "CLIP_VISION"
    ],
    [
      78,
      49,
      0,
      47,
      2,
      "IMAGE"
    ],
    [
      79,
      48,
      1,
      47,
      0,
      "MODEL"
    ],
    [
      80,
      48,
      0,
      39,
      0,
      "PIPE_LINE"
    ]
  ],
  "groups": [],
  "config": {},
  "extra": {
    "0246.VERSION": [
      0,
      0,
      4
    ]
  },
  "version": 0.4
}

複数参照

少し複雑になりますが、複数参照もかなりスッキリ。

Detailer

手とか顔とかをBBOXで自動選択してそこだけi2iする機能です。
A1111だとAdetailerとかが類似のものです。
ImpactPackの一部を簡略化して持ってきた感じですね。
これもPipeで繋ぐだけで済むからかなり楽です。

■サンプルワークフロー

{
  "last_node_id": 57,
  "last_link_id": 88,
  "nodes": [
    {
      "id": 50,
      "type": "easy comfyLoader",
      "pos": {
        "0": -1585.3148193359375,
        "1": -624.2964477539062
      },
      "size": [
        262,
        360
      ],
      "flags": {},
      "order": 0,
      "mode": 0,
      "inputs": [
        {
          "name": "optional_lora_stack",
          "type": "LORA_STACK",
          "link": null,
          "shape": 7
        },
        {
          "name": "optional_controlnet_stack",
          "type": "CONTROL_NET_STACK",
          "link": null,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "links": [
            83
          ],
          "slot_index": 0
        },
        {
          "name": "model",
          "type": "MODEL",
          "links": null
        },
        {
          "name": "vae",
          "type": "VAE",
          "links": null
        }
      ],
      "title": "easy comfyLoader",
      "properties": {
        "Node name for S&R": "easy comfyLoader"
      },
      "widgets_values": [
        "SDXL\\osukinimixXL_v10.safetensors",
        "Baked VAE",
        -2,
        "None",
        1,
        1,
        "1024 x 1024",
        512,
        512,
        "1girl",
        "worst quality,low quality,normal quality,oldest,early,mid",
        1
      ]
    },
    {
      "id": 51,
      "type": "easy preSampling",
      "pos": {
        "0": -1307.6539306640625,
        "1": -624.9966430664062
      },
      "size": [
        210,
        242
      ],
      "flags": {},
      "order": 4,
      "mode": 0,
      "inputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "link": 83
        },
        {
          "name": "image_to_latent",
          "type": "IMAGE",
          "link": null,
          "shape": 7
        },
        {
          "name": "latent",
          "type": "LATENT",
          "link": null,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "links": [
            84
          ],
          "slot_index": 0
        }
      ],
      "title": "easy preSampling",
      "properties": {
        "Node name for S&R": "easy preSampling"
      },
      "widgets_values": [
        20,
        8,
        "euler_ancestral",
        "karras",
        1,
        645827961295857,
        "randomize"
      ]
    },
    {
      "id": 52,
      "type": "easy kSampler",
      "pos": {
        "0": -1077.6544189453125,
        "1": -623.9966430664062
      },
      "size": [
        226.50296898682996,
        242.68160758406248
      ],
      "flags": {},
      "order": 5,
      "mode": 0,
      "inputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "link": 84
        },
        {
          "name": "model",
          "type": "MODEL",
          "link": null,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "links": [
            86
          ],
          "slot_index": 0
        },
        {
          "name": "image",
          "type": "IMAGE",
          "links": null
        }
      ],
      "title": "easy kSampler",
      "properties": {
        "Node name for S&R": "easy kSampler"
      },
      "widgets_values": [
        "Preview",
        0,
        "ComfyUI"
      ]
    },
    {
      "id": 54,
      "type": "easy samLoaderPipe",
      "pos": {
        "0": -820,
        "1": -450
      },
      "size": [
        295.16523977977386,
        230.04123223224508
      ],
      "flags": {},
      "order": 1,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "sam_pipe",
          "type": "PIPE_LINE",
          "links": [
            88
          ],
          "slot_index": 0
        }
      ],
      "title": "easy samLoaderPipe",
      "properties": {
        "Node name for S&R": "easy samLoaderPipe"
      },
      "widgets_values": [
        "sam_vit_b_01ec64.pth",
        "AUTO",
        "center-1",
        0,
        0.93,
        0,
        0.7,
        "False"
      ]
    },
    {
      "id": 55,
      "type": "easy ultralyticsDetectorPipe",
      "pos": {
        "0": -820,
        "1": -620
      },
      "size": [
        296.22297775618244,
        130
      ],
      "flags": {},
      "order": 2,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "bbox_segm_pipe",
          "type": "PIPE_LINE",
          "links": [
            87
          ],
          "slot_index": 0
        }
      ],
      "title": "easy ultralyticsDetectorPipe",
      "properties": {
        "Node name for S&R": "easy ultralyticsDetectorPipe"
      },
      "widgets_values": [
        "bbox/face_yolov8m.pt",
        0.5,
        10,
        3
      ]
    },
    {
      "id": 57,
      "type": "Note",
      "pos": {
        "0": -180,
        "1": -280
      },
      "size": [
        236.98092097347217,
        109.56117750484452
      ],
      "flags": {},
      "order": 3,
      "mode": 2,
      "inputs": [],
      "outputs": [],
      "properties": {},
      "widgets_values": [
        "←自分でマスクを設定する場合はpreMaskDetailerFixの方を使用"
      ],
      "color": "#432",
      "bgcolor": "#653"
    },
    {
      "id": 53,
      "type": "easy detailerFix",
      "pos": {
        "0": -180,
        "1": -620
      },
      "size": [
        238.06752793808482,
        265.1361538248483
      ],
      "flags": {},
      "order": 7,
      "mode": 0,
      "inputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "link": 85
        },
        {
          "name": "model",
          "type": "MODEL",
          "link": null,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "links": null
        },
        {
          "name": "image",
          "type": "IMAGE",
          "links": null
        },
        {
          "name": "cropped_refined",
          "type": "IMAGE",
          "links": null,
          "shape": 6
        },
        {
          "name": "cropped_enhanced_alpha",
          "type": "IMAGE",
          "links": null,
          "shape": 6
        }
      ],
      "title": "easy detailerFix",
      "properties": {
        "Node name for S&R": "easy detailerFix"
      },
      "widgets_values": [
        "Preview",
        0,
        "ComfyUI"
      ]
    },
    {
      "id": 56,
      "type": "easy preDetailerFix",
      "pos": {
        "0": -500,
        "1": -620
      },
      "size": [
        298.7221586076553,
        498.11690332308217
      ],
      "flags": {},
      "order": 6,
      "mode": 0,
      "inputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "link": 86
        },
        {
          "name": "bbox_segm_pipe",
          "type": "PIPE_LINE",
          "link": 87,
          "shape": 7
        },
        {
          "name": "sam_pipe",
          "type": "PIPE_LINE",
          "link": 88,
          "shape": 7
        },
        {
          "name": "optional_image",
          "type": "IMAGE",
          "link": null,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "links": [
            85
          ],
          "slot_index": 0
        }
      ],
      "title": "easy preDetailerFix",
      "properties": {
        "Node name for S&R": "easy preDetailerFix"
      },
      "widgets_values": [
        768,
        true,
        1600,
        119356943372838,
        "randomize",
        20,
        7.5,
        "euler_ancestral",
        "normal",
        0.5,
        5,
        true,
        true,
        10,
        "",
        1
      ]
    }
  ],
  "links": [
    [
      83,
      50,
      0,
      51,
      0,
      "PIPE_LINE"
    ],
    [
      84,
      51,
      0,
      52,
      0,
      "PIPE_LINE"
    ],
    [
      85,
      56,
      0,
      53,
      0,
      "PIPE_LINE"
    ],
    [
      86,
      52,
      0,
      56,
      0,
      "PIPE_LINE"
    ],
    [
      87,
      55,
      0,
      56,
      1,
      "PIPE_LINE"
    ],
    [
      88,
      54,
      0,
      56,
      2,
      "PIPE_LINE"
    ]
  ],
  "groups": [],
  "config": {},
  "extra": {
    "0246.VERSION": [
      0,
      0,
      4
    ]
  },
  "version": 0.4
}

Fooocus inpaint

いつもoが何個かわからなくなるFooooooooooocusさんです。
通常インペイントよりも強力(場合による)かつインペイントモデルを用意せず普段遣いのモデルでいけます。(インペイントに強いモデル、弱いモデルはあります)

専用モデルが必要なので、下記からDLしてください。(今は自動DLされるんだっけ…?)
fooocus_inpaint_head,inpaint_v26か25の2つが必要です。

GitHub - Acly/comfyui-inpaint-nodes: Nodes for better inpainting with ComfyUI: Fooocus inpaint model for SDXL, LaMa, MAT, and various other tools for pre-filling inpaint & outpaint areas.
Nodes for better inpainting with ComfyUI: Fooocus inpaint model for SDXL, LaMa, MAT, and various other tools for pre-fil...
{
  "last_node_id": 58,
  "last_link_id": 97,
  "nodes": [
    {
      "id": 50,
      "type": "easy comfyLoader",
      "pos": {
        "0": -1445.116943359375,
        "1": -310.546630859375
      },
      "size": [
        262,
        360
      ],
      "flags": {},
      "order": 0,
      "mode": 0,
      "inputs": [
        {
          "name": "optional_lora_stack",
          "type": "LORA_STACK",
          "link": null,
          "shape": 7
        },
        {
          "name": "optional_controlnet_stack",
          "type": "CONTROL_NET_STACK",
          "link": null,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "links": [
            92
          ],
          "slot_index": 0
        },
        {
          "name": "model",
          "type": "MODEL",
          "links": [],
          "slot_index": 1
        },
        {
          "name": "vae",
          "type": "VAE",
          "links": [],
          "slot_index": 2
        }
      ],
      "title": "easy comfyLoader",
      "properties": {
        "Node name for S&R": "easy comfyLoader"
      },
      "widgets_values": [
        "SDXL\\bluePencilXL_v700.safetensors",
        "Baked VAE",
        -2,
        "None",
        1,
        1,
        "1024 x 1024",
        512,
        512,
        "1girl,closed mouth",
        "worst quality,low quality,normal quality,oldest,early,mid",
        1
      ]
    },
    {
      "id": 51,
      "type": "easy preSampling",
      "pos": {
        "0": -99.88481903076172,
        "1": -311.865478515625
      },
      "size": [
        210,
        242
      ],
      "flags": {},
      "order": 4,
      "mode": 0,
      "inputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "link": 83
        },
        {
          "name": "image_to_latent",
          "type": "IMAGE",
          "link": null,
          "shape": 7
        },
        {
          "name": "latent",
          "type": "LATENT",
          "link": null,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "links": [
            93
          ],
          "slot_index": 0
        }
      ],
      "title": "easy preSampling",
      "properties": {
        "Node name for S&R": "easy preSampling"
      },
      "widgets_values": [
        20,
        8,
        "euler_ancestral",
        "karras",
        0.538,
        604749649137755,
        "randomize"
      ]
    },
    {
      "id": 52,
      "type": "LoadImage",
      "pos": {
        "0": -1160.5615234375,
        "1": -253.741943359375
      },
      "size": [
        320,
        314
      ],
      "flags": {},
      "order": 1,
      "mode": 0,
      "inputs": [],
      "outputs": [
        {
          "name": "IMAGE",
          "type": "IMAGE",
          "links": [
            89
          ],
          "slot_index": 0
        },
        {
          "name": "MASK",
          "type": "MASK",
          "links": [
            90
          ],
          "slot_index": 1
        }
      ],
      "properties": {
        "Node name for S&R": "LoadImage"
      },
      "widgets_values": [
        "clipspace/clipspace-mask-1837733.2999999523.png [input]",
        "image"
      ]
    },
    {
      "id": 54,
      "type": "INPAINT_VAEEncodeInpaintConditioning",
      "pos": {
        "0": -664.8848266601562,
        "1": -290.865478515625
      },
      "size": {
        "0": 280,
        "1": 110
      },
      "flags": {},
      "order": 5,
      "mode": 0,
      "inputs": [
        {
          "name": "positive",
          "type": "CONDITIONING",
          "link": 86
        },
        {
          "name": "negative",
          "type": "CONDITIONING",
          "link": 87
        },
        {
          "name": "vae",
          "type": "VAE",
          "link": 88
        },
        {
          "name": "pixels",
          "type": "IMAGE",
          "link": 89
        },
        {
          "name": "mask",
          "type": "MASK",
          "link": 90
        }
      ],
      "outputs": [
        {
          "name": "positive",
          "type": "CONDITIONING",
          "links": [
            95
          ],
          "slot_index": 0,
          "shape": 3
        },
        {
          "name": "negative",
          "type": "CONDITIONING",
          "links": [
            96
          ],
          "slot_index": 1,
          "shape": 3
        },
        {
          "name": "latent_inpaint",
          "type": "LATENT",
          "links": [
            85
          ],
          "slot_index": 2,
          "shape": 3
        },
        {
          "name": "latent_samples",
          "type": "LATENT",
          "links": [
            97
          ],
          "slot_index": 3,
          "shape": 3
        }
      ],
      "properties": {
        "Node name for S&R": "INPAINT_VAEEncodeInpaintConditioning"
      }
    },
    {
      "id": 55,
      "type": "DifferentialDiffusion",
      "pos": {
        "0": -92.88481903076172,
        "1": -31.8654842376709
      },
      "size": {
        "0": 184.8000030517578,
        "1": 30
      },
      "flags": {
        "collapsed": false
      },
      "order": 7,
      "mode": 0,
      "inputs": [
        {
          "name": "model",
          "type": "MODEL",
          "link": 91,
          "slot_index": 0
        }
      ],
      "outputs": [
        {
          "name": "MODEL",
          "type": "MODEL",
          "links": [
            94
          ],
          "slot_index": 0,
          "shape": 3
        }
      ],
      "properties": {
        "Node name for S&R": "DifferentialDiffusion"
      },
      "color": "#323",
      "bgcolor": "#535"
    },
    {
      "id": 56,
      "type": "easy pipeOut",
      "pos": {
        "0": -831.8848266601562,
        "1": -334.865478515625
      },
      "size": {
        "0": 140,
        "1": 190
      },
      "flags": {},
      "order": 3,
      "mode": 0,
      "inputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "link": 92
        }
      ],
      "outputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "links": [
            83
          ],
          "slot_index": 0,
          "shape": 3
        },
        {
          "name": "model",
          "type": "MODEL",
          "links": [
            84
          ],
          "slot_index": 1,
          "shape": 3
        },
        {
          "name": "pos",
          "type": "CONDITIONING",
          "links": [
            86
          ],
          "slot_index": 2,
          "shape": 3
        },
        {
          "name": "neg",
          "type": "CONDITIONING",
          "links": [
            87
          ],
          "slot_index": 3,
          "shape": 3
        },
        {
          "name": "latent",
          "type": "LATENT",
          "links": null,
          "shape": 3
        },
        {
          "name": "vae",
          "type": "VAE",
          "links": [
            88
          ],
          "slot_index": 5,
          "shape": 3
        },
        {
          "name": "clip",
          "type": "CLIP",
          "links": null,
          "shape": 3
        },
        {
          "name": "image",
          "type": "IMAGE",
          "links": null,
          "shape": 3
        },
        {
          "name": "seed",
          "type": "INT",
          "links": null,
          "shape": 3
        }
      ],
      "title": "easy pipeOut",
      "properties": {
        "Node name for S&R": "easy pipeOut"
      }
    },
    {
      "id": 57,
      "type": "easy fullkSampler",
      "pos": {
        "0": 155.1151885986328,
        "1": -309.865478515625
      },
      "size": [
        270,
        386
      ],
      "flags": {},
      "order": 8,
      "mode": 0,
      "inputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "link": 93
        },
        {
          "name": "model",
          "type": "MODEL",
          "link": 94,
          "shape": 7
        },
        {
          "name": "positive",
          "type": "CONDITIONING",
          "link": 95,
          "shape": 7
        },
        {
          "name": "negative",
          "type": "CONDITIONING",
          "link": 96,
          "shape": 7
        },
        {
          "name": "latent",
          "type": "LATENT",
          "link": 97,
          "shape": 7
        },
        {
          "name": "vae",
          "type": "VAE",
          "link": null,
          "shape": 7
        },
        {
          "name": "clip",
          "type": "CLIP",
          "link": null,
          "shape": 7
        },
        {
          "name": "xyPlot",
          "type": "XYPLOT",
          "link": null,
          "shape": 7
        },
        {
          "name": "image",
          "type": "IMAGE",
          "link": null,
          "shape": 7
        }
      ],
      "outputs": [
        {
          "name": "pipe",
          "type": "PIPE_LINE",
          "links": [],
          "slot_index": 0,
          "shape": 3
        },
        {
          "name": "image",
          "type": "IMAGE",
          "links": [],
          "slot_index": 1,
          "shape": 3
        },
        {
          "name": "model",
          "type": "MODEL",
          "links": null,
          "shape": 3
        },
        {
          "name": "positive",
          "type": "CONDITIONING",
          "links": null,
          "shape": 3
        },
        {
          "name": "negative",
          "type": "CONDITIONING",
          "links": null,
          "shape": 3
        },
        {
          "name": "latent",
          "type": "LATENT",
          "links": null,
          "shape": 3
        },
        {
          "name": "vae",
          "type": "VAE",
          "links": null,
          "shape": 3
        },
        {
          "name": "clip",
          "type": "CLIP",
          "links": null,
          "shape": 3
        },
        {
          "name": "seed",
          "type": "INT",
          "links": null,
          "shape": 3
        }
      ],
      "title": "easy fullkSampler",
      "properties": {
        "Node name for S&R": "easy fullkSampler"
      },
      "widgets_values": [
        16,
        1,
        "dpmpp_sde",
        "karras",
        1,
        "Preview",
        0,
        "ComfyUI",
        787926129322897,
        "randomize"
      ]
    },
    {
      "id": 58,
      "type": "Note",
      "pos": {
        "0": -813.8848266601562,
        "1": -93.86548614501953
      },
      "size": [
        416.2190856933594,
        164.23165893554688
      ],
      "flags": {},
      "order": 2,
      "mode": 2,
      "inputs": [],
      "outputs": [],
      "properties": {},
      "widgets_values": [
        "こちらはインペイントモデルを使いません。\n\n別途Fooocus inpaintモデルをDLする必要があります。\n\nhttps://github.com/Acly/comfyui-inpaint-nodes"
      ],
      "color": "#432",
      "bgcolor": "#653"
    },
    {
      "id": 53,
      "type": "easy applyFooocusInpaint",
      "pos": {
        "0": -368.88482666015625,
        "1": -31.8654842376709
      },
      "size": {
        "0": 260,
        "1": 102
      },
      "flags": {},
      "order": 6,
      "mode": 0,
      "inputs": [
        {
          "name": "model",
          "type": "MODEL",
          "link": 84
        },
        {
          "name": "latent",
          "type": "LATENT",
          "link": 85
        }
      ],
      "outputs": [
        {
          "name": "model",
          "type": "MODEL",
          "links": [
            91
          ],
          "slot_index": 0
        }
      ],
      "title": "easy applyFooocusInpaint",
      "properties": {
        "Node name for S&R": "easy applyFooocusInpaint"
      },
      "widgets_values": [
        "fooocus_inpaint_head",
        "inpaint_v26 (1.32GB)"
      ]
    }
  ],
  "links": [
    [
      83,
      56,
      0,
      51,
      0,
      "PIPE_LINE"
    ],
    [
      84,
      56,
      1,
      53,
      0,
      "MODEL"
    ],
    [
      85,
      54,
      2,
      53,
      1,
      "LATENT"
    ],
    [
      86,
      56,
      2,
      54,
      0,
      "CONDITIONING"
    ],
    [
      87,
      56,
      3,
      54,
      1,
      "CONDITIONING"
    ],
    [
      88,
      56,
      5,
      54,
      2,
      "VAE"
    ],
    [
      89,
      52,
      0,
      54,
      3,
      "IMAGE"
    ],
    [
      90,
      52,
      1,
      54,
      4,
      "MASK"
    ],
    [
      91,
      53,
      0,
      55,
      0,
      "MODEL"
    ],
    [
      92,
      50,
      0,
      56,
      0,
      "PIPE_LINE"
    ],
    [
      93,
      51,
      0,
      57,
      0,
      "PIPE_LINE"
    ],
    [
      94,
      55,
      0,
      57,
      1,
      "MODEL"
    ],
    [
      95,
      54,
      0,
      57,
      2,
      "CONDITIONING"
    ],
    [
      96,
      54,
      1,
      57,
      3,
      "CONDITIONING"
    ],
    [
      97,
      54,
      3,
      57,
      4,
      "LATENT"
    ]
  ],
  "groups": [],
  "config": {},
  "extra": {
    "0246.VERSION": [
      0,
      0,
      4
    ]
  },
  "version": 0.4
}

他にもまだあるのですが、普段あまりにも使わなすぎて説明できるほど知識ないので省略…


次回はEasyUse+0246やList-Utilsを使った構築かXYかEff-EDかはたまた別のなにかか…

今一番ほしいのは複数のワークフローをモジュール形式で読み込んで、同じフローは別の環境でも変更が適用されるような機能です。だれかー
イメージ↓

タイトルとURLをコピーしました