From 3aff9359eedbf797917b998ee5ee3a386059372d Mon Sep 17 00:00:00 2001 From: peter942 Date: Thu, 25 Jan 2024 22:23:13 +0100 Subject: [PATCH] Smoooooother --- SteerableMotion.py | 6 +- demo/creative_interpolation_example.json | 1082 +++++++++++----------- 2 files changed, 546 insertions(+), 542 deletions(-) diff --git a/SteerableMotion.py b/SteerableMotion.py index 8ae2664..9fc5bbe 100644 --- a/SteerableMotion.py +++ b/SteerableMotion.py @@ -50,6 +50,8 @@ class BatchCreativeInterpolationNode: "ipadapter_noise": ("FLOAT", {"default": 0.3, "min": 0.0, "max": 1.0, "step": 0.01}), "ipadapter_start_at": ("FLOAT", {"default": 0.0, "min": 0.0, "max": 1.0, "step": 0.01}), "ipadapter_end_at": ("FLOAT", {"default": 0.75, "min": 0.0, "max": 1.0, "step": 0.01}), + "cn_start_at": ("FLOAT", {"default": 0.0, "min": 0.0, "max": 1.0, "step": 0.01}), + "cn_end_at": ("FLOAT", {"default": 0.75, "min": 0.0, "max": 1.0, "step": 0.01}), }, "optional": { } @@ -412,7 +414,7 @@ class BatchCreativeInterpolationNode: control_net_weights, _ = scaled_soft_control_net_weights.load_weights(soft_scaled_cn_weights_multiplier, False) timestep_keyframe = timestep_keyframe_node.load_keyframe(start_percent=0.0, control_net_weights=control_net_weights, latent_keyframe=latent_keyframe, prev_timestep_keyframe=None)[0] control_net = control_net_loader.load_controlnet(control_net_name, timestep_keyframe)[0] - positive, negative = apply_advanced_control_net.apply_controlnet(positive, negative, control_net, image.unsqueeze(0), 1.0, ipadapter_start_at, ipadapter_end_at) + positive, negative = apply_advanced_control_net.apply_controlnet(positive, negative, control_net, image.unsqueeze(0), 1.0, 0.0, 0.75) all_cn_frame_numbers.append(cn_frame_numbers) all_cn_weights.append(cn_weights) else: @@ -426,7 +428,7 @@ class BatchCreativeInterpolationNode: mask = create_mask_batch(last_key_frame_position, ipa_weights, ipa_frame_numbers) embed, = ipadapter_encoder.preprocess(clip_vision, prepped_image, True, 0.0, 1.0) model, = ipadapter_application.apply_ipadapter(ipadapter=ipadapter, model=model, weight=1.0, image=None, weight_type="original", - noise=ipadapter_noise, embeds=embed, attn_mask=mask, start_at=0.0, end_at=0.75, unfold_batch=True) + noise=ipadapter_noise, embeds=embed, attn_mask=mask, start_at=ipadapter_start_at, end_at=ipadapter_end_at, unfold_batch=True) all_ipa_frame_numbers.append(ipa_frame_numbers) all_ipa_weights.append(ipa_weights) else: diff --git a/demo/creative_interpolation_example.json b/demo/creative_interpolation_example.json index fa2616e..8af05a6 100644 --- a/demo/creative_interpolation_example.json +++ b/demo/creative_interpolation_example.json @@ -295,41 +295,6 @@ "bgcolor": "#335", "shape": 1 }, - { - "id": 454, - "type": "Note Plus (mtb)", - "pos": { - "0": 212, - "1": -595, - "2": 0, - "3": 0, - "4": 0, - "5": 0, - "6": 0, - "7": 0, - "8": 0, - "9": 0 - }, - "size": { - "0": 230, - "1": 260 - }, - "flags": {}, - "order": 5, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "Note+ (mtb)", - "properties": {}, - "widgets_values": [ - "## Observe the graph to understand the the motion ⮕\n
\n As you tweak the settings, observe the impact on the graph. You can disconnect the positive, negative and model connections to just observe the graph without creating videos.", - "markdown", - "" - ], - "color": "#223", - "bgcolor": "#335", - "shape": 1 - }, { "id": 389, "type": "PreviewImage", @@ -375,7 +340,7 @@ "1": 1040 }, "flags": {}, - "order": 6, + "order": 5, "mode": 0, "inputs": [], "outputs": [], @@ -390,41 +355,6 @@ "bgcolor": "#335", "shape": 1 }, - { - "id": 472, - "type": "Note Plus (mtb)", - "pos": { - "0": -1583, - "1": -357, - "2": 0, - "3": 0, - "4": 0, - "5": 0, - "6": 0, - "7": 0, - "8": 0, - "9": 0 - }, - "size": [ - 672.9640119267688, - 340.53735518126246 - ], - "flags": {}, - "order": 7, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "Note+ (mtb)", - "properties": {}, - "widgets_values": [ - "## To download these models from Hugging Face\n
\n\nNavigate to the Comfy directory in your terminal and run the below for each of the models that you don't have - you can also find some of these on Comfy Manager:\n\n\n- wget -O models/controlnet/v3_sd15_sparsectrl_rgb.ckpt \"https://huggingface.co/guoyww/animatediff/resolve/main/v3_sd15_sparsectrl_rgb.ckpt\"\n- wget -O models/loras/v3_sd15_adapter.ckpt \"https://huggingface.co/guoyww/animatediff/resolve/main/v3_sd15_adapter.ckpt\"\n- wget -O models/clip_vision/SD1.5/pytorch_model.bin \"https://huggingface.co/openai/clip-vit-base-patch32/resolve/main/pytorch_model.bin\"\n- wget -O models/ipadapter/ip-adapter-plus-face_sd15.bin \"https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter-plus-face_sd15.bin\"\n- wget -O custom_nodes/ComfyUI-AnimateDiff-Evolved/models/v3_sd15_mm.ckpt \"https://huggingface.co/guoyww/animatediff/resolve/main/v3_sd15_mm.ckpt\"", - "markdown", - "" - ], - "color": "#223", - "bgcolor": "#335", - "shape": 1 - }, { "id": 513, "type": "Note Plus (mtb)", @@ -445,7 +375,7 @@ "1": 404.44708251953125 }, "flags": {}, - "order": 8, + "order": 6, "mode": 0, "inputs": [], "outputs": [], @@ -480,7 +410,7 @@ "1": 270 }, "flags": {}, - "order": 9, + "order": 7, "mode": 0, "inputs": [], "outputs": [], @@ -502,12 +432,12 @@ 383, -1774 ], - "size": [ - 350.53927023649453, - 98 - ], + "size": { + "0": 350.5392761230469, + "1": 98 + }, "flags": {}, - "order": 10, + "order": 8, "mode": 0, "outputs": [ { @@ -590,10 +520,10 @@ 382, -1413 ], - "size": [ - 362.17516155787325, - 84.13288332508364 - ], + "size": { + "0": 362.1751708984375, + "1": 84.13288116455078 + }, "flags": {}, "order": 22, "mode": 0, @@ -791,12 +721,12 @@ "8": 0, "9": 0 }, - "size": [ - 459.86432363243875, - 127.09552611282606 - ], + "size": { + "0": 459.86431884765625, + "1": 127.09552764892578 + }, "flags": {}, - "order": 11, + "order": 9, "mode": 0, "inputs": [], "outputs": [], @@ -826,12 +756,12 @@ "8": 0, "9": 0 }, - "size": [ - 429.6674865443465, - 138.77713731825634 - ], + "size": { + "0": 429.66748046875, + "1": 138.77713012695312 + }, "flags": {}, - "order": 12, + "order": 10, "mode": 0, "inputs": [], "outputs": [], @@ -861,12 +791,12 @@ "8": 0, "9": 0 }, - "size": [ - 441.21501545567116, - 147.54996935485087 - ], + "size": { + "0": 441.21502685546875, + "1": 147.5499725341797 + }, "flags": {}, - "order": 13, + "order": 11, "mode": 0, "inputs": [], "outputs": [], @@ -901,7 +831,7 @@ "1": 390 }, "flags": {}, - "order": 14, + "order": 12, "mode": 0, "inputs": [], "outputs": [], @@ -928,7 +858,7 @@ "1": 95.60185241699219 }, "flags": {}, - "order": 15, + "order": 13, "mode": 0, "outputs": [ { @@ -994,239 +924,6 @@ "Node name for S&R": "GetImageSize+" } }, - { - "id": 468, - "type": "ACN_AdvancedControlNetApply", - "pos": [ - -239, - -1880.1191788018743 - ], - "size": { - "0": 314.1339111328125, - "1": 246 - }, - "flags": {}, - "order": 29, - "mode": 0, - "inputs": [ - { - "name": "positive", - "type": "CONDITIONING", - "link": 917, - "slot_index": 0 - }, - { - "name": "negative", - "type": "CONDITIONING", - "link": 918, - "slot_index": 1 - }, - { - "name": "control_net", - "type": "CONTROL_NET", - "link": 879 - }, - { - "name": "image", - "type": "IMAGE", - "link": 880 - }, - { - "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": null - } - ], - "outputs": [ - { - "name": "positive", - "type": "CONDITIONING", - "links": [ - 967 - ], - "shape": 3, - "slot_index": 0 - }, - { - "name": "negative", - "type": "CONDITIONING", - "links": [ - 968 - ], - "shape": 3, - "slot_index": 1 - } - ], - "properties": { - "Node name for S&R": "ACN_AdvancedControlNetApply" - }, - "widgets_values": [ - 0.9, - 0, - 0.33 - ] - }, - { - "id": 505, - "type": "ACN_AdvancedControlNetApply", - "pos": [ - -233, - -1539 - ], - "size": [ - 285.6000061035156, - 246 - ], - "flags": {}, - "order": 30, - "mode": 0, - "inputs": [ - { - "name": "positive", - "type": "CONDITIONING", - "link": 967, - "slot_index": 0 - }, - { - "name": "negative", - "type": "CONDITIONING", - "link": 968, - "slot_index": 1 - }, - { - "name": "control_net", - "type": "CONTROL_NET", - "link": 978 - }, - { - "name": "image", - "type": "IMAGE", - "link": 963 - }, - { - "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": null - } - ], - "outputs": [ - { - "name": "positive", - "type": "CONDITIONING", - "links": [ - 971 - ], - "shape": 3, - "slot_index": 0 - }, - { - "name": "negative", - "type": "CONDITIONING", - "links": [ - 972 - ], - "shape": 3, - "slot_index": 1 - } - ], - "properties": { - "Node name for S&R": "ACN_AdvancedControlNetApply" - }, - "widgets_values": [ - 0.7000000000000001, - 0.651, - 0.725 - ] - }, - { - "id": 281, - "type": "VHS_VideoCombine", - "pos": [ - 1588, - -1052 - ], - "size": [ - 810, - 1054 - ], - "flags": {}, - "order": 34, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 938 - }, - { - "name": "audio", - "type": "VHS_AUDIO", - "link": null - } - ], - "outputs": [ - { - "name": "Filenames", - "type": "VHS_FILENAMES", - "links": null, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "VHS_VideoCombine" - }, - "widgets_values": { - "frame_rate": 15, - "loop_count": 3, - "filename_prefix": "steerable-motion/AD_", - "format": "video/h264-mp4", - "pix_fmt": "yuv420p", - "crf": 20, - "save_metadata": true, - "pingpong": false, - "save_output": true, - "videopreview": { - "hidden": false, - "paused": false, - "params": { - "filename": "AD__00420.mp4", - "subfolder": "steerable-motion", - "type": "output", - "format": "video/h264-mp4" - } - } - } - }, { "id": 354, "type": "VHS_SplitImages", @@ -1338,203 +1035,6 @@ false ] }, - { - "id": 401, - "type": "VHS_LoadImagesPath", - "pos": [ - -1426.3693935183685, - -1835.5733992417513 - ], - "size": [ - 320, - 194 - ], - "flags": {}, - "order": 16, - "mode": 0, - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 737, - 881, - 908, - 975 - ], - "shape": 3, - "slot_index": 0 - }, - { - "name": "MASK", - "type": "MASK", - "links": null, - "shape": 3 - }, - { - "name": "INT", - "type": "INT", - "links": [], - "shape": 3, - "slot_index": 2 - } - ], - "properties": { - "Node name for S&R": "VHS_LoadImagesPath" - }, - "widgets_values": { - "directory": "/workspace/ComfyUI/input/input_coffee/", - "image_load_cap": 0, - "skip_first_images": 0, - "select_every_nth": 1, - "choose folder to upload": "image", - "videopreview": { - "hidden": false, - "paused": false, - "params": { - "frame_load_cap": 0, - "skip_first_images": 0, - "filename": "/workspace/ComfyUI/input/input_coffee/", - "type": "path", - "format": "folder", - "select_every_nth": 1 - } - } - }, - "color": "#332922", - "bgcolor": "#593930" - }, - { - "id": 473, - "type": "BatchCreativeInterpolation", - "pos": [ - -222, - -686 - ], - "size": { - "0": 400, - "1": 656 - }, - "flags": {}, - "order": 23, - "mode": 0, - "inputs": [ - { - "name": "positive", - "type": "CONDITIONING", - "link": 913 - }, - { - "name": "negative", - "type": "CONDITIONING", - "link": 914 - }, - { - "name": "images", - "type": "IMAGE", - "link": 908 - }, - { - "name": "model", - "type": "MODEL", - "link": 909 - }, - { - "name": "ipadapter", - "type": "IPADAPTER", - "link": 910 - }, - { - "name": "clip_vision", - "type": "CLIP_VISION", - "link": 911 - } - ], - "outputs": [ - { - "name": "GRAPH", - "type": "IMAGE", - "links": [ - 901 - ], - "shape": 3, - "slot_index": 0 - }, - { - "name": "POSITIVE", - "type": "CONDITIONING", - "links": [ - 917 - ], - "shape": 3, - "slot_index": 1 - }, - { - "name": "NEGATIVE", - "type": "CONDITIONING", - "links": [ - 918 - ], - "shape": 3, - "slot_index": 2 - }, - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 900 - ], - "shape": 3, - "slot_index": 3 - }, - { - "name": "KEYFRAME_POSITIONS", - "type": "SPARSE_METHOD", - "links": [ - 907 - ], - "shape": 3, - "slot_index": 4 - }, - { - "name": "BATCH_SIZE", - "type": "INT", - "links": [ - 906 - ], - "shape": 3, - "slot_index": 5 - }, - { - "name": "COLOR_MATCH_FRAMES", - "type": "STRING", - "links": null, - "shape": 3 - } - ], - "properties": { - "Node name for S&R": "BatchCreativeInterpolation" - }, - "widgets_values": [ - "control_v11f1e_sd15_tile_fp16.safetensors", - "linear", - 24, - "0,24,60", - "linear", - "0.85", - "(0.9,0.5),(0.2,0.3)", - "linear", - "(0.25,0.4,0.25)", - "(0.0,1.0),(0.0,1.0),(0.0,1.0),(0.0,1.0)", - 0.85, - 4, - 0, - 1, - 0.2, - 0.34, - 0.65 - ] - }, { "id": 187, "type": "ADE_AnimateDiffLoaderWithContext", @@ -1542,10 +1042,10 @@ 2025, -2177 ], - "size": [ - 312.0755090205557, - 252.39730613998154 - ], + "size": { + "0": 312.07550048828125, + "1": 252.39730834960938 + }, "flags": { "pinned": false }, @@ -1611,12 +1111,12 @@ 2074, -1854 ], - "size": [ - 271.8603479649696, - 365.0423100930834 - ], + "size": { + "0": 271.8603515625, + "1": 365.04229736328125 + }, "flags": {}, - "order": 17, + "order": 14, "mode": 0, "outputs": [ { @@ -1756,6 +1256,508 @@ "color": "#222233", "bgcolor": "#333355", "shape": 1 + }, + { + "id": 472, + "type": "Note Plus (mtb)", + "pos": { + "0": -1544, + "1": -353, + "2": 0, + "3": 0, + "4": 0, + "5": 0, + "6": 0, + "7": 0, + "8": 0, + "9": 0 + }, + "size": { + "0": 594.319580078125, + "1": 273.9513854980469 + }, + "flags": {}, + "order": 15, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "Note+ (mtb)", + "properties": {}, + "widgets_values": [ + "## To download these models from Comfy Manager\n
\n\nOn the bar on the right, click \"Manager\", then click \"Install Models\" and search up the below - the models that show for those queries should be the right ones:\n
\n
\n\n\n- For Animatediff, search: v3_sd15_mm\n- For SparseCtrl, search: v3_sd15_sparsectrl\n- For s3_15 adapter, search: v3_sd15_adapter\n- For Clip Vision, search: CLIP-ViT-H-14\n- For ControlNet Tile, search: tile\n- For IP-Adapter-Plus, search: plus_sd15.safetensors\n
\n
\n\nFor the VAE and styling model, *make sure to use SD 1.5 models*.", + "markdown", + "" + ], + "color": "#223", + "bgcolor": "#335", + "shape": 1 + }, + { + "id": 281, + "type": "VHS_VideoCombine", + "pos": [ + 1552, + -1054 + ], + "size": [ + 810, + 1054 + ], + "flags": {}, + "order": 34, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 938 + }, + { + "name": "audio", + "type": "VHS_AUDIO", + "link": null + } + ], + "outputs": [ + { + "name": "Filenames", + "type": "VHS_FILENAMES", + "links": null, + "shape": 3 + } + ], + "properties": { + "Node name for S&R": "VHS_VideoCombine" + }, + "widgets_values": { + "frame_rate": 15, + "loop_count": 3, + "filename_prefix": "steerable-motion/AD_", + "format": "video/h264-mp4", + "pix_fmt": "yuv420p", + "crf": 20, + "save_metadata": true, + "pingpong": false, + "save_output": true, + "videopreview": { + "hidden": false, + "paused": false, + "params": { + "filename": "AD__00437.mp4", + "subfolder": "steerable-motion", + "type": "output", + "format": "video/h264-mp4" + } + } + } + }, + { + "id": 454, + "type": "Note Plus (mtb)", + "pos": { + "0": 212, + "1": -591, + "2": 0, + "3": 0, + "4": 0, + "5": 0, + "6": 0, + "7": 0, + "8": 0, + "9": 0 + }, + "size": { + "0": 230, + "1": 260 + }, + "flags": {}, + "order": 16, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "Note+ (mtb)", + "properties": {}, + "widgets_values": [ + "## Observe the graph to understand the the motion ⮕\n
\n As you tweak the settings, observe the impact on the graph. You can disconnect the positive, negative and model connections to just observe the graph without creating videos.", + "markdown", + "" + ], + "color": "#223", + "bgcolor": "#335", + "shape": 1 + }, + { + "id": 401, + "type": "VHS_LoadImagesPath", + "pos": [ + -1426.3693935183685, + -1835.5733992417513 + ], + "size": [ + 320, + 194 + ], + "flags": {}, + "order": 17, + "mode": 0, + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 737, + 881, + 908, + 975 + ], + "shape": 3, + "slot_index": 0 + }, + { + "name": "MASK", + "type": "MASK", + "links": null, + "shape": 3 + }, + { + "name": "INT", + "type": "INT", + "links": [], + "shape": 3, + "slot_index": 2 + } + ], + "properties": { + "Node name for S&R": "VHS_LoadImagesPath" + }, + "widgets_values": { + "directory": "/workspace/ComfyUI/input/input_coffee/", + "image_load_cap": 0, + "skip_first_images": 0, + "select_every_nth": 1, + "choose folder to upload": "image", + "videopreview": { + "hidden": false, + "paused": false, + "params": { + "frame_load_cap": 0, + "skip_first_images": 0, + "filename": "/workspace/ComfyUI/input/input_coffee/", + "type": "path", + "format": "folder", + "select_every_nth": 1 + } + } + }, + "color": "#332922", + "bgcolor": "#593930" + }, + { + "id": 468, + "type": "ACN_AdvancedControlNetApply", + "pos": [ + -239, + -1880.1191788018743 + ], + "size": { + "0": 314.1339111328125, + "1": 246 + }, + "flags": {}, + "order": 29, + "mode": 0, + "inputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "link": 917, + "slot_index": 0 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 918, + "slot_index": 1 + }, + { + "name": "control_net", + "type": "CONTROL_NET", + "link": 879 + }, + { + "name": "image", + "type": "IMAGE", + "link": 880 + }, + { + "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": null + } + ], + "outputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "links": [ + 967 + ], + "shape": 3, + "slot_index": 0 + }, + { + "name": "negative", + "type": "CONDITIONING", + "links": [ + 968 + ], + "shape": 3, + "slot_index": 1 + } + ], + "properties": { + "Node name for S&R": "ACN_AdvancedControlNetApply" + }, + "widgets_values": [ + 0.8, + 0, + 0.33 + ] + }, + { + "id": 505, + "type": "ACN_AdvancedControlNetApply", + "pos": [ + -233, + -1539 + ], + "size": { + "0": 285.6000061035156, + "1": 246 + }, + "flags": {}, + "order": 30, + "mode": 0, + "inputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "link": 967, + "slot_index": 0 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 968, + "slot_index": 1 + }, + { + "name": "control_net", + "type": "CONTROL_NET", + "link": 978 + }, + { + "name": "image", + "type": "IMAGE", + "link": 963 + }, + { + "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": null + } + ], + "outputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "links": [ + 971 + ], + "shape": 3, + "slot_index": 0 + }, + { + "name": "negative", + "type": "CONDITIONING", + "links": [ + 972 + ], + "shape": 3, + "slot_index": 1 + } + ], + "properties": { + "Node name for S&R": "ACN_AdvancedControlNetApply" + }, + "widgets_values": [ + 0.7000000000000001, + 0.6, + 0.675 + ] + }, + { + "id": 473, + "type": "BatchCreativeInterpolation", + "pos": [ + -222, + -686 + ], + "size": { + "0": 400, + "1": 680 + }, + "flags": {}, + "order": 23, + "mode": 0, + "inputs": [ + { + "name": "positive", + "type": "CONDITIONING", + "link": 913 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 914 + }, + { + "name": "images", + "type": "IMAGE", + "link": 908 + }, + { + "name": "model", + "type": "MODEL", + "link": 909 + }, + { + "name": "ipadapter", + "type": "IPADAPTER", + "link": 910 + }, + { + "name": "clip_vision", + "type": "CLIP_VISION", + "link": 911 + } + ], + "outputs": [ + { + "name": "GRAPH", + "type": "IMAGE", + "links": [ + 901 + ], + "shape": 3, + "slot_index": 0 + }, + { + "name": "POSITIVE", + "type": "CONDITIONING", + "links": [ + 917 + ], + "shape": 3, + "slot_index": 1 + }, + { + "name": "NEGATIVE", + "type": "CONDITIONING", + "links": [ + 918 + ], + "shape": 3, + "slot_index": 2 + }, + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 900 + ], + "shape": 3, + "slot_index": 3 + }, + { + "name": "KEYFRAME_POSITIONS", + "type": "SPARSE_METHOD", + "links": [ + 907 + ], + "shape": 3, + "slot_index": 4 + }, + { + "name": "BATCH_SIZE", + "type": "INT", + "links": [ + 906 + ], + "shape": 3, + "slot_index": 5 + }, + { + "name": "COLOR_MATCH_FRAMES", + "type": "STRING", + "links": null, + "shape": 3 + } + ], + "properties": { + "Node name for S&R": "BatchCreativeInterpolation" + }, + "widgets_values": [ + "control_v11f1e_sd15_tile_fp16.safetensors", + "linear", + 16, + "0,24,60", + "linear", + "0.8", + "(0.9,0.5),(0.2,0.3)", + "linear", + "(0.42,0.5,0.42)", + "(0.0,1.0),(0.0,1.0),(0.0,1.0),(0.0,1.0)", + 0.85, + 4, + 0, + 1, + 0.2, + 0, + 0.6, + 0, + 0.65 + ] } ], "links": [ @@ -2092,8 +2094,8 @@ "bounding": [ 1456, -1163, - 1044, - 1843 + 1022, + 1294 ], "color": "#a1309b", "font_size": 24