{ "last_node_id": 38, "last_link_id": 62, "nodes": [ { "id": 6, "type": "CLIPTextEncode", "pos": [ 540, -265 ], "size": [ 210, 76 ], "flags": {}, "order": 12, "mode": 0, "inputs": [ { "name": "clip", "type": "CLIP", "link": 6, "slot_index": 0 } ], "outputs": [ { "name": "CONDITIONING", "type": "CONDITIONING", "links": [ 5 ], "shape": 3 } ], "properties": { "Node name for S&R": "CLIPTextEncode" }, "widgets_values": [ "robert de niro" ], "shape": 1 }, { "id": 7, "type": "CLIPTextEncode", "pos": [ 525, -95 ], "size": { "0": 210, "1": 76 }, "flags": {}, "order": 13, "mode": 0, "inputs": [ { "name": "clip", "type": "CLIP", "link": 28, "slot_index": 0 } ], "outputs": [ { "name": "CONDITIONING", "type": "CONDITIONING", "links": [ 27 ], "shape": 3, "slot_index": 0 } ], "properties": { "Node name for S&R": "CLIPTextEncode" }, "widgets_values": [ "embedding:0001SoftRealisticNegative" ], "shape": 1 }, { "id": 24, "type": "Note", "pos": [ 1005, -385 ], "size": [ 280, 95 ], "flags": {}, "order": 0, "mode": 0, "properties": { "text": "" }, "widgets_values": [ "Optional:\n\nsince this is inpainting, it's a good idea to use differential diffusion." ], "color": "#432", "bgcolor": "#653" }, { "id": 20, "type": "ScaledSoftControlNetWeights", "pos": [ 1897.464666015624, 342.6759974365233 ], "size": [ 235, 100 ], "flags": {}, "order": 1, "mode": 0, "outputs": [ { "name": "CN_WEIGHTS", "type": "CONTROL_NET_WEIGHTS", "links": [ 36 ], "shape": 3 }, { "name": "TK_SHORTCUT", "type": "TIMESTEP_KEYFRAME", "links": null, "shape": 3 } ], "properties": { "Node name for S&R": "ScaledSoftControlNetWeights" }, "widgets_values": [ 0.9, false ], "shape": 1 }, { "id": 19, "type": "ControlNetLoader", "pos": [ 1812.464666015624, -112.32400256347648 ], "size": [ 425, 60 ], "flags": {}, "order": 2, "mode": 0, "outputs": [ { "name": "CONTROL_NET", "type": "CONTROL_NET", "links": [ 35 ], "shape": 3 } ], "properties": { "Node name for S&R": "ControlNetLoader" }, "widgets_values": [ "control_v11f1e_sd15_tile_fp16.safetensors" ], "shape": 1 }, { "id": 17, "type": "ACN_AdvancedControlNetApply", "pos": [ 1872.464666015624, 7.675997436523282 ], "size": [ 285, 265 ], "flags": {}, "order": 19, "mode": 0, "inputs": [ { "name": "positive", "type": "CONDITIONING", "link": 29 }, { "name": "negative", "type": "CONDITIONING", "link": 30 }, { "name": "control_net", "type": "CONTROL_NET", "link": 35, "slot_index": 2 }, { "name": "image", "type": "IMAGE", "link": 34 }, { "name": "mask_optional", "type": "MASK", "link": null }, { "name": "timestep_kf", "type": "TIMESTEP_KEYFRAME", "link": null }, { "name": "latent_kf_override", "type": "LATENT_KEYFRAME", "link": null }, { "name": "weights_override", "type": "CONTROL_NET_WEIGHTS", "link": 36, "slot_index": 7 }, { "name": "model_optional", "type": "MODEL", "link": null } ], "outputs": [ { "name": "positive", "type": "CONDITIONING", "links": [ 31 ], "shape": 3, "slot_index": 0 }, { "name": "negative", "type": "CONDITIONING", "links": [ 32 ], "shape": 3, "slot_index": 1 }, { "name": "model_opt", "type": "MODEL", "links": null, "shape": 3 } ], "properties": { "Node name for S&R": "ACN_AdvancedControlNetApply" }, "widgets_values": [ 1, 0, 1 ], "shape": 1 }, { "id": 28, "type": "ScaledSoftControlNetWeights", "pos": [ 1914.0533671875, 1024.9157484130872 ], "size": { "0": 235, "1": 100 }, "flags": {}, "order": 3, "mode": 0, "outputs": [ { "name": "CN_WEIGHTS", "type": "CONTROL_NET_WEIGHTS", "links": [ 46 ], "shape": 3, "slot_index": 0 }, { "name": "TK_SHORTCUT", "type": "TIMESTEP_KEYFRAME", "links": null, "shape": 3 } ], "properties": { "Node name for S&R": "ScaledSoftControlNetWeights" }, "widgets_values": [ 0.9, false ], "shape": 1 }, { "id": 8, "type": "CheckpointLoaderSimple", "pos": [ 10, 45 ], "size": { "0": 315, "1": 98 }, "flags": {}, "order": 4, "mode": 0, "outputs": [ { "name": "MODEL", "type": "MODEL", "links": [ 40 ], "shape": 3, "slot_index": 0 }, { "name": "CLIP", "type": "CLIP", "links": [ 6, 28 ], "shape": 3 }, { "name": "VAE", "type": "VAE", "links": [ 53 ], "shape": 3, "slot_index": 2 } ], "properties": { "Node name for S&R": "CheckpointLoaderSimple" }, "widgets_values": [ "ERv8.RC1.fp16.safetensors" ], "shape": 1 }, { "id": 32, "type": "Anything Everywhere", "pos": [ 395, 190 ], "size": { "0": 210, "1": 26 }, "flags": {}, "order": 14, "mode": 0, "inputs": [ { "name": "VAE", "type": "*", "link": 53, "color_on": "#FF6E6E" } ], "properties": { "group_restricted": 0, "color_restricted": 0, "Node name for S&R": "Anything Everywhere" }, "widgets_values": [], "shape": 1 }, { "id": 31, "type": "VAEDecode", "pos": [ 2358.6120800781246, -688.4017583007814 ], "size": { "0": 210, "1": 46 }, "flags": {}, "order": 24, "mode": 0, "inputs": [ { "name": "samples", "type": "LATENT", "link": 51 }, { "name": "vae", "type": "VAE", "link": null, "slot_index": 1 } ], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "links": [ 54 ], "shape": 3, "slot_index": 0 } ], "properties": { "Node name for S&R": "VAEDecode" }, "shape": 1 }, { "id": 33, "type": "PreviewImage", "pos": [ 2642.116105468749, -685.7398994140626 ], "size": [ 210, 245 ], "flags": {}, "order": 27, "mode": 0, "inputs": [ { "name": "images", "type": "IMAGE", "link": 54 } ], "properties": { "Node name for S&R": "PreviewImage" }, "shape": 1 }, { "id": 30, "type": "KSampler", "pos": [ 1910, -695 ], "size": { "0": 210, "1": 475 }, "flags": {}, "order": 21, "mode": 0, "inputs": [ { "name": "model", "type": "MODEL", "link": 50 }, { "name": "positive", "type": "CONDITIONING", "link": 47 }, { "name": "negative", "type": "CONDITIONING", "link": 48 }, { "name": "latent_image", "type": "LATENT", "link": 49 } ], "outputs": [ { "name": "LATENT", "type": "LATENT", "links": [ 51 ], "shape": 3, "slot_index": 0 } ], "properties": { "Node name for S&R": "KSampler" }, "widgets_values": [ 228831916947142, "randomize", 20, 8, "euler", "normal", 0.3 ], "shape": 1 }, { "id": 10, "type": "KSampler", "pos": [ 2270, -50 ], "size": [ 210, 475 ], "flags": {}, "order": 22, "mode": 0, "inputs": [ { "name": "model", "type": "MODEL", "link": 41 }, { "name": "positive", "type": "CONDITIONING", "link": 31 }, { "name": "negative", "type": "CONDITIONING", "link": 32 }, { "name": "latent_image", "type": "LATENT", "link": 11 } ], "outputs": [ { "name": "LATENT", "type": "LATENT", "links": [ 39 ], "shape": 3, "slot_index": 0 } ], "properties": { "Node name for S&R": "KSampler" }, "widgets_values": [ 349593472215048, "randomize", 20, 8, "euler", "normal", 1 ], "shape": 1 }, { "id": 12, "type": "VAEDecode", "pos": [ 2560, -50 ], "size": [ 140, 45 ], "flags": {}, "order": 25, "mode": 0, "inputs": [ { "name": "samples", "type": "LATENT", "link": 39 }, { "name": "vae", "type": "VAE", "link": null } ], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "links": [ 19, 55 ], "shape": 3, "slot_index": 0 } ], "properties": { "Node name for S&R": "VAEDecode" }, "shape": 1 }, { "id": 34, "type": "PreviewImage", "pos": [ 2798.514814609374, -44.439412753906936 ], "size": [ 210, 245 ], "flags": {}, "order": 29, "mode": 0, "inputs": [ { "name": "images", "type": "IMAGE", "link": 55 } ], "properties": { "Node name for S&R": "PreviewImage" }, "shape": 1 }, { "id": 26, "type": "ACN_AdvancedControlNetApply", "pos": [ 1865, 700 ], "size": { "0": 285, "1": 265 }, "flags": {}, "order": 20, "mode": 0, "inputs": [ { "name": "positive", "type": "CONDITIONING", "link": 43 }, { "name": "negative", "type": "CONDITIONING", "link": 44 }, { "name": "control_net", "type": "CONTROL_NET", "link": 45, "slot_index": 2 }, { "name": "image", "type": "IMAGE", "link": 62 }, { "name": "mask_optional", "type": "MASK", "link": null }, { "name": "timestep_kf", "type": "TIMESTEP_KEYFRAME", "link": null }, { "name": "latent_kf_override", "type": "LATENT_KEYFRAME", "link": null }, { "name": "weights_override", "type": "CONTROL_NET_WEIGHTS", "link": 46, "slot_index": 7 }, { "name": "model_optional", "type": "MODEL", "link": null } ], "outputs": [ { "name": "positive", "type": "CONDITIONING", "links": [ 56 ], "shape": 3, "slot_index": 0 }, { "name": "negative", "type": "CONDITIONING", "links": [ 57 ], "shape": 3, "slot_index": 1 }, { "name": "model_opt", "type": "MODEL", "links": null, "shape": 3 } ], "properties": { "Node name for S&R": "ACN_AdvancedControlNetApply" }, "widgets_values": [ 1, 0, 1 ], "shape": 1 }, { "id": 21, "type": "DifferentialDiffusion", "pos": [ 1055, -150 ], "size": { "0": 210, "1": 26 }, "flags": {}, "order": 11, "mode": 0, "inputs": [ { "name": "model", "type": "MODEL", "link": 40 } ], "outputs": [ { "name": "MODEL", "type": "MODEL", "links": [ 41, 50, 58 ], "shape": 3, "slot_index": 0 } ], "properties": { "Node name for S&R": "DifferentialDiffusion" }, "shape": 1 }, { "id": 5, "type": "InpaintModelConditioning", "pos": [ 1035, 10 ], "size": [ 200, 105 ], "flags": {}, "order": 17, "mode": 0, "inputs": [ { "name": "positive", "type": "CONDITIONING", "link": 5, "slot_index": 0 }, { "name": "negative", "type": "CONDITIONING", "link": 27 }, { "name": "vae", "type": "VAE", "link": null }, { "name": "pixels", "type": "IMAGE", "link": 4 }, { "name": "mask", "type": "MASK", "link": 12 } ], "outputs": [ { "name": "positive", "type": "CONDITIONING", "links": [ 29, 43, 47 ], "shape": 3, "slot_index": 0 }, { "name": "negative", "type": "CONDITIONING", "links": [ 30, 44, 48 ], "shape": 3, "slot_index": 1 }, { "name": "latent", "type": "LATENT", "links": [ 11, 49, 59 ], "shape": 3, "slot_index": 2 } ], "properties": { "Node name for S&R": "InpaintModelConditioning" }, "shape": 1 }, { "id": 35, "type": "KSampler", "pos": [ 2305, 605 ], "size": { "0": 210, "1": 475 }, "flags": {}, "order": 23, "mode": 0, "inputs": [ { "name": "model", "type": "MODEL", "link": 58 }, { "name": "positive", "type": "CONDITIONING", "link": 56 }, { "name": "negative", "type": "CONDITIONING", "link": 57 }, { "name": "latent_image", "type": "LATENT", "link": 59 } ], "outputs": [ { "name": "LATENT", "type": "LATENT", "links": [ 60 ], "shape": 3, "slot_index": 0 } ], "properties": { "Node name for S&R": "KSampler" }, "widgets_values": [ 26621615258437, "randomize", 20, 8, "euler", "normal", 1 ], "shape": 1 }, { "id": 36, "type": "VAEDecode", "pos": [ 2544.0544979882798, 604.5961399755853 ], "size": { "0": 210, "1": 46 }, "flags": {}, "order": 26, "mode": 0, "inputs": [ { "name": "samples", "type": "LATENT", "link": 60 }, { "name": "vae", "type": "VAE", "link": null } ], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "links": [ 61 ], "shape": 3, "slot_index": 0 } ], "properties": { "Node name for S&R": "VAEDecode" }, "shape": 1 }, { "id": 37, "type": "PreviewImage", "pos": [ 2835, 610 ], "size": [ 210, 245 ], "flags": {}, "order": 30, "mode": 0, "inputs": [ { "name": "images", "type": "IMAGE", "link": 61 } ], "properties": { "Node name for S&R": "PreviewImage" }, "shape": 1 }, { "id": 27, "type": "ControlNetLoader", "pos": [ 1804.0533671875007, 584.9157484130862 ], "size": { "0": 425, "1": 60 }, "flags": {}, "order": 5, "mode": 0, "outputs": [ { "name": "CONTROL_NET", "type": "CONTROL_NET", "links": [ 45 ], "shape": 3, "slot_index": 0 } ], "properties": { "Node name for S&R": "ControlNetLoader" }, "widgets_values": [ "control_v11p_sd15_inpaint_fp16.safetensors" ], "shape": 1 }, { "id": 25, "type": "Note", "pos": [ 1735, -1055 ], "size": [ 790, 255 ], "flags": {}, "order": 6, "mode": 0, "properties": { "text": "" }, "widgets_values": [ "Many different options possible here.\n\n1. No controlnet.\nYou can completely discard this controlnet, if you decrease the denoising strength on the ksampler.\n\n2. Tile controlnet\nWith a high scaled soft weights, it will allow the image to change a lot while still maintaining most of its low frequency freatures (like head position, and most of the expression)\n\n3. Inpaint controlnet\nSame as tile controlnet, but more features of the original face are preserved. In that case, notice you connect the cropped images directly, without any Inpaint Preprocessor node.\n\n4. Something else\nFor example mediapipe controlnet, openpose, or anything you can imagine. You are free to do whatever you want." ], "color": "#432", "bgcolor": "#653" }, { "id": 38, "type": "Note", "pos": [ 2530, -1055 ], "size": [ 535, 255 ], "flags": {}, "order": 7, "mode": 0, "title": "IMPORTANT - regarding controlnet", "properties": { "text": "" }, "widgets_values": [ "You can use any controlnet, any combination of controlnet, ipadapters, or anything you like.\n\nBut, if you want to do **animations**, you want to use the following node to apply your controlnets: Apply Advanced ControlNet 🛂🅐🅒🅝\n\nThe regular controlnet cannot handle animations." ], "color": "#432", "bgcolor": "#653" }, { "id": 23, "type": "Note", "pos": [ 845, 2075 ], "size": [ 305, 110 ], "flags": {}, "order": 8, "mode": 0, "properties": { "text": "" }, "widgets_values": [ "You really want to feather the mask, in case detected the mask overflows the cropped image. Otherwise, if this happens you will see a sharp edge where the mask overflowed." ], "color": "#432", "bgcolor": "#653" }, { "id": 15, "type": "FeatherMask", "pos": [ 895, 1890 ], "size": [ 210, 130 ], "flags": {}, "order": 18, "mode": 0, "inputs": [ { "name": "mask", "type": "MASK", "link": 22 } ], "outputs": [ { "name": "MASK", "type": "MASK", "links": [ 23 ], "shape": 3, "slot_index": 0 } ], "properties": { "Node name for S&R": "FeatherMask" }, "widgets_values": [ 32, 32, 32, 32 ], "shape": 1 }, { "id": 3, "type": "CropFaces", "pos": [ 565, 1620 ], "size": [ 240, 145 ], "flags": {}, "order": 16, "mode": 0, "inputs": [ { "name": "faces", "type": "FACE", "link": 2 } ], "outputs": [ { "name": "crops", "type": "IMAGE", "links": [ 4, 34, 62 ], "shape": 3, "slot_index": 0 }, { "name": "masks", "type": "MASK", "links": [ 12, 22 ], "shape": 3, "slot_index": 1 }, { "name": "warps", "type": "WARP", "links": [ 13 ], "shape": 3, "slot_index": 2 } ], "properties": { "Node name for S&R": "CropFaces" }, "widgets_values": [ 512, 1, "BiSeNet" ], "shape": 1 }, { "id": 2, "type": "DetectFaces", "pos": [ 40, 1460 ], "size": [ 210, 125 ], "flags": {}, "order": 15, "mode": 0, "inputs": [ { "name": "image", "type": "IMAGE", "link": 1 }, { "name": "mask", "type": "MASK", "link": 42 } ], "outputs": [ { "name": "faces", "type": "FACE", "links": [ 2, 21 ], "shape": 3, "slot_index": 0 } ], "properties": { "Node name for S&R": "DetectFaces" }, "widgets_values": [ 0.5, 64, 512 ], "shape": 1 }, { "id": 22, "type": "Note", "pos": [ -305, 1360 ], "size": [ 310, 365 ], "flags": {}, "order": 9, "mode": 0, "properties": { "text": "" }, "widgets_values": [ "mask:\n\nit will only detect faces that are not masked.\nOf course, you can change this behavior by using a InvertMask node.\n\n\n\nthreshold:\n\nthis is the usual yolov threshold used for face detection. 0.5 is the default, but most detected faces have a score higher than 0.7\n\n\n\nmin_size, max_size:\n\nit will only detect faces whose bounding box edge sizes is between min_size and max_size." ], "color": "#432", "bgcolor": "#653" }, { "id": 11, "type": "WarpFacesBack", "pos": [ 1285, 1470 ], "size": { "0": 210, "1": 106 }, "flags": {}, "order": 28, "mode": 0, "inputs": [ { "name": "images", "type": "IMAGE", "link": 24 }, { "name": "face", "type": "FACE", "link": 21 }, { "name": "crop", "type": "IMAGE", "link": 19 }, { "name": "mask", "type": "MASK", "link": 23 }, { "name": "warp", "type": "WARP", "link": 13 } ], "outputs": [ { "name": "IMAGE", "type": "IMAGE", "links": [ 25 ], "shape": 3, "slot_index": 0 } ], "properties": { "Node name for S&R": "WarpFacesBack" }, "shape": 1 }, { "id": 1, "type": "LoadImage", "pos": [ -275, 360 ], "size": [ 1100, 850 ], "flags": {}, "order": 10, "mode": 0, "outputs": [ { "name": "IMAGE", "type": "IMAGE", "links": [ 1, 24 ], "shape": 3, "slot_index": 0 }, { "name": "MASK", "type": "MASK", "links": [ 42 ], "shape": 3, "slot_index": 1 } ], "properties": { "Node name for S&R": "LoadImage" }, "widgets_values": [ "clipspace/clipspace-mask-613110.9000000022.png [input]", "image" ], "shape": 1 }, { "id": 16, "type": "PreviewImage", "pos": [ 1615, 1235 ], "size": [ 1370, 965 ], "flags": {}, "order": 31, "mode": 0, "inputs": [ { "name": "images", "type": "IMAGE", "link": 25 } ], "properties": { "Node name for S&R": "PreviewImage" }, "shape": 1 } ], "links": [ [ 1, 1, 0, 2, 0, "IMAGE" ], [ 2, 2, 0, 3, 0, "FACE" ], [ 4, 3, 0, 5, 3, "IMAGE" ], [ 5, 6, 0, 5, 0, "CONDITIONING" ], [ 6, 8, 1, 6, 0, "CLIP" ], [ 11, 5, 2, 10, 3, "LATENT" ], [ 12, 3, 1, 5, 4, "MASK" ], [ 13, 3, 2, 11, 4, "WARP" ], [ 19, 12, 0, 11, 2, "IMAGE" ], [ 21, 2, 0, 11, 1, "FACE" ], [ 22, 3, 1, 15, 0, "MASK" ], [ 23, 15, 0, 11, 3, "MASK" ], [ 24, 1, 0, 11, 0, "IMAGE" ], [ 25, 11, 0, 16, 0, "IMAGE" ], [ 27, 7, 0, 5, 1, "CONDITIONING" ], [ 28, 8, 1, 7, 0, "CLIP" ], [ 29, 5, 0, 17, 0, "CONDITIONING" ], [ 30, 5, 1, 17, 1, "CONDITIONING" ], [ 31, 17, 0, 10, 1, "CONDITIONING" ], [ 32, 17, 1, 10, 2, "CONDITIONING" ], [ 34, 3, 0, 17, 3, "IMAGE" ], [ 35, 19, 0, 17, 2, "CONTROL_NET" ], [ 36, 20, 0, 17, 7, "CONTROL_NET_WEIGHTS" ], [ 39, 10, 0, 12, 0, "LATENT" ], [ 40, 8, 0, 21, 0, "MODEL" ], [ 41, 21, 0, 10, 0, "MODEL" ], [ 42, 1, 1, 2, 1, "MASK" ], [ 43, 5, 0, 26, 0, "CONDITIONING" ], [ 44, 5, 1, 26, 1, "CONDITIONING" ], [ 45, 27, 0, 26, 2, "CONTROL_NET" ], [ 46, 28, 0, 26, 7, "CONTROL_NET_WEIGHTS" ], [ 47, 5, 0, 30, 1, "CONDITIONING" ], [ 48, 5, 1, 30, 2, "CONDITIONING" ], [ 49, 5, 2, 30, 3, "LATENT" ], [ 50, 21, 0, 30, 0, "MODEL" ], [ 51, 30, 0, 31, 0, "LATENT" ], [ 53, 8, 2, 32, 0, "VAE" ], [ 54, 31, 0, 33, 0, "IMAGE" ], [ 55, 12, 0, 34, 0, "IMAGE" ], [ 56, 26, 0, 35, 1, "CONDITIONING" ], [ 57, 26, 1, 35, 2, "CONDITIONING" ], [ 58, 21, 0, 35, 0, "MODEL" ], [ 59, 5, 2, 35, 3, "LATENT" ], [ 60, 35, 0, 36, 0, "LATENT" ], [ 61, 36, 0, 37, 0, "IMAGE" ], [ 62, 3, 0, 26, 3, "IMAGE" ] ], "groups": [ { "title": "Option 2", "bounding": [ 1748, -187, 1352, 655 ], "color": "#3f789e", "font_size": 24, "locked": false }, { "title": "Option 3", "bounding": [ 1719, 500, 1389, 641 ], "color": "#3f789e", "font_size": 24, "locked": false }, { "title": "Option 1", "bounding": [ 1728, -771, 1370, 569 ], "color": "#3f789e", "font_size": 24, "locked": false }, { "title": "facetools", "bounding": [ 31, 1311, 1488, 507 ], "color": "#3f789e", "font_size": 24, "locked": false } ], "config": {}, "extra": {}, "version": 0.4 }