ACE++とは?

これは以下のようなプロンプトで生成した1枚の画像です。
- 2フレームに分かれた画像。
- 1フレーム目にはAさんが座っている。
- 2フレーム目ではAさんがこちらを向いている。
見て分かるように、左右に映っている人物は同一人物に見えますね。 これはスプライトシートテクニックといって、一貫性のあるシチュエーションを複数枚作りたいときに、Stable Diffusion 1.5 時代から使われていた裏技です。

ここから一歩進めて、上のような画像を与えたうえで、右半分だけを inpainting させてみます。
すると、左の画像を参照しながら、右側に新たな画像が生成されます。
これが IC-LoRA、そして今回扱う ACE++ の根本的な原理です。 これまでは「うまく行くときもある」程度のテクニックでしたが、Flux の登場により、ある程度安定した生成が可能になりました。
雑にまとめると、ACE++ はこの原理を LoRA で強化したもので、用途別に3つの LoRA が用意されています。
- ID転送 / Face Swap
- Subject転送
- 指示ベース画像編集(ローカル編集)
必要なカスタムノード
マッティングやセグメンテーション系のノードが多く含まれるカスタムノードですが、この中にある IC LoRA Concat (RMBG) 🖼️ ノードだけを使います。
ACE++ 公式のカスタムノードもありますが、挙動が安定しないためここでは採用しません。
モデルのダウンロード
- diffusion_models
- loras
📂ComfyUI/
└── 📂models/
├── 📂diffusion_models/
│ └── FLUX.1-Fill-dev_fp8.safetensors
└── 📂loras/
├── comfyui_portrait_lora64.safetensors
├── comfyui_subject_lora16.safetensors
└── comfyui_local_lora16.safetensors
基本の考え方
ACE++ は、「参照画像」と「編集したい画像+マスク」を横並びにした1枚の画像 を見ながら動きます。
- 左側:参照画像(寄せたい顔・キャラなど)
- 右側:白紙 or 編集したい画像(+その上に描いたマスク)
この2つを横にくっつけて1枚の画像にしてから、通常どおり inpainting させるイメージです。 Flux.1 Fill が「どこを描き直すか」、ACE++ の LoRA が「どのような見た目に寄せるか」を担当している、と捉えると分かりやすいと思います。
ID転送
参照画像の人物(顔)に似た画像を生成します。

{
"id": "18404b37-92b0-4d11-a39c-ae941838eb83",
"revision": 0,
"last_node_id": 60,
"last_link_id": 91,
"nodes": [
{
"id": 33,
"type": "CLIPTextEncode",
"pos": [
449.6776859504133,
378.47933884297515
],
"size": [
307.77605192326325,
100.04636029960699
],
"flags": {
"collapsed": true
},
"order": 6,
"mode": 0,
"inputs": [
{
"name": "clip",
"type": "CLIP",
"link": 60
}
],
"outputs": [
{
"name": "CONDITIONING",
"type": "CONDITIONING",
"slot_index": 0,
"links": [
68
]
}
],
"title": "CLIP Text Encode (Negative Prompt)",
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.39",
"Node name for S&R": "CLIPTextEncode"
},
"widgets_values": [
""
]
},
{
"id": 42,
"type": "DualCLIPLoader",
"pos": [
127.73647806467098,
235.59098740254555
],
"size": [
270,
130
],
"flags": {},
"order": 0,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "CLIP",
"type": "CLIP",
"links": [
59,
60
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.39",
"Node name for S&R": "DualCLIPLoader"
},
"widgets_values": [
"clip_l.safetensors",
"t5xxl_fp8_e4m3fn.safetensors",
"flux",
"default"
]
},
{
"id": 43,
"type": "VAELoader",
"pos": [
510.65253242761105,
443.7682260598112
],
"size": [
240.81669781621986,
58
],
"flags": {},
"order": 1,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "VAE",
"type": "VAE",
"links": [
62,
69
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.39",
"Node name for S&R": "VAELoader"
},
"widgets_values": [
"ae.safetensors"
]
},
{
"id": 55,
"type": "LoraLoaderModelOnly",
"pos": [
1042.7127702359699,
22.813225681838027
],
"size": [
234.83685292236623,
82
],
"flags": {},
"order": 7,
"mode": 0,
"inputs": [
{
"name": "model",
"type": "MODEL",
"link": 80
}
],
"outputs": [
{
"name": "MODEL",
"type": "MODEL",
"links": [
81
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.76",
"Node name for S&R": "LoraLoaderModelOnly"
},
"widgets_values": [
"ACE_Plus\\comfyui_portrait_lora64.safetensors",
1
],
"color": "#323",
"bgcolor": "#535"
},
{
"id": 41,
"type": "UNETLoader",
"pos": [
745.3622345020736,
22.813225681838027
],
"size": [
270,
82
],
"flags": {},
"order": 2,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "MODEL",
"type": "MODEL",
"links": [
80
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.39",
"Node name for S&R": "UNETLoader"
},
"widgets_values": [
"Flux.1\\FLUX.1-Fill-dev_fp8.safetensors",
"fp8_e4m3fn"
],
"color": "#323",
"bgcolor": "#535"
},
{
"id": 48,
"type": "InpaintModelConditioning",
"pos": [
1024.783207305155,
209.14883998160443
],
"size": [
262.0525920360633,
138
],
"flags": {},
"order": 12,
"mode": 0,
"inputs": [
{
"name": "positive",
"type": "CONDITIONING",
"link": 74
},
{
"name": "negative",
"type": "CONDITIONING",
"link": 68
},
{
"name": "vae",
"type": "VAE",
"link": 69
},
{
"name": "pixels",
"type": "IMAGE",
"link": 83
},
{
"name": "mask",
"type": "MASK",
"link": 84
}
],
"outputs": [
{
"name": "positive",
"type": "CONDITIONING",
"links": [
75
]
},
{
"name": "negative",
"type": "CONDITIONING",
"links": [
67
]
},
{
"name": "latent",
"type": "LATENT",
"links": [
72
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.76",
"Node name for S&R": "InpaintModelConditioning"
},
"widgets_values": [
false
],
"color": "#432",
"bgcolor": "#653"
},
{
"id": 49,
"type": "LoadImage",
"pos": [
153.02538524314295,
564.5303157817599
],
"size": [
261.798828125,
383
],
"flags": {},
"order": 3,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
76
]
},
{
"name": "MASK",
"type": "MASK",
"links": []
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.76",
"Node name for S&R": "LoadImage",
"image": "clipspace/clipspace-painted-masked-1765287192968.png [input]"
},
"widgets_values": [
"pasted/image (86).png",
"image"
]
},
{
"id": 53,
"type": "EmptyImage",
"pos": [
150.30672154344506,
1007.7657382927489
],
"size": [
269.25,
130
],
"flags": {},
"order": 4,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
79
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.76",
"Node name for S&R": "EmptyImage"
},
"widgets_values": [
1024,
1024,
1,
8224125
]
},
{
"id": 6,
"type": "CLIPTextEncode",
"pos": [
449.6776859504133,
190.47933884297524
],
"size": [
301.84503173828125,
128.01304626464844
],
"flags": {},
"order": 5,
"mode": 0,
"inputs": [
{
"name": "clip",
"type": "CLIP",
"link": 59
}
],
"outputs": [
{
"name": "CONDITIONING",
"type": "CONDITIONING",
"slot_index": 0,
"links": [
73
]
}
],
"title": "CLIP Text Encode (Positive Prompt)",
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.39",
"Node name for S&R": "CLIPTextEncode"
},
"widgets_values": [
"A photograph of a woman wearing a yellow sweater,smiling"
]
},
{
"id": 31,
"type": "KSampler",
"pos": [
1328.1790861279906,
189.31698654463506
],
"size": [
315,
262
],
"flags": {},
"order": 13,
"mode": 0,
"inputs": [
{
"name": "model",
"type": "MODEL",
"link": 81
},
{
"name": "positive",
"type": "CONDITIONING",
"link": 75
},
{
"name": "negative",
"type": "CONDITIONING",
"link": 67
},
{
"name": "latent_image",
"type": "LATENT",
"link": 72
}
],
"outputs": [
{
"name": "LATENT",
"type": "LATENT",
"slot_index": 0,
"links": [
52
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.39",
"Node name for S&R": "KSampler"
},
"widgets_values": [
12345,
"fixed",
20,
1,
"euler",
"normal",
1
]
},
{
"id": 50,
"type": "AILab_ICLoRAConcat",
"pos": [
453.73380338397993,
563.7693263580215
],
"size": [
300,
202
],
"flags": {},
"order": 8,
"mode": 0,
"inputs": [
{
"name": "object_image",
"type": "IMAGE",
"link": 76
},
{
"name": "object_mask",
"shape": 7,
"type": "MASK",
"link": null
},
{
"name": "base_image",
"shape": 7,
"type": "IMAGE",
"link": 79
},
{
"name": "base_mask",
"shape": 7,
"type": "MASK",
"link": null
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
77,
83
]
},
{
"name": "OBJECT_MASK",
"type": "MASK",
"links": null
},
{
"name": "BASE_MASK",
"type": "MASK",
"links": [
82,
84
]
},
{
"name": "WIDTH",
"type": "INT",
"links": [
87
]
},
{
"name": "HEIGHT",
"type": "INT",
"links": [
88
]
},
{
"name": "X",
"type": "INT",
"links": [
89
]
},
{
"name": "Y",
"type": "INT",
"links": null
}
],
"properties": {
"cnr_id": "comfyui-rmbg",
"ver": "2.9.4",
"Node name for S&R": "AILab_ICLoRAConcat"
},
"widgets_values": [
"left-right",
0
],
"color": "#232",
"bgcolor": "#353"
},
{
"id": 35,
"type": "FluxGuidance",
"pos": [
779.6668528783277,
190.47933884297524
],
"size": [
211.60000610351562,
58
],
"flags": {},
"order": 9,
"mode": 0,
"inputs": [
{
"name": "conditioning",
"type": "CONDITIONING",
"link": 73
}
],
"outputs": [
{
"name": "CONDITIONING",
"type": "CONDITIONING",
"slot_index": 0,
"links": [
74
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.39",
"Node name for S&R": "FluxGuidance"
},
"widgets_values": [
30
]
},
{
"id": 8,
"type": "VAEDecode",
"pos": [
1667.7084821851195,
189.31698654463506
],
"size": [
157,
46
],
"flags": {},
"order": 14,
"mode": 0,
"inputs": [
{
"name": "samples",
"type": "LATENT",
"link": 52
},
{
"name": "vae",
"type": "VAE",
"link": 62
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"slot_index": 0,
"links": [
85,
86
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.39",
"Node name for S&R": "VAEDecode"
},
"widgets_values": []
},
{
"id": 57,
"type": "PreviewImage",
"pos": [
1840.5233305965953,
189.31698654463506
],
"size": [
565.8404755822689,
322.08275807663404
],
"flags": {},
"order": 15,
"mode": 0,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 85
}
],
"outputs": [],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.76",
"Node name for S&R": "PreviewImage"
},
"widgets_values": []
},
{
"id": 58,
"type": "ImageCrop",
"pos": [
1840.5233305965953,
595.8079197386622
],
"size": [
210,
130
],
"flags": {},
"order": 16,
"mode": 0,
"inputs": [
{
"name": "image",
"type": "IMAGE",
"link": 86
},
{
"name": "width",
"type": "INT",
"widget": {
"name": "width"
},
"link": 87
},
{
"name": "height",
"type": "INT",
"widget": {
"name": "height"
},
"link": 88
},
{
"name": "x",
"type": "INT",
"widget": {
"name": "x"
},
"link": 89
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
91
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.76",
"Node name for S&R": "ImageCrop"
},
"widgets_values": [
512,
512,
0,
0
],
"color": "#223",
"bgcolor": "#335"
},
{
"id": 60,
"type": "SaveImage",
"pos": [
2083.1507984717014,
596.9715286271478
],
"size": [
392.6446280991736,
454.297520661157
],
"flags": {},
"order": 17,
"mode": 0,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 91
}
],
"outputs": [],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.76"
},
"widgets_values": [
"ComfyUI"
]
},
{
"id": 51,
"type": "PreviewImage",
"pos": [
891.3276645987502,
561.8084085648995
],
"size": [
327.3380000000002,
258
],
"flags": {},
"order": 10,
"mode": 0,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 77
}
],
"outputs": [],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.76",
"Node name for S&R": "PreviewImage"
},
"widgets_values": []
},
{
"id": 56,
"type": "MaskPreview",
"pos": [
890.388757091814,
874.5245362083745
],
"size": [
335.6872727272728,
258
],
"flags": {},
"order": 11,
"mode": 0,
"inputs": [
{
"name": "mask",
"type": "MASK",
"link": 82
}
],
"outputs": [],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.76",
"Node name for S&R": "MaskPreview"
},
"widgets_values": []
}
],
"links": [
[
52,
31,
0,
8,
0,
"LATENT"
],
[
59,
42,
0,
6,
0,
"CLIP"
],
[
60,
42,
0,
33,
0,
"CLIP"
],
[
62,
43,
0,
8,
1,
"VAE"
],
[
67,
48,
1,
31,
2,
"CONDITIONING"
],
[
68,
33,
0,
48,
1,
"CONDITIONING"
],
[
69,
43,
0,
48,
2,
"VAE"
],
[
72,
48,
2,
31,
3,
"LATENT"
],
[
73,
6,
0,
35,
0,
"CONDITIONING"
],
[
74,
35,
0,
48,
0,
"CONDITIONING"
],
[
75,
48,
0,
31,
1,
"CONDITIONING"
],
[
76,
49,
0,
50,
0,
"IMAGE"
],
[
77,
50,
0,
51,
0,
"IMAGE"
],
[
79,
53,
0,
50,
2,
"IMAGE"
],
[
80,
41,
0,
55,
0,
"MODEL"
],
[
81,
55,
0,
31,
0,
"MODEL"
],
[
82,
50,
2,
56,
0,
"MASK"
],
[
83,
50,
0,
48,
3,
"IMAGE"
],
[
84,
50,
2,
48,
4,
"MASK"
],
[
85,
8,
0,
57,
0,
"IMAGE"
],
[
86,
8,
0,
58,
0,
"IMAGE"
],
[
87,
50,
3,
58,
1,
"INT"
],
[
88,
50,
4,
58,
2,
"INT"
],
[
89,
50,
5,
58,
3,
"INT"
],
[
91,
58,
0,
60,
0,
"IMAGE"
]
],
"groups": [],
"config": {},
"extra": {
"ds": {
"scale": 0.6830134553650709,
"offset": [
-27.736478064670976,
77.18677431816198
]
},
"frontendVersion": "1.35.0",
"VHS_latentpreview": false,
"VHS_latentpreviewrate": 0,
"VHS_MetadataImage": true,
"VHS_KeepIntermediate": true
},
"version": 0.4
}
- ベースは Flux.1 Fill を使った inpainting です。
- 🟪 FLUX.1 Fill と
portraitLoRA を読み込みます。 - 🟩
IC LoRA Concat (RMBG) 🖼️ノードで、「参照画像」と「ベース画像+マスク」を横並びにします。- 左:参照画像(人物写真など)
- 右:ベース画像(ここではグレーの空画像)+マスク
- マスクに何も入力しなかった場合、右側全体がマスク扱いになります。
- 🟨 通常の inpainting で使うものと同じ
InpaintModelConditioningノードです。 - 🟦 出力画像は当然、横長の2枚組になります。
- 右半分だけ使いたいので、
IC LoRA Concat (RMBG) 🖼️ノードから渡される位置情報を使って、右側だけをクロップします。
- 右半分だけ使いたいので、
Face Swapとして使う
基本は ID転送 と同じですが、「右側に入れるベース画像」と「マスクのかけ方」を変えることで Face Swap として動きます。

{
"id": "18404b37-92b0-4d11-a39c-ae941838eb83",
"revision": 0,
"last_node_id": 61,
"last_link_id": 93,
"nodes": [
{
"id": 33,
"type": "CLIPTextEncode",
"pos": [
449.6776859504133,
378.47933884297515
],
"size": [
307.77605192326325,
100.04636029960699
],
"flags": {
"collapsed": true
},
"order": 6,
"mode": 0,
"inputs": [
{
"name": "clip",
"type": "CLIP",
"link": 60
}
],
"outputs": [
{
"name": "CONDITIONING",
"type": "CONDITIONING",
"slot_index": 0,
"links": [
68
]
}
],
"title": "CLIP Text Encode (Negative Prompt)",
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.39",
"Node name for S&R": "CLIPTextEncode"
},
"widgets_values": [
""
]
},
{
"id": 42,
"type": "DualCLIPLoader",
"pos": [
127.73647806467098,
235.59098740254555
],
"size": [
270,
130
],
"flags": {},
"order": 0,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "CLIP",
"type": "CLIP",
"links": [
59,
60
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.39",
"Node name for S&R": "DualCLIPLoader"
},
"widgets_values": [
"clip_l.safetensors",
"t5xxl_fp8_e4m3fn.safetensors",
"flux",
"default"
]
},
{
"id": 43,
"type": "VAELoader",
"pos": [
510.65253242761105,
443.7682260598112
],
"size": [
240.81669781621986,
58
],
"flags": {},
"order": 1,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "VAE",
"type": "VAE",
"links": [
62,
69
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.39",
"Node name for S&R": "VAELoader"
},
"widgets_values": [
"ae.safetensors"
]
},
{
"id": 55,
"type": "LoraLoaderModelOnly",
"pos": [
1042.7127702359699,
22.813225681838027
],
"size": [
234.83685292236623,
82
],
"flags": {},
"order": 7,
"mode": 0,
"inputs": [
{
"name": "model",
"type": "MODEL",
"link": 80
}
],
"outputs": [
{
"name": "MODEL",
"type": "MODEL",
"links": [
81
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.76",
"Node name for S&R": "LoraLoaderModelOnly"
},
"widgets_values": [
"ACE_Plus\\comfyui_portrait_lora64.safetensors",
1
],
"color": "#323",
"bgcolor": "#535"
},
{
"id": 41,
"type": "UNETLoader",
"pos": [
745.3622345020736,
22.813225681838027
],
"size": [
270,
82
],
"flags": {},
"order": 2,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "MODEL",
"type": "MODEL",
"links": [
80
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.39",
"Node name for S&R": "UNETLoader"
},
"widgets_values": [
"Flux.1\\FLUX.1-Fill-dev_fp8.safetensors",
"fp8_e4m3fn"
],
"color": "#323",
"bgcolor": "#535"
},
{
"id": 48,
"type": "InpaintModelConditioning",
"pos": [
1024.783207305155,
209.14883998160443
],
"size": [
262.0525920360633,
138
],
"flags": {},
"order": 12,
"mode": 0,
"inputs": [
{
"name": "positive",
"type": "CONDITIONING",
"link": 74
},
{
"name": "negative",
"type": "CONDITIONING",
"link": 68
},
{
"name": "vae",
"type": "VAE",
"link": 69
},
{
"name": "pixels",
"type": "IMAGE",
"link": 83
},
{
"name": "mask",
"type": "MASK",
"link": 84
}
],
"outputs": [
{
"name": "positive",
"type": "CONDITIONING",
"links": [
75
]
},
{
"name": "negative",
"type": "CONDITIONING",
"links": [
67
]
},
{
"name": "latent",
"type": "LATENT",
"links": [
72
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.76",
"Node name for S&R": "InpaintModelConditioning"
},
"widgets_values": [
false
],
"color": "#432",
"bgcolor": "#653"
},
{
"id": 31,
"type": "KSampler",
"pos": [
1328.1790861279906,
189.31698654463506
],
"size": [
315,
262
],
"flags": {},
"order": 13,
"mode": 0,
"inputs": [
{
"name": "model",
"type": "MODEL",
"link": 81
},
{
"name": "positive",
"type": "CONDITIONING",
"link": 75
},
{
"name": "negative",
"type": "CONDITIONING",
"link": 67
},
{
"name": "latent_image",
"type": "LATENT",
"link": 72
}
],
"outputs": [
{
"name": "LATENT",
"type": "LATENT",
"slot_index": 0,
"links": [
52
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.39",
"Node name for S&R": "KSampler"
},
"widgets_values": [
12345,
"fixed",
20,
1,
"euler",
"normal",
1
]
},
{
"id": 50,
"type": "AILab_ICLoRAConcat",
"pos": [
453.73380338397993,
563.7693263580215
],
"size": [
300,
202
],
"flags": {},
"order": 8,
"mode": 0,
"inputs": [
{
"name": "object_image",
"type": "IMAGE",
"link": 76
},
{
"name": "object_mask",
"shape": 7,
"type": "MASK",
"link": null
},
{
"name": "base_image",
"shape": 7,
"type": "IMAGE",
"link": 92
},
{
"name": "base_mask",
"shape": 7,
"type": "MASK",
"link": 93
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
77,
83
]
},
{
"name": "OBJECT_MASK",
"type": "MASK",
"links": null
},
{
"name": "BASE_MASK",
"type": "MASK",
"links": [
82,
84
]
},
{
"name": "WIDTH",
"type": "INT",
"links": [
87
]
},
{
"name": "HEIGHT",
"type": "INT",
"links": [
88
]
},
{
"name": "X",
"type": "INT",
"links": [
89
]
},
{
"name": "Y",
"type": "INT",
"links": null
}
],
"properties": {
"cnr_id": "comfyui-rmbg",
"ver": "2.9.4",
"Node name for S&R": "AILab_ICLoRAConcat"
},
"widgets_values": [
"left-right",
0
],
"color": "#232",
"bgcolor": "#353"
},
{
"id": 35,
"type": "FluxGuidance",
"pos": [
779.6668528783277,
190.47933884297524
],
"size": [
211.60000610351562,
58
],
"flags": {},
"order": 9,
"mode": 0,
"inputs": [
{
"name": "conditioning",
"type": "CONDITIONING",
"link": 73
}
],
"outputs": [
{
"name": "CONDITIONING",
"type": "CONDITIONING",
"slot_index": 0,
"links": [
74
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.39",
"Node name for S&R": "FluxGuidance"
},
"widgets_values": [
30
]
},
{
"id": 57,
"type": "PreviewImage",
"pos": [
1840.5233305965953,
189.31698654463506
],
"size": [
565.8404755822689,
322.08275807663404
],
"flags": {},
"order": 15,
"mode": 0,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 85
}
],
"outputs": [],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.76",
"Node name for S&R": "PreviewImage"
},
"widgets_values": []
},
{
"id": 58,
"type": "ImageCrop",
"pos": [
1840.5233305965953,
595.8079197386622
],
"size": [
210,
130
],
"flags": {},
"order": 16,
"mode": 0,
"inputs": [
{
"name": "image",
"type": "IMAGE",
"link": 86
},
{
"name": "width",
"type": "INT",
"widget": {
"name": "width"
},
"link": 87
},
{
"name": "height",
"type": "INT",
"widget": {
"name": "height"
},
"link": 88
},
{
"name": "x",
"type": "INT",
"widget": {
"name": "x"
},
"link": 89
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
91
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.76",
"Node name for S&R": "ImageCrop"
},
"widgets_values": [
512,
512,
0,
0
],
"color": "#223",
"bgcolor": "#335"
},
{
"id": 60,
"type": "SaveImage",
"pos": [
2083.1507984717014,
596.9715286271478
],
"size": [
392.6446280991736,
454.297520661157
],
"flags": {},
"order": 17,
"mode": 0,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 91
}
],
"outputs": [],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.76"
},
"widgets_values": [
"ComfyUI"
]
},
{
"id": 51,
"type": "PreviewImage",
"pos": [
891.3276645987502,
561.8084085648995
],
"size": [
327.3380000000002,
258
],
"flags": {},
"order": 10,
"mode": 0,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 77
}
],
"outputs": [],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.76",
"Node name for S&R": "PreviewImage"
},
"widgets_values": []
},
{
"id": 56,
"type": "MaskPreview",
"pos": [
890.388757091814,
874.5245362083745
],
"size": [
335.6872727272728,
258
],
"flags": {},
"order": 11,
"mode": 0,
"inputs": [
{
"name": "mask",
"type": "MASK",
"link": 82
}
],
"outputs": [],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.76",
"Node name for S&R": "MaskPreview"
},
"widgets_values": []
},
{
"id": 49,
"type": "LoadImage",
"pos": [
153.02538524314295,
564.5303157817599
],
"size": [
261.798828125,
383
],
"flags": {},
"order": 3,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
76
]
},
{
"name": "MASK",
"type": "MASK",
"links": []
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.76",
"Node name for S&R": "LoadImage",
"image": "clipspace/clipspace-painted-masked-1765287192968.png [input]"
},
"widgets_values": [
"pasted/image (87).png",
"image"
]
},
{
"id": 61,
"type": "LoadImage",
"pos": [
154.26919274192008,
1000.1054342156565
],
"size": [
261.798828125,
383
],
"flags": {},
"order": 4,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
92
]
},
{
"name": "MASK",
"type": "MASK",
"links": [
93
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.76",
"Node name for S&R": "LoadImage",
"image": "clipspace/clipspace-painted-masked-1765319093841.png [input]"
},
"widgets_values": [
"clipspace/clipspace-painted-masked-1765319093841.png [input]",
"image"
]
},
{
"id": 6,
"type": "CLIPTextEncode",
"pos": [
449.6776859504133,
190.47933884297524
],
"size": [
301.84503173828125,
128.01304626464844
],
"flags": {},
"order": 5,
"mode": 0,
"inputs": [
{
"name": "clip",
"type": "CLIP",
"link": 59
}
],
"outputs": [
{
"name": "CONDITIONING",
"type": "CONDITIONING",
"slot_index": 0,
"links": [
73
]
}
],
"title": "CLIP Text Encode (Positive Prompt)",
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.39",
"Node name for S&R": "CLIPTextEncode"
},
"widgets_values": [
"A photograph of a Street musician playing violin"
]
},
{
"id": 8,
"type": "VAEDecode",
"pos": [
1664.1979192573735,
189.31698654463506
],
"size": [
155.3065782098388,
46
],
"flags": {},
"order": 14,
"mode": 0,
"inputs": [
{
"name": "samples",
"type": "LATENT",
"link": 52
},
{
"name": "vae",
"type": "VAE",
"link": 62
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"slot_index": 0,
"links": [
85,
86
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.39",
"Node name for S&R": "VAEDecode"
},
"widgets_values": []
}
],
"links": [
[
52,
31,
0,
8,
0,
"LATENT"
],
[
59,
42,
0,
6,
0,
"CLIP"
],
[
60,
42,
0,
33,
0,
"CLIP"
],
[
62,
43,
0,
8,
1,
"VAE"
],
[
67,
48,
1,
31,
2,
"CONDITIONING"
],
[
68,
33,
0,
48,
1,
"CONDITIONING"
],
[
69,
43,
0,
48,
2,
"VAE"
],
[
72,
48,
2,
31,
3,
"LATENT"
],
[
73,
6,
0,
35,
0,
"CONDITIONING"
],
[
74,
35,
0,
48,
0,
"CONDITIONING"
],
[
75,
48,
0,
31,
1,
"CONDITIONING"
],
[
76,
49,
0,
50,
0,
"IMAGE"
],
[
77,
50,
0,
51,
0,
"IMAGE"
],
[
80,
41,
0,
55,
0,
"MODEL"
],
[
81,
55,
0,
31,
0,
"MODEL"
],
[
82,
50,
2,
56,
0,
"MASK"
],
[
83,
50,
0,
48,
3,
"IMAGE"
],
[
84,
50,
2,
48,
4,
"MASK"
],
[
85,
8,
0,
57,
0,
"IMAGE"
],
[
86,
8,
0,
58,
0,
"IMAGE"
],
[
87,
50,
3,
58,
1,
"INT"
],
[
88,
50,
4,
58,
2,
"INT"
],
[
89,
50,
5,
58,
3,
"INT"
],
[
91,
58,
0,
60,
0,
"IMAGE"
],
[
92,
61,
0,
50,
2,
"IMAGE"
],
[
93,
61,
1,
50,
3,
"MASK"
]
],
"groups": [],
"config": {},
"extra": {
"ds": {
"scale": 0.620921323059155,
"offset": [
-27.736478064670976,
77.18677431816198
]
},
"frontendVersion": "1.35.0",
"VHS_latentpreview": false,
"VHS_latentpreviewrate": 0,
"VHS_MetadataImage": true,
"VHS_KeepIntermediate": true
},
"version": 0.4
}
- 🟩 右側に、顔を入れ替えたい画像(ベース画像)を入力します。
- 🟩 顔だけ変えたい場合は、顔の周辺だけにマスクをかけます。
FaceSwap といいながら、より柔軟なので、頭部全体をマスクしてもうまくいきます。
Subject転送
comfyui_subject_lora16.safetensors に切り替えると、Subject 転送が出来ます。

{
"id": "18404b37-92b0-4d11-a39c-ae941838eb83",
"revision": 0,
"last_node_id": 61,
"last_link_id": 93,
"nodes": [
{
"id": 33,
"type": "CLIPTextEncode",
"pos": [
449.6776859504133,
378.47933884297515
],
"size": [
307.77605192326325,
100.04636029960699
],
"flags": {
"collapsed": true
},
"order": 6,
"mode": 0,
"inputs": [
{
"name": "clip",
"type": "CLIP",
"link": 60
}
],
"outputs": [
{
"name": "CONDITIONING",
"type": "CONDITIONING",
"slot_index": 0,
"links": [
68
]
}
],
"title": "CLIP Text Encode (Negative Prompt)",
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.39",
"Node name for S&R": "CLIPTextEncode"
},
"widgets_values": [
""
]
},
{
"id": 42,
"type": "DualCLIPLoader",
"pos": [
127.73647806467098,
235.59098740254555
],
"size": [
270,
130
],
"flags": {},
"order": 0,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "CLIP",
"type": "CLIP",
"links": [
59,
60
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.39",
"Node name for S&R": "DualCLIPLoader"
},
"widgets_values": [
"clip_l.safetensors",
"t5xxl_fp8_e4m3fn.safetensors",
"flux",
"default"
]
},
{
"id": 43,
"type": "VAELoader",
"pos": [
510.65253242761105,
443.7682260598112
],
"size": [
240.81669781621986,
58
],
"flags": {},
"order": 1,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "VAE",
"type": "VAE",
"links": [
62,
69
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.39",
"Node name for S&R": "VAELoader"
},
"widgets_values": [
"ae.safetensors"
]
},
{
"id": 41,
"type": "UNETLoader",
"pos": [
745.3622345020736,
22.813225681838027
],
"size": [
270,
82
],
"flags": {},
"order": 2,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "MODEL",
"type": "MODEL",
"links": [
80
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.39",
"Node name for S&R": "UNETLoader"
},
"widgets_values": [
"Flux.1\\FLUX.1-Fill-dev_fp8.safetensors",
"fp8_e4m3fn"
],
"color": "#323",
"bgcolor": "#535"
},
{
"id": 48,
"type": "InpaintModelConditioning",
"pos": [
1024.783207305155,
209.14883998160443
],
"size": [
262.0525920360633,
138
],
"flags": {},
"order": 12,
"mode": 0,
"inputs": [
{
"name": "positive",
"type": "CONDITIONING",
"link": 74
},
{
"name": "negative",
"type": "CONDITIONING",
"link": 68
},
{
"name": "vae",
"type": "VAE",
"link": 69
},
{
"name": "pixels",
"type": "IMAGE",
"link": 83
},
{
"name": "mask",
"type": "MASK",
"link": 84
}
],
"outputs": [
{
"name": "positive",
"type": "CONDITIONING",
"links": [
75
]
},
{
"name": "negative",
"type": "CONDITIONING",
"links": [
67
]
},
{
"name": "latent",
"type": "LATENT",
"links": [
72
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.76",
"Node name for S&R": "InpaintModelConditioning"
},
"widgets_values": [
false
],
"color": "#432",
"bgcolor": "#653"
},
{
"id": 50,
"type": "AILab_ICLoRAConcat",
"pos": [
453.73380338397993,
563.7693263580215
],
"size": [
300,
202
],
"flags": {},
"order": 8,
"mode": 0,
"inputs": [
{
"name": "object_image",
"type": "IMAGE",
"link": 76
},
{
"name": "object_mask",
"shape": 7,
"type": "MASK",
"link": null
},
{
"name": "base_image",
"shape": 7,
"type": "IMAGE",
"link": 92
},
{
"name": "base_mask",
"shape": 7,
"type": "MASK",
"link": 93
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
77,
83
]
},
{
"name": "OBJECT_MASK",
"type": "MASK",
"links": null
},
{
"name": "BASE_MASK",
"type": "MASK",
"links": [
82,
84
]
},
{
"name": "WIDTH",
"type": "INT",
"links": [
87
]
},
{
"name": "HEIGHT",
"type": "INT",
"links": [
88
]
},
{
"name": "X",
"type": "INT",
"links": [
89
]
},
{
"name": "Y",
"type": "INT",
"links": null
}
],
"properties": {
"cnr_id": "comfyui-rmbg",
"ver": "2.9.4",
"Node name for S&R": "AILab_ICLoRAConcat"
},
"widgets_values": [
"left-right",
0
],
"color": "#232",
"bgcolor": "#353"
},
{
"id": 35,
"type": "FluxGuidance",
"pos": [
779.6668528783277,
190.47933884297524
],
"size": [
211.60000610351562,
58
],
"flags": {},
"order": 9,
"mode": 0,
"inputs": [
{
"name": "conditioning",
"type": "CONDITIONING",
"link": 73
}
],
"outputs": [
{
"name": "CONDITIONING",
"type": "CONDITIONING",
"slot_index": 0,
"links": [
74
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.39",
"Node name for S&R": "FluxGuidance"
},
"widgets_values": [
30
]
},
{
"id": 57,
"type": "PreviewImage",
"pos": [
1840.5233305965953,
189.31698654463506
],
"size": [
565.8404755822689,
322.08275807663404
],
"flags": {},
"order": 15,
"mode": 0,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 85
}
],
"outputs": [],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.76",
"Node name for S&R": "PreviewImage"
},
"widgets_values": []
},
{
"id": 58,
"type": "ImageCrop",
"pos": [
1840.5233305965953,
595.8079197386622
],
"size": [
210,
130
],
"flags": {},
"order": 16,
"mode": 0,
"inputs": [
{
"name": "image",
"type": "IMAGE",
"link": 86
},
{
"name": "width",
"type": "INT",
"widget": {
"name": "width"
},
"link": 87
},
{
"name": "height",
"type": "INT",
"widget": {
"name": "height"
},
"link": 88
},
{
"name": "x",
"type": "INT",
"widget": {
"name": "x"
},
"link": 89
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
91
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.76",
"Node name for S&R": "ImageCrop"
},
"widgets_values": [
512,
512,
0,
0
],
"color": "#223",
"bgcolor": "#335"
},
{
"id": 60,
"type": "SaveImage",
"pos": [
2083.1507984717014,
596.9715286271478
],
"size": [
392.6446280991736,
454.297520661157
],
"flags": {},
"order": 17,
"mode": 0,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 91
}
],
"outputs": [],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.76"
},
"widgets_values": [
"ComfyUI"
]
},
{
"id": 51,
"type": "PreviewImage",
"pos": [
891.3276645987502,
561.8084085648995
],
"size": [
327.3380000000002,
258
],
"flags": {},
"order": 10,
"mode": 0,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 77
}
],
"outputs": [],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.76",
"Node name for S&R": "PreviewImage"
},
"widgets_values": []
},
{
"id": 56,
"type": "MaskPreview",
"pos": [
890.388757091814,
874.5245362083745
],
"size": [
335.6872727272728,
258
],
"flags": {},
"order": 11,
"mode": 0,
"inputs": [
{
"name": "mask",
"type": "MASK",
"link": 82
}
],
"outputs": [],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.76",
"Node name for S&R": "MaskPreview"
},
"widgets_values": []
},
{
"id": 8,
"type": "VAEDecode",
"pos": [
1664.1979192573735,
189.31698654463506
],
"size": [
155.3065782098388,
46
],
"flags": {},
"order": 14,
"mode": 0,
"inputs": [
{
"name": "samples",
"type": "LATENT",
"link": 52
},
{
"name": "vae",
"type": "VAE",
"link": 62
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"slot_index": 0,
"links": [
85,
86
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.39",
"Node name for S&R": "VAEDecode"
},
"widgets_values": []
},
{
"id": 49,
"type": "LoadImage",
"pos": [
153.02538524314295,
564.5303157817599
],
"size": [
261.798828125,
383
],
"flags": {},
"order": 3,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
76
]
},
{
"name": "MASK",
"type": "MASK",
"links": []
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.76",
"Node name for S&R": "LoadImage",
"image": "clipspace/clipspace-painted-masked-1765287192968.png [input]"
},
"widgets_values": [
"pasted/image (89).png",
"image"
]
},
{
"id": 55,
"type": "LoraLoaderModelOnly",
"pos": [
1042.7127702359699,
22.813225681838027
],
"size": [
234.83685292236623,
82
],
"flags": {},
"order": 7,
"mode": 0,
"inputs": [
{
"name": "model",
"type": "MODEL",
"link": 80
}
],
"outputs": [
{
"name": "MODEL",
"type": "MODEL",
"links": [
81
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.76",
"Node name for S&R": "LoraLoaderModelOnly"
},
"widgets_values": [
"ACE_Plus\\comfyui_subject_lora16.safetensors",
1
],
"color": "#323",
"bgcolor": "#535"
},
{
"id": 61,
"type": "LoadImage",
"pos": [
154.26919274192008,
1000.1054342156565
],
"size": [
261.798828125,
383
],
"flags": {},
"order": 4,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
92
]
},
{
"name": "MASK",
"type": "MASK",
"links": [
93
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.76",
"Node name for S&R": "LoadImage",
"image": "clipspace/clipspace-painted-masked-1765319654301.png [input]"
},
"widgets_values": [
"clipspace/clipspace-painted-masked-1765319654301.png [input]",
"image"
]
},
{
"id": 6,
"type": "CLIPTextEncode",
"pos": [
449.6776859504133,
190.47933884297524
],
"size": [
301.84503173828125,
128.01304626464844
],
"flags": {},
"order": 5,
"mode": 0,
"inputs": [
{
"name": "clip",
"type": "CLIP",
"link": 59
}
],
"outputs": [
{
"name": "CONDITIONING",
"type": "CONDITIONING",
"slot_index": 0,
"links": [
73
]
}
],
"title": "CLIP Text Encode (Positive Prompt)",
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.39",
"Node name for S&R": "CLIPTextEncode"
},
"widgets_values": [
"Photo of a woman wearing a white T-shirt with a logo"
]
},
{
"id": 31,
"type": "KSampler",
"pos": [
1328.1790861279906,
189.31698654463506
],
"size": [
315,
262
],
"flags": {},
"order": 13,
"mode": 0,
"inputs": [
{
"name": "model",
"type": "MODEL",
"link": 81
},
{
"name": "positive",
"type": "CONDITIONING",
"link": 75
},
{
"name": "negative",
"type": "CONDITIONING",
"link": 67
},
{
"name": "latent_image",
"type": "LATENT",
"link": 72
}
],
"outputs": [
{
"name": "LATENT",
"type": "LATENT",
"slot_index": 0,
"links": [
52
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.39",
"Node name for S&R": "KSampler"
},
"widgets_values": [
1234,
"fixed",
20,
1,
"euler",
"normal",
1
]
}
],
"links": [
[
52,
31,
0,
8,
0,
"LATENT"
],
[
59,
42,
0,
6,
0,
"CLIP"
],
[
60,
42,
0,
33,
0,
"CLIP"
],
[
62,
43,
0,
8,
1,
"VAE"
],
[
67,
48,
1,
31,
2,
"CONDITIONING"
],
[
68,
33,
0,
48,
1,
"CONDITIONING"
],
[
69,
43,
0,
48,
2,
"VAE"
],
[
72,
48,
2,
31,
3,
"LATENT"
],
[
73,
6,
0,
35,
0,
"CONDITIONING"
],
[
74,
35,
0,
48,
0,
"CONDITIONING"
],
[
75,
48,
0,
31,
1,
"CONDITIONING"
],
[
76,
49,
0,
50,
0,
"IMAGE"
],
[
77,
50,
0,
51,
0,
"IMAGE"
],
[
80,
41,
0,
55,
0,
"MODEL"
],
[
81,
55,
0,
31,
0,
"MODEL"
],
[
82,
50,
2,
56,
0,
"MASK"
],
[
83,
50,
0,
48,
3,
"IMAGE"
],
[
84,
50,
2,
48,
4,
"MASK"
],
[
85,
8,
0,
57,
0,
"IMAGE"
],
[
86,
8,
0,
58,
0,
"IMAGE"
],
[
87,
50,
3,
58,
1,
"INT"
],
[
88,
50,
4,
58,
2,
"INT"
],
[
89,
50,
5,
58,
3,
"INT"
],
[
91,
58,
0,
60,
0,
"IMAGE"
],
[
92,
61,
0,
50,
2,
"IMAGE"
],
[
93,
61,
1,
50,
3,
"MASK"
]
],
"groups": [],
"config": {},
"extra": {
"ds": {
"scale": 0.5644739300537773,
"offset": [
-27.736478064670976,
77.18677431816198
]
},
"frontendVersion": "1.35.0",
"VHS_latentpreview": false,
"VHS_latentpreviewrate": 0,
"VHS_MetadataImage": true,
"VHS_KeepIntermediate": true
},
"version": 0.4
}
- 先程の Face Swap と同じ workflow です。
- 🟪 読み込む LoRA を
subjectに変更します。
人物だけでなく、ロゴやアイテムなど様々なものを参照して生成できます。
- ロゴだけ別のパッケージ写真に転写する
- あるキャラクターやマスコットを、別の背景に立たせる
- 特定の小物(カバンなど)だけを別の写真に移植する
ローカル編集
comfyui_local_lora16.safetensors を使うと、マスクした領域だけを プロンプトに沿って描き直すローカル編集 に寄せることができます。

{
"id": "18404b37-92b0-4d11-a39c-ae941838eb83",
"revision": 0,
"last_node_id": 63,
"last_link_id": 108,
"nodes": [
{
"id": 42,
"type": "DualCLIPLoader",
"pos": [
127.73647806467098,
235.59098740254555
],
"size": [
270,
130
],
"flags": {},
"order": 0,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "CLIP",
"type": "CLIP",
"links": [
59,
60
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.39",
"Node name for S&R": "DualCLIPLoader"
},
"widgets_values": [
"clip_l.safetensors",
"t5xxl_fp8_e4m3fn.safetensors",
"flux",
"default"
]
},
{
"id": 41,
"type": "UNETLoader",
"pos": [
745.3622345020736,
22.813225681838027
],
"size": [
270,
82
],
"flags": {},
"order": 1,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "MODEL",
"type": "MODEL",
"links": [
80
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.39",
"Node name for S&R": "UNETLoader"
},
"widgets_values": [
"Flux.1\\FLUX.1-Fill-dev_fp8.safetensors",
"fp8_e4m3fn"
],
"color": "#323",
"bgcolor": "#535"
},
{
"id": 8,
"type": "VAEDecode",
"pos": [
1664.1979192573735,
189.31698654463506
],
"size": [
155.3065782098388,
46
],
"flags": {},
"order": 11,
"mode": 0,
"inputs": [
{
"name": "samples",
"type": "LATENT",
"link": 52
},
{
"name": "vae",
"type": "VAE",
"link": 62
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"slot_index": 0,
"links": [
85
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.39",
"Node name for S&R": "VAEDecode"
},
"widgets_values": []
},
{
"id": 6,
"type": "CLIPTextEncode",
"pos": [
449.6776859504133,
190.47933884297524
],
"size": [
301.84503173828125,
128.01304626464844
],
"flags": {},
"order": 4,
"mode": 0,
"inputs": [
{
"name": "clip",
"type": "CLIP",
"link": 59
}
],
"outputs": [
{
"name": "CONDITIONING",
"type": "CONDITIONING",
"slot_index": 0,
"links": [
73
]
}
],
"title": "CLIP Text Encode (Positive Prompt)",
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.39",
"Node name for S&R": "CLIPTextEncode"
},
"widgets_values": [
"Change her outfit to a white shirt\n"
]
},
{
"id": 55,
"type": "LoraLoaderModelOnly",
"pos": [
1042.7127702359699,
22.813225681838027
],
"size": [
234.83685292236623,
82
],
"flags": {},
"order": 6,
"mode": 0,
"inputs": [
{
"name": "model",
"type": "MODEL",
"link": 80
}
],
"outputs": [
{
"name": "MODEL",
"type": "MODEL",
"links": [
81
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.76",
"Node name for S&R": "LoraLoaderModelOnly"
},
"widgets_values": [
"ACE_Plus\\comfyui_local_lora16.safetensors",
1
],
"color": "#323",
"bgcolor": "#535"
},
{
"id": 43,
"type": "VAELoader",
"pos": [
510.65253242761105,
443.7682260598112
],
"size": [
240.81669781621986,
58
],
"flags": {},
"order": 2,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "VAE",
"type": "VAE",
"links": [
62,
69
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.39",
"Node name for S&R": "VAELoader"
},
"widgets_values": [
"ae.safetensors"
]
},
{
"id": 35,
"type": "FluxGuidance",
"pos": [
779.6668528783277,
190.47933884297524
],
"size": [
211.60000610351562,
58
],
"flags": {},
"order": 8,
"mode": 0,
"inputs": [
{
"name": "conditioning",
"type": "CONDITIONING",
"link": 73
}
],
"outputs": [
{
"name": "CONDITIONING",
"type": "CONDITIONING",
"slot_index": 0,
"links": [
74
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.39",
"Node name for S&R": "FluxGuidance"
},
"widgets_values": [
30
]
},
{
"id": 31,
"type": "KSampler",
"pos": [
1328.1790861279906,
189.31698654463506
],
"size": [
315,
262
],
"flags": {},
"order": 10,
"mode": 0,
"inputs": [
{
"name": "model",
"type": "MODEL",
"link": 81
},
{
"name": "positive",
"type": "CONDITIONING",
"link": 104
},
{
"name": "negative",
"type": "CONDITIONING",
"link": 105
},
{
"name": "latent_image",
"type": "LATENT",
"link": 106
}
],
"outputs": [
{
"name": "LATENT",
"type": "LATENT",
"slot_index": 0,
"links": [
52
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.39",
"Node name for S&R": "KSampler"
},
"widgets_values": [
12345,
"fixed",
20,
1,
"euler",
"normal",
1
]
},
{
"id": 57,
"type": "PreviewImage",
"pos": [
1840.5233305965953,
189.31698654463506
],
"size": [
368.9404755822693,
470.58275807663404
],
"flags": {},
"order": 12,
"mode": 0,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 85
}
],
"outputs": [],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.76",
"Node name for S&R": "PreviewImage"
},
"widgets_values": []
},
{
"id": 33,
"type": "CLIPTextEncode",
"pos": [
449.6776859504133,
378.47933884297515
],
"size": [
307.77605192326325,
100.04636029960699
],
"flags": {
"collapsed": true
},
"order": 5,
"mode": 0,
"inputs": [
{
"name": "clip",
"type": "CLIP",
"link": 60
}
],
"outputs": [
{
"name": "CONDITIONING",
"type": "CONDITIONING",
"slot_index": 0,
"links": [
68
]
}
],
"title": "CLIP Text Encode (Negative Prompt)",
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.39",
"Node name for S&R": "CLIPTextEncode"
},
"widgets_values": [
""
]
},
{
"id": 49,
"type": "LoadImage",
"pos": [
489.6704021188309,
565.7357703272138
],
"size": [
261.798828125,
383
],
"flags": {},
"order": 3,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
103,
107
]
},
{
"name": "MASK",
"type": "MASK",
"links": [
102
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.76",
"Node name for S&R": "LoadImage",
"image": "clipspace/clipspace-painted-masked-1765321282236.png [input]"
},
"widgets_values": [
"clipspace/clipspace-painted-masked-1765321282236.png [input]",
"image"
]
},
{
"id": 63,
"type": "PreviewImage",
"pos": [
777.8363066096327,
684.7497950877462
],
"size": [
210,
258
],
"flags": {},
"order": 7,
"mode": 0,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 107
}
],
"outputs": [],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.76",
"Node name for S&R": "PreviewImage"
},
"widgets_values": []
},
{
"id": 48,
"type": "InpaintModelConditioning",
"pos": [
1024.162285982096,
209.76976130466358
],
"size": [
262.0525920360633,
138
],
"flags": {},
"order": 9,
"mode": 0,
"inputs": [
{
"name": "positive",
"type": "CONDITIONING",
"link": 74
},
{
"name": "negative",
"type": "CONDITIONING",
"link": 68
},
{
"name": "vae",
"type": "VAE",
"link": 69
},
{
"name": "pixels",
"type": "IMAGE",
"link": 103
},
{
"name": "mask",
"type": "MASK",
"link": 102
}
],
"outputs": [
{
"name": "positive",
"type": "CONDITIONING",
"links": [
104
]
},
{
"name": "negative",
"type": "CONDITIONING",
"links": [
105
]
},
{
"name": "latent",
"type": "LATENT",
"links": [
106
]
}
],
"properties": {
"cnr_id": "comfy-core",
"ver": "0.3.76",
"Node name for S&R": "InpaintModelConditioning"
},
"widgets_values": [
false
],
"color": "#432",
"bgcolor": "#653"
}
],
"links": [
[
52,
31,
0,
8,
0,
"LATENT"
],
[
59,
42,
0,
6,
0,
"CLIP"
],
[
60,
42,
0,
33,
0,
"CLIP"
],
[
62,
43,
0,
8,
1,
"VAE"
],
[
68,
33,
0,
48,
1,
"CONDITIONING"
],
[
69,
43,
0,
48,
2,
"VAE"
],
[
73,
6,
0,
35,
0,
"CONDITIONING"
],
[
74,
35,
0,
48,
0,
"CONDITIONING"
],
[
80,
41,
0,
55,
0,
"MODEL"
],
[
81,
55,
0,
31,
0,
"MODEL"
],
[
85,
8,
0,
57,
0,
"IMAGE"
],
[
102,
49,
1,
48,
4,
"MASK"
],
[
103,
49,
0,
48,
3,
"IMAGE"
],
[
104,
48,
0,
31,
1,
"CONDITIONING"
],
[
105,
48,
1,
31,
2,
"CONDITIONING"
],
[
106,
48,
2,
31,
3,
"LATENT"
],
[
107,
49,
0,
63,
0,
"IMAGE"
]
],
"groups": [],
"config": {},
"extra": {
"ds": {
"scale": 0.9090909090909091,
"offset": [
-27.736478064670976,
77.18677431816198
]
},
"frontendVersion": "1.35.0",
"VHS_latentpreview": false,
"VHS_latentpreviewrate": 0,
"VHS_MetadataImage": true,
"VHS_KeepIntermediate": true
},
"version": 0.4
}
- 横並べではなく、通常の inpainting の workflow を使います。
- 🟪 読み込む LoRA を
localに変更します。 - 「彼女の服を白シャツに変更」のように、指示の形でプロンプトを書きます。