From ebb4e1686d8f83673bef2c156f30c2eb1885f142 Mon Sep 17 00:00:00 2001 From: peter942 Date: Tue, 5 Dec 2023 20:26:34 +0100 Subject: [PATCH] Adding new workflow --- demo/creative_interpolation_example.json | 1528 ++++++++++++---------- 1 file changed, 843 insertions(+), 685 deletions(-) diff --git a/demo/creative_interpolation_example.json b/demo/creative_interpolation_example.json index 2568039..831a0d9 100644 --- a/demo/creative_interpolation_example.json +++ b/demo/creative_interpolation_example.json @@ -1,188 +1,13 @@ { - "last_node_id": 367, - "last_link_id": 670, + "last_node_id": 428, + "last_link_id": 780, "nodes": [ { - "id": 354, - "type": "VHS_SplitImages", - "pos": [ - 2529.475905889869, - -1142.7707149068153 - ], - "size": { - "0": 315, - "1": 118 - }, - "flags": {}, - "order": 19, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 653 - } - ], - "outputs": [ - { - "name": "IMAGE_A", - "type": "IMAGE", - "links": null, - "shape": 3 - }, - { - "name": "A_count", - "type": "INT", - "links": null, - "shape": 3 - }, - { - "name": "IMAGE_B", - "type": "IMAGE", - "links": [ - 654 - ], - "shape": 3, - "slot_index": 2 - }, - { - "name": "B_count", - "type": "INT", - "links": null, - "shape": 3, - "slot_index": 3 - } - ], - "properties": { - "Node name for S&R": "VHS_SplitImages" - }, - "widgets_values": { - "split_index": 4 - } - }, - { - "id": 292, - "type": "STMFNet VFI", - "pos": [ - 2568.475905889869, - -932.7707149068144 - ], - "size": { - "0": 443.4000244140625, - "1": 150 - }, - "flags": {}, - "order": 20, - "mode": 0, - "inputs": [ - { - "name": "frames", - "type": "IMAGE", - "link": 654 - }, - { - "name": "optional_interpolation_states", - "type": "INTERPOLATION_STATES", - "link": null - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 656 - ], - "shape": 3, - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "STMFNet VFI" - }, - "widgets_values": [ - "stmfnet.pth", - 14, - 2, - true - ] - }, - { - "id": 332, - "type": "PreviewImage", - "pos": [ - -1460, - -1290 - ], - "size": { - "0": 380, - "1": 250 - }, - "flags": {}, - "order": 11, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 619 - } - ], - "properties": { - "Node name for S&R": "PreviewImage" - } - }, - { - "id": 281, - "type": "VHS_VideoCombine", - "pos": [ - 3351.7515134107794, - -1039.9403187565451 - ], - "size": [ - 320, - 496 - ], - "flags": {}, - "order": 21, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 656 - } - ], - "outputs": [], - "properties": { - "Node name for S&R": "VHS_VideoCombine" - }, - "widgets_values": { - "frame_rate": 14, - "loop_count": 0, - "filename_prefix": "creative_interpolation_results/AD_", - "format": "video/h264-mp4", - "pingpong": false, - "save_image": true, - "crf": 20, - "videopreview": { - "hidden": false, - "paused": false, - "params": { - "filename": "AD__00106.mp4", - "subfolder": "creative_interpolation_results", - "type": "output", - "format": "video/h264-mp4" - } - } - } - }, - { - "id": 364, + "id": 363, "type": "Note", "pos": [ - -755.8573791503906, - -1122.8907699584963 + 2651.475905889869, + -676.7707149068145 ], "size": { "0": 312.1289367675781, @@ -195,30 +20,7 @@ "text": "" }, "widgets_values": [ - "Please set batch_size at frames_per_key_frame * number_of_key_frames + 4 - the 4 is to give additional buffer to solve issues with the uniform context scheduling. A hacky solution for now." - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 361, - "type": "Note", - "pos": [ - 682.4829725972701, - -283.2324170759726 - ], - "size": { - "0": 312.1289367675781, - "1": 245.289306640625 - }, - "flags": {}, - "order": 1, - "mode": 0, - "properties": { - "text": "" - }, - "widgets_values": [ - "Ipadapter weight also has a huge impact on the outcome - more = more adherence to the original images. Sometimes this can be too much control." + "Increasing the multipler makes the video longer by creating new frames - it can result in some weird effects >2 but worth experimenting with for additional motion/fluidity." ], "color": "#432", "bgcolor": "#653" @@ -227,15 +29,15 @@ "id": 342, "type": "ADE_AnimateDiffUniformContextOptions", "pos": [ - 1465, - -1439 + 1499.4110682194105, + -1407.4911848643637 ], "size": { "0": 315, "1": 154 }, "flags": {}, - "order": 2, + "order": 1, "mode": 0, "outputs": [ { @@ -260,64 +62,72 @@ ] }, { - "id": 362, - "type": "Note", + "id": 367, + "type": "BatchPromptSchedule", "pos": [ - 1884, - -1504 + -33, + -1554 ], "size": { - "0": 312.1289367675781, - "1": 245.289306640625 + "0": 400, + "1": 364 }, "flags": {}, - "order": 3, + "order": 13, "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 669 + } + ], + "outputs": [ + { + "name": "POS", + "type": "CONDITIONING", + "links": [ + 670 + ], + "shape": 3, + "slot_index": 0 + }, + { + "name": "NEG", + "type": "CONDITIONING", + "links": null, + "shape": 3 + } + ], "properties": { - "text": "" + "Node name for S&R": "BatchPromptSchedule" }, "widgets_values": [ - "motion_scale can also be really useful - tuning it down can remove jolty motion." - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 363, - "type": "Note", - "pos": [ - 2651.475905889869, - -676.7707149068145 - ], - "size": { - "0": 312.1289367675781, - "1": 245.289306640625 - }, - "flags": {}, - "order": 4, - "mode": 0, - "properties": { - "text": "" - }, - "widgets_values": [ - "Increasing the multipler makes the video longer by creating new frames - it can result in some weird effects >2 but worth experimenting with for additional motion/fluidity." - ], - "color": "#432", - "bgcolor": "#653" + "\"0\" :\"\",\n\"12\" :\"\",\n\"24\" :\"\",\n\"36\" :\"\",\n\"48\" :\"\",\n\"60\" :\"\",\n\"72\" :\"\",\n\"84\" :\"\",\n\"96\" :\"\",\n\"108\" :\"\",\n\"120\" :\"\"\n", + 120, + false, + "PRE", + "APP", + 0, + 0, + 0, + 0, + 0 + ] }, { "id": 359, "type": "Note", "pos": [ - -1737, - -576 + -1622.7415290357228, + -791.9995827115519 ], "size": { "0": 261.6278991699219, "1": 118.72222137451172 }, "flags": {}, - "order": 5, + "order": 2, "mode": 0, "properties": { "text": "" @@ -329,72 +139,69 @@ "bgcolor": "#653" }, { - "id": 294, - "type": "IPAdapterModelLoader", + "id": 389, + "type": "PreviewImage", "pos": [ - 170, - -61 + -1399, + -565 ], "size": { - "0": 315, - "1": 58 + "0": 380, + "1": 250 }, "flags": {}, - "order": 6, - "mode": 0, - "outputs": [ - { - "name": "IPADAPTER", - "type": "IPADAPTER", - "links": [ - 564 - ], - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "IPAdapterModelLoader" - }, - "widgets_values": [ - "ip-adapter_sd15.bin" - ] - }, - { - "id": 301, - "type": "IPAdapterApplyEncoded", - "pos": [ - 288, - -337 - ], - "size": { - "0": 315, - "1": 142 - }, - "flags": {}, - "order": 15, + "order": 11, "mode": 0, "inputs": [ { - "name": "ipadapter", - "type": "IPADAPTER", - "link": 564, - "slot_index": 0 - }, - { - "name": "embeds", - "type": "EMBEDS", - "link": 563, - "slot_index": 1 - }, + "name": "images", + "type": "IMAGE", + "link": 737 + } + ], + "properties": { + "Node name for S&R": "PreviewImage" + } + }, + { + "id": 187, + "type": "ADE_AnimateDiffLoaderWithContext", + "pos": [ + 1924, + -874 + ], + "size": { + "0": 315, + "1": 190 + }, + "flags": { + "pinned": false + }, + "order": 20, + "mode": 0, + "inputs": [ { "name": "model", "type": "MODEL", - "link": 571 + "link": 697, + "slot_index": 0 }, { - "name": "attn_mask", - "type": "MASK", + "name": "context_options", + "type": "CONTEXT_OPTIONS", + "link": 627, + "slot_index": 1 + }, + { + "name": "motion_lora", + "type": "MOTION_LORA", "link": null + }, + { + "name": "motion_model_settings", + "type": "MOTION_MODEL_SETTINGS", + "link": null, + "slot_index": 3 } ], "outputs": [ @@ -402,104 +209,198 @@ "name": "MODEL", "type": "MODEL", "links": [ - 570 + 690 ], - "shape": 3 + "shape": 3, + "slot_index": 0 } ], "properties": { - "Node name for S&R": "IPAdapterApplyEncoded" + "Node name for S&R": "ADE_AnimateDiffLoaderWithContext" }, "widgets_values": [ - 0.6900000000000001 - ] + "mm_sd_v15_v2.ckpt", + "sqrt_linear (AnimateDiff)", + 1, + false + ], + "color": "#232", + "bgcolor": "#353" }, { - "id": 300, - "type": "IPAdapterEncoder", + "id": 281, + "type": "VHS_VideoCombine", "pos": [ - -168, - -384 + 3352, + -1039 + ], + "size": [ + 320, + 544 ], - "size": { - "0": 315, - "1": 258 - }, "flags": {}, - "order": 12, + "order": 24, "mode": 0, "inputs": [ { - "name": "clip_vision", - "type": "CLIP_VISION", - "link": 566, - "slot_index": 0 + "name": "images", + "type": "IMAGE", + "link": 656 + } + ], + "outputs": [], + "properties": { + "Node name for S&R": "VHS_VideoCombine" + }, + "widgets_values": { + "frame_rate": 14, + "loop_count": 0, + "filename_prefix": "creative_interpolation_results/AD_", + "format": "video/h264-mp4", + "pingpong": false, + "save_image": true, + "crf": 20, + "save_metadata": true, + "audio_file": "", + "videopreview": { + "hidden": false, + "paused": false, + "params": { + "filename": "AD__00332.mp4", + "subfolder": "creative_interpolation_results", + "type": "output", + "format": "video/h264-mp4" + } + } + } + }, + { + "id": 292, + "type": "STMFNet VFI", + "pos": [ + 2568.475905889869, + -932.7707149068144 + ], + "size": { + "0": 443.4000244140625, + "1": 150 + }, + "flags": {}, + "order": 23, + "mode": 0, + "inputs": [ + { + "name": "frames", + "type": "IMAGE", + "link": 758 }, { - "name": "image_1", - "type": "IMAGE", - "link": 657 - }, - { - "name": "image_2", - "type": "IMAGE", - "link": null - }, - { - "name": "image_3", - "type": "IMAGE", - "link": null - }, - { - "name": "image_4", - "type": "IMAGE", + "name": "optional_interpolation_states", + "type": "INTERPOLATION_STATES", "link": null } ], "outputs": [ { - "name": "EMBEDS", - "type": "EMBEDS", + "name": "IMAGE", + "type": "IMAGE", "links": [ - 563 + 656 ], - "shape": 3 + "shape": 3, + "slot_index": 0 } ], "properties": { - "Node name for S&R": "IPAdapterEncoder" + "Node name for S&R": "STMFNet VFI" }, "widgets_values": [ - false, - 0, - 1, - 1, - 1, - 1 + "stmfnet.pth", + 15, + 2, + true ] }, { - "id": 323, + "id": 354, + "type": "VHS_SplitImages", + "pos": [ + 2548, + -1140 + ], + "size": { + "0": 315, + "1": 118 + }, + "flags": {}, + "order": 22, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 756 + } + ], + "outputs": [ + { + "name": "IMAGE_A", + "type": "IMAGE", + "links": [], + "shape": 3, + "slot_index": 0 + }, + { + "name": "A_count", + "type": "INT", + "links": null, + "shape": 3 + }, + { + "name": "IMAGE_B", + "type": "IMAGE", + "links": [ + 758 + ], + "shape": 3, + "slot_index": 2 + }, + { + "name": "B_count", + "type": "INT", + "links": null, + "shape": 3, + "slot_index": 3 + } + ], + "properties": { + "Node name for S&R": "VHS_SplitImages" + }, + "widgets_values": { + "split_index": 4 + } + }, + { + "id": 401, "type": "VHS_LoadImagesPath", "pos": [ - -1775, - -829 + -1420.7415290357228, + -1050.9995827115524 ], "size": { "0": 315, "1": 170 }, "flags": {}, - "order": 7, + "order": 3, "mode": 0, "outputs": [ { "name": "IMAGE", "type": "IMAGE", "links": [ - 619, - 657, - 665 + 737, + 738 ], "shape": 3, "slot_index": 0 @@ -530,35 +431,12 @@ "color": "#332922", "bgcolor": "#593930" }, - { - "id": 360, - "type": "Note", - "pos": [ - 291.14262084960933, - -1835.8907699584963 - ], - "size": { - "0": 508.23260498046875, - "1": 385.82281494140625 - }, - "flags": {}, - "order": 8, - "mode": 0, - "properties": { - "text": "" - }, - "widgets_values": [ - "Key frames are **distributed either linearly of dynamically**. \n\nIf you set type_of_frame_distribution to linear, you need to set linear_frame_distribution_value to the gap you wish to have between each key frame - e.g. 16 would mean the frames are at 0, 16, 32, 48, etc.\n\nAlternatively, if you set it to dynamic, you can input the positions of the key frames in the text box below this.\n\nSimilarly, type_of_key_frame_influence determines how the frames influence the next ones. If you set it to linear, linear_key_frame_influence_value will determine how long every frame influences - 1.0 will make it normal, higher values will make it longer. If you set type_of_key_frame_influence to dynamic, you can input distinct values in linear_key_frame_influence_value for each frame.\n\nOther than this, please experiment with the different settings to achieve your desired effect:\n\n- frames_per_key_frame: How many frames to generate between each main key frame you provide.\n- cn_strength: How strong the control of the ControlNet should overall.\n- soft_scaled_cn_weights_multiplier: kinda similar to cn_strength but also different - please experiment!\n- interpolation: the type of interpolation from one image to the next.\n- buffer is the number of buffer frames places before your video - this is to prevent the end of the generation influencing the beginning due to how the context scheduler works." - ], - "color": "#432", - "bgcolor": "#653" - }, { "id": 352, "type": "CLIPTextEncode", "pos": [ - -329.8573791503906, - -1120.8907699584963 + -122, + -982 ], "size": { "0": 483.6921691894531, @@ -567,7 +445,7 @@ "flags": { "pinned": false }, - "order": 13, + "order": 12, "mode": 0, "inputs": [ { @@ -596,27 +474,122 @@ "bgcolor": "#533" }, { - "id": 297, + "id": 362, + "type": "Note", + "pos": [ + 1969, + -1357 + ], + "size": { + "0": 256.1595153808594, + "1": 253.7761993408203 + }, + "flags": {}, + "order": 4, + "mode": 0, + "properties": { + "text": "" + }, + "widgets_values": [ + "motion_scale can also be really useful - tuning it down can remove jolty motion." + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 364, + "type": "Note", + "pos": [ + -596, + -1006 + ], + "size": { + "0": 295.6344299316406, + "1": 204.49923706054688 + }, + "flags": {}, + "order": 5, + "mode": 0, + "properties": { + "text": "" + }, + "widgets_values": [ + "Please set batch_size at frames_per_key_frame * number_of_key_frames + 4 - the 4 is to give additional buffer to solve issues with the uniform context scheduling. A hacky solution for now." + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 360, + "type": "Note", + "pos": [ + 483, + -1698 + ], + "size": { + "0": 508.23260498046875, + "1": 385.82281494140625 + }, + "flags": {}, + "order": 6, + "mode": 0, + "properties": { + "text": "" + }, + "widgets_values": [ + "Key frames are **distributed either linearly of dynamically**. \n\nIf you set type_of_frame_distribution to linear, you need to set linear_frame_distribution_value to the gap you wish to have between each key frame - e.g. 16 would mean the frames are at 0, 16, 32, 48, etc.\n\nAlternatively, if you set it to dynamic, you can input the positions of the key frames in the text box below this.\n\nSimilarly, type_of_key_frame_influence determines how the frames influence the next ones. If you set it to linear, linear_key_frame_influence_value will determine how long every frame influences - 1.0 will make it normal, higher values will make it longer. If you set type_of_key_frame_influence to dynamic, you can input distinct values in linear_key_frame_influence_value for each frame.\n\nOther than this, please experiment with the different settings to achieve your desired effect:\n\n- frames_per_key_frame: How many frames to generate between each main key frame you provide.\n- cn_strength: How strong the control of the ControlNet should overall.\n- soft_scaled_cn_weights_multiplier: kinda similar to cn_strength but also different - please experiment!\n- interpolation: the type of interpolation from one image to the next.\n- buffer is the number of buffer frames places before your video - this is to prevent the end of the generation influencing the beginning due to how the context scheduler works." + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 397, + "type": "PreviewImage", + "pos": [ + -481, + 24 + ], + "size": { + "0": 380, + "1": 250 + }, + "flags": {}, + "order": 18, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 775 + } + ], + "properties": { + "Node name for S&R": "PreviewImage" + } + }, + { + "id": 370, "type": "CLIPVisionLoader", "pos": [ - -505, - -29 + -19, + 172 ], "size": { "0": 315, "1": 58 }, "flags": {}, - "order": 9, + "order": 7, "mode": 0, "outputs": [ { "name": "CLIP_VISION", "type": "CLIP_VISION", "links": [ - 566 + 693 ], - "shape": 3 + "shape": 3, + "slot_index": 0 } ], "properties": { @@ -627,199 +600,54 @@ ] }, { - "id": 187, - "type": "ADE_AnimateDiffLoaderWithContext", + "id": 425, + "type": "MaskToImage", "pos": [ - 1916, - -840 + 49, + -140 ], "size": { - "0": 315, - "1": 190 + "0": 210, + "1": 26 }, - "flags": { - "pinned": false - }, - "order": 17, + "flags": {}, + "order": 16, "mode": 0, "inputs": [ { - "name": "model", - "type": "MODEL", - "link": 570, - "slot_index": 0 - }, - { - "name": "context_options", - "type": "CONTEXT_OPTIONS", - "link": 627, - "slot_index": 1 - }, - { - "name": "motion_lora", - "type": "MOTION_LORA", - "link": null - }, - { - "name": "motion_model_settings", - "type": "MOTION_MODEL_SETTINGS", - "link": null, - "slot_index": 3 + "name": "mask", + "type": "MASK", + "link": 780 } ], "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 543 - ], - "shape": 3, - "slot_index": 0 - } - ], - "properties": { - "Node name for S&R": "ADE_AnimateDiffLoaderWithContext" - }, - "widgets_values": [ - "mm_sd_v15_v2.ckpt", - "sqrt_linear (AnimateDiff)", - 0.8, - false - ], - "color": "#232", - "bgcolor": "#353" - }, - { - "id": 207, - "type": "KSampler Adv. (Efficient)", - "pos": [ - 1526, - -1066 - ], - "size": { - "0": 325, - "1": 658 - }, - "flags": { - "pinned": false - }, - "order": 18, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 543 - }, - { - "name": "positive", - "type": "CONDITIONING", - "link": 666 - }, - { - "name": "negative", - "type": "CONDITIONING", - "link": 667 - }, - { - "name": "latent_image", - "type": "LATENT", - "link": 633 - }, - { - "name": "optional_vae", - "type": "VAE", - "link": 632 - }, - { - "name": "script", - "type": "SCRIPT", - "link": null, - "slot_index": 5 - } - ], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [], - "shape": 3, - "slot_index": 0 - }, - { - "name": "CONDITIONING+", - "type": "CONDITIONING", - "links": [], - "shape": 3, - "slot_index": 1 - }, - { - "name": "CONDITIONING-", - "type": "CONDITIONING", - "links": [], - "shape": 3, - "slot_index": 2 - }, - { - "name": "LATENT", - "type": "LATENT", - "links": [], - "shape": 3, - "slot_index": 3 - }, - { - "name": "VAE", - "type": "VAE", - "links": [], - "shape": 3, - "slot_index": 4 - }, { "name": "IMAGE", "type": "IMAGE", "links": [ - 653 + 777 ], "shape": 3, - "slot_index": 5 + "slot_index": 0 } ], - "title": "KSampler Adv. (Efficient), CN sampler", "properties": { - "Node name for S&R": "KSampler Adv. (Efficient)" - }, - "widgets_values": [ - "enable", - 6, - null, - 20, - 10, - "ddpm", - "karras", - 5, - 20, - "disable", - "auto", - "true" - ], - "color": "#222233", - "bgcolor": "#333355", - "shape": 1 + "Node name for S&R": "MaskToImage" + } }, { "id": 365, "type": "BatchCreativeInterpolation", "pos": [ - 284, - -1364 + 486, + -1242 ], "size": { "0": 488.5699157714844, - "1": 456 + "1": 500 }, "flags": {}, - "order": 16, + "order": 14, "mode": 0, "inputs": [ { @@ -835,7 +663,12 @@ { "name": "images", "type": "IMAGE", - "link": 665 + "link": 738 + }, + { + "name": "create_masks", + "type": "BOOL", + "link": null } ], "outputs": [ @@ -856,6 +689,25 @@ ], "shape": 3, "slot_index": 1 + }, + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 772 + ], + "shape": 3, + "slot_index": 2 + }, + { + "name": "MASK", + "type": "MASK", + "links": [ + 779, + 780 + ], + "shape": 3, + "slot_index": 3 } ], "properties": { @@ -865,24 +717,25 @@ "control_v11f1e_sd15_tile_fp16.safetensors", "linear", 16, - "0,10,26,40,46", + "0,20,32", "linear", 1.1, - "0.5,0.5,2.0,0.5", - "dynamic", - "(0.0,1.0)", - "(0.0,1.0),(0.0,1.0),(0.0,1.0),(0.0,1.0)", + "1.5,2.8,1.0", + "linear", + "(0.0,0.40)", + "(0.0,0.35),(0.0,0.35),(0.0,1.0),(0.0,1.0)", 0.85, "ease-in-out", - 4 + 4, + 0.5 ] }, { "id": 189, "type": "Efficient Loader", "pos": [ - -849.8573791503906, - -1814.8907699584963 + -655, + -1656 ], "size": { "0": 448.8115539550781, @@ -891,7 +744,7 @@ "flags": { "pinned": false }, - "order": 10, + "order": 8, "mode": 0, "inputs": [ { @@ -911,7 +764,7 @@ "name": "MODEL", "type": "MODEL", "links": [ - 571 + 699 ], "shape": 3, "slot_index": 0 @@ -981,123 +834,318 @@ "comfy", 512, 512, - 52 + 36 ], "color": "#223333", "bgcolor": "#335555", "shape": 1 }, { - "id": 367, - "type": "BatchPromptSchedule", + "id": 376, + "type": "IPAdapterApply", "pos": [ - -241, - -1684 + 510, + 67 ], "size": { - "0": 400, - "1": 340 + "0": 290.56597900390625, + "1": 259.95843505859375 }, "flags": {}, - "order": 14, + "order": 17, "mode": 0, "inputs": [ { - "name": "clip", - "type": "CLIP", - "link": 669 + "name": "ipadapter", + "type": "IPADAPTER", + "link": 698 + }, + { + "name": "clip_vision", + "type": "CLIP_VISION", + "link": 693 + }, + { + "name": "image", + "type": "IMAGE", + "link": 716 + }, + { + "name": "model", + "type": "MODEL", + "link": 699 + }, + { + "name": "attn_mask", + "type": "MASK", + "link": 779 } ], "outputs": [ { - "name": "POS", - "type": "CONDITIONING", + "name": "MODEL", + "type": "MODEL", "links": [ - 670 + 697 ], "shape": 3, "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "IPAdapterApply" + }, + "widgets_values": [ + 0.45, + 0.45, + "original", + 0, + 1, + true + ] + }, + { + "id": 426, + "type": "PreviewImage", + "pos": [ + 466, + -180 + ], + "size": [ + 333.9960299630926, + 173.49532369649108 + ], + "flags": {}, + "order": 19, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 777, + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "PreviewImage" + } + }, + { + "id": 369, + "type": "IPAdapterModelLoader", + "pos": [ + -32, + 6 + ], + "size": { + "0": 303.41448974609375, + "1": 58 + }, + "flags": {}, + "order": 9, + "mode": 0, + "outputs": [ + { + "name": "IPADAPTER", + "type": "IPADAPTER", + "links": [ + 698 + ], + "shape": 3, + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "IPAdapterModelLoader" + }, + "widgets_values": [ + "ip-adapter-plus_sd15.bin" + ] + }, + { + "id": 361, + "type": "Note", + "pos": [ + 867, + -81 + ], + "size": { + "0": 210, + "1": 315.380859375 + }, + "flags": {}, + "order": 10, + "mode": 0, + "properties": { + "text": "" + }, + "widgets_values": [ + "Ipadapter weight also has a huge impact on the outcome - more = more adherence to the original images. Sometimes this can be too much control." + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 207, + "type": "KSampler Adv. (Efficient)", + "pos": [ + 1533, + -1114 + ], + "size": { + "0": 325, + "1": 658 + }, + "flags": { + "pinned": false + }, + "order": 21, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 690 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 666 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 667 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 633 + }, + { + "name": "optional_vae", + "type": "VAE", + "link": 632 + }, + { + "name": "script", + "type": "SCRIPT", + "link": null, + "slot_index": 5 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [], + "shape": 3, + "slot_index": 0 }, { - "name": "NEG", + "name": "CONDITIONING+", "type": "CONDITIONING", - "links": null, - "shape": 3 + "links": [], + "shape": 3, + "slot_index": 1 + }, + { + "name": "CONDITIONING-", + "type": "CONDITIONING", + "links": [], + "shape": 3, + "slot_index": 2 + }, + { + "name": "LATENT", + "type": "LATENT", + "links": [], + "shape": 3, + "slot_index": 3 + }, + { + "name": "VAE", + "type": "VAE", + "links": [], + "shape": 3, + "slot_index": 4 + }, + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 756 + ], + "shape": 3, + "slot_index": 5 + } + ], + "title": "KSampler Adv. (Efficient), CN sampler", + "properties": { + "Node name for S&R": "KSampler Adv. (Efficient)" + }, + "widgets_values": [ + "enable", + 6, + null, + 20, + 10, + "ddpm", + "karras", + 5, + 20, + "disable", + "auto", + "true" + ], + "color": "#222233", + "bgcolor": "#333355", + "shape": 1 + }, + { + "id": 372, + "type": "PrepImageForClipVision", + "pos": [ + -501, + -158 + ], + "size": { + "0": 315, + "1": 106 + }, + "flags": {}, + "order": 15, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": 772 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 716, + 775 + ], + "shape": 3, + "slot_index": 0 } ], "properties": { - "Node name for S&R": "BatchPromptSchedule" + "Node name for S&R": "PrepImageForClipVision" }, "widgets_values": [ - "\"0\" :\"\",\n\"12\" :\"\",\n\"24\" :\"\",\n\"36\" :\"\",\n\"48\" :\"\",\n\"60\" :\"\",\n\"72\" :\"\",\n\"84\" :\"\",\n\"96\" :\"\",\n\"108\" :\"\",\n\"120\" :\"\"\n", - 120, - false, - "PRE", - "APP", - 0, - 0, - 0, + "LANCZOS", + "pad", 0 ] } ], "links": [ - [ - 543, - 187, - 0, - 207, - 0, - "MODEL" - ], - [ - 563, - 300, - 0, - 301, - 1, - "EMBEDS" - ], - [ - 564, - 294, - 0, - 301, - 0, - "IPADAPTER" - ], - [ - 566, - 297, - 0, - 300, - 0, - "CLIP_VISION" - ], - [ - 570, - 301, - 0, - 187, - 0, - "MODEL" - ], - [ - 571, - 189, - 0, - 301, - 2, - "MODEL" - ], - [ - 619, - 323, - 0, - 332, - 0, - "IMAGE" - ], [ 627, 342, @@ -1130,22 +1178,6 @@ 0, "CLIP" ], - [ - 653, - 207, - 5, - 354, - 0, - "IMAGE" - ], - [ - 654, - 354, - 2, - 292, - 0, - "IMAGE" - ], [ 656, 292, @@ -1154,14 +1186,6 @@ 0, "IMAGE" ], - [ - 657, - 323, - 0, - 300, - 1, - "IMAGE" - ], [ 664, 352, @@ -1170,14 +1194,6 @@ 1, "CONDITIONING" ], - [ - 665, - 323, - 0, - 365, - 2, - "IMAGE" - ], [ 666, 365, @@ -1209,16 +1225,136 @@ 365, 0, "CONDITIONING" + ], + [ + 690, + 187, + 0, + 207, + 0, + "MODEL" + ], + [ + 693, + 370, + 0, + 376, + 1, + "CLIP_VISION" + ], + [ + 697, + 376, + 0, + 187, + 0, + "MODEL" + ], + [ + 698, + 369, + 0, + 376, + 0, + "IPADAPTER" + ], + [ + 699, + 189, + 0, + 376, + 3, + "MODEL" + ], + [ + 716, + 372, + 0, + 376, + 2, + "IMAGE" + ], + [ + 737, + 401, + 0, + 389, + 0, + "IMAGE" + ], + [ + 738, + 401, + 0, + 365, + 2, + "IMAGE" + ], + [ + 756, + 207, + 5, + 354, + 0, + "IMAGE" + ], + [ + 758, + 354, + 2, + 292, + 0, + "IMAGE" + ], + [ + 772, + 365, + 2, + 372, + 0, + "IMAGE" + ], + [ + 775, + 372, + 0, + 397, + 0, + "IMAGE" + ], + [ + 777, + 425, + 0, + 426, + 0, + "IMAGE" + ], + [ + 779, + 365, + 3, + 376, + 4, + "MASK" + ], + [ + 780, + 365, + 3, + 425, + 0, + "MASK" ] ], "groups": [ { "title": "IPAdapter", "bounding": [ - -570, - -485, - 1674, - 582 + -620, + -287, + 1761, + 640 ], "color": "#3f789e", "font_size": 24 @@ -1226,10 +1362,10 @@ { "title": "First sampler, interpolation", "bounding": [ - 1418, - -1603, - 862, - 1341 + 1390, + -1602, + 929, + 1307 ], "color": "#8A8", "font_size": 24 @@ -1259,8 +1395,8 @@ { "title": "Group", "bounding": [ - -942, - -1929, + -747, + -1770, 1783, 1088 ], @@ -1270,10 +1406,32 @@ { "title": "Group", "bounding": [ - -1849, - -1462, - 914, - 1124 + -1680, + -1277, + 752, + 1100 + ], + "color": "#3f789e", + "font_size": 24 + }, + { + "title": "Group", + "bounding": [ + 1189, + -1949, + 140, + 80 + ], + "color": "#3f789e", + "font_size": 24 + }, + { + "title": "Group", + "bounding": [ + 422, + 868, + 140, + 80 ], "color": "#3f789e", "font_size": 24