What is ID Transfer and FaceSwap?
ID Transfer is a type of Subject Transfer specialized for people. It often focuses particularly on the consistency of the face (personally, I wish hair and body were also treated as ID).
FaceSwap is a task that existed before the advent of generative AI. The classical method involves putting a "mask" of the reference person's face on the target person's face, but by using ID Transfer technology and inpainting only the target face part, more flexible FaceSwap is possible.
LoRA
LoRA is a mechanism to "enable the model to draw things it couldn't draw later," and it can also learn images of people.
If you can overcome the disadvantage of needing training, flexibility and stability are top-class.
IP-Adapter Family
There are several lineages that specialized the IP-Adapter technology treated in Subject Transfer for ID.
IP-Adapter (Original)
IP-Adapter is an adapter for adding "condition input from images" to existing text2image models.
It extracts feature vectors from images and injects them into the UNet to reflect them in the generation results. It can transfer people, but it is mainly used to roughly reflect the Subject or style.
IP-Adapter-plus-face
The official IP-Adapter model specialized for faces.

{
"last_node_id": 26,
"last_link_id": 33,
"nodes": [
{
"id": 7,
"type": "CLIPTextEncode",
"pos": [
416,
412
],
"size": {
"0": 421.32025146484375,
"1": 99.7456283569336
},
"flags": {},
"order": 8,
"mode": 0,
"inputs": [
{
"name": "clip",
"type": "CLIP",
"link": 5
}
],
"outputs": [
{
"name": "CONDITIONING",
"type": "CONDITIONING",
"links": [
6
],
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "CLIPTextEncode"
},
"widgets_values": [
"text, watermark"
]
},
{
"id": 5,
"type": "EmptyLatentImage",
"pos": [
512,
573
],
"size": {
"0": 315,
"1": 106
},
"flags": {},
"order": 0,
"mode": 0,
"outputs": [
{
"name": "LATENT",
"type": "LATENT",
"links": [
2
],
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "EmptyLatentImage"
},
"widgets_values": [
512,
512,
1
]
},
{
"id": 3,
"type": "KSampler",
"pos": [
1330,
180
],
"size": {
"0": 315,
"1": 262
},
"flags": {},
"order": 11,
"mode": 0,
"inputs": [
{
"name": "model",
"type": "MODEL",
"link": 33
},
{
"name": "positive",
"type": "CONDITIONING",
"link": 4
},
{
"name": "negative",
"type": "CONDITIONING",
"link": 6
},
{
"name": "latent_image",
"type": "LATENT",
"link": 2
}
],
"outputs": [
{
"name": "LATENT",
"type": "LATENT",
"links": [
7
],
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "KSampler"
},
"widgets_values": [
1,
"fixed",
20,
8,
"dpmpp_2m",
"karras",
1
]
},
{
"id": 16,
"type": "VAELoader",
"pos": [
1686,
278
],
"size": {
"0": 315,
"1": 58
},
"flags": {
"collapsed": true
},
"order": 1,
"mode": 0,
"outputs": [
{
"name": "VAE",
"type": "VAE",
"links": [
18
],
"shape": 3
}
],
"properties": {
"Node name for S&R": "VAELoader"
},
"widgets_values": [
"vae-ft-mse-840000-ema-pruned.safetensors"
]
},
{
"id": 8,
"type": "VAEDecode",
"pos": [
1680,
180
],
"size": {
"0": 210,
"1": 46
},
"flags": {},
"order": 12,
"mode": 0,
"inputs": [
{
"name": "samples",
"type": "LATENT",
"link": 7
},
{
"name": "vae",
"type": "VAE",
"link": 18
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
19
],
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "VAEDecode"
}
},
{
"id": 17,
"type": "PreviewImage",
"pos": [
1928,
183
],
"size": {
"0": 514.4468383789062,
"1": 542.0400390625
},
"flags": {},
"order": 13,
"mode": 0,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 19
}
],
"properties": {
"Node name for S&R": "PreviewImage"
}
},
{
"id": 6,
"type": "CLIPTextEncode",
"pos": [
415,
186
],
"size": {
"0": 422.84503173828125,
"1": 164.31304931640625
},
"flags": {},
"order": 7,
"mode": 0,
"inputs": [
{
"name": "clip",
"type": "CLIP",
"link": 3
}
],
"outputs": [
{
"name": "CONDITIONING",
"type": "CONDITIONING",
"links": [
4
],
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "CLIPTextEncode"
},
"widgets_values": [
"RAW photo, portrait of a lady,white short hair"
]
},
{
"id": 4,
"type": "CheckpointLoaderSimple",
"pos": [
26,
474
],
"size": {
"0": 315,
"1": 98
},
"flags": {},
"order": 2,
"mode": 0,
"outputs": [
{
"name": "MODEL",
"type": "MODEL",
"links": [
26
],
"slot_index": 0
},
{
"name": "CLIP",
"type": "CLIP",
"links": [
3,
5
],
"slot_index": 1
},
{
"name": "VAE",
"type": "VAE",
"links": [],
"slot_index": 2
}
],
"properties": {
"Node name for S&R": "CheckpointLoaderSimple"
},
"widgets_values": [
"📷-v1.x\\epicphotogasm_z.safetensors"
]
},
{
"id": 22,
"type": "InsightFaceLoader",
"pos": [
540,
-240
],
"size": {
"0": 315,
"1": 58
},
"flags": {},
"order": 3,
"mode": 0,
"outputs": [
{
"name": "INSIGHTFACE",
"type": "INSIGHTFACE",
"links": [
22
],
"shape": 3
}
],
"properties": {
"Node name for S&R": "InsightFaceLoader"
},
"widgets_values": [
"CUDA"
],
"color": "#323",
"bgcolor": "#535"
},
{
"id": 13,
"type": "LoadImage",
"pos": [
53,
-273
],
"size": {
"0": 422.5300598144531,
"1": 375.8209533691406
},
"flags": {},
"order": 4,
"mode": 0,
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
15
],
"shape": 3,
"slot_index": 0
},
{
"name": "MASK",
"type": "MASK",
"links": null,
"shape": 3
}
],
"properties": {
"Node name for S&R": "LoadImage"
},
"widgets_values": [
"pexels-photo-1520760 (1).jpg",
"image"
],
"color": "#323",
"bgcolor": "#535"
},
{
"id": 14,
"type": "PrepImageForClipVision",
"pos": [
540,
-110
],
"size": {
"0": 315,
"1": 106
},
"flags": {},
"order": 9,
"mode": 0,
"inputs": [
{
"name": "image",
"type": "IMAGE",
"link": 15
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
20
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "PrepImageForClipVision"
},
"widgets_values": [
"LANCZOS",
"right",
0
],
"color": "#223",
"bgcolor": "#335"
},
{
"id": 12,
"type": "CLIPVisionLoader",
"pos": [
540,
-360
],
"size": {
"0": 315,
"1": 58
},
"flags": {},
"order": 5,
"mode": 0,
"outputs": [
{
"name": "CLIP_VISION",
"type": "CLIP_VISION",
"links": [
21
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "CLIPVisionLoader"
},
"widgets_values": [
"OpenCLIP-ViT-H-14.safetensors"
],
"color": "#323",
"bgcolor": "#535"
},
{
"id": 23,
"type": "IPAdapterModelLoader",
"pos": [
540,
-490
],
"size": {
"0": 315,
"1": 58
},
"flags": {},
"order": 6,
"mode": 0,
"outputs": [
{
"name": "IPADAPTER",
"type": "IPADAPTER",
"links": [
24
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "IPAdapterModelLoader"
},
"widgets_values": [
"ip-adapter-faceid-plusv2_sd15.bin"
],
"color": "#323",
"bgcolor": "#535"
},
{
"id": 21,
"type": "IPAdapterApplyFaceID",
"pos": [
925,
-159
],
"size": {
"0": 315,
"1": 326
},
"flags": {},
"order": 10,
"mode": 0,
"inputs": [
{
"name": "ipadapter",
"type": "IPADAPTER",
"link": 24
},
{
"name": "clip_vision",
"type": "CLIP_VISION",
"link": 21
},
{
"name": "insightface",
"type": "INSIGHTFACE",
"link": 22,
"slot_index": 2
},
{
"name": "image",
"type": "IMAGE",
"link": 20
},
{
"name": "model",
"type": "MODEL",
"link": 26
},
{
"name": "attn_mask",
"type": "MASK",
"link": null
}
],
"outputs": [
{
"name": "MODEL",
"type": "MODEL",
"links": [
33
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "IPAdapterApplyFaceID"
},
"widgets_values": [
0.8,
0.01,
"original",
0,
1,
true,
1,
false
],
"color": "#323",
"bgcolor": "#535"
}
],
"links": [
[
2,
5,
0,
3,
3,
"LATENT"
],
[
3,
4,
1,
6,
0,
"CLIP"
],
[
4,
6,
0,
3,
1,
"CONDITIONING"
],
[
5,
4,
1,
7,
0,
"CLIP"
],
[
6,
7,
0,
3,
2,
"CONDITIONING"
],
[
7,
3,
0,
8,
0,
"LATENT"
],
[
15,
13,
0,
14,
0,
"IMAGE"
],
[
18,
16,
0,
8,
1,
"VAE"
],
[
19,
8,
0,
17,
0,
"IMAGE"
],
[
20,
14,
0,
21,
3,
"IMAGE"
],
[
21,
12,
0,
21,
1,
"CLIP_VISION"
],
[
22,
22,
0,
21,
2,
"INSIGHTFACE"
],
[
24,
23,
0,
21,
0,
"IPADAPTER"
],
[
26,
4,
0,
21,
4,
"MODEL"
],
[
33,
21,
0,
3,
0,
"MODEL"
]
],
"groups": [],
"config": {},
"extra": {},
"version": 0.4
}
IP-Adapter-FaceID
The IP-Adapter-FaceID series is a group of models for strongly fixing ID in combination with face recognition models (InsightFace).
In FaceID, "Face ID embeddings from face recognition models" are used instead of CLIP image embeddings, and ID consistency is further enhanced with LoRA.
In the improved version FaceID-Plus, both "Face ID embeddings for ID" and "CLIP image embeddings for facial structure" are used to achieve both facial resemblance and stability of facial shape/structure.
InstantID
Strictly speaking, it is not a lineage of IP-Adapter, but it is a technique specialized for ID transfer that can be used just by pointing to an additional adapter.

{
"last_node_id": 80,
"last_link_id": 246,
"nodes": [
{
"id": 15,
"type": "PreviewImage",
"pos": [
2095,
155
],
"size": {
"0": 823.6408081054688,
"1": 772.2030639648438
},
"flags": {},
"order": 11,
"mode": 0,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 19
}
],
"properties": {
"Node name for S&R": "PreviewImage"
}
},
{
"id": 13,
"type": "LoadImage",
"pos": [
101,
-91
],
"size": {
"0": 343.0831604003906,
"1": 596.3971557617188
},
"flags": {},
"order": 0,
"mode": 0,
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
241
],
"shape": 3,
"slot_index": 0
},
{
"name": "MASK",
"type": "MASK",
"links": null,
"shape": 3
}
],
"properties": {
"Node name for S&R": "LoadImage"
},
"widgets_values": [
"pexels-photo-20080104.jpg",
"image"
]
},
{
"id": 16,
"type": "ControlNetLoader",
"pos": [
680,
250
],
"size": {
"0": 250.07241821289062,
"1": 58
},
"flags": {},
"order": 1,
"mode": 0,
"outputs": [
{
"name": "CONTROL_NET",
"type": "CONTROL_NET",
"links": [
242
],
"shape": 3
}
],
"properties": {
"Node name for S&R": "ControlNetLoader"
},
"widgets_values": [
"InstantID\\diffusion_pytorch_model.safetensors"
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 80,
"type": "ApplyInstantID",
"pos": [
1110,
155
],
"size": {
"0": 315,
"1": 266
},
"flags": {},
"order": 8,
"mode": 0,
"inputs": [
{
"name": "instantid",
"type": "INSTANTID",
"link": 235
},
{
"name": "insightface",
"type": "FACEANALYSIS",
"link": 236
},
{
"name": "control_net",
"type": "CONTROL_NET",
"link": 242,
"slot_index": 2
},
{
"name": "image",
"type": "IMAGE",
"link": 241
},
{
"name": "model",
"type": "MODEL",
"link": 246
},
{
"name": "positive",
"type": "CONDITIONING",
"link": 239
},
{
"name": "negative",
"type": "CONDITIONING",
"link": 240
},
{
"name": "image_kps",
"type": "IMAGE",
"link": null
},
{
"name": "mask",
"type": "MASK",
"link": null
}
],
"outputs": [
{
"name": "MODEL",
"type": "MODEL",
"links": [
243
],
"shape": 3,
"slot_index": 0
},
{
"name": "POSITIVE",
"type": "CONDITIONING",
"links": [
244
],
"shape": 3,
"slot_index": 1
},
{
"name": "NEGATIVE",
"type": "CONDITIONING",
"links": [
245
],
"shape": 3,
"slot_index": 2
}
],
"properties": {
"Node name for S&R": "ApplyInstantID"
},
"widgets_values": [
0.8,
0,
1
],
"color": "#232",
"bgcolor": "#353"
},
{
"id": 5,
"type": "EmptyLatentImage",
"pos": [
1115,
495
],
"size": {
"0": 315,
"1": 106
},
"flags": {},
"order": 2,
"mode": 0,
"outputs": [
{
"name": "LATENT",
"type": "LATENT",
"links": [
2
],
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "EmptyLatentImage"
},
"widgets_values": [
1016,
1016,
1
]
},
{
"id": 4,
"type": "CheckpointLoaderSimple",
"pos": [
95,
590
],
"size": {
"0": 414.3570251464844,
"1": 98
},
"flags": {},
"order": 3,
"mode": 0,
"outputs": [
{
"name": "MODEL",
"type": "MODEL",
"links": [
246
],
"slot_index": 0
},
{
"name": "CLIP",
"type": "CLIP",
"links": [
231,
232
],
"slot_index": 1
},
{
"name": "VAE",
"type": "VAE",
"links": [
8
],
"slot_index": 2
}
],
"properties": {
"Node name for S&R": "CheckpointLoaderSimple"
},
"widgets_values": [
"📷-XL\\RealismEngineSDXL_V2.0_FP16_VAE.safetensors"
]
},
{
"id": 38,
"type": "InstantIDFaceAnalysis",
"pos": [
690,
130
],
"size": {
"0": 239.4437713623047,
"1": 58
},
"flags": {},
"order": 4,
"mode": 0,
"outputs": [
{
"name": "FACEANALYSIS",
"type": "FACEANALYSIS",
"links": [
236
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "InstantIDFaceAnalysis"
},
"widgets_values": [
"CUDA"
],
"color": "#232",
"bgcolor": "#353"
},
{
"id": 11,
"type": "InstantIDModelLoader",
"pos": [
680,
10
],
"size": {
"0": 258.2437744140625,
"1": 58.62757110595703
},
"flags": {},
"order": 5,
"mode": 0,
"outputs": [
{
"name": "INSTANTID",
"type": "INSTANTID",
"links": [
235
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "InstantIDModelLoader"
},
"widgets_values": [
"ip-adapter.bin"
],
"color": "#232",
"bgcolor": "#353"
},
{
"id": 39,
"type": "CLIPTextEncode",
"pos": [
624,
395
],
"size": {
"0": 318.3697814941406,
"1": 111.91729736328125
},
"flags": {},
"order": 6,
"mode": 0,
"inputs": [
{
"name": "clip",
"type": "CLIP",
"link": 231
}
],
"outputs": [
{
"name": "CONDITIONING",
"type": "CONDITIONING",
"links": [
239
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "CLIPTextEncode"
},
"widgets_values": [
"RAW photo of a man,upper body,cinematic,shirt,outdoors, coat, open clothes, open coat"
]
},
{
"id": 40,
"type": "CLIPTextEncode",
"pos": [
628,
561
],
"size": {
"0": 309.3837585449219,
"1": 88.66529846191406
},
"flags": {},
"order": 7,
"mode": 0,
"inputs": [
{
"name": "clip",
"type": "CLIP",
"link": 232
}
],
"outputs": [
{
"name": "CONDITIONING",
"type": "CONDITIONING",
"links": [
240
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "CLIPTextEncode"
},
"widgets_values": [
"low quality, blurry"
]
},
{
"id": 8,
"type": "VAEDecode",
"pos": [
1868,
155
],
"size": {
"0": 186.48898315429688,
"1": 46
},
"flags": {},
"order": 10,
"mode": 0,
"inputs": [
{
"name": "samples",
"type": "LATENT",
"link": 7
},
{
"name": "vae",
"type": "VAE",
"link": 8
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
19
],
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "VAEDecode"
}
},
{
"id": 3,
"type": "KSampler",
"pos": [
1515,
155
],
"size": {
"0": 315,
"1": 262
},
"flags": {},
"order": 9,
"mode": 0,
"inputs": [
{
"name": "model",
"type": "MODEL",
"link": 243
},
{
"name": "positive",
"type": "CONDITIONING",
"link": 244
},
{
"name": "negative",
"type": "CONDITIONING",
"link": 245
},
{
"name": "latent_image",
"type": "LATENT",
"link": 2
}
],
"outputs": [
{
"name": "LATENT",
"type": "LATENT",
"links": [
7
],
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "KSampler"
},
"widgets_values": [
12345,
"fixed",
20,
3,
"dpmpp_2m",
"karras",
1
]
}
],
"links": [
[
2,
5,
0,
3,
3,
"LATENT"
],
[
7,
3,
0,
8,
0,
"LATENT"
],
[
8,
4,
2,
8,
1,
"VAE"
],
[
19,
8,
0,
15,
0,
"IMAGE"
],
[
231,
4,
1,
39,
0,
"CLIP"
],
[
232,
4,
1,
40,
0,
"CLIP"
],
[
235,
11,
0,
80,
0,
"INSTANTID"
],
[
236,
38,
0,
80,
1,
"FACEANALYSIS"
],
[
239,
39,
0,
80,
5,
"CONDITIONING"
],
[
240,
40,
0,
80,
6,
"CONDITIONING"
],
[
241,
13,
0,
80,
3,
"IMAGE"
],
[
242,
16,
0,
80,
2,
"CONTROL_NET"
],
[
243,
80,
0,
3,
0,
"MODEL"
],
[
244,
80,
1,
3,
1,
"CONDITIONING"
],
[
245,
80,
2,
3,
2,
"CONDITIONING"
],
[
246,
4,
0,
80,
4,
"MODEL"
]
],
"groups": [],
"config": {},
"extra": {
"0246.VERSION": [
0,
0,
4
]
},
"version": 0.4
}
By combining an IP-Adapter type image adapter with an additional network (IdentityNet) that uses ID embeddings and facial landmarks obtained from face recognition models, it enhances the balance between ID retention from a single face photo and text editing.
Personally, I think InstantID is the strongest if using SDXL.
PuLID-FLUX / InfiniteYou
As times progress, the main battlefield of base models has shifted from SDXL to Diffusion Transformer systems (FLUX systems). Accordingly, ID transfer methods assuming Flux.1 have also appeared.
PuLID-FLUX is an ID-specialized customization method based on FLUX1-dev. Thanks to innovations like Lightning T2I, you can change the art style while maintaining the ID with "reference face + text" without additional training.
-

-
{ "last_node_id": 36, "last_link_id": 43, "nodes": [ { "id": 8, "type": "VAEDecode", "pos": [ 1209.3575439453125, 186 ], "size": [ 181.34352111816406, 46 ], "flags": {}, "order": 14, "mode": 0, "inputs": [ { "name": "samples", "type": "LATENT", "link": 7 }, { "name": "vae", "type": "VAE", "link": 33 } ], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "links": [ 23 ], "slot_index": 0 } ], "properties": { "Node name for S&R": "VAEDecode" }, "widgets_values": [] }, { "id": 21, "type": "PreviewImage", "pos": [ 1429.19921875, 186 ], "size": [ 571.3301391601562, 619.499267578125 ], "flags": {}, "order": 15, "mode": 0, "inputs": [ { "name": "images", "type": "IMAGE", "link": 23 } ], "outputs": [], "properties": { "Node name for S&R": "PreviewImage" }, "widgets_values": [] }, { "id": 24, "type": "PulidFluxModelLoader", "pos": [ 30, -520 ], "size": [ 315, 58 ], "flags": {}, "order": 0, "mode": 0, "inputs": [], "outputs": [ { "name": "PULIDFLUX", "type": "PULIDFLUX", "links": [ 34 ], "slot_index": 0 } ], "properties": { "Node name for S&R": "PulidFluxModelLoader" }, "widgets_values": [ "pulid_flux_v0.9.1.safetensors" ], "color": "#232", "bgcolor": "#353" }, { "id": 3, "type": "KSampler", "pos": [ 866.101318359375, 186 ], "size": [ 315, 262 ], "flags": {}, "order": 13, "mode": 0, "inputs": [ { "name": "model", "type": "MODEL", "link": 28 }, { "name": "positive", "type": "CONDITIONING", "link": 41 }, { "name": "negative", "type": "CONDITIONING", "link": 6 }, { "name": "latent_image", "type": "LATENT", "link": 2 } ], "outputs": [ { "name": "LATENT", "type": "LATENT", "links": [ 7 ], "slot_index": 0 } ], "properties": { "Node name for S&R": "KSampler" }, "widgets_values": [ 1234, "fixed", 20, 1, "euler", "normal", 1 ] }, { "id": 30, "type": "FluxGuidance", "pos": [ 430, 250 ], "size": [ 211.60000610351562, 58 ], "flags": {}, "order": 12, "mode": 0, "inputs": [ { "name": "conditioning", "type": "CONDITIONING", "link": 40 } ], "outputs": [ { "name": "CONDITIONING", "type": "CONDITIONING", "links": [ 41 ], "slot_index": 0, "shape": 3 } ], "properties": { "Node name for S&R": "FluxGuidance" }, "widgets_values": [ 3 ] }, { "id": 26, "type": "PulidFluxInsightFaceLoader", "pos": [ 30, -280 ], "size": [ 315, 58 ], "flags": {}, "order": 1, "mode": 0, "inputs": [], "outputs": [ { "name": "FACEANALYSIS", "type": "FACEANALYSIS", "links": [ 31 ] } ], "properties": { "Node name for S&R": "PulidFluxInsightFaceLoader" }, "widgets_values": [ "CPU" ], "color": "#232", "bgcolor": "#353" }, { "id": 25, "type": "PulidFluxEvaClipLoader", "pos": [ 30, -380 ], "size": [ 315, 26 ], "flags": {}, "order": 2, "mode": 0, "inputs": [], "outputs": [ { "name": "EVA_CLIP", "type": "EVA_CLIP", "links": [ 30 ] } ], "properties": { "Node name for S&R": "PulidFluxEvaClipLoader" }, "widgets_values": [], "color": "#232", "bgcolor": "#353" }, { "id": 27, "type": "LoadImage", "pos": [ 30.456762313842773, -160.2384033203125 ], "size": [ 315, 314 ], "flags": {}, "order": 3, "mode": 0, "inputs": [], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "links": [ 32 ] }, { "name": "MASK", "type": "MASK", "links": null } ], "properties": { "Node name for S&R": "LoadImage" }, "widgets_values": [ "pexels-photo-28252721.jpg", "image" ] }, { "id": 5, "type": "EmptyLatentImage", "pos": [ 499.3537902832031, 517.5509033203125 ], "size": [ 315, 106 ], "flags": {}, "order": 4, "mode": 0, "inputs": [], "outputs": [ { "name": "LATENT", "type": "LATENT", "links": [ 2 ], "slot_index": 0 } ], "properties": { "Node name for S&R": "EmptyLatentImage" }, "widgets_values": [ 1024, 1024, 1 ] }, { "id": 7, "type": "CLIPTextEncode", "pos": [ -21.81440544128418, 467.05328369140625 ], "size": [ 429.0223693847656, 139.41818237304688 ], "flags": {}, "order": 10, "mode": 0, "inputs": [ { "name": "clip", "type": "CLIP", "link": 36 } ], "outputs": [ { "name": "CONDITIONING", "type": "CONDITIONING", "links": [ 6 ], "slot_index": 0 } ], "properties": { "Node name for S&R": "CLIPTextEncode" }, "widgets_values": [ "text, watermark" ] }, { "id": 28, "type": "VAELoader", "pos": [ 1208.9296875, 297.4112548828125 ], "size": [ 210, 58 ], "flags": { "collapsed": true }, "order": 5, "mode": 0, "inputs": [], "outputs": [ { "name": "VAE", "type": "VAE", "links": [ 33 ] } ], "properties": { "Node name for S&R": "VAELoader" }, "widgets_values": [ "FLUXvae.safetensors" ] }, { "id": 36, "type": "LoraLoaderModelOnly", "pos": [ 17.71822166442871, -674.8831176757812 ], "size": [ 315, 82 ], "flags": {}, "order": 8, "mode": 0, "inputs": [ { "name": "model", "type": "MODEL", "link": 42 } ], "outputs": [ { "name": "MODEL", "type": "MODEL", "links": [ 43 ], "slot_index": 0 } ], "properties": { "Node name for S&R": "LoraLoaderModelOnly" }, "widgets_values": [ "Flux\\AntiBlur.safetensors", 2 ] }, { "id": 32, "type": "UnetLoaderGGUF", "pos": [ -329.1488952636719, -674.8831176757812 ], "size": [ 315, 58 ], "flags": {}, "order": 6, "mode": 0, "inputs": [], "outputs": [ { "name": "MODEL", "type": "MODEL", "links": [ 42 ], "slot_index": 0 } ], "properties": { "Node name for S&R": "UnetLoaderGGUF" }, "widgets_values": [ "FLUX_gguf\\flux1-dev-Q4_0.gguf" ] }, { "id": 31, "type": "DualCLIPLoader", "pos": [ -402.289306640625, 392.2030334472656 ], "size": [ 315, 106 ], "flags": {}, "order": 7, "mode": 0, "inputs": [], "outputs": [ { "name": "CLIP", "type": "CLIP", "links": [ 35, 36 ], "slot_index": 0, "shape": 3 } ], "properties": { "Node name for S&R": "DualCLIPLoader" }, "widgets_values": [ "t5xxl_fp16.safetensors", "clip_l.safetensors", "flux", "default" ] }, { "id": 6, "type": "CLIPTextEncode", "pos": [ -20, 250 ], "size": [ 422.84503173828125, 164.31304931640625 ], "flags": {}, "order": 9, "mode": 0, "inputs": [ { "name": "clip", "type": "CLIP", "link": 35 } ], "outputs": [ { "name": "CONDITIONING", "type": "CONDITIONING", "links": [ 40 ], "slot_index": 0 } ], "properties": { "Node name for S&R": "CLIPTextEncode" }, "widgets_values": [ "RAW photo of a lady sitting on the bench, wearing red jacket,shot from side,late night,neon light" ] }, { "id": 23, "type": "ApplyPulidFlux", "pos": [ 459.103271484375, -392.2486267089844 ], "size": [ 315, 206 ], "flags": {}, "order": 11, "mode": 0, "inputs": [ { "name": "model", "type": "MODEL", "link": 43 }, { "name": "pulid_flux", "type": "PULIDFLUX", "link": 34 }, { "name": "eva_clip", "type": "EVA_CLIP", "link": 30 }, { "name": "face_analysis", "type": "FACEANALYSIS", "link": 31 }, { "name": "image", "type": "IMAGE", "link": 32 }, { "name": "attn_mask", "type": "MASK", "link": null, "shape": 7 } ], "outputs": [ { "name": "MODEL", "type": "MODEL", "links": [ 28 ], "slot_index": 0 } ], "properties": { "Node name for S&R": "ApplyPulidFlux" }, "widgets_values": [ 0.8, 0.2, 1 ], "color": "#232", "bgcolor": "#353" } ], "links": [ [ 2, 5, 0, 3, 3, "LATENT" ], [ 6, 7, 0, 3, 2, "CONDITIONING" ], [ 7, 3, 0, 8, 0, "LATENT" ], [ 23, 8, 0, 21, 0, "IMAGE" ], [ 28, 23, 0, 3, 0, "MODEL" ], [ 30, 25, 0, 23, 2, "EVA_CLIP" ], [ 31, 26, 0, 23, 3, "FACEANALYSIS" ], [ 32, 27, 0, 23, 4, "IMAGE" ], [ 33, 28, 0, 8, 1, "VAE" ], [ 34, 24, 0, 23, 1, "PULIDFLUX" ], [ 35, 31, 0, 6, 0, "CLIP" ], [ 36, 31, 0, 7, 0, "CLIP" ], [ 40, 6, 0, 30, 0, "CONDITIONING" ], [ 41, 30, 0, 3, 1, "CONDITIONING" ], [ 42, 32, 0, 36, 0, "MODEL" ], [ 43, 36, 0, 23, 0, "MODEL" ] ], "groups": [], "config": {}, "extra": { "ds": { "scale": 0.7114780112755382, "offset": [ 320.2294089754662, 767.2625711069621 ] }, "node_versions": { "comfy-core": "0.3.10", "comfyui_pulid_flux_ll": "1.0.2", "ComfyUI-GGUF": "5875c52f59baca3a9372d68c43a3775e21846fe0" }, "VHS_latentpreview": false, "VHS_latentpreviewrate": 0 }, "version": 0.4 }
InfiniteYou is an ID retention framework based on FLUX-based Diffusion Transformers. It aims to improve ID resemblance, text consistency, and image quality simultaneously through a module (InfuseNet) that injects Identity features into the DiT body and a multi-stage learning strategy.
Instruction-Based Image Editing and ID Transfer
Since Subject Transfer is possible, it goes without saying that "Instruction-Based Image Editing Models" can also be used for ID Transfer.
FaceSwap
FaceSwap is a technology that replaces the target person's face with the reference person's face.
Classical FaceSwap (ReActor / InsightFace based)
It is an idea closer to "making a mask and putting it on" rather than ID Transfer.
It estimates the position, orientation, and contour of the face with face detection and landmark detection, aligns the source face and target face with affine transformation, etc., and replaces the target side face part with the source face using masks and blending.

{
"last_node_id": 15,
"last_link_id": 20,
"nodes": [
{
"id": 4,
"type": "LoadImage",
"pos": {
"0": 140,
"1": 150
},
"size": {
"0": 291.144287109375,
"1": 458.9242858886719
},
"flags": {},
"order": 0,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
5
],
"slot_index": 0,
"shape": 3
},
{
"name": "MASK",
"type": "MASK",
"links": null,
"shape": 3
}
],
"properties": {
"Node name for S&R": "LoadImage"
},
"widgets_values": [
"free-photo-of-mahdi-dyn-mahla-3.jpg",
"image"
]
},
{
"id": 1,
"type": "ReActorFaceSwap",
"pos": {
"0": 750,
"1": 150
},
"size": {
"0": 315,
"1": 358
},
"flags": {},
"order": 2,
"mode": 0,
"inputs": [
{
"name": "input_image",
"type": "IMAGE",
"link": 5
},
{
"name": "source_image",
"type": "IMAGE",
"link": 4
},
{
"name": "face_model",
"type": "FACE_MODEL",
"link": null
},
{
"name": "face_boost",
"type": "FACE_BOOST",
"link": null
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
20
],
"slot_index": 0,
"shape": 3
},
{
"name": "FACE_MODEL",
"type": "FACE_MODEL",
"links": null,
"shape": 3
}
],
"properties": {
"Node name for S&R": "ReActorFaceSwap"
},
"widgets_values": [
true,
"inswapper_128.onnx",
"retinaface_resnet50",
"GPEN-BFR-2048.onnx",
0.6,
0.5,
"no",
"no",
"0",
"0",
1
],
"color": "#232",
"bgcolor": "#353"
},
{
"id": 15,
"type": "PreviewImage",
"pos": {
"0": 1110,
"1": 150
},
"size": [
418.7972197509421,
553.3854994326059
],
"flags": {},
"order": 3,
"mode": 0,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 20
}
],
"outputs": [],
"properties": {
"Node name for S&R": "PreviewImage"
}
},
{
"id": 3,
"type": "LoadImage",
"pos": {
"0": 470,
"1": 230
},
"size": {
"0": 234.9705352783203,
"1": 380.551513671875
},
"flags": {},
"order": 1,
"mode": 0,
"inputs": [],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
4
],
"slot_index": 0,
"shape": 3
},
{
"name": "MASK",
"type": "MASK",
"links": null,
"shape": 3
}
],
"properties": {
"Node name for S&R": "LoadImage"
},
"widgets_values": [
"pexels-photo-28266414.jpg",
"image"
]
}
],
"links": [
[
4,
3,
0,
1,
1,
"IMAGE"
],
[
5,
4,
0,
1,
0,
"IMAGE"
],
[
20,
1,
0,
15,
0,
"IMAGE"
]
],
"groups": [],
"config": {},
"extra": {
"ds": {
"scale": 0.9229599817706441,
"offset": [
74.20408825056866,
220.12861021397595
]
}
},
"version": 0.4
}
Representative ones that can be used in ComfyUI include ReActor (InsightFace-based FaceSwap), but it is also a technology with strong anxiety factors, such as repositories being deleted from an ethical point of view.
Face Inpainting using ID Transfer
A method of redrawing the target face using ID Transfer technology when inpainting with the target person's face as a mask.
When ID Transfer technology was immature, there was also a method of FaceSwapping with ReActor and then refining with inpainting using ID Transfer (this is one of the most popular workflows I made).
Refining with InstantID after Face Swapping with ReActor

{
"last_node_id": 210,
"last_link_id": 385,
"nodes": [
{
"id": 27,
"type": "Automatic CFG",
"pos": [
920,
1310
],
"size": {
"0": 140,
"1": 26
},
"flags": {},
"order": 25,
"mode": 0,
"inputs": [
{
"name": "model",
"type": "MODEL",
"link": 41
}
],
"outputs": [
{
"name": "MODEL",
"type": "MODEL",
"links": [
284
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "Automatic CFG"
}
},
{
"id": 28,
"type": "SelfAttentionGuidance",
"pos": [
575,
1310
],
"size": {
"0": 315,
"1": 82
},
"flags": {},
"order": 21,
"mode": 0,
"inputs": [
{
"name": "model",
"type": "MODEL",
"link": 119
}
],
"outputs": [
{
"name": "MODEL",
"type": "MODEL",
"links": [
41
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "SelfAttentionGuidance"
},
"widgets_values": [
0.5,
2
]
},
{
"id": 112,
"type": "CLIPTextEncode",
"pos": [
1120,
1152
],
"size": {
"0": 353.9808654785156,
"1": 63.40380096435547
},
"flags": {},
"order": 33,
"mode": 0,
"inputs": [
{
"name": "clip",
"type": "CLIP",
"link": 237
},
{
"name": "text",
"type": "STRING",
"link": 296,
"widget": {
"name": "text"
}
}
],
"outputs": [
{
"name": "CONDITIONING",
"type": "CONDITIONING",
"links": [
189
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "CLIPTextEncode"
},
"widgets_values": [
""
]
},
{
"id": 130,
"type": "Reroute",
"pos": [
983,
1509
],
"size": [
75,
26
],
"flags": {},
"order": 22,
"mode": 0,
"inputs": [
{
"name": "",
"type": "*",
"link": 236
}
],
"outputs": [
{
"name": "",
"type": "CLIP",
"links": [
237,
238,
239,
240
],
"slot_index": 0
}
],
"properties": {
"showOutputText": false,
"horizontal": false
}
},
{
"id": 19,
"type": "CLIPTextEncode",
"pos": [
1113,
1269
],
"size": {
"0": 360.9808654785156,
"1": 76
},
"flags": {},
"order": 26,
"mode": 0,
"inputs": [
{
"name": "clip",
"type": "CLIP",
"link": 238
}
],
"outputs": [
{
"name": "CONDITIONING",
"type": "CONDITIONING",
"links": [
190
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "CLIPTextEncode"
},
"widgets_values": [
"High detail RAW Photo,4ng3l face,realistic skin texture,unretouched,detailed skin"
]
},
{
"id": 131,
"type": "SEGSPaste",
"pos": [
3930,
845
],
"size": {
"0": 315,
"1": 122
},
"flags": {},
"order": 39,
"mode": 0,
"inputs": [
{
"name": "image",
"type": "IMAGE",
"link": 272
},
{
"name": "segs",
"type": "SEGS",
"link": 242
},
{
"name": "ref_image_opt",
"type": "IMAGE",
"link": null
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
244
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "SEGSPaste"
},
"widgets_values": [
5,
255
]
},
{
"id": 152,
"type": "Reroute",
"pos": [
-220,
-765
],
"size": [
75,
26
],
"flags": {},
"order": 14,
"mode": 0,
"inputs": [
{
"name": "",
"type": "*",
"link": 270
}
],
"outputs": [
{
"name": "",
"type": "IMAGE",
"links": [
271
],
"slot_index": 0
}
],
"properties": {
"showOutputText": false,
"horizontal": false
}
},
{
"id": 153,
"type": "Reroute",
"pos": [
3115,
-765
],
"size": [
75,
26
],
"flags": {},
"order": 19,
"mode": 0,
"inputs": [
{
"name": "",
"type": "*",
"link": 271
}
],
"outputs": [
{
"name": "",
"type": "IMAGE",
"links": [
272
],
"slot_index": 0
}
],
"properties": {
"showOutputText": false,
"horizontal": false
}
},
{
"id": 151,
"type": "Reroute",
"pos": [
2565,
-685
],
"size": [
75,
26
],
"flags": {},
"order": 18,
"mode": 0,
"inputs": [
{
"name": "",
"type": "*",
"link": 317
}
],
"outputs": [
{
"name": "",
"type": "IMAGE",
"links": [
269
],
"slot_index": 0
}
],
"properties": {
"showOutputText": false,
"horizontal": false
}
},
{
"id": 1,
"type": "ImpactSimpleDetectorSEGS",
"pos": [
950,
-545
],
"size": {
"0": 315,
"1": 310
},
"flags": {},
"order": 23,
"mode": 0,
"inputs": [
{
"name": "bbox_detector",
"type": "BBOX_DETECTOR",
"link": 209,
"slot_index": 0
},
{
"name": "image",
"type": "IMAGE",
"link": 305,
"slot_index": 1
},
{
"name": "sam_model_opt",
"type": "SAM_MODEL",
"link": 210,
"slot_index": 2
},
{
"name": "segm_detector_opt",
"type": "SEGM_DETECTOR",
"link": null
}
],
"outputs": [
{
"name": "SEGS",
"type": "SEGS",
"links": [
163
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "ImpactSimpleDetectorSEGS"
},
"widgets_values": [
0.5,
0,
1.5,
10,
0.5,
0,
0,
0.5,
20
],
"color": "#432",
"bgcolor": "#653"
},
{
"id": 67,
"type": "LoraLoader",
"pos": [
-125,
1490
],
"size": {
"0": 315,
"1": 126
},
"flags": {},
"order": 11,
"mode": 0,
"inputs": [
{
"name": "model",
"type": "MODEL",
"link": 123
},
{
"name": "clip",
"type": "CLIP",
"link": 124
}
],
"outputs": [
{
"name": "MODEL",
"type": "MODEL",
"links": [
125
],
"shape": 3
},
{
"name": "CLIP",
"type": "CLIP",
"links": [
126
],
"shape": 3
}
],
"properties": {
"Node name for S&R": "LoraLoader"
},
"widgets_values": [
"XL\\👩\\epiCPhotoXL.safetensors",
0.6,
0.6
]
},
{
"id": 66,
"type": "LoraLoader",
"pos": [
232,
1490
],
"size": {
"0": 315,
"1": 126
},
"flags": {},
"order": 16,
"mode": 0,
"inputs": [
{
"name": "model",
"type": "MODEL",
"link": 125
},
{
"name": "clip",
"type": "CLIP",
"link": 126
}
],
"outputs": [
{
"name": "MODEL",
"type": "MODEL",
"links": [
119
],
"shape": 3
},
{
"name": "CLIP",
"type": "CLIP",
"links": [
236
],
"shape": 3,
"slot_index": 1
}
],
"properties": {
"Node name for S&R": "LoraLoader"
},
"widgets_values": [
"XL\\👩\\SDXL_BetterFaces-LoRA_v1.safetensors",
0.8,
0.8
]
},
{
"id": 21,
"type": "CheckpointLoaderSimple",
"pos": [
-479,
1490
],
"size": {
"0": 315,
"1": 98
},
"flags": {},
"order": 0,
"mode": 0,
"outputs": [
{
"name": "MODEL",
"type": "MODEL",
"links": [
123
],
"shape": 3,
"slot_index": 0
},
{
"name": "CLIP",
"type": "CLIP",
"links": [
124
],
"shape": 3,
"slot_index": 1
},
{
"name": "VAE",
"type": "VAE",
"links": [
52
],
"shape": 3,
"slot_index": 2
}
],
"properties": {
"Node name for S&R": "CheckpointLoaderSimple"
},
"widgets_values": [
"📷-XL\\epicrealismXL_v2Wip.safetensors"
]
},
{
"id": 69,
"type": "ImpactSEGSOrderedFilter",
"pos": [
1290,
-545
],
"size": {
"0": 315,
"1": 150
},
"flags": {},
"order": 28,
"mode": 0,
"inputs": [
{
"name": "segs",
"type": "SEGS",
"link": 163
}
],
"outputs": [
{
"name": "filtered_SEGS",
"type": "SEGS",
"links": [
129,
287
],
"shape": 3,
"slot_index": 0
},
{
"name": "remained_SEGS",
"type": "SEGS",
"links": [],
"shape": 3,
"slot_index": 1
}
],
"properties": {
"Node name for S&R": "ImpactSEGSOrderedFilter"
},
"widgets_values": [
"area(=w*h)",
true,
0,
1
]
},
{
"id": 8,
"type": "ControlNetLoader",
"pos": [
2180,
680
],
"size": {
"0": 252.1982879638672,
"1": 58
},
"flags": {},
"order": 1,
"mode": 0,
"outputs": [
{
"name": "CONTROL_NET",
"type": "CONTROL_NET",
"links": [
288
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "ControlNetLoader"
},
"widgets_values": [
"InstantID\\diffusion_pytorch_model.safetensors"
],
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 166,
"type": "LLava Loader Simple",
"pos": [
380,
910
],
"size": {
"0": 315,
"1": 130
},
"flags": {},
"order": 12,
"mode": 0,
"inputs": [
{
"name": "clip",
"type": "CUSTOM",
"link": 294,
"slot_index": 0
}
],
"outputs": [
{
"name": "model",
"type": "CUSTOM",
"links": [
292
],
"shape": 3
}
],
"properties": {
"Node name for S&R": "LLava Loader Simple"
},
"widgets_values": [
"llava-v1.6-mistral-7b.Q4_K_M.gguf",
2048,
27,
8
],
"color": "#322",
"bgcolor": "#533"
},
{
"id": 167,
"type": "LlavaClipLoader",
"pos": [
45,
910
],
"size": {
"0": 315,
"1": 58
},
"flags": {},
"order": 2,
"mode": 0,
"outputs": [
{
"name": "clip",
"type": "CUSTOM",
"links": [
294
],
"shape": 3
}
],
"properties": {
"Node name for S&R": "LlavaClipLoader"
},
"widgets_values": [
"mmproj-model-f16.gguf"
],
"color": "#322",
"bgcolor": "#533"
},
{
"id": 12,
"type": "InstantIDFaceAnalysis",
"pos": [
2185,
560
],
"size": {
"0": 232.38363647460938,
"1": 58
},
"flags": {},
"order": 3,
"mode": 0,
"outputs": [
{
"name": "FACEANALYSIS",
"type": "FACEANALYSIS",
"links": [
15,
279
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "InstantIDFaceAnalysis"
},
"widgets_values": [
"CUDA"
],
"color": "#232",
"bgcolor": "#353"
},
{
"id": 154,
"type": "PreviewImage",
"pos": [
2620,
635
],
"size": {
"0": 210,
"1": 246
},
"flags": {},
"order": 34,
"mode": 0,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 274
}
],
"properties": {
"Node name for S&R": "PreviewImage"
}
},
{
"id": 132,
"type": "PreviewImage",
"pos": [
4285,
845
],
"size": {
"0": 1066.457763671875,
"1": 1072.204833984375
},
"flags": {},
"order": 40,
"mode": 0,
"inputs": [
{
"name": "images",
"type": "IMAGE",
"link": 244
}
],
"properties": {
"Node name for S&R": "PreviewImage"
},
"color": "#223",
"bgcolor": "#335"
},
{
"id": 165,
"type": "LLavaSamplerSimple",
"pos": [
737,
882
],
"size": [
315,
102
],
"flags": {},
"order": 30,
"mode": 0,
"inputs": [
{
"name": "image",
"type": "IMAGE",
"link": 300
},
{
"name": "model",
"type": "CUSTOM",
"link": 292,
"slot_index": 1
},
{
"name": "prompt",
"type": "STRING",
"link": 293,
"widget": {
"name": "prompt"
},
"slot_index": 2
}
],
"outputs": [
{
"name": "STRING",
"type": "STRING",
"links": [
295,
296
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "LLavaSamplerSimple"
},
"widgets_values": [
"",
0.1
],
"color": "#322",
"bgcolor": "#533"
},
{
"id": 173,
"type": "ImpactSEGSOrderedFilter",
"pos": [
1295,
75
],
"size": {
"0": 315,
"1": 150
},
"flags": {},
"order": 20,
"mode": 0,
"inputs": [
{
"name": "segs",
"type": "SEGS",
"link": 306
}
],
"outputs": [
{
"name": "filtered_SEGS",
"type": "SEGS",
"links": [
308
],
"shape": 3,
"slot_index": 0
},
{
"name": "remained_SEGS",
"type": "SEGS",
"links": null,
"shape": 3
}
],
"properties": {
"Node name for S&R": "ImpactSEGSOrderedFilter"
},
"widgets_values": [
"area(=w*h)",
true,
0,
1
]
},
{
"id": 172,
"type": "ImpactSimpleDetectorSEGS",
"pos": [
960,
75
],
"size": {
"0": 315,
"1": 310
},
"flags": {},
"order": 15,
"mode": 0,
"inputs": [
{
"name": "bbox_detector",
"type": "BBOX_DETECTOR",
"link": 309
},
{
"name": "image",
"type": "IMAGE",
"link": 383
},
{
"name": "sam_model_opt",
"type": "SAM_MODEL",
"link": 310,
"slot_index": 2
},
{
"name": "segm_detector_opt",
"type": "SEGM_DETECTOR",
"link": null
}
],
"outputs": [
{
"name": "SEGS",
"type": "SEGS",
"links": [
306
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "ImpactSimpleDetectorSEGS"
},
"widgets_values": [
0.5,
0,
1.5,
10,
0.5,
0,
0,
0.7,
0
],
"color": "#432",
"bgcolor": "#653"
},
{
"id": 3,
"type": "UltralyticsDetectorProvider",
"pos": [
565,
-555
],
"size": {
"0": 315,
"1": 78
},
"flags": {},
"order": 4,
"mode": 0,
"outputs": [
{
"name": "BBOX_DETECTOR",
"type": "BBOX_DETECTOR",
"links": [
209,
309
],
"shape": 3,
"slot_index": 0
},
{
"name": "SEGM_DETECTOR",
"type": "SEGM_DETECTOR",
"links": null,
"shape": 3
}
],
"properties": {
"Node name for S&R": "UltralyticsDetectorProvider"
},
"widgets_values": [
"bbox/face_yolov8m.pt"
],
"color": "#432",
"bgcolor": "#653"
},
{
"id": 4,
"type": "SAMLoader",
"pos": [
570,
-420
],
"size": {
"0": 315,
"1": 82
},
"flags": {},
"order": 5,
"mode": 0,
"outputs": [
{
"name": "SAM_MODEL",
"type": "SAM_MODEL",
"links": [
210,
310
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "SAMLoader"
},
"widgets_values": [
"sam_vit_h_4b8939.pth",
"AUTO"
],
"color": "#432",
"bgcolor": "#653"
},
{
"id": 9,
"type": "InstantIDModelLoader",
"pos": [
2180,
440
],
"size": {
"0": 238.72393798828125,
"1": 58
},
"flags": {},
"order": 6,
"mode": 0,
"outputs": [
{
"name": "INSTANTID",
"type": "INSTANTID",
"links": [
280
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "InstantIDModelLoader"
},
"widgets_values": [
"ip-adapter.bin"
],
"color": "#232",
"bgcolor": "#353"
},
{
"id": 162,
"type": "ApplyInstantID",
"pos": [
2680,
1150
],
"size": {
"0": 315,
"1": 266
},
"flags": {},
"order": 36,
"mode": 0,
"inputs": [
{
"name": "instantid",
"type": "INSTANTID",
"link": 280
},
{
"name": "insightface",
"type": "FACEANALYSIS",
"link": 279
},
{
"name": "control_net",
"type": "CONTROL_NET",
"link": 288
},
{
"name": "image",
"type": "IMAGE",
"link": 385
},
{
"name": "model",
"type": "MODEL",
"link": 284
},
{
"name": "positive",
"type": "CONDITIONING",
"link": 277
},
{
"name": "negative",
"type": "CONDITIONING",
"link": 278
},
{
"name": "image_kps",
"type": "IMAGE",
"link": 358
},
{
"name": "mask",
"type": "MASK",
"link": null
}
],
"outputs": [
{
"name": "MODEL",
"type": "MODEL",
"links": [
283
],
"shape": 3,
"slot_index": 0
},
{
"name": "POSITIVE",
"type": "CONDITIONING",
"links": [
281
],
"shape": 3,
"slot_index": 1
},
{
"name": "NEGATIVE",
"type": "CONDITIONING",
"links": [
282
],
"shape": 3,
"slot_index": 2
}
],
"properties": {
"Node name for S&R": "ApplyInstantID"
},
"widgets_values": [
0.8,
0,
1
]
},
{
"id": 32,
"type": "ToBasicPipe",
"pos": [
3110,
1480
],
"size": {
"0": 241.79998779296875,
"1": 106
},
"flags": {},
"order": 37,
"mode": 0,
"inputs": [
{
"name": "model",
"type": "MODEL",
"link": 283
},
{
"name": "clip",
"type": "CLIP",
"link": 240
},
{
"name": "vae",
"type": "VAE",
"link": 52
},
{
"name": "positive",
"type": "CONDITIONING",
"link": 281
},
{
"name": "negative",
"type": "CONDITIONING",
"link": 282
}
],
"outputs": [
{
"name": "basic_pipe",
"type": "BASIC_PIPE",
"links": [
221
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "ToBasicPipe"
}
},
{
"id": 42,
"type": "DenoiseSchedulerDetailerHookProvider",
"pos": [
3050,
1645
],
"size": {
"0": 302.3999938964844,
"1": 82
},
"flags": {},
"order": 7,
"mode": 0,
"outputs": [
{
"name": "DETAILER_HOOK",
"type": "DETAILER_HOOK",
"links": [
223
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "DenoiseSchedulerDetailerHookProvider"
},
"widgets_values": [
"simple",
0.3
]
},
{
"id": 113,
"type": "ConditioningCombine",
"pos": [
1544,
1263
],
"size": {
"0": 228.39999389648438,
"1": 46
},
"flags": {},
"order": 35,
"mode": 0,
"inputs": [
{
"name": "conditioning_1",
"type": "CONDITIONING",
"link": 189
},
{
"name": "conditioning_2",
"type": "CONDITIONING",
"link": 190
}
],
"outputs": [
{
"name": "CONDITIONING",
"type": "CONDITIONING",
"links": [
277
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "ConditioningCombine"
}
},
{
"id": 5,
"type": "SEGSPreview",
"pos": [
1640,
-547
],
"size": {
"0": 315,
"1": 314
},
"flags": {},
"order": 29,
"mode": 0,
"inputs": [
{
"name": "segs",
"type": "SEGS",
"link": 129
},
{
"name": "fallback_image_opt",
"type": "IMAGE",
"link": null
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
300,
321
],
"shape": 6,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "SEGSPreview"
},
"widgets_values": [
true,
0.2
]
},
{
"id": 168,
"type": "SimpleText",
"pos": [
360,
1090
],
"size": {
"0": 335.7423095703125,
"1": 123.99213409423828
},
"flags": {},
"order": 8,
"mode": 0,
"outputs": [
{
"name": "STRING",
"type": "STRING",
"links": [
293
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "SimpleText"
},
"widgets_values": [
"This is a chat between an inquisitive human and an AI assistant. Assume the role of the AI assistant. Read all the images carefully, and respond to the human's questions with informative, helpful, detailed and polite answers.\nPlease rationally and concisely create a detailed caption of the face in these images.Please do not mention the hair or background."
],
"color": "#322",
"bgcolor": "#533"
},
{
"id": 107,
"type": "ShowText|pysssss",
"pos": [
1118,
939
],
"size": [
349.5565904703037,
133.01403520673148
],
"flags": {},
"order": 32,
"mode": 0,
"inputs": [
{
"name": "text",
"type": "STRING",
"link": 295,
"widget": {
"name": "text"
}
}
],
"outputs": [
{
"name": "STRING",
"type": "STRING",
"links": null,
"shape": 6
}
],
"properties": {
"Node name for S&R": "ShowText|pysssss"
},
"widgets_values": [
"",
" The image shows a woman with a neutral expression. She has fair skin and her facial features include a straight nose, full lips, and a small chin. Her eyes are open and she appears to be looking directly at the camera. There is no visible text on the image. The style of the image seems to be a standard portrait with a focus on the person's face. "
],
"color": "#222",
"bgcolor": "#000"
},
{
"id": 2,
"type": "LoadImage",
"pos": [
-895,
-685
],
"size": [
626.4258473168752,
562.8134897981251
],
"flags": {},
"order": 9,
"mode": 0,
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
34,
270
],
"shape": 3,
"slot_index": 0
},
{
"name": "MASK",
"type": "MASK",
"links": null,
"shape": 3,
"slot_index": 1
}
],
"properties": {
"Node name for S&R": "LoadImage"
},
"widgets_values": [
"pexels-photo-2762110.jpg",
"image"
],
"color": "#8bd2ff",
"bgcolor": "#77befb"
},
{
"id": 14,
"type": "FaceKeypointsPreprocessor",
"pos": [
2180,
800
],
"size": {
"0": 246.69776916503906,
"1": 46
},
"flags": {},
"order": 31,
"mode": 0,
"inputs": [
{
"name": "faceanalysis",
"type": "FACEANALYSIS",
"link": 15
},
{
"name": "image",
"type": "IMAGE",
"link": 321
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
274,
358
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "FaceKeypointsPreprocessor"
},
"color": "#2a363b",
"bgcolor": "#3f5159"
},
{
"id": 56,
"type": "ReActorFaceSwap",
"pos": [
574,
-273
],
"size": {
"0": 315,
"1": 338
},
"flags": {},
"order": 17,
"mode": 0,
"inputs": [
{
"name": "input_image",
"type": "IMAGE",
"link": 133
},
{
"name": "source_image",
"type": "IMAGE",
"link": 94
},
{
"name": "face_model",
"type": "FACE_MODEL",
"link": null
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
305
],
"shape": 3,
"slot_index": 0
},
{
"name": "FACE_MODEL",
"type": "FACE_MODEL",
"links": null,
"shape": 3
}
],
"properties": {
"Node name for S&R": "ReActorFaceSwap"
},
"widgets_values": [
true,
"inswapper_128.onnx",
"retinaface_resnet50",
"GFPGANv1.4.pth",
1,
1,
"no",
"no",
"0",
"0",
1
],
"color": "#323",
"bgcolor": "#535"
},
{
"id": 22,
"type": "LoadImage",
"pos": [
-177,
96
],
"size": [
390.4337867346808,
664.3246348042101
],
"flags": {},
"order": 10,
"mode": 0,
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
94,
383
],
"shape": 3,
"slot_index": 0
},
{
"name": "MASK",
"type": "MASK",
"links": [],
"shape": 3,
"slot_index": 1
}
],
"properties": {
"Node name for S&R": "LoadImage"
},
"widgets_values": [
"pexels-photo-2467389.jpg",
"image"
],
"color": "#ff6a14",
"bgcolor": "#f55600"
},
{
"id": 175,
"type": "SEGSPreview",
"pos": [
1630,
75
],
"size": {
"0": 315,
"1": 314
},
"flags": {},
"order": 24,
"mode": 0,
"inputs": [
{
"name": "segs",
"type": "SEGS",
"link": 308
},
{
"name": "fallback_image_opt",
"type": "IMAGE",
"link": null
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
385
],
"shape": 6,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "SEGSPreview"
},
"widgets_values": [
true,
0.2
]
},
{
"id": 24,
"type": "ImageResize",
"pos": [
-210,
-680
],
"size": {
"0": 315,
"1": 246
},
"flags": {},
"order": 13,
"mode": 0,
"inputs": [
{
"name": "pixels",
"type": "IMAGE",
"link": 34
},
{
"name": "mask_optional",
"type": "MASK",
"link": null
}
],
"outputs": [
{
"name": "IMAGE",
"type": "IMAGE",
"links": [
133,
317
],
"shape": 3,
"slot_index": 0
},
{
"name": "MASK",
"type": "MASK",
"links": null,
"shape": 3
}
],
"properties": {
"Node name for S&R": "ImageResize"
},
"widgets_values": [
"resize only",
2000,
0,
0,
"reduce size only",
"4:3",
0.5,
20
]
},
{
"id": 124,
"type": "DetailerForEachDebugPipe",
"pos": [
3450,
850
],
"size": {
"0": 434.7952575683594,
"1": 604.6138305664062
},
"flags": {},
"order": 38,
"mode": 0,
"inputs": [
{
"name": "image",
"type": "IMAGE",
"link": 269
},
{
"name": "segs",
"type": "SEGS",
"link": 287
},
{
"name": "basic_pipe",
"type": "BASIC_PIPE",
"link": 221
},
{
"name": "detailer_hook",
"type": "DETAILER_HOOK",
"link": 223
},
{
"name": "refiner_basic_pipe_opt",
"type": "BASIC_PIPE",
"link": null
}
],
"outputs": [
{
"name": "image",
"type": "IMAGE",
"links": [],
"shape": 3,
"slot_index": 0
},
{
"name": "segs",
"type": "SEGS",
"links": [
242
],
"shape": 3,
"slot_index": 1
},
{
"name": "basic_pipe",
"type": "BASIC_PIPE",
"links": null,
"shape": 3
},
{
"name": "cropped",
"type": "IMAGE",
"links": [],
"shape": 6,
"slot_index": 3
},
{
"name": "cropped_refined",
"type": "IMAGE",
"links": [],
"shape": 6,
"slot_index": 4
},
{
"name": "cropped_refined_alpha",
"type": "IMAGE",
"links": [],
"shape": 6,
"slot_index": 5
},
{
"name": "cnet_images",
"type": "IMAGE",
"links": null,
"shape": 6
}
],
"properties": {
"Node name for S&R": "DetailerForEachDebugPipe"
},
"widgets_values": [
1024,
false,
1504,
337482200991748,
"fixed",
20,
8,
"dpmpp_2m",
"karras",
0.4,
20,
true,
true,
"",
0.2,
1,
false,
0
]
},
{
"id": 20,
"type": "CLIPTextEncode",
"pos": [
1108,
1393
],
"size": {
"0": 366.96685791015625,
"1": 76
},
"flags": {},
"order": 27,
"mode": 0,
"inputs": [
{
"name": "clip",
"type": "CLIP",
"link": 239
}
],
"outputs": [
{
"name": "CONDITIONING",
"type": "CONDITIONING",
"links": [
278
],
"shape": 3,
"slot_index": 0
}
],
"properties": {
"Node name for S&R": "CLIPTextEncode"
},
"widgets_values": [
"worst quality,airbrushed, (glossy, photoshop,plastic,3d:1.15)"
]
}
],
"links": [
[
15,
12,
0,
14,
0,
"FACEANALYSIS"
],
[
34,
2,
0,
24,
0,
"IMAGE"
],
[
41,
28,
0,
27,
0,
"MODEL"
],
[
52,
21,
2,
32,
2,
"VAE"
],
[
94,
22,
0,
56,
1,
"IMAGE"
],
[
119,
66,
0,
28,
0,
"MODEL"
],
[
123,
21,
0,
67,
0,
"MODEL"
],
[
124,
21,
1,
67,
1,
"CLIP"
],
[
125,
67,
0,
66,
0,
"MODEL"
],
[
126,
67,
1,
66,
1,
"CLIP"
],
[
129,
69,
0,
5,
0,
"SEGS"
],
[
133,
24,
0,
56,
0,
"IMAGE"
],
[
163,
1,
0,
69,
0,
"SEGS"
],
[
189,
112,
0,
113,
0,
"CONDITIONING"
],
[
190,
19,
0,
113,
1,
"CONDITIONING"
],
[
209,
3,
0,
1,
0,
"BBOX_DETECTOR"
],
[
210,
4,
0,
1,
2,
"SAM_MODEL"
],
[
221,
32,
0,
124,
2,
"BASIC_PIPE"
],
[
223,
42,
0,
124,
3,
"DETAILER_HOOK"
],
[
236,
66,
1,
130,
0,
"*"
],
[
237,
130,
0,
112,
0,
"CLIP"
],
[
238,
130,
0,
19,
0,
"CLIP"
],
[
239,
130,
0,
20,
0,
"CLIP"
],
[
240,
130,
0,
32,
1,
"CLIP"
],
[
242,
124,
1,
131,
1,
"SEGS"
],
[
244,
131,
0,
132,
0,
"IMAGE"
],
[
269,
151,
0,
124,
0,
"IMAGE"
],
[
270,
2,
0,
152,
0,
"*"
],
[
271,
152,
0,
153,
0,
"*"
],
[
272,
153,
0,
131,
0,
"IMAGE"
],
[
274,
14,
0,
154,
0,
"IMAGE"
],
[
277,
113,
0,
162,
5,
"CONDITIONING"
],
[
278,
20,
0,
162,
6,
"CONDITIONING"
],
[
279,
12,
0,
162,
1,
"FACEANALYSIS"
],
[
280,
9,
0,
162,
0,
"INSTANTID"
],
[
281,
162,
1,
32,
3,
"CONDITIONING"
],
[
282,
162,
2,
32,
4,
"CONDITIONING"
],
[
283,
162,
0,
32,
0,
"MODEL"
],
[
284,
27,
0,
162,
4,
"MODEL"
],
[
287,
69,
0,
124,
1,
"SEGS"
],
[
288,
8,
0,
162,
2,
"CONTROL_NET"
],
[
292,
166,
0,
165,
1,
"CUSTOM"
],
[
293,
168,
0,
165,
2,
"STRING"
],
[
294,
167,
0,
166,
0,
"CUSTOM"
],
[
295,
165,
0,
107,
0,
"STRING"
],
[
296,
165,
0,
112,
1,
"STRING"
],
[
300,
5,
0,
165,
0,
"IMAGE"
],
[
305,
56,
0,
1,
1,
"IMAGE"
],
[
306,
172,
0,
173,
0,
"SEGS"
],
[
308,
173,
0,
175,
0,
"SEGS"
],
[
309,
3,
0,
172,
0,
"BBOX_DETECTOR"
],
[
310,
4,
0,
172,
2,
"SAM_MODEL"
],
[
317,
24,
0,
151,
0,
"*"
],
[
321,
5,
0,
14,
1,
"IMAGE"
],
[
358,
14,
0,
162,
7,
"IMAGE"
],
[
383,
22,
0,
172,
1,
"IMAGE"
],
[
385,
175,
0,
162,
3,
"IMAGE"
]
],
"groups": [],
"config": {},
"extra": {
"0246.VERSION": [
0,
0,
4
]
},
"version": 0.4
}