diff --git a/__init__.py b/__init__.py index 0ecb5b4..bdce8c8 100644 --- a/__init__.py +++ b/__init__.py @@ -43,6 +43,7 @@ from .nodes_registry import ( ) from .nodes_registry import NODES_DISPLAY_NAME_PREFIX, camel_case_to_spaces from .prompt_enhancer_nodes import LTXVPromptEnhancer, LTXVPromptEnhancerLoader +from .pyramid_blending import LTXVLaplacianPyramidBlend from .q8_nodes import LTXVQ8LoraModelLoader, LTXVQ8Patch from .sparse_tracks import LTXVDrawTracks, LTXVSparseTrackEditor from .stg import ( @@ -55,7 +56,7 @@ from .tiled_sampler import LTXVTiledSampler from .tiled_vae_decode import LTXVTiledVAEDecode from .tricks import NODE_CLASS_MAPPINGS as TRICKS_NODE_CLASS_MAPPINGS from .tricks import NODE_DISPLAY_NAME_MAPPINGS as TRICKS_NODE_DISPLAY_NAME_MAPPINGS -from .utiltily_nodes import ImageToCPU +from .utiltily_nodes import FloatToInt, ImageToCPU from .vae_patcher import LTXVPatcherVAE from .vanish_nodes import LTXVDilateVideoMask, LTXVInpaintPreprocess @@ -92,6 +93,7 @@ NODE_CLASS_MAPPINGS = { "STGGuiderNode": STGGuiderNode, "LTXVMultiPromptProvider": MultiPromptProvider, "ImageToCPU": ImageToCPU, + "LTXFloatToInt": FloatToInt, "LTXVStatNormLatent": LTXVStatNormLatent, "LTXVPerStepStatNormPatcher": LTXVPerStepStatNormPatcher, "LTXVGemmaCLIPModelLoader": LTXVGemmaCLIPModelLoader, @@ -110,6 +112,7 @@ NODE_CLASS_MAPPINGS = { "LTXVSparseTrackEditor": LTXVSparseTrackEditor, "LTXVDilateVideoMask": LTXVDilateVideoMask, "LTXVInpaintPreprocess": LTXVInpaintPreprocess, + "LTXVLaplacianPyramidBlend": LTXVLaplacianPyramidBlend, } # Consistent display names between static and dynamic node mappings in nodes_registry.py, diff --git a/example_workflows/2.3/LTX-2.3_ICLoRA_Motion_Track_Distilled.json b/example_workflows/2.3/LTX-2.3_ICLoRA_Motion_Track_Distilled.json index 0862174..f8c1ca4 100644 --- a/example_workflows/2.3/LTX-2.3_ICLoRA_Motion_Track_Distilled.json +++ b/example_workflows/2.3/LTX-2.3_ICLoRA_Motion_Track_Distilled.json @@ -1,104 +1,9 @@ { "id": "394ed254-7306-42a2-9ae6-aa880ce4456d", "revision": 0, - "last_node_id": 5056, - "last_link_id": 13541, + "last_node_id": 5061, + "last_link_id": 13563, "nodes": [ - { - "id": 4848, - "type": "LTXVAudioVAEDecode", - "pos": [ - -173.58219357128075, - 3350.36209031175 - ], - "size": [ - 242.46932983398438, - 46 - ], - "flags": {}, - "order": 38, - "mode": 0, - "inputs": [ - { - "name": "samples", - "type": "LATENT", - "link": 13445 - }, - { - "name": "audio_vae", - "type": "VAE", - "link": 13275 - } - ], - "outputs": [ - { - "name": "Audio", - "type": "AUDIO", - "links": [ - 13108 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.64", - "Node name for S&R": "LTXVAudioVAEDecode" - }, - "widgets_values": [] - }, - { - "id": 4849, - "type": "CreateVideo", - "pos": [ - 121.15941156244612, - 3147.289573042273 - ], - "size": [ - 270, - 102 - ], - "flags": {}, - "order": 40, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 13107 - }, - { - "name": "audio", - "shape": 7, - "type": "AUDIO", - "link": 13108 - }, - { - "name": "fps", - "type": "FLOAT", - "widget": { - "name": "fps" - }, - "link": 13505 - } - ], - "outputs": [ - { - "name": "VIDEO", - "type": "VIDEO", - "links": [ - 13112 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.14.1", - "Node name for S&R": "CreateVideo" - }, - "widgets_values": [ - 30 - ] - }, { "id": 4832, "type": "RandomNoise", @@ -124,62 +29,15 @@ } ], "properties": { + "Node name for S&R": "RandomNoise", "cnr_id": "comfy-core", - "ver": "0.14.1", - "Node name for S&R": "RandomNoise" + "ver": "0.14.1" }, "widgets_values": [ 42, "fixed" ] }, - { - "id": 4851, - "type": "VAEDecodeTiled", - "pos": [ - -197.94059482608304, - 3147.602739745794 - ], - "size": [ - 270, - 150 - ], - "flags": {}, - "order": 39, - "mode": 0, - "inputs": [ - { - "name": "samples", - "type": "LATENT", - "link": 13412 - }, - { - "name": "vae", - "type": "VAE", - "link": 13348 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 13107 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.14.1", - "Node name for S&R": "VAEDecodeTiled" - }, - "widgets_values": [ - 512, - 64, - 512, - 4 - ] - }, { "id": 4831, "type": "KSamplerSelect", @@ -205,9 +63,9 @@ } ], "properties": { + "Node name for S&R": "KSamplerSelect", "cnr_id": "comfy-core", - "ver": "0.14.1", - "Node name for S&R": "KSamplerSelect" + "ver": "0.14.1" }, "widgets_values": [ "euler_ancestral_cfg_pp" @@ -266,9 +124,9 @@ } ], "properties": { + "Node name for S&R": "LTXVConditioning", "cnr_id": "comfy-core", - "ver": "0.3.28", - "Node name for S&R": "LTXVConditioning" + "ver": "0.3.28" }, "widgets_values": [ 24 @@ -286,7 +144,7 @@ 282 ], "flags": {}, - "order": 32, + "order": 29, "mode": 0, "inputs": [ { @@ -312,7 +170,7 @@ { "name": "image", "type": "IMAGE", - "link": 13541 + "link": 13561 }, { "name": "latent_downscale_factor", @@ -373,7 +231,7 @@ 46 ], "flags": {}, - "order": 34, + "order": 31, "mode": 0, "inputs": [ { @@ -397,9 +255,9 @@ } ], "properties": { + "Node name for S&R": "LTXVConcatAVLatent", "cnr_id": "comfy-core", - "ver": "0.10.0", - "Node name for S&R": "LTXVConcatAVLatent" + "ver": "0.10.0" }, "widgets_values": [] }, @@ -439,7 +297,7 @@ "widget": { "name": "frame_rate" }, - "link": 13462 + "link": 13547 } ], "outputs": [ @@ -452,9 +310,9 @@ } ], "properties": { + "Node name for S&R": "LTXVEmptyLatentAudio", "cnr_id": "comfy-core", - "ver": "0.3.64", - "Node name for S&R": "LTXVEmptyLatentAudio" + "ver": "0.3.64" }, "widgets_values": [ 97, @@ -462,54 +320,6 @@ 1 ] }, - { - "id": 3159, - "type": "LTXVImgToVideoConditionOnly", - "pos": [ - -2144.970291670966, - 3352.7872806168716 - ], - "size": [ - 313.2623046875, - 142.859507731343 - ], - "flags": {}, - "order": 31, - "mode": 0, - "inputs": [ - { - "name": "vae", - "type": "VAE", - "link": 13279 - }, - { - "name": "image", - "type": "IMAGE", - "link": 9768 - }, - { - "name": "latent", - "type": "LATENT", - "link": 11401 - } - ], - "outputs": [ - { - "name": "latent", - "type": "LATENT", - "links": [ - 13402 - ] - } - ], - "properties": { - "Node name for S&R": "LTXVImgToVideoConditionOnly" - }, - "widgets_values": [ - 0.7, - false - ] - }, { "id": 4829, "type": "SamplerCustomAdvanced", @@ -522,7 +332,7 @@ 106 ], "flags": {}, - "order": 35, + "order": 32, "mode": 0, "inputs": [ { @@ -566,9 +376,9 @@ } ], "properties": { + "Node name for S&R": "SamplerCustomAdvanced", "cnr_id": "comfy-core", - "ver": "0.14.1", - "Node name for S&R": "SamplerCustomAdvanced" + "ver": "0.14.1" }, "widgets_values": [] }, @@ -584,7 +394,7 @@ 100.83333333333334 ], "flags": {}, - "order": 37, + "order": 34, "mode": 0, "inputs": [ { @@ -618,14 +428,14 @@ "name": "latent", "type": "LATENT", "links": [ - 13412 + 13545 ] } ], "properties": { + "Node name for S&R": "LTXVCropGuides", "cnr_id": "comfy-core", - "ver": "0.3.75", - "Node name for S&R": "LTXVCropGuides" + "ver": "0.3.75" }, "widgets_values": [] }, @@ -641,7 +451,7 @@ 46 ], "flags": {}, - "order": 36, + "order": 33, "mode": 0, "inputs": [ { @@ -667,9 +477,9 @@ } ], "properties": { + "Node name for S&R": "LTXVSeparateAVLatent", "cnr_id": "comfy-core", - "ver": "0.10.0", - "Node name for S&R": "LTXVSeparateAVLatent" + "ver": "0.10.0" }, "widgets_values": [] }, @@ -699,9 +509,9 @@ } ], "properties": { + "Node name for S&R": "LTXVAudioVAELoader", "cnr_id": "comfy-core", - "ver": "0.3.64", - "Node name for S&R": "LTXVAudioVAELoader" + "ver": "0.3.64" }, "widgets_values": [ "ltx-2.3-22b-dev.safetensors" @@ -740,60 +550,20 @@ "type": "VAE", "links": [ 13279, - 13348, - 13405 + 13405, + 13544 ] } ], "properties": { + "Node name for S&R": "CheckpointLoaderSimple", "cnr_id": "comfy-core", - "ver": "0.3.56", - "Node name for S&R": "CheckpointLoaderSimple" + "ver": "0.3.56" }, "widgets_values": [ "ltx-2.3-22b-dev.safetensors" ] }, - { - "id": 4922, - "type": "LoraLoaderModelOnly", - "pos": [ - -4204.024401614721, - 3261.100838617218 - ], - "size": [ - 454.14193097539646, - 128.44311555561626 - ], - "flags": {}, - "order": 10, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 13217 - } - ], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 13400 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.14.1", - "Node name for S&R": "LoraLoaderModelOnly" - }, - "widgets_values": [ - "ltxv/ltx2/ltx-2.3-22b-distilled-lora-384.safetensors", - 0.5 - ] - }, { "id": 5021, "type": "GemmaAPITextEncode", @@ -863,9 +633,9 @@ ], "title": "LTX API KEY", "properties": { + "Node name for S&R": "PrimitiveString", "cnr_id": "comfy-core", - "ver": "0.14.1", - "Node name for S&R": "PrimitiveString" + "ver": "0.14.1" }, "widgets_values": [ "" @@ -897,9 +667,9 @@ } ], "properties": { + "Node name for S&R": "LTXAVTextEncoderLoader", "cnr_id": "comfy-core", - "ver": "0.14.1", - "Node name for S&R": "LTXAVTextEncoderLoader" + "ver": "0.14.1" }, "widgets_values": [ "comfy_gemma_3_12B_it.safetensors", @@ -940,9 +710,9 @@ ], "title": "CLIP Text Encode (Negative Prompt)", "properties": { + "Node name for S&R": "CLIPTextEncode", "cnr_id": "comfy-core", - "ver": "0.3.28", - "Node name for S&R": "CLIPTextEncode" + "ver": "0.3.28" }, "widgets_values": [ "pc game, console game, video game, cartoon, childish, ugly" @@ -950,89 +720,6 @@ "color": "#322", "bgcolor": "#533" }, - { - "id": 3336, - "type": "LTXVPreprocess", - "pos": [ - -2474.088851384863, - 3338.3377499968506 - ], - "size": [ - 270, - 74 - ], - "flags": {}, - "order": 20, - "mode": 0, - "inputs": [ - { - "name": "image", - "type": "IMAGE", - "link": 13455 - } - ], - "outputs": [ - { - "name": "output_image", - "type": "IMAGE", - "links": [ - 9768 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.60", - "Node name for S&R": "LTXVPreprocess" - }, - "widgets_values": [ - 18 - ] - }, - { - "id": 5024, - "type": "CM_FloatToInt", - "pos": [ - -2333.6648613251946, - 3719.9927171020036 - ], - "size": [ - 270, - 58 - ], - "flags": { - "collapsed": true - }, - "order": 15, - "mode": 0, - "inputs": [ - { - "name": "a", - "type": "FLOAT", - "widget": { - "name": "a" - }, - "link": 13506 - } - ], - "outputs": [ - { - "name": "INT", - "type": "INT", - "links": [ - 13462 - ] - } - ], - "properties": { - "aux_id": "evanspearman/ComfyMath", - "ver": "c01177221c31b8e5fbc062778fc8254aeb541638", - "Node name for S&R": "CM_FloatToInt" - }, - "widgets_values": [ - 0 - ] - }, { "id": 4828, "type": "CFGGuider", @@ -1045,7 +732,7 @@ 114 ], "flags": {}, - "order": 33, + "order": 30, "mode": 0, "inputs": [ { @@ -1074,9 +761,9 @@ } ], "properties": { + "Node name for S&R": "CFGGuider", "cnr_id": "comfy-core", - "ver": "0.14.1", - "Node name for S&R": "CFGGuider" + "ver": "0.14.1" }, "widgets_values": [ 1 @@ -1107,9 +794,9 @@ } ], "properties": { + "Node name for S&R": "ManualSigmas", "cnr_id": "comfy-core", - "ver": "0.14.1", - "Node name for S&R": "ManualSigmas" + "ver": "0.14.1" }, "widgets_values": [ "1.0, 0.99375, 0.9875, 0.98125, 0.975, 0.909375, 0.725, 0.421875, 0.0" @@ -1137,16 +824,16 @@ "links": [ 13504, 13505, - 13506, - 13540 + 13540, + 13548 ] } ], "title": "fps", "properties": { + "Node name for S&R": "PrimitiveFloat", "cnr_id": "comfy-core", - "ver": "0.16.0", - "Node name for S&R": "PrimitiveFloat" + "ver": "0.16.0" }, "widgets_values": [ 24 @@ -1164,7 +851,7 @@ 368 ], "flags": {}, - "order": 29, + "order": 28, "mode": 0, "inputs": [ { @@ -1184,64 +871,6 @@ "auto" ] }, - { - "id": 5034, - "type": "LTXVDrawTracks", - "pos": [ - -2980.47319734106, - 4281.82724645523 - ], - "size": [ - 303.5371259505282, - 136 - ], - "flags": {}, - "order": 25, - "mode": 0, - "inputs": [ - { - "name": "tracks", - "type": "STRING", - "widget": { - "name": "tracks" - }, - "link": 13487 - }, - { - "name": "width", - "type": "INT", - "widget": { - "name": "width" - }, - "link": 13516 - }, - { - "name": "height", - "type": "INT", - "widget": { - "name": "height" - }, - "link": 13517 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 13526 - ] - } - ], - "properties": { - "Node name for S&R": "LTXVDrawTracks" - }, - "widgets_values": [ - "", - 512, - 512 - ] - }, { "id": 3059, "type": "EmptyLTXVLatentVideo", @@ -1254,7 +883,7 @@ 194 ], "flags": {}, - "order": 30, + "order": 25, "mode": 0, "inputs": [ { @@ -1263,7 +892,7 @@ "widget": { "name": "width" }, - "link": 13531 + "link": 13554 }, { "name": "height", @@ -1271,7 +900,7 @@ "widget": { "name": "height" }, - "link": 13532 + "link": 13555 }, { "name": "length", @@ -1292,9 +921,9 @@ } ], "properties": { + "Node name for S&R": "EmptyLTXVLatentVideo", "cnr_id": "comfy-core", - "ver": "0.3.43", - "Node name for S&R": "EmptyLTXVLatentVideo" + "ver": "0.3.43" }, "widgets_values": [ 960, @@ -1303,159 +932,6 @@ 1 ] }, - { - "id": 5056, - "type": "SimpleMath+", - "pos": [ - -2927.554755449321, - 4465.877183022019 - ], - "size": [ - 210, - 98 - ], - "flags": {}, - "order": 22, - "mode": 0, - "inputs": [ - { - "name": "a", - "shape": 7, - "type": "*", - "link": 13538 - }, - { - "name": "b", - "shape": 7, - "type": "*", - "link": null - }, - { - "name": "c", - "shape": 7, - "type": "*", - "link": null - } - ], - "outputs": [ - { - "name": "INT", - "type": "INT", - "links": [ - 13535 - ] - }, - { - "name": "FLOAT", - "type": "FLOAT", - "links": null - } - ], - "properties": { - "Node name for S&R": "SimpleMath+" - }, - "widgets_values": [ - "a*32" - ] - }, - { - "id": 5050, - "type": "GetImageSize", - "pos": [ - -3214.6998721544865, - 4284.649130551137 - ], - "size": [ - 140, - 124 - ], - "flags": {}, - "order": 24, - "mode": 0, - "inputs": [ - { - "name": "image", - "type": "IMAGE", - "link": 13515 - } - ], - "outputs": [ - { - "name": "width", - "type": "INT", - "links": [ - 13516 - ] - }, - { - "name": "height", - "type": "INT", - "links": [ - 13517 - ] - }, - { - "name": "batch_size", - "type": "INT", - "links": null - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.16.0", - "Node name for S&R": "GetImageSize" - }, - "widgets_values": [] - }, - { - "id": 5054, - "type": "GetImageSize", - "pos": [ - -2919.6101421006388, - 4782.199741103113 - ], - "size": [ - 210, - 136 - ], - "flags": {}, - "order": 28, - "mode": 0, - "inputs": [ - { - "name": "image", - "type": "IMAGE", - "link": 13530 - } - ], - "outputs": [ - { - "name": "width", - "type": "INT", - "links": [ - 13531 - ] - }, - { - "name": "height", - "type": "INT", - "links": [ - 13532 - ] - }, - { - "name": "batch_size", - "type": "INT", - "links": null - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.16.0", - "Node name for S&R": "GetImageSize" - }, - "widgets_values": [] - }, { "id": 5051, "type": "CreateVideo", @@ -1468,13 +944,13 @@ 78 ], "flags": {}, - "order": 27, + "order": 26, "mode": 0, "inputs": [ { "name": "images", "type": "IMAGE", - "link": 13527 + "link": 13562 }, { "name": "audio", @@ -1501,107 +977,14 @@ } ], "properties": { + "Node name for S&R": "CreateVideo", "cnr_id": "comfy-core", - "ver": "0.16.0", - "Node name for S&R": "CreateVideo" + "ver": "0.16.0" }, "widgets_values": [ 30 ] }, - { - "id": 5053, - "type": "ResizeImageMaskNode", - "pos": [ - -2945.7206727345865, - 4618.337792328785 - ], - "size": [ - 270, - 106 - ], - "flags": {}, - "order": 26, - "mode": 0, - "inputs": [ - { - "name": "input", - "type": "IMAGE,MASK", - "link": 13526 - }, - { - "name": "resize_type.multiple", - "type": "INT", - "widget": { - "name": "resize_type.multiple" - }, - "link": 13535 - } - ], - "outputs": [ - { - "name": "resized", - "type": "IMAGE", - "links": [ - 13527, - 13530, - 13541 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.16.0", - "Node name for S&R": "ResizeImageMaskNode" - }, - "widgets_values": [ - "scale to multiple", - 64, - "lanczos" - ] - }, - { - "id": 5018, - "type": "ResizeImageMaskNode", - "pos": [ - -4035.547921197359, - 3694.8505697186943 - ], - "size": [ - 270, - 106 - ], - "flags": {}, - "order": 16, - "mode": 0, - "inputs": [ - { - "name": "input", - "type": "IMAGE,MASK", - "link": 13454 - } - ], - "outputs": [ - { - "name": "resized", - "type": "IMAGE", - "links": [ - 13455, - 13536 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.16.0", - "Node name for S&R": "ResizeImageMaskNode" - }, - "widgets_values": [ - "scale longer dimension", - 1536, - "lanczos" - ] - }, { "id": 4852, "type": "SaveVideo", @@ -1614,7 +997,7 @@ 500.11191809627644 ], "flags": {}, - "order": 41, + "order": 38, "mode": 0, "inputs": [ { @@ -1722,88 +1105,6 @@ 1 ] }, - { - "id": 2004, - "type": "LoadImage", - "pos": [ - -4338.585268263583, - 3696.7241270024465 - ], - "size": [ - 274.080078125, - 314.000244140625 - ], - "flags": {}, - "order": 8, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 11002, - 13454 - ] - }, - { - "name": "MASK", - "type": "MASK", - "links": [] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.56", - "Node name for S&R": "LoadImage" - }, - "widgets_values": [ - "motion_track_input.jpg", - "image" - ] - }, - { - "id": 5049, - "type": "ResizeImageMaskNode", - "pos": [ - -3562.4493093043257, - 4289.866997980122 - ], - "size": [ - 270, - 106 - ], - "flags": {}, - "order": 21, - "mode": 0, - "inputs": [ - { - "name": "input", - "type": "IMAGE,MASK", - "link": 13536 - } - ], - "outputs": [ - { - "name": "resized", - "type": "IMAGE", - "links": [ - 13514, - 13515 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.16.0", - "Node name for S&R": "ResizeImageMaskNode" - }, - "widgets_values": [ - "scale shorter dimension", - 544, - "lanczos" - ] - }, { "id": 2483, "type": "CLIPTextEncode", @@ -1837,9 +1138,9 @@ ], "title": "CLIP Text Encode (Positive Prompt)", "properties": { + "Node name for S&R": "CLIPTextEncode", "cnr_id": "comfy-core", - "ver": "0.3.28", - "Node name for S&R": "CLIPTextEncode" + "ver": "0.3.28" }, "widgets_values": [ "Man on a small bycicle being chased by a police car. The sirens are blaring and the crowd of bystanders is cheering loudly. As he is pedaling away on the bike, he looks back at the police car and shouts in a taunting tone: \"you can't catch me!\" and waving his fist in the air. He then pedals away on his bike." @@ -1847,6 +1148,474 @@ "color": "#232", "bgcolor": "#353" }, + { + "id": 4922, + "type": "LoraLoaderModelOnly", + "pos": [ + -4204.024401614721, + 3261.100838617218 + ], + "size": [ + 454.14193097539646, + 128.44311555561626 + ], + "flags": {}, + "order": 10, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 13217 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 13400 + ] + } + ], + "properties": { + "Node name for S&R": "LoraLoaderModelOnly", + "cnr_id": "comfy-core", + "ver": "0.14.1" + }, + "widgets_values": [ + "ltxv/ltx2/ltx-2.3-22b-distilled-lora-384-1.1.safetensors", + 0.5 + ] + }, + { + "id": 5058, + "type": "LTXVTiledVAEDecode", + "pos": [ + -179.88002657638208, + 3159.32435686092 + ], + "size": [ + 267.6441352715875, + 198 + ], + "flags": {}, + "order": 36, + "mode": 0, + "inputs": [ + { + "name": "vae", + "type": "VAE", + "link": 13544 + }, + { + "name": "latents", + "type": "LATENT", + "link": 13545 + } + ], + "outputs": [ + { + "name": "image", + "type": "IMAGE", + "links": [ + 13546 + ] + } + ], + "properties": { + "Node name for S&R": "LTXVTiledVAEDecode" + }, + "widgets_values": [ + 2, + 2, + 6, + false, + "auto", + "auto" + ] + }, + { + "id": 4849, + "type": "CreateVideo", + "pos": [ + 134.7024457083442, + 3159.4661963356475 + ], + "size": [ + 270, + 102 + ], + "flags": {}, + "order": 37, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 13546 + }, + { + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": 13108 + }, + { + "name": "fps", + "type": "FLOAT", + "widget": { + "name": "fps" + }, + "link": 13505 + } + ], + "outputs": [ + { + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 13112 + ] + } + ], + "properties": { + "Node name for S&R": "CreateVideo", + "cnr_id": "comfy-core", + "ver": "0.14.1" + }, + "widgets_values": [ + 30 + ] + }, + { + "id": 4848, + "type": "LTXVAudioVAEDecode", + "pos": [ + -167.98971033521377, + 3410.0921174515993 + ], + "size": [ + 242.46932983398438, + 46 + ], + "flags": {}, + "order": 35, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 13445 + }, + { + "name": "audio_vae", + "type": "VAE", + "link": 13275 + } + ], + "outputs": [ + { + "name": "Audio", + "type": "AUDIO", + "links": [ + 13108 + ] + } + ], + "properties": { + "Node name for S&R": "LTXVAudioVAEDecode", + "cnr_id": "comfy-core", + "ver": "0.3.64" + }, + "widgets_values": [] + }, + { + "id": 2004, + "type": "LoadImage", + "pos": [ + -4651.3774288967725, + 3711.8463010729993 + ], + "size": [ + 274.080078125, + 314.000244140625 + ], + "flags": {}, + "order": 8, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 11002, + 13563 + ] + }, + { + "name": "MASK", + "type": "MASK", + "links": [] + } + ], + "properties": { + "Node name for S&R": "LoadImage", + "cnr_id": "comfy-core", + "ver": "0.3.56" + }, + "widgets_values": [ + "motion_track_input.jpg", + "image" + ] + }, + { + "id": 3159, + "type": "LTXVImgToVideoConditionOnly", + "pos": [ + -2144.970291670966, + 3352.7872806168716 + ], + "size": [ + 313.2623046875, + 142.859507731343 + ], + "flags": {}, + "order": 27, + "mode": 0, + "inputs": [ + { + "name": "vae", + "type": "VAE", + "link": 13279 + }, + { + "name": "image", + "type": "IMAGE", + "link": 13560 + }, + { + "name": "latent", + "type": "LATENT", + "link": 11401 + } + ], + "outputs": [ + { + "name": "latent", + "type": "LATENT", + "links": [ + 13402 + ] + } + ], + "properties": { + "Node name for S&R": "LTXVImgToVideoConditionOnly" + }, + "widgets_values": [ + 1, + false + ] + }, + { + "id": 5050, + "type": "GetImageSize", + "pos": [ + -3170.882656596506, + 4276.096714479671 + ], + "size": [ + 140, + 124 + ], + "flags": {}, + "order": 23, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": 13559 + } + ], + "outputs": [ + { + "name": "width", + "type": "INT", + "links": [ + 13516, + 13554 + ] + }, + { + "name": "height", + "type": "INT", + "links": [ + 13517, + 13555 + ] + }, + { + "name": "batch_size", + "type": "INT", + "links": null + } + ], + "properties": { + "Node name for S&R": "GetImageSize", + "cnr_id": "comfy-core", + "ver": "0.16.0" + }, + "widgets_values": [] + }, + { + "id": 5053, + "type": "ResizeImageMaskNode", + "pos": [ + -3985.0281425941853, + 3901.767859066883 + ], + "size": [ + 270, + 106 + ], + "flags": {}, + "order": 21, + "mode": 0, + "inputs": [ + { + "name": "input", + "type": "IMAGE,MASK", + "link": 13557 + }, + { + "name": "resize_type.multiple", + "type": "INT", + "widget": { + "name": "resize_type.multiple" + }, + "link": 13535 + } + ], + "outputs": [ + { + "name": "resized", + "type": "IMAGE", + "links": [ + 13558, + 13559, + 13560 + ] + } + ], + "properties": { + "Node name for S&R": "ResizeImageMaskNode", + "cnr_id": "comfy-core", + "ver": "0.16.0" + }, + "widgets_values": [ + "scale to multiple", + 64, + "lanczos" + ] + }, + { + "id": 5034, + "type": "LTXVDrawTracks", + "pos": [ + -2968.1084242459665, + 4281.118077485808 + ], + "size": [ + 303.5371259505282, + 136 + ], + "flags": {}, + "order": 24, + "mode": 0, + "inputs": [ + { + "name": "tracks", + "type": "STRING", + "widget": { + "name": "tracks" + }, + "link": 13487 + }, + { + "name": "width", + "type": "INT", + "widget": { + "name": "width" + }, + "link": 13516 + }, + { + "name": "height", + "type": "INT", + "widget": { + "name": "height" + }, + "link": 13517 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 13561, + 13562 + ] + } + ], + "properties": { + "Node name for S&R": "LTXVDrawTracks" + }, + "widgets_values": [ + "", + 512, + 512 + ] + }, + { + "id": 5044, + "type": "PrimitiveInt", + "pos": [ + -3963.2014376677803, + 4126.826430511793 + ], + "size": [ + 270, + 82 + ], + "flags": {}, + "order": 9, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "INT", + "type": "INT", + "links": [ + 13529, + 13537, + 13539 + ] + } + ], + "title": "number of frames", + "properties": { + "Node name for S&R": "PrimitiveInt", + "cnr_id": "comfy-core", + "ver": "0.16.0" + }, + "widgets_values": [ + 121, + "fixed" + ] + }, { "id": 5040, "type": "LTXVSparseTrackEditor", @@ -1859,13 +1628,13 @@ 210 ], "flags": {}, - "order": 23, + "order": 22, "mode": 0, "inputs": [ { "name": "image", "type": "IMAGE", - "link": 13514 + "link": 13558 }, { "name": "points_to_sample", @@ -1889,47 +1658,148 @@ "Node name for S&R": "LTXVSparseTrackEditor" }, "widgets_values": [ - "[[{\"x\":385.0759251206301,\"y\":238.92165891412267},{\"x\":226.6706827038015,\"y\":321.895716789677},{\"x\":118.7556948262006,\"y\":334.34620347590675},{\"x\":8.857468951125458,\"y\":294.56719637193584}],[{\"x\":598.4764685213725,\"y\":240.60791202491237},{\"x\":549.1621742249671,\"y\":544}]]", - "[[{\"x\":385,\"y\":239},{\"x\":383,\"y\":240},{\"x\":381,\"y\":241},{\"x\":378,\"y\":243},{\"x\":375,\"y\":244},{\"x\":373,\"y\":246},{\"x\":369,\"y\":248},{\"x\":366,\"y\":249},{\"x\":363,\"y\":251},{\"x\":359,\"y\":253},{\"x\":355,\"y\":255},{\"x\":352,\"y\":258},{\"x\":348,\"y\":260},{\"x\":344,\"y\":262},{\"x\":339,\"y\":265},{\"x\":335,\"y\":267},{\"x\":331,\"y\":270},{\"x\":326,\"y\":272},{\"x\":322,\"y\":275},{\"x\":317,\"y\":277},{\"x\":313,\"y\":280},{\"x\":308,\"y\":282},{\"x\":303,\"y\":285},{\"x\":299,\"y\":287},{\"x\":294,\"y\":290},{\"x\":289,\"y\":292},{\"x\":285,\"y\":295},{\"x\":280,\"y\":297},{\"x\":275,\"y\":300},{\"x\":271,\"y\":302},{\"x\":266,\"y\":304},{\"x\":262,\"y\":306},{\"x\":258,\"y\":308},{\"x\":253,\"y\":311},{\"x\":249,\"y\":312},{\"x\":245,\"y\":314},{\"x\":241,\"y\":316},{\"x\":237,\"y\":318},{\"x\":234,\"y\":319},{\"x\":230,\"y\":321},{\"x\":227,\"y\":322},{\"x\":223,\"y\":323},{\"x\":220,\"y\":324},{\"x\":217,\"y\":325},{\"x\":214,\"y\":326},{\"x\":211,\"y\":327},{\"x\":208,\"y\":328},{\"x\":205,\"y\":329},{\"x\":202,\"y\":330},{\"x\":199,\"y\":330},{\"x\":196,\"y\":331},{\"x\":193,\"y\":332},{\"x\":191,\"y\":332},{\"x\":188,\"y\":333},{\"x\":185,\"y\":334},{\"x\":183,\"y\":334},{\"x\":180,\"y\":334},{\"x\":177,\"y\":335},{\"x\":175,\"y\":335},{\"x\":172,\"y\":336},{\"x\":170,\"y\":336},{\"x\":167,\"y\":336},{\"x\":165,\"y\":336},{\"x\":162,\"y\":336},{\"x\":160,\"y\":337},{\"x\":157,\"y\":337},{\"x\":155,\"y\":337},{\"x\":152,\"y\":337},{\"x\":150,\"y\":337},{\"x\":147,\"y\":337},{\"x\":145,\"y\":337},{\"x\":142,\"y\":336},{\"x\":140,\"y\":336},{\"x\":137,\"y\":336},{\"x\":135,\"y\":336},{\"x\":132,\"y\":336},{\"x\":129,\"y\":336},{\"x\":127,\"y\":335},{\"x\":124,\"y\":335},{\"x\":121,\"y\":335},{\"x\":119,\"y\":334},{\"x\":116,\"y\":334},{\"x\":113,\"y\":333},{\"x\":110,\"y\":333},{\"x\":107,\"y\":332},{\"x\":104,\"y\":332},{\"x\":101,\"y\":331},{\"x\":98,\"y\":330},{\"x\":95,\"y\":329},{\"x\":92,\"y\":328},{\"x\":89,\"y\":327},{\"x\":86,\"y\":326},{\"x\":82,\"y\":325},{\"x\":79,\"y\":324},{\"x\":76,\"y\":323},{\"x\":73,\"y\":322},{\"x\":70,\"y\":320},{\"x\":66,\"y\":319},{\"x\":63,\"y\":318},{\"x\":60,\"y\":317},{\"x\":57,\"y\":315},{\"x\":54,\"y\":314},{\"x\":51,\"y\":313},{\"x\":48,\"y\":311},{\"x\":45,\"y\":310},{\"x\":42,\"y\":309},{\"x\":39,\"y\":308},{\"x\":37,\"y\":306},{\"x\":34,\"y\":305},{\"x\":31,\"y\":304},{\"x\":29,\"y\":303},{\"x\":26,\"y\":302},{\"x\":24,\"y\":301},{\"x\":22,\"y\":300},{\"x\":19,\"y\":299},{\"x\":17,\"y\":298},{\"x\":15,\"y\":297},{\"x\":14,\"y\":296},{\"x\":12,\"y\":296},{\"x\":10,\"y\":295},{\"x\":9,\"y\":295}],[{\"x\":598,\"y\":241},{\"x\":598,\"y\":243},{\"x\":598,\"y\":246},{\"x\":597,\"y\":248},{\"x\":597,\"y\":251},{\"x\":596,\"y\":253},{\"x\":596,\"y\":256},{\"x\":596,\"y\":258},{\"x\":595,\"y\":261},{\"x\":595,\"y\":263},{\"x\":594,\"y\":266},{\"x\":594,\"y\":268},{\"x\":594,\"y\":271},{\"x\":593,\"y\":273},{\"x\":593,\"y\":276},{\"x\":592,\"y\":279},{\"x\":592,\"y\":281},{\"x\":591,\"y\":284},{\"x\":591,\"y\":286},{\"x\":591,\"y\":289},{\"x\":590,\"y\":291},{\"x\":590,\"y\":294},{\"x\":589,\"y\":296},{\"x\":589,\"y\":299},{\"x\":589,\"y\":301},{\"x\":588,\"y\":304},{\"x\":588,\"y\":306},{\"x\":587,\"y\":309},{\"x\":587,\"y\":311},{\"x\":587,\"y\":314},{\"x\":586,\"y\":316},{\"x\":586,\"y\":319},{\"x\":585,\"y\":322},{\"x\":585,\"y\":324},{\"x\":585,\"y\":327},{\"x\":584,\"y\":329},{\"x\":584,\"y\":332},{\"x\":583,\"y\":334},{\"x\":583,\"y\":337},{\"x\":582,\"y\":339},{\"x\":582,\"y\":342},{\"x\":582,\"y\":344},{\"x\":581,\"y\":347},{\"x\":581,\"y\":349},{\"x\":580,\"y\":352},{\"x\":580,\"y\":354},{\"x\":580,\"y\":357},{\"x\":579,\"y\":359},{\"x\":579,\"y\":362},{\"x\":578,\"y\":364},{\"x\":578,\"y\":367},{\"x\":578,\"y\":370},{\"x\":577,\"y\":372},{\"x\":577,\"y\":375},{\"x\":576,\"y\":377},{\"x\":576,\"y\":380},{\"x\":575,\"y\":382},{\"x\":575,\"y\":385},{\"x\":575,\"y\":387},{\"x\":574,\"y\":390},{\"x\":574,\"y\":392},{\"x\":573,\"y\":395},{\"x\":573,\"y\":397},{\"x\":573,\"y\":400},{\"x\":572,\"y\":402},{\"x\":572,\"y\":405},{\"x\":571,\"y\":407},{\"x\":571,\"y\":410},{\"x\":571,\"y\":413},{\"x\":570,\"y\":415},{\"x\":570,\"y\":418},{\"x\":569,\"y\":420},{\"x\":569,\"y\":423},{\"x\":568,\"y\":425},{\"x\":568,\"y\":428},{\"x\":568,\"y\":430},{\"x\":567,\"y\":433},{\"x\":567,\"y\":435},{\"x\":566,\"y\":438},{\"x\":566,\"y\":440},{\"x\":566,\"y\":443},{\"x\":565,\"y\":445},{\"x\":565,\"y\":448},{\"x\":564,\"y\":450},{\"x\":564,\"y\":453},{\"x\":564,\"y\":456},{\"x\":563,\"y\":458},{\"x\":563,\"y\":461},{\"x\":562,\"y\":463},{\"x\":562,\"y\":466},{\"x\":561,\"y\":468},{\"x\":561,\"y\":471},{\"x\":561,\"y\":473},{\"x\":560,\"y\":476},{\"x\":560,\"y\":478},{\"x\":559,\"y\":481},{\"x\":559,\"y\":483},{\"x\":559,\"y\":486},{\"x\":558,\"y\":488},{\"x\":558,\"y\":491},{\"x\":557,\"y\":493},{\"x\":557,\"y\":496},{\"x\":557,\"y\":498},{\"x\":556,\"y\":501},{\"x\":556,\"y\":504},{\"x\":555,\"y\":506},{\"x\":555,\"y\":509},{\"x\":555,\"y\":511},{\"x\":554,\"y\":514},{\"x\":554,\"y\":516},{\"x\":553,\"y\":519},{\"x\":553,\"y\":521},{\"x\":552,\"y\":524},{\"x\":552,\"y\":526},{\"x\":552,\"y\":529},{\"x\":551,\"y\":531},{\"x\":551,\"y\":534},{\"x\":550,\"y\":536},{\"x\":550,\"y\":539},{\"x\":550,\"y\":541},{\"x\":549,\"y\":544}]]", + "[[{\"x\":385.0759251206301,\"y\":238.92165891412267},{\"x\":226.6706827038015,\"y\":321.895716789677},{\"x\":118.7556948262006,\"y\":334.34620347590675},{\"x\":8.857468951125458,\"y\":294.56719637193584}],[{\"x\":550.4183052326947,\"y\":246.43019177413228},{\"x\":530.2019095759371,\"y\":493.9392986305124}]]", + "[[{\"x\":385,\"y\":239},{\"x\":383,\"y\":240},{\"x\":381,\"y\":241},{\"x\":378,\"y\":243},{\"x\":375,\"y\":244},{\"x\":373,\"y\":246},{\"x\":369,\"y\":248},{\"x\":366,\"y\":249},{\"x\":363,\"y\":251},{\"x\":359,\"y\":253},{\"x\":355,\"y\":255},{\"x\":352,\"y\":258},{\"x\":348,\"y\":260},{\"x\":344,\"y\":262},{\"x\":339,\"y\":265},{\"x\":335,\"y\":267},{\"x\":331,\"y\":270},{\"x\":326,\"y\":272},{\"x\":322,\"y\":275},{\"x\":317,\"y\":277},{\"x\":313,\"y\":280},{\"x\":308,\"y\":282},{\"x\":303,\"y\":285},{\"x\":299,\"y\":287},{\"x\":294,\"y\":290},{\"x\":289,\"y\":292},{\"x\":285,\"y\":295},{\"x\":280,\"y\":297},{\"x\":275,\"y\":300},{\"x\":271,\"y\":302},{\"x\":266,\"y\":304},{\"x\":262,\"y\":306},{\"x\":258,\"y\":308},{\"x\":253,\"y\":311},{\"x\":249,\"y\":312},{\"x\":245,\"y\":314},{\"x\":241,\"y\":316},{\"x\":237,\"y\":318},{\"x\":234,\"y\":319},{\"x\":230,\"y\":321},{\"x\":227,\"y\":322},{\"x\":223,\"y\":323},{\"x\":220,\"y\":324},{\"x\":217,\"y\":325},{\"x\":214,\"y\":326},{\"x\":211,\"y\":327},{\"x\":208,\"y\":328},{\"x\":205,\"y\":329},{\"x\":202,\"y\":330},{\"x\":199,\"y\":330},{\"x\":196,\"y\":331},{\"x\":193,\"y\":332},{\"x\":191,\"y\":332},{\"x\":188,\"y\":333},{\"x\":185,\"y\":334},{\"x\":183,\"y\":334},{\"x\":180,\"y\":334},{\"x\":177,\"y\":335},{\"x\":175,\"y\":335},{\"x\":172,\"y\":336},{\"x\":170,\"y\":336},{\"x\":167,\"y\":336},{\"x\":165,\"y\":336},{\"x\":162,\"y\":336},{\"x\":160,\"y\":337},{\"x\":157,\"y\":337},{\"x\":155,\"y\":337},{\"x\":152,\"y\":337},{\"x\":150,\"y\":337},{\"x\":147,\"y\":337},{\"x\":145,\"y\":337},{\"x\":142,\"y\":336},{\"x\":140,\"y\":336},{\"x\":137,\"y\":336},{\"x\":135,\"y\":336},{\"x\":132,\"y\":336},{\"x\":129,\"y\":336},{\"x\":127,\"y\":335},{\"x\":124,\"y\":335},{\"x\":121,\"y\":335},{\"x\":119,\"y\":334},{\"x\":116,\"y\":334},{\"x\":113,\"y\":333},{\"x\":110,\"y\":333},{\"x\":107,\"y\":332},{\"x\":104,\"y\":332},{\"x\":101,\"y\":331},{\"x\":98,\"y\":330},{\"x\":95,\"y\":329},{\"x\":92,\"y\":328},{\"x\":89,\"y\":327},{\"x\":86,\"y\":326},{\"x\":82,\"y\":325},{\"x\":79,\"y\":324},{\"x\":76,\"y\":323},{\"x\":73,\"y\":322},{\"x\":70,\"y\":320},{\"x\":66,\"y\":319},{\"x\":63,\"y\":318},{\"x\":60,\"y\":317},{\"x\":57,\"y\":315},{\"x\":54,\"y\":314},{\"x\":51,\"y\":313},{\"x\":48,\"y\":311},{\"x\":45,\"y\":310},{\"x\":42,\"y\":309},{\"x\":39,\"y\":308},{\"x\":37,\"y\":306},{\"x\":34,\"y\":305},{\"x\":31,\"y\":304},{\"x\":29,\"y\":303},{\"x\":26,\"y\":302},{\"x\":24,\"y\":301},{\"x\":22,\"y\":300},{\"x\":19,\"y\":299},{\"x\":17,\"y\":298},{\"x\":15,\"y\":297},{\"x\":14,\"y\":296},{\"x\":12,\"y\":296},{\"x\":10,\"y\":295},{\"x\":9,\"y\":295}],[{\"x\":550,\"y\":246},{\"x\":550,\"y\":248},{\"x\":550,\"y\":251},{\"x\":550,\"y\":253},{\"x\":550,\"y\":255},{\"x\":550,\"y\":257},{\"x\":549,\"y\":259},{\"x\":549,\"y\":261},{\"x\":549,\"y\":263},{\"x\":549,\"y\":265},{\"x\":549,\"y\":267},{\"x\":549,\"y\":269},{\"x\":548,\"y\":271},{\"x\":548,\"y\":273},{\"x\":548,\"y\":275},{\"x\":548,\"y\":277},{\"x\":548,\"y\":279},{\"x\":548,\"y\":281},{\"x\":547,\"y\":284},{\"x\":547,\"y\":286},{\"x\":547,\"y\":288},{\"x\":547,\"y\":290},{\"x\":547,\"y\":292},{\"x\":547,\"y\":294},{\"x\":546,\"y\":296},{\"x\":546,\"y\":298},{\"x\":546,\"y\":300},{\"x\":546,\"y\":302},{\"x\":546,\"y\":304},{\"x\":546,\"y\":306},{\"x\":545,\"y\":308},{\"x\":545,\"y\":310},{\"x\":545,\"y\":312},{\"x\":545,\"y\":314},{\"x\":545,\"y\":317},{\"x\":545,\"y\":319},{\"x\":544,\"y\":321},{\"x\":544,\"y\":323},{\"x\":544,\"y\":325},{\"x\":544,\"y\":327},{\"x\":544,\"y\":329},{\"x\":544,\"y\":331},{\"x\":543,\"y\":333},{\"x\":543,\"y\":335},{\"x\":543,\"y\":337},{\"x\":543,\"y\":339},{\"x\":543,\"y\":341},{\"x\":543,\"y\":343},{\"x\":542,\"y\":345},{\"x\":542,\"y\":347},{\"x\":542,\"y\":350},{\"x\":542,\"y\":352},{\"x\":542,\"y\":354},{\"x\":541,\"y\":356},{\"x\":541,\"y\":358},{\"x\":541,\"y\":360},{\"x\":541,\"y\":362},{\"x\":541,\"y\":364},{\"x\":541,\"y\":366},{\"x\":540,\"y\":368},{\"x\":540,\"y\":370},{\"x\":540,\"y\":372},{\"x\":540,\"y\":374},{\"x\":540,\"y\":376},{\"x\":540,\"y\":378},{\"x\":539,\"y\":380},{\"x\":539,\"y\":383},{\"x\":539,\"y\":385},{\"x\":539,\"y\":387},{\"x\":539,\"y\":389},{\"x\":539,\"y\":391},{\"x\":538,\"y\":393},{\"x\":538,\"y\":395},{\"x\":538,\"y\":397},{\"x\":538,\"y\":399},{\"x\":538,\"y\":401},{\"x\":538,\"y\":403},{\"x\":537,\"y\":405},{\"x\":537,\"y\":407},{\"x\":537,\"y\":409},{\"x\":537,\"y\":411},{\"x\":537,\"y\":413},{\"x\":537,\"y\":416},{\"x\":536,\"y\":418},{\"x\":536,\"y\":420},{\"x\":536,\"y\":422},{\"x\":536,\"y\":424},{\"x\":536,\"y\":426},{\"x\":536,\"y\":428},{\"x\":535,\"y\":430},{\"x\":535,\"y\":432},{\"x\":535,\"y\":434},{\"x\":535,\"y\":436},{\"x\":535,\"y\":438},{\"x\":535,\"y\":440},{\"x\":534,\"y\":442},{\"x\":534,\"y\":444},{\"x\":534,\"y\":447},{\"x\":534,\"y\":449},{\"x\":534,\"y\":451},{\"x\":534,\"y\":453},{\"x\":533,\"y\":455},{\"x\":533,\"y\":457},{\"x\":533,\"y\":459},{\"x\":533,\"y\":461},{\"x\":533,\"y\":463},{\"x\":533,\"y\":465},{\"x\":532,\"y\":467},{\"x\":532,\"y\":469},{\"x\":532,\"y\":471},{\"x\":532,\"y\":473},{\"x\":532,\"y\":475},{\"x\":532,\"y\":477},{\"x\":531,\"y\":480},{\"x\":531,\"y\":482},{\"x\":531,\"y\":484},{\"x\":531,\"y\":486},{\"x\":531,\"y\":488},{\"x\":531,\"y\":490},{\"x\":530,\"y\":492},{\"x\":530,\"y\":494}]]", 121, "" ] }, { - "id": 5044, - "type": "PrimitiveInt", + "id": 5049, + "type": "ResizeImageMaskNode", "pos": [ - -4026.5271252945963, - 4130.092054089528 + -4319.165560684735, + 3888.037895383585 ], "size": [ 270, - 82 + 106 ], "flags": {}, - "order": 9, + "order": 16, "mode": 0, - "inputs": [], + "inputs": [ + { + "name": "input", + "type": "IMAGE,MASK", + "link": 13563 + } + ], + "outputs": [ + { + "name": "resized", + "type": "IMAGE", + "links": [ + 13557 + ] + } + ], + "properties": { + "Node name for S&R": "ResizeImageMaskNode", + "cnr_id": "comfy-core", + "ver": "0.16.0" + }, + "widgets_values": [ + "scale shorter dimension", + 544, + "lanczos" + ] + }, + { + "id": 5056, + "type": "SimpleMath+", + "pos": [ + -3980.8264809223765, + 3729.980907194409 + ], + "size": [ + 210, + 98 + ], + "flags": {}, + "order": 20, + "mode": 0, + "inputs": [ + { + "name": "a", + "shape": 7, + "type": "*", + "link": 13538 + }, + { + "name": "b", + "shape": 7, + "type": "*", + "link": null + }, + { + "name": "c", + "shape": 7, + "type": "*", + "link": null + } + ], "outputs": [ { "name": "INT", "type": "INT", "links": [ - 13529, - 13537, - 13539 + 13535 + ] + }, + { + "name": "FLOAT", + "type": "FLOAT", + "links": null + } + ], + "properties": { + "Node name for S&R": "SimpleMath+" + }, + "widgets_values": [ + "a*32" + ] + }, + { + "id": 5059, + "type": "LTXFloatToInt", + "pos": [ + -2456.9802402950495, + 3735.182367880839 + ], + "size": [ + 270, + 58 + ], + "flags": { + "collapsed": true + }, + "order": 15, + "mode": 0, + "inputs": [ + { + "name": "a", + "type": "FLOAT", + "widget": { + "name": "a" + }, + "link": 13548 + } + ], + "outputs": [ + { + "name": "INT", + "type": "INT", + "links": [ + 13547 ] } ], - "title": "number of frames", "properties": { - "cnr_id": "comfy-core", - "ver": "0.16.0", - "Node name for S&R": "PrimitiveInt" + "Node name for S&R": "LTXFloatToInt" }, "widgets_values": [ - 121, - "fixed" + 0 ] } ], @@ -1950,14 +1820,6 @@ 1, "CONDITIONING" ], - [ - 9768, - 3336, - 0, - 3159, - 1, - "IMAGE" - ], [ 11002, 2004, @@ -2006,14 +1868,6 @@ 0, "NOISE" ], - [ - 13107, - 4851, - 0, - 4849, - 0, - "IMAGE" - ], [ 13108, 4848, @@ -2070,14 +1924,6 @@ 4, "LATENT" ], - [ - 13348, - 3940, - 2, - 4851, - 1, - "VAE" - ], [ 13363, 4829, @@ -2166,14 +2012,6 @@ 2, "LATENT" ], - [ - 13412, - 5013, - 2, - 4851, - 0, - "LATENT" - ], [ 13413, 5012, @@ -2206,22 +2044,6 @@ 0, "LATENT" ], - [ - 13454, - 2004, - 0, - 5018, - 0, - "IMAGE" - ], - [ - 13455, - 5018, - 0, - 3336, - 0, - "IMAGE" - ], [ 13457, 5022, @@ -2254,14 +2076,6 @@ 0, "CLIP" ], - [ - 13462, - 5024, - 0, - 3980, - 2, - "INT" - ], [ 13463, 5025, @@ -2294,30 +2108,6 @@ 2, "FLOAT" ], - [ - 13506, - 5045, - 0, - 5024, - 0, - "FLOAT" - ], - [ - 13514, - 5049, - 0, - 5040, - 0, - "IMAGE" - ], - [ - 13515, - 5049, - 0, - 5050, - 0, - "IMAGE" - ], [ 13516, 5050, @@ -2342,22 +2132,6 @@ 0, "VIDEO" ], - [ - 13526, - 5034, - 0, - 5053, - 0, - "IMAGE" - ], - [ - 13527, - 5053, - 0, - 5051, - 0, - "IMAGE" - ], [ 13529, 5044, @@ -2366,30 +2140,6 @@ 2, "INT" ], - [ - 13530, - 5053, - 0, - 5054, - 0, - "IMAGE" - ], - [ - 13531, - 5054, - 0, - 3059, - 0, - "INT" - ], - [ - 13532, - 5054, - 1, - 3059, - 1, - "INT" - ], [ 13535, 5056, @@ -2398,14 +2148,6 @@ 1, "INT" ], - [ - 13536, - 5018, - 0, - 5049, - 0, - "IMAGE" - ], [ 13537, 5044, @@ -2439,14 +2181,129 @@ "FLOAT" ], [ - 13541, + 13544, + 3940, + 2, + 5058, + 0, + "VAE" + ], + [ + 13545, + 5013, + 2, + 5058, + 1, + "LATENT" + ], + [ + 13546, + 5058, + 0, + 4849, + 0, + "IMAGE" + ], + [ + 13547, + 5059, + 0, + 3980, + 2, + "INT" + ], + [ + 13548, + 5045, + 0, + 5059, + 0, + "FLOAT" + ], + [ + 13554, + 5050, + 0, + 3059, + 0, + "INT" + ], + [ + 13555, + 5050, + 1, + 3059, + 1, + "INT" + ], + [ + 13557, + 5049, + 0, 5053, 0, + "IMAGE" + ], + [ + 13558, + 5053, + 0, + 5040, + 0, + "IMAGE" + ], + [ + 13559, + 5053, + 0, + 5050, + 0, + "IMAGE" + ], + [ + 13560, + 5053, + 0, + 3159, + 1, + "IMAGE" + ], + [ + 13561, + 5034, + 0, 5012, 4, "IMAGE" + ], + [ + 13562, + 5034, + 0, + 5051, + 0, + "IMAGE" + ], + [ + 13563, + 2004, + 0, + 5049, + 0, + "IMAGE" ] ], + "floatingLinks": [ + { + "id": 2, + "origin_id": 3940, + "origin_slot": 2, + "target_id": -1, + "target_slot": -1, + "type": "VAE", + "parentId": 50 + } + ], "groups": [ { "id": 54, @@ -2486,10 +2343,9 @@ 5012, 4528, 3980, + 3059, 3159, - 3336, - 5024, - 3059 + 5059 ] }, { @@ -2507,25 +2363,27 @@ "nodes": [ 4010, 3940, - 4922, - 5011 + 5011, + 4922 ] }, { "id": 119, "title": "Load Image", "bounding": [ - -4348.585268263583, - 3621.2505697186944, - 595.9867345189423, - 399.47380142437726 + -4661.3774288967725, + 3636.372743789247, + 964.5481930456754, + 418.7244435127868 ], "color": "#3f789e", "font_size": 24, "flags": {}, "nodes": [ - 5018, - 2004 + 2004, + 5053, + 5049, + 5056 ] }, { @@ -2564,33 +2422,29 @@ "font_size": 24, "flags": {}, "nodes": [ - 4848, + 4852, + 5058, 4849, - 4851, - 4852 + 4848 ] }, { "id": 161, "title": "Sparse track conditioning", "bounding": [ - -3572.4493093043257, - 4208.22724645523, - 1271.1856121334677, - 719.9724946478833 + -3268.7431122892694, + 4202.496714479671, + 967.4794151184115, + 602.047893730031 ], "color": "#A88", "font_size": 24, "flags": {}, "nodes": [ 5052, - 5034, - 5056, - 5050, - 5054, 5051, - 5053, - 5049, + 5050, + 5034, 5040 ] } @@ -2598,13 +2452,13 @@ "config": {}, "extra": { "ds": { - "scale": 0.6775277350075355, + "scale": 1.5863092971714992, "offset": [ - 5133.26350314015, - -2908.873355031285 + 3123.2022059227766, + -3492.7647858157666 ] }, - "frontendVersion": "1.39.14", + "frontendVersion": "1.42.8", "VHS_latentpreview": false, "VHS_latentpreviewrate": 0, "VHS_MetadataImage": true, @@ -2642,22 +2496,22 @@ { "id": 4, "pos": [ - -3696.99605232798, - 2989.3062564189877 + -3599.4972941534356, + 3001.252980329046 ], "linkIds": [ - 13455 + 13560 ] }, { "id": 5, "parentId": 4, "pos": [ - -2595.258828073339, - 2981.1444036460034 + -2341.137896218054, + 2989.4108458192154 ], "linkIds": [ - 13455 + 13560 ] }, { @@ -2702,8 +2556,8 @@ ], "linkIds": [ 13279, - 13348, - 13405 + 13405, + 13544 ] }, { @@ -2715,8 +2569,8 @@ ], "linkIds": [ 13279, - 13348, - 13405 + 13405, + 13544 ] }, { @@ -2728,7 +2582,7 @@ ], "linkIds": [ 13505, - 13506 + 13548 ] }, { @@ -2802,8 +2656,11 @@ 2687.78688781277 ], "linkIds": [ - 13348 - ] + 13544 + ], + "floating": { + "slotType": "output" + } }, { "id": 56, @@ -2835,8 +2692,8 @@ 2681.1981337977513 ], "linkIds": [ - 13348, - 13405 + 13405, + 13544 ] }, { @@ -2950,21 +2807,11 @@ 13445 ] }, - { - "id": 82, - "pos": [ - -3018.9305095811133, - 4427.76869728854 - ], - "linkIds": [ - 13348 - ] - }, { "id": 84, "pos": [ - -3591.3352929546827, - 4059.1045172937847 + -3709.682574416841, + 3598.5867001126453 ], "linkIds": [ 13538 @@ -2973,8 +2820,8 @@ { "id": 86, "pos": [ - -3267.8746582904632, - 4149.207787964283 + -3341.3930557584317, + 4150.067957924692 ], "linkIds": [ 13529, @@ -2986,8 +2833,8 @@ "id": 87, "parentId": 84, "pos": [ - -3024.2860496108874, - 4072.364006525338 + -3897.9877885044057, + 3612.494197466329 ], "linkIds": [ 13538 @@ -3012,8 +2859,8 @@ ], "linkIds": [ 13505, - 13506, - 13540 + 13540, + 13548 ] }, { @@ -3023,7 +2870,7 @@ 4039.4171119960906 ], "linkIds": [ - 13541 + 13561 ] }, { @@ -3034,7 +2881,7 @@ 4031.9365324797327 ], "linkIds": [ - 13541 + 13561 ] } ], @@ -3055,10 +2902,6 @@ "id": 13302, "parentId": 34 }, - { - "id": 13348, - "parentId": 50 - }, { "id": 13401, "parentId": 3 @@ -3099,18 +2942,10 @@ "id": 13445, "parentId": 80 }, - { - "id": 13455, - "parentId": 5 - }, { "id": 13505, "parentId": 43 }, - { - "id": 13506, - "parentId": 23 - }, { "id": 13529, "parentId": 70 @@ -3132,7 +2967,19 @@ "parentId": 89 }, { - "id": 13541, + "id": 13544, + "parentId": 50 + }, + { + "id": 13548, + "parentId": 23 + }, + { + "id": 13560, + "parentId": 5 + }, + { + "id": 13561, "parentId": 91 } ] diff --git a/example_workflows/2.3/LTX-2.3_ICLoRA_Union_Control_Distilled.json b/example_workflows/2.3/LTX-2.3_ICLoRA_Union_Control_Distilled.json index e4c75d3..b4b7112 100644 --- a/example_workflows/2.3/LTX-2.3_ICLoRA_Union_Control_Distilled.json +++ b/example_workflows/2.3/LTX-2.3_ICLoRA_Union_Control_Distilled.json @@ -1,216 +1,9 @@ { "id": "394ed254-7306-42a2-9ae6-aa880ce4456d", "revision": 0, - "last_node_id": 5059, - "last_link_id": 13531, + "last_node_id": 5066, + "last_link_id": 13547, "nodes": [ - { - "id": 4848, - "type": "LTXVAudioVAEDecode", - "pos": [ - -173.58219357128075, - 3350.36209031175 - ], - "size": [ - 242.46932983398438, - 46 - ], - "flags": {}, - "order": 38, - "mode": 0, - "inputs": [ - { - "name": "samples", - "type": "LATENT", - "link": 13445 - }, - { - "name": "audio_vae", - "type": "VAE", - "link": 13275 - } - ], - "outputs": [ - { - "name": "Audio", - "type": "AUDIO", - "links": [ - 13108 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.64", - "Node name for S&R": "LTXVAudioVAEDecode" - }, - "widgets_values": [] - }, - { - "id": 4849, - "type": "CreateVideo", - "pos": [ - 121.15941156244612, - 3147.289573042273 - ], - "size": [ - 270, - 102 - ], - "flags": {}, - "order": 40, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 13107 - }, - { - "name": "audio", - "shape": 7, - "type": "AUDIO", - "link": 13108 - }, - { - "name": "fps", - "type": "FLOAT", - "widget": { - "name": "fps" - }, - "link": 13429 - } - ], - "outputs": [ - { - "name": "VIDEO", - "type": "VIDEO", - "links": [ - 13112 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.14.1", - "Node name for S&R": "CreateVideo" - }, - "widgets_values": [ - 30 - ] - }, - { - "id": 4851, - "type": "VAEDecodeTiled", - "pos": [ - -197.94059482608304, - 3147.602739745794 - ], - "size": [ - 270, - 150 - ], - "flags": {}, - "order": 39, - "mode": 0, - "inputs": [ - { - "name": "samples", - "type": "LATENT", - "link": 13412 - }, - { - "name": "vae", - "type": "VAE", - "link": 13348 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 13107 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.14.1", - "Node name for S&R": "VAEDecodeTiled" - }, - "widgets_values": [ - 512, - 64, - 512, - 4 - ] - }, - { - "id": 4831, - "type": "KSamplerSelect", - "pos": [ - -1123.2802485192926, - 3459.9479913843866 - ], - "size": [ - 270, - 74 - ], - "flags": {}, - "order": 0, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "SAMPLER", - "type": "SAMPLER", - "links": [ - 13090 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.14.1", - "Node name for S&R": "KSamplerSelect" - }, - "widgets_values": [ - "euler_ancestral_cfg_pp" - ] - }, - { - "id": 4852, - "type": "SaveVideo", - "pos": [ - 130.87073016888837, - 3308.891084732692 - ], - "size": [ - 523.0556530433919, - 506.3562313794205 - ], - "flags": {}, - "order": 41, - "mode": 0, - "inputs": [ - { - "name": "video", - "type": "VIDEO", - "link": 13112 - } - ], - "outputs": [], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.14.1" - }, - "widgets_values": [ - "output", - "auto", - "auto" - ] - }, { "id": 1241, "type": "LTXVConditioning", @@ -264,9 +57,9 @@ } ], "properties": { + "Node name for S&R": "LTXVConditioning", "cnr_id": "comfy-core", - "ver": "0.3.28", - "Node name for S&R": "LTXVConditioning" + "ver": "0.3.28" }, "widgets_values": [ 24 @@ -284,7 +77,7 @@ 282 ], "flags": {}, - "order": 32, + "order": 33, "mode": 0, "inputs": [ { @@ -371,7 +164,7 @@ 46 ], "flags": {}, - "order": 34, + "order": 35, "mode": 0, "inputs": [ { @@ -395,9 +188,9 @@ } ], "properties": { + "Node name for S&R": "LTXVConcatAVLatent", "cnr_id": "comfy-core", - "ver": "0.10.0", - "Node name for S&R": "LTXVConcatAVLatent" + "ver": "0.10.0" }, "widgets_values": [] }, @@ -415,7 +208,7 @@ "flags": { "collapsed": false }, - "order": 30, + "order": 31, "mode": 0, "inputs": [ { @@ -437,7 +230,7 @@ "widget": { "name": "frame_rate" }, - "link": 13462 + "link": 13545 } ], "outputs": [ @@ -450,9 +243,9 @@ } ], "properties": { + "Node name for S&R": "LTXVEmptyLatentAudio", "cnr_id": "comfy-core", - "ver": "0.3.64", - "Node name for S&R": "LTXVEmptyLatentAudio" + "ver": "0.3.64" }, "widgets_values": [ 97, @@ -460,63 +253,6 @@ 1 ] }, - { - "id": 3159, - "type": "LTXVImgToVideoConditionOnly", - "pos": [ - -2144.970291670966, - 3352.7872806168716 - ], - "size": [ - 313.2623046875, - 142.859507731343 - ], - "flags": {}, - "order": 31, - "mode": 0, - "inputs": [ - { - "name": "vae", - "type": "VAE", - "link": 13279 - }, - { - "name": "image", - "type": "IMAGE", - "link": 9768 - }, - { - "name": "latent", - "type": "LATENT", - "link": 11401 - }, - { - "name": "bypass", - "shape": 7, - "type": "BOOLEAN", - "widget": { - "name": "bypass" - }, - "link": 13456 - } - ], - "outputs": [ - { - "name": "latent", - "type": "LATENT", - "links": [ - 13402 - ] - } - ], - "properties": { - "Node name for S&R": "LTXVImgToVideoConditionOnly" - }, - "widgets_values": [ - 0.7, - false - ] - }, { "id": 3059, "type": "EmptyLTXVLatentVideo", @@ -529,7 +265,7 @@ 194 ], "flags": {}, - "order": 29, + "order": 30, "mode": 0, "inputs": [ { @@ -567,9 +303,9 @@ } ], "properties": { + "Node name for S&R": "EmptyLTXVLatentVideo", "cnr_id": "comfy-core", - "ver": "0.3.43", - "Node name for S&R": "EmptyLTXVLatentVideo" + "ver": "0.3.43" }, "widgets_values": [ 960, @@ -590,7 +326,7 @@ 106 ], "flags": {}, - "order": 35, + "order": 36, "mode": 0, "inputs": [ { @@ -634,9 +370,9 @@ } ], "properties": { + "Node name for S&R": "SamplerCustomAdvanced", "cnr_id": "comfy-core", - "ver": "0.14.1", - "Node name for S&R": "SamplerCustomAdvanced" + "ver": "0.14.1" }, "widgets_values": [] }, @@ -652,7 +388,7 @@ 100.83333333333334 ], "flags": {}, - "order": 37, + "order": 38, "mode": 0, "inputs": [ { @@ -686,14 +422,14 @@ "name": "latent", "type": "LATENT", "links": [ - 13412 + 13542 ] } ], "properties": { + "Node name for S&R": "LTXVCropGuides", "cnr_id": "comfy-core", - "ver": "0.3.75", - "Node name for S&R": "LTXVCropGuides" + "ver": "0.3.75" }, "widgets_values": [] }, @@ -709,7 +445,7 @@ 46 ], "flags": {}, - "order": 36, + "order": 37, "mode": 0, "inputs": [ { @@ -735,9 +471,9 @@ } ], "properties": { + "Node name for S&R": "LTXVSeparateAVLatent", "cnr_id": "comfy-core", - "ver": "0.10.0", - "Node name for S&R": "LTXVSeparateAVLatent" + "ver": "0.10.0" }, "widgets_values": [] }, @@ -745,8 +481,8 @@ "id": 4986, "type": "DWPreprocessor", "pos": [ - -3252.975744576779, - 4824.857939017462 + -3250.1714331148514, + 4869.082253106716 ], "size": [ 294.72265625, @@ -755,7 +491,7 @@ "flags": { "collapsed": false }, - "order": 26, + "order": 25, "mode": 0, "inputs": [ { @@ -801,7 +537,7 @@ 79.30435270514249 ], "flags": {}, - "order": 1, + "order": 0, "mode": 0, "inputs": [], "outputs": [ @@ -815,9 +551,9 @@ } ], "properties": { + "Node name for S&R": "LTXVAudioVAELoader", "cnr_id": "comfy-core", - "ver": "0.3.64", - "Node name for S&R": "LTXVAudioVAELoader" + "ver": "0.3.64" }, "widgets_values": [ "ltx-2.3-22b-dev.safetensors" @@ -835,7 +571,7 @@ 108.51948797992713 ], "flags": {}, - "order": 2, + "order": 1, "mode": 0, "inputs": [], "outputs": [ @@ -856,60 +592,20 @@ "type": "VAE", "links": [ 13279, - 13348, - 13405 + 13405, + 13543 ] } ], "properties": { + "Node name for S&R": "CheckpointLoaderSimple", "cnr_id": "comfy-core", - "ver": "0.3.56", - "Node name for S&R": "CheckpointLoaderSimple" + "ver": "0.3.56" }, "widgets_values": [ "ltx-2.3-22b-dev.safetensors" ] }, - { - "id": 4922, - "type": "LoraLoaderModelOnly", - "pos": [ - -4204.024401614721, - 3261.100838617218 - ], - "size": [ - 454.14193097539646, - 128.44311555561626 - ], - "flags": {}, - "order": 11, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 13217 - } - ], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 13400 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.14.1", - "Node name for S&R": "LoraLoaderModelOnly" - }, - "widgets_values": [ - "ltxv/ltx2/ltx-2.3-22b-distilled-lora-384.safetensors", - 0.5 - ] - }, { "id": 5021, "type": "GemmaAPITextEncode", @@ -922,7 +618,7 @@ 160 ], "flags": {}, - "order": 13, + "order": 14, "mode": 4, "inputs": [ { @@ -964,7 +660,7 @@ 58 ], "flags": {}, - "order": 3, + "order": 2, "mode": 4, "inputs": [], "outputs": [ @@ -979,9 +675,9 @@ ], "title": "LTX API KEY", "properties": { + "Node name for S&R": "PrimitiveString", "cnr_id": "comfy-core", - "ver": "0.14.1", - "Node name for S&R": "PrimitiveString" + "ver": "0.14.1" }, "widgets_values": [ "" @@ -999,7 +695,7 @@ 122 ], "flags": {}, - "order": 4, + "order": 3, "mode": 0, "inputs": [], "outputs": [ @@ -1013,9 +709,9 @@ } ], "properties": { + "Node name for S&R": "LTXAVTextEncoderLoader", "cnr_id": "comfy-core", - "ver": "0.14.1", - "Node name for S&R": "LTXAVTextEncoderLoader" + "ver": "0.14.1" }, "widgets_values": [ "comfy_gemma_3_12B_it.safetensors", @@ -1035,7 +731,7 @@ 120.13641397900165 ], "flags": {}, - "order": 15, + "order": 16, "mode": 0, "inputs": [ { @@ -1056,9 +752,9 @@ ], "title": "CLIP Text Encode (Negative Prompt)", "properties": { + "Node name for S&R": "CLIPTextEncode", "cnr_id": "comfy-core", - "ver": "0.3.28", - "Node name for S&R": "CLIPTextEncode" + "ver": "0.3.28" }, "widgets_values": [ "pc game, console game, video game, cartoon, childish, ugly" @@ -1066,89 +762,6 @@ "color": "#322", "bgcolor": "#533" }, - { - "id": 3336, - "type": "LTXVPreprocess", - "pos": [ - -2474.088851384863, - 3338.3377499968506 - ], - "size": [ - 270, - 74 - ], - "flags": {}, - "order": 19, - "mode": 0, - "inputs": [ - { - "name": "image", - "type": "IMAGE", - "link": 13493 - } - ], - "outputs": [ - { - "name": "output_image", - "type": "IMAGE", - "links": [ - 9768 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.60", - "Node name for S&R": "LTXVPreprocess" - }, - "widgets_values": [ - 18 - ] - }, - { - "id": 5024, - "type": "CM_FloatToInt", - "pos": [ - -2333.6648613251946, - 3719.9927171020036 - ], - "size": [ - 270, - 58 - ], - "flags": { - "collapsed": true - }, - "order": 22, - "mode": 0, - "inputs": [ - { - "name": "a", - "type": "FLOAT", - "widget": { - "name": "a" - }, - "link": 13461 - } - ], - "outputs": [ - { - "name": "INT", - "type": "INT", - "links": [ - 13462 - ] - } - ], - "properties": { - "aux_id": "evanspearman/ComfyMath", - "ver": "c01177221c31b8e5fbc062778fc8254aeb541638", - "Node name for S&R": "CM_FloatToInt" - }, - "widgets_values": [ - 0 - ] - }, { "id": 4828, "type": "CFGGuider", @@ -1161,7 +774,7 @@ 114 ], "flags": {}, - "order": 33, + "order": 34, "mode": 0, "inputs": [ { @@ -1190,9 +803,9 @@ } ], "properties": { + "Node name for S&R": "CFGGuider", "cnr_id": "comfy-core", - "ver": "0.14.1", - "Node name for S&R": "CFGGuider" + "ver": "0.14.1" }, "widgets_values": [ 1 @@ -1210,7 +823,7 @@ 90 ], "flags": {}, - "order": 17, + "order": 18, "mode": 0, "inputs": [ { @@ -1238,60 +851,17 @@ "links": [ 13429, 13443, - 13461 + 13546 ] } ], "properties": { + "Node name for S&R": "GetVideoComponents", "cnr_id": "comfy-core", - "ver": "0.3.75", - "Node name for S&R": "GetVideoComponents" + "ver": "0.3.75" }, "widgets_values": [] }, - { - "id": 5026, - "type": "ResizeImageMaskNode", - "pos": [ - -3611.429041941159, - 4356.367775260842 - ], - "size": [ - 270, - 106 - ], - "flags": {}, - "order": 20, - "mode": 0, - "inputs": [ - { - "name": "input", - "type": "IMAGE,MASK", - "link": 13464 - } - ], - "outputs": [ - { - "name": "resized", - "type": "IMAGE", - "links": [ - 13472, - 13473, - 13474 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.16.0", - "Node name for S&R": "ResizeImageMaskNode" - }, - "widgets_values": [ - "scale shorter dimension", - 544, - "lanczos" - ] - }, { "id": 5028, "type": "ResizeImageMaskNode", @@ -1310,7 +880,7 @@ { "name": "input", "type": "IMAGE,MASK", - "link": 13531 + "link": 13541 }, { "name": "resize_type.multiple", @@ -1332,9 +902,9 @@ } ], "properties": { + "Node name for S&R": "ResizeImageMaskNode", "cnr_id": "comfy-core", - "ver": "0.16.0", - "Node name for S&R": "ResizeImageMaskNode" + "ver": "0.16.0" }, "widgets_values": [ "scale to multiple", @@ -1354,7 +924,7 @@ 136 ], "flags": {}, - "order": 28, + "order": 29, "mode": 0, "inputs": [ { @@ -1388,9 +958,9 @@ } ], "properties": { + "Node name for S&R": "GetImageSize", "cnr_id": "comfy-core", - "ver": "0.16.0", - "Node name for S&R": "GetImageSize" + "ver": "0.16.0" }, "widgets_values": [] }, @@ -1406,7 +976,7 @@ 67.3573576655076 ], "flags": {}, - "order": 5, + "order": 4, "mode": 0, "inputs": [], "outputs": [ @@ -1419,9 +989,9 @@ } ], "properties": { + "Node name for S&R": "ManualSigmas", "cnr_id": "comfy-core", - "ver": "0.14.1", - "Node name for S&R": "ManualSigmas" + "ver": "0.14.1" }, "widgets_values": [ "1.0, 0.99375, 0.9875, 0.98125, 0.975, 0.909375, 0.725, 0.421875, 0.0" @@ -1482,47 +1052,6 @@ "a*32" ] }, - { - "id": 5035, - "type": "ResizeImageMaskNode", - "pos": [ - -4032.2401448287073, - 3699.4287382559205 - ], - "size": [ - 270, - 106 - ], - "flags": {}, - "order": 16, - "mode": 0, - "inputs": [ - { - "name": "input", - "type": "IMAGE,MASK", - "link": 13492 - } - ], - "outputs": [ - { - "name": "resized", - "type": "IMAGE", - "links": [ - 13493 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.16.0", - "Node name for S&R": "ResizeImageMaskNode" - }, - "widgets_values": [ - "scale longer dimension", - 1536, - "lanczos" - ] - }, { "id": 5020, "type": "GemmaAPITextEncode", @@ -1535,7 +1064,7 @@ 160 ], "flags": {}, - "order": 12, + "order": 13, "mode": 4, "inputs": [ { @@ -1577,7 +1106,7 @@ 314.000244140625 ], "flags": {}, - "order": 6, + "order": 5, "mode": 0, "inputs": [], "outputs": [ @@ -1596,9 +1125,9 @@ } ], "properties": { + "Node name for S&R": "LoadImage", "cnr_id": "comfy-core", - "ver": "0.3.56", - "Node name for S&R": "LoadImage" + "ver": "0.3.56" }, "widgets_values": [ "example.png", @@ -1617,7 +1146,7 @@ 58 ], "flags": {}, - "order": 7, + "order": 6, "mode": 0, "inputs": [], "outputs": [ @@ -1631,9 +1160,9 @@ ], "title": "bypass_i2v", "properties": { + "Node name for S&R": "PrimitiveBoolean", "cnr_id": "comfy-core", - "ver": "0.16.0", - "Node name for S&R": "PrimitiveBoolean" + "ver": "0.16.0" }, "widgets_values": [ true @@ -1651,7 +1180,7 @@ 234.25266927083334 ], "flags": {}, - "order": 8, + "order": 7, "mode": 0, "inputs": [], "outputs": [ @@ -1665,58 +1194,15 @@ } ], "properties": { + "Node name for S&R": "LoadVideo", "cnr_id": "comfy-core", - "ver": "0.10.0", - "Node name for S&R": "LoadVideo" + "ver": "0.10.0" }, "widgets_values": [ "buildings.mp4", "image" ] }, - { - "id": 2483, - "type": "CLIPTextEncode", - "pos": [ - -3177.88687035676, - 3450.2955325886337 - ], - "size": [ - 307.2346496582031, - 204.2556610107422 - ], - "flags": {}, - "order": 14, - "mode": 0, - "inputs": [ - { - "name": "clip", - "type": "CLIP", - "link": 13459 - } - ], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 7065 - ] - } - ], - "title": "CLIP Text Encode (Positive Prompt)", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.28", - "Node name for S&R": "CLIPTextEncode" - }, - "widgets_values": [ - "Apocalyptic landscape with abandoned buildings, overgrown with foliage and trees. The sky is clear and the sun is setting, with the horizon turning bright red. The buildings are delapidated, falling apart and crumbling due to being abandoned for so long." - ], - "color": "#232", - "bgcolor": "#353" - }, { "id": 4832, "type": "RandomNoise", @@ -1729,7 +1215,7 @@ 82 ], "flags": {}, - "order": 9, + "order": 8, "mode": 0, "inputs": [], "outputs": [ @@ -1742,9 +1228,9 @@ } ], "properties": { + "Node name for S&R": "RandomNoise", "cnr_id": "comfy-core", - "ver": "0.14.1", - "Node name for S&R": "RandomNoise" + "ver": "0.14.1" }, "widgets_values": [ 42, @@ -1752,118 +1238,92 @@ ] }, { - "id": 4991, - "type": "CannyEdgePreprocessor", + "id": 5061, + "type": "VideoDepthAnythingProcess", "pos": [ - -3240.048159614061, - 4605.972865954311 + -3255.616025429201, + 4284.344264651017 + ], + "size": [ + 301.80625, + 126 + ], + "flags": {}, + "order": 26, + "mode": 0, + "inputs": [ + { + "name": "vda_model", + "type": "VDAMODEL", + "link": 13533 + }, + { + "name": "images", + "type": "IMAGE", + "link": 13535 + } + ], + "outputs": [ + { + "name": "depths", + "type": "DEPTHS", + "links": [ + 13534 + ] + } + ], + "properties": { + "Node name for S&R": "VideoDepthAnythingProcess", + "aux_id": "yuvraj108c/ComfyUI-Video-Depth-Anything", + "ver": "a0db08e63d1ea571601c45cde4aaee0acdd0544d" + }, + "widgets_values": [ + 518, + 960, + "fp32" + ] + }, + { + "id": 5026, + "type": "ResizeImageMaskNode", + "pos": [ + -3611.429041941159, + 4356.367775260842 ], "size": [ 270, 106 ], "flags": {}, - "order": 25, + "order": 20, "mode": 0, "inputs": [ { - "name": "image", - "type": "IMAGE", - "link": 13473 + "name": "input", + "type": "IMAGE,MASK", + "link": 13464 } ], "outputs": [ { - "name": "IMAGE", - "type": "IMAGE", - "links": [] - } - ], - "properties": { - "Node name for S&R": "CannyEdgePreprocessor" - }, - "widgets_values": [ - 92, - 200, - 512 - ] - }, - { - "id": 4990, - "type": "DepthCrafter", - "pos": [ - -3239.8437020718925, - 4326.603689842923 - ], - "size": [ - 278.73828125, - 174 - ], - "flags": {}, - "order": 24, - "mode": 0, - "inputs": [ - { - "name": "depthcrafter_model", - "type": "DEPTHCRAFTER_MODEL", - "link": 13377 - }, - { - "name": "images", - "type": "IMAGE", - "link": 13472 - } - ], - "outputs": [ - { - "name": "depth_maps", + "name": "resized", "type": "IMAGE", "links": [ - 13531 + 13473, + 13474, + 13535 ] } ], "properties": { - "Node name for S&R": "DepthCrafter" + "Node name for S&R": "ResizeImageMaskNode", + "cnr_id": "comfy-core", + "ver": "0.16.0" }, "widgets_values": [ - 512, - 5, - 1, - 110, - 25 - ] - }, - { - "id": 4980, - "type": "DownloadAndLoadDepthCrafterModel", - "pos": [ - -3273.83414347537, - 4183.749312897053 - ], - "size": [ - 336.491796875, - 82 - ], - "flags": {}, - "order": 10, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "depthcrafter_model", - "type": "DEPTHCRAFTER_MODEL", - "links": [ - 13377 - ] - } - ], - "properties": { - "Node name for S&R": "DownloadAndLoadDepthCrafterModel" - }, - "widgets_values": [ - true, - false + "scale shorter dimension", + 544, + "lanczos" ] }, { @@ -1878,7 +1338,7 @@ 130.8845841562129 ], "flags": {}, - "order": 18, + "order": 19, "mode": 0, "inputs": [ { @@ -1911,6 +1371,571 @@ "ltxv/ltx2/ltx-2.3-22b-ic-lora-union-control-ref0.5.safetensors", 1 ] + }, + { + "id": 5060, + "type": "LoadVideoDepthAnythingModel", + "pos": [ + -3253.692998465908, + 4169.085677379663 + ], + "size": [ + 266.4771484375, + 58 + ], + "flags": { + "collapsed": false + }, + "order": 9, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "vda_model", + "type": "VDAMODEL", + "slot_index": 0, + "links": [ + 13533 + ] + } + ], + "properties": { + "Node name for S&R": "LoadVideoDepthAnythingModel", + "aux_id": "yuvraj108c/ComfyUI-Video-Depth-Anything", + "ver": "a0db08e63d1ea571601c45cde4aaee0acdd0544d" + }, + "widgets_values": [ + "video_depth_anything_vits.pth" + ] + }, + { + "id": 5063, + "type": "Note", + "pos": [ + -3671.504882921669, + 4543.953945477197 + ], + "size": [ + 350.0508405643018, + 104.34118588476622 + ], + "flags": {}, + "order": 10, + "mode": 0, + "inputs": [], + "outputs": [], + "properties": {}, + "widgets_values": [ + "These are example annotators to convert reference video into proper guidance that the model can work with.\nFeel free to explore and choose whichever settings or alternative that best suits your needs." + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 4831, + "type": "KSamplerSelect", + "pos": [ + -1123.2802485192926, + 3459.9479913843866 + ], + "size": [ + 270, + 74 + ], + "flags": {}, + "order": 11, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "SAMPLER", + "type": "SAMPLER", + "links": [ + 13090 + ] + } + ], + "properties": { + "Node name for S&R": "KSamplerSelect", + "cnr_id": "comfy-core", + "ver": "0.14.1" + }, + "widgets_values": [ + "euler_ancestral_cfg_pp" + ] + }, + { + "id": 4852, + "type": "SaveVideo", + "pos": [ + 130.87073016888837, + 3308.891084732692 + ], + "size": [ + 523.0556530433919, + 506.3562313794205 + ], + "flags": {}, + "order": 42, + "mode": 0, + "inputs": [ + { + "name": "video", + "type": "VIDEO", + "link": 13112 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.14.1" + }, + "widgets_values": [ + "output", + "auto", + "auto" + ] + }, + { + "id": 5062, + "type": "VideoDepthAnythingOutput", + "pos": [ + -3255.220108277297, + 4473.737278287875 + ], + "size": [ + 310.13828125, + 58 + ], + "flags": {}, + "order": 28, + "mode": 0, + "inputs": [ + { + "name": "depths", + "type": "DEPTHS", + "link": 13534 + } + ], + "outputs": [ + { + "name": "images", + "type": "IMAGE", + "links": [] + } + ], + "properties": { + "Node name for S&R": "VideoDepthAnythingOutput", + "aux_id": "yuvraj108c/ComfyUI-Video-Depth-Anything", + "ver": "a0db08e63d1ea571601c45cde4aaee0acdd0544d" + }, + "widgets_values": [ + "gray" + ] + }, + { + "id": 2483, + "type": "CLIPTextEncode", + "pos": [ + -3177.88687035676, + 3450.2955325886337 + ], + "size": [ + 307.2346496582031, + 204.2556610107422 + ], + "flags": {}, + "order": 15, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 13459 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "slot_index": 0, + "links": [ + 7065 + ] + } + ], + "title": "CLIP Text Encode (Positive Prompt)", + "properties": { + "Node name for S&R": "CLIPTextEncode", + "cnr_id": "comfy-core", + "ver": "0.3.28" + }, + "widgets_values": [ + "Apocalyptic landscape with abandoned buildings, overgrown with foliage and trees. The sky is clear and the sun is setting, with the horizon turning bright red. The buildings are delapidated, falling apart and crumbling due to being abandoned for so long.\nThe air is full of silence and the only thing to be heard is a young girl breathing and saying: \"Where is everyone?\"" + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 4991, + "type": "CannyEdgePreprocessor", + "pos": [ + -3240.048159614061, + 4652.864499278905 + ], + "size": [ + 270, + 106 + ], + "flags": {}, + "order": 24, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": 13473 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 13541 + ] + } + ], + "properties": { + "Node name for S&R": "CannyEdgePreprocessor" + }, + "widgets_values": [ + 92, + 200, + 512 + ] + }, + { + "id": 4922, + "type": "LoraLoaderModelOnly", + "pos": [ + -4204.024401614721, + 3261.100838617218 + ], + "size": [ + 454.14193097539646, + 128.44311555561626 + ], + "flags": {}, + "order": 12, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 13217 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 13400 + ] + } + ], + "properties": { + "Node name for S&R": "LoraLoaderModelOnly", + "cnr_id": "comfy-core", + "ver": "0.14.1" + }, + "widgets_values": [ + "ltxv/ltx2/ltx-2.3-22b-distilled-lora-384-1.1.safetensors", + 0.5 + ] + }, + { + "id": 5065, + "type": "LTXVTiledVAEDecode", + "pos": [ + -183.48566055093585, + 3154.1077229909156 + ], + "size": [ + 267.6441352715875, + 198 + ], + "flags": {}, + "order": 40, + "mode": 0, + "inputs": [ + { + "name": "vae", + "type": "VAE", + "link": 13543 + }, + { + "name": "latents", + "type": "LATENT", + "link": 13542 + } + ], + "outputs": [ + { + "name": "image", + "type": "IMAGE", + "links": [ + 13544 + ] + } + ], + "properties": { + "Node name for S&R": "LTXVTiledVAEDecode" + }, + "widgets_values": [ + 2, + 2, + 6, + false, + "auto", + "auto" + ] + }, + { + "id": 4848, + "type": "LTXVAudioVAEDecode", + "pos": [ + -173.58219357128075, + 3410.4626264729445 + ], + "size": [ + 242.46932983398438, + 46 + ], + "flags": {}, + "order": 39, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 13445 + }, + { + "name": "audio_vae", + "type": "VAE", + "link": 13275 + } + ], + "outputs": [ + { + "name": "Audio", + "type": "AUDIO", + "links": [ + 13108 + ] + } + ], + "properties": { + "Node name for S&R": "LTXVAudioVAEDecode", + "cnr_id": "comfy-core", + "ver": "0.3.64" + }, + "widgets_values": [] + }, + { + "id": 4849, + "type": "CreateVideo", + "pos": [ + 126.73898150508833, + 3152.2422250138297 + ], + "size": [ + 270, + 102 + ], + "flags": {}, + "order": 41, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 13544 + }, + { + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": 13108 + }, + { + "name": "fps", + "type": "FLOAT", + "widget": { + "name": "fps" + }, + "link": 13429 + } + ], + "outputs": [ + { + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 13112 + ] + } + ], + "properties": { + "Node name for S&R": "CreateVideo", + "cnr_id": "comfy-core", + "ver": "0.14.1" + }, + "widgets_values": [ + 30 + ] + }, + { + "id": 5066, + "type": "LTXFloatToInt", + "pos": [ + -2381.3973753722084, + 3713.144409316445 + ], + "size": [ + 270.1809911778764, + 58 + ], + "flags": { + "collapsed": true + }, + "order": 22, + "mode": 0, + "inputs": [ + { + "name": "a", + "type": "FLOAT", + "widget": { + "name": "a" + }, + "link": 13546 + } + ], + "outputs": [ + { + "name": "INT", + "type": "INT", + "links": [ + 13545 + ] + } + ], + "properties": { + "Node name for S&R": "LTXFloatToInt" + }, + "widgets_values": [ + 0 + ] + }, + { + "id": 3159, + "type": "LTXVImgToVideoConditionOnly", + "pos": [ + -2144.970291670966, + 3352.7872806168716 + ], + "size": [ + 313.2623046875, + 142.859507731343 + ], + "flags": {}, + "order": 32, + "mode": 0, + "inputs": [ + { + "name": "vae", + "type": "VAE", + "link": 13279 + }, + { + "name": "image", + "type": "IMAGE", + "link": 13547 + }, + { + "name": "latent", + "type": "LATENT", + "link": 11401 + }, + { + "name": "bypass", + "shape": 7, + "type": "BOOLEAN", + "widget": { + "name": "bypass" + }, + "link": 13456 + } + ], + "outputs": [ + { + "name": "latent", + "type": "LATENT", + "links": [ + 13402 + ] + } + ], + "properties": { + "Node name for S&R": "LTXVImgToVideoConditionOnly" + }, + "widgets_values": [ + 1, + false + ] + }, + { + "id": 5035, + "type": "ResizeImageMaskNode", + "pos": [ + -4032.2401448287073, + 3699.4287382559205 + ], + "size": [ + 270, + 106 + ], + "flags": {}, + "order": 17, + "mode": 0, + "inputs": [ + { + "name": "input", + "type": "IMAGE,MASK", + "link": 13492 + } + ], + "outputs": [ + { + "name": "resized", + "type": "IMAGE", + "links": [ + 13547 + ] + } + ], + "properties": { + "Node name for S&R": "ResizeImageMaskNode", + "cnr_id": "comfy-core", + "ver": "0.16.0" + }, + "widgets_values": [ + "scale longer dimension", + 1536, + "lanczos" + ] } ], "links": [ @@ -1930,14 +1955,6 @@ 1, "CONDITIONING" ], - [ - 9768, - 3336, - 0, - 3159, - 1, - "IMAGE" - ], [ 11002, 2004, @@ -1986,14 +2003,6 @@ 0, "NOISE" ], - [ - 13107, - 4851, - 0, - 4849, - 0, - "IMAGE" - ], [ 13108, 4848, @@ -2050,14 +2059,6 @@ 4, "LATENT" ], - [ - 13348, - 3940, - 2, - 4851, - 1, - "VAE" - ], [ 13363, 4829, @@ -2074,14 +2075,6 @@ 0, "VIDEO" ], - [ - 13377, - 4980, - 0, - 4990, - 0, - "DEPTHCRAFTER_MODEL" - ], [ 13400, 4922, @@ -2162,14 +2155,6 @@ 2, "LATENT" ], - [ - 13412, - 5013, - 2, - 4851, - 0, - "LATENT" - ], [ 13413, 5012, @@ -2266,22 +2251,6 @@ 0, "CLIP" ], - [ - 13461, - 5000, - 2, - 5024, - 0, - "FLOAT" - ], - [ - 13462, - 5024, - 0, - 3980, - 2, - "INT" - ], [ 13463, 5025, @@ -2298,14 +2267,6 @@ 0, "IMAGE" ], - [ - 13472, - 5026, - 0, - 4990, - 1, - "IMAGE" - ], [ 13473, 5026, @@ -2395,22 +2356,97 @@ "IMAGE" ], [ - 13493, - 5035, + 13533, + 5060, 0, - 3336, + 5061, 0, + "VDAMODEL" + ], + [ + 13534, + 5061, + 0, + 5062, + 0, + "DEPTHS" + ], + [ + 13535, + 5026, + 0, + 5061, + 1, "IMAGE" ], [ - 13531, - 4990, + 13541, + 4991, 0, 5028, 0, "IMAGE" + ], + [ + 13542, + 5013, + 2, + 5065, + 1, + "LATENT" + ], + [ + 13543, + 3940, + 2, + 5065, + 0, + "VAE" + ], + [ + 13544, + 5065, + 0, + 4849, + 0, + "IMAGE" + ], + [ + 13545, + 5066, + 0, + 3980, + 2, + "INT" + ], + [ + 13546, + 5000, + 2, + 5066, + 0, + "FLOAT" + ], + [ + 13547, + 5035, + 0, + 3159, + 1, + "IMAGE" ] ], + "floatingLinks": [ + { + "id": 2, + "origin_id": 3940, + "origin_slot": 2, + "target_id": -1, + "target_slot": -1, + "type": "VAE", + "parentId": 50 + } + ], "groups": [ { "id": 54, @@ -2450,10 +2486,9 @@ 5012, 4528, 3980, - 3159, 3059, - 3336, - 5024 + 5066, + 3159 ] }, { @@ -2471,8 +2506,8 @@ "nodes": [ 4010, 3940, - 4922, - 5011 + 5011, + 4922 ] }, { @@ -2488,9 +2523,9 @@ "font_size": 24, "flags": {}, "nodes": [ - 5035, 2004, - 5019 + 5019, + 5035 ] }, { @@ -2507,13 +2542,13 @@ "flags": {}, "profilingGroup": false, "nodes": [ - 4831, 4829, 5013, 4845, 4828, 5025, - 4832 + 4832, + 4831 ] }, { @@ -2529,20 +2564,20 @@ "font_size": 24, "flags": {}, "nodes": [ + 4852, + 5065, 4848, - 4849, - 4851, - 4852 + 4849 ] }, { "id": 160, "title": "Prepare Reference Video", "bounding": [ - -3972.079361495783, - 4066.549312897054, - 1381.1555239978125, - 1015.8365874335541 + -3961.9946842410645, + 4043.0257129625647, + 1369.9976857691322, + 1076.3808325009654 ], "color": "#A88", "font_size": 24, @@ -2550,14 +2585,16 @@ "nodes": [ 4986, 5000, - 5026, 5028, 5029, 5034, 5001, - 4991, - 4990, - 4980 + 5061, + 5026, + 5060, + 5063, + 5062, + 4991 ] }, { @@ -2574,25 +2611,26 @@ "flags": {}, "nodes": [ 5000, - 5026, - 5001 + 5001, + 5026 ] }, { "id": 155, "title": "Depth Annotation", "bounding": [ - -3283.83414347537, - 4110.149312897052, - 356.4917968750001, - 400.4543769458702 + -3265.616025429201, + 4095.485677379663, + 330.5341984019037, + 446.25160090821157 ], "color": "#b06634", "font_size": 24, "flags": {}, "nodes": [ - 4990, - 4980 + 5061, + 5060, + 5062 ] }, { @@ -2600,7 +2638,7 @@ "title": "Canny Annotation", "bounding": [ -3250.048159614061, - 4532.37286595431, + 4579.264499278905, 290, 189.6 ], @@ -2615,8 +2653,8 @@ "id": 157, "title": "Pose Annotation", "bounding": [ - -3262.975744576779, - 4751.2579390174615, + -3260.1714331148514, + 4795.482253106716, 314.72265625, 305.6 ], @@ -2631,13 +2669,13 @@ "config": {}, "extra": { "ds": { - "scale": 0.8506866244160058, + "scale": 0.620921323059155, "offset": [ - 4570.975923287724, - -3627.5460233000526 + 4845.606614557338, + -2908.00904512447 ] }, - "frontendVersion": "1.39.14", + "frontendVersion": "1.42.8", "VHS_latentpreview": false, "VHS_latentpreviewrate": 0, "VHS_MetadataImage": true, @@ -2679,7 +2717,7 @@ 2989.3062564189877 ], "linkIds": [ - 13493 + 13547 ] }, { @@ -2690,7 +2728,7 @@ 2981.1444036460034 ], "linkIds": [ - 13493 + 13547 ] }, { @@ -2756,8 +2794,8 @@ ], "linkIds": [ 13279, - 13348, - 13405 + 13405, + 13543 ] }, { @@ -2769,8 +2807,8 @@ ], "linkIds": [ 13279, - 13348, - 13405 + 13405, + 13543 ] }, { @@ -2782,7 +2820,7 @@ ], "linkIds": [ 13429, - 13461 + 13546 ] }, { @@ -2856,8 +2894,11 @@ 2687.78688781277 ], "linkIds": [ - 13348 - ] + 13543 + ], + "floating": { + "slotType": "output" + } }, { "id": 56, @@ -2889,8 +2930,8 @@ 2681.1981337977513 ], "linkIds": [ - 13348, - 13405 + 13405, + 13543 ] }, { @@ -2980,7 +3021,7 @@ "linkIds": [ 13429, 13443, - 13461 + 13546 ] }, { @@ -3013,7 +3054,7 @@ "linkIds": [ 13429, 13443, - 13461 + 13546 ] }, { @@ -3087,10 +3128,6 @@ "id": 13302, "parentId": 34 }, - { - "id": 13348, - "parentId": 50 - }, { "id": 13401, "parentId": 3 @@ -3143,10 +3180,6 @@ "id": 13456, "parentId": 7 }, - { - "id": 13461, - "parentId": 23 - }, { "id": 13478, "parentId": 78 @@ -3160,7 +3193,15 @@ "parentId": 82 }, { - "id": 13493, + "id": 13543, + "parentId": 50 + }, + { + "id": 13546, + "parentId": 23 + }, + { + "id": 13547, "parentId": 5 } ] diff --git a/example_workflows/2.3/LTX-2.3_T2V_I2V_Single_Stage_Distilled_Full.json b/example_workflows/2.3/LTX-2.3_T2V_I2V_Single_Stage_Distilled_Full.json index 7dd3291..1358422 100644 --- a/example_workflows/2.3/LTX-2.3_T2V_I2V_Single_Stage_Distilled_Full.json +++ b/example_workflows/2.3/LTX-2.3_T2V_I2V_Single_Stage_Distilled_Full.json @@ -1,98 +1,9 @@ { "id": "394ed254-7306-42a2-9ae6-aa880ce4456d", "revision": 0, - "last_node_id": 4981, - "last_link_id": 13353, + "last_node_id": 4985, + "last_link_id": 13363, "nodes": [ - { - "id": 4818, - "type": "LTXVAudioVAEDecode", - "pos": [ - -407.814457071416, - 3825.033274790136 - ], - "size": [ - 242.46932983398438, - 46 - ], - "flags": {}, - "order": 40, - "mode": 0, - "inputs": [ - { - "name": "samples", - "type": "LATENT", - "link": 13080 - }, - { - "name": "audio_vae", - "type": "VAE", - "link": 13304 - } - ], - "outputs": [ - { - "name": "Audio", - "type": "AUDIO", - "links": [ - 13069 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.64", - "Node name for S&R": "LTXVAudioVAEDecode" - }, - "widgets_values": [] - }, - { - "id": 4822, - "type": "VAEDecodeTiled", - "pos": [ - -432.17285832621803, - 3622.27392422418 - ], - "size": [ - 270, - 150 - ], - "flags": {}, - "order": 39, - "mode": 0, - "inputs": [ - { - "name": "samples", - "type": "LATENT", - "link": 13078 - }, - { - "name": "vae", - "type": "VAE", - "link": 13305 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 13081 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.14.1", - "Node name for S&R": "VAEDecodeTiled" - }, - "widgets_values": [ - 512, - 64, - 512, - 64 - ] - }, { "id": 4824, "type": "LTXVSeparateAVLatent", @@ -119,7 +30,7 @@ "name": "video_latent", "type": "LATENT", "links": [ - 13078 + 13359 ] }, { @@ -137,201 +48,6 @@ }, "widgets_values": [] }, - { - "id": 4848, - "type": "LTXVAudioVAEDecode", - "pos": [ - -410.1063990210086, - 3144.894193466471 - ], - "size": [ - 242.46932983398438, - 46 - ], - "flags": {}, - "order": 36, - "mode": 0, - "inputs": [ - { - "name": "samples", - "type": "LATENT", - "link": 13105 - }, - { - "name": "audio_vae", - "type": "VAE", - "link": 13275 - } - ], - "outputs": [ - { - "name": "Audio", - "type": "AUDIO", - "links": [ - 13108 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.64", - "Node name for S&R": "LTXVAudioVAEDecode" - }, - "widgets_values": [] - }, - { - "id": 4851, - "type": "VAEDecodeTiled", - "pos": [ - -434.4648002758107, - 2942.134842900515 - ], - "size": [ - 270, - 150 - ], - "flags": {}, - "order": 35, - "mode": 0, - "inputs": [ - { - "name": "samples", - "type": "LATENT", - "link": 13110 - }, - { - "name": "vae", - "type": "VAE", - "link": 13280 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 13107 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.14.1", - "Node name for S&R": "VAEDecodeTiled" - }, - "widgets_values": [ - 512, - 64, - 512, - 64 - ] - }, - { - "id": 4849, - "type": "CreateVideo", - "pos": [ - -115.36479388728354, - 2941.821676196994 - ], - "size": [ - 270, - 102 - ], - "flags": {}, - "order": 38, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 13107 - }, - { - "name": "audio", - "shape": 7, - "type": "AUDIO", - "link": 13108 - }, - { - "name": "fps", - "type": "FLOAT", - "widget": { - "name": "fps" - }, - "link": 13348 - } - ], - "outputs": [ - { - "name": "VIDEO", - "type": "VIDEO", - "links": [ - 13112 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.14.1", - "Node name for S&R": "CreateVideo" - }, - "widgets_values": [ - 30 - ] - }, - { - "id": 4819, - "type": "CreateVideo", - "pos": [ - -113.07285193769118, - 3621.9607575206587 - ], - "size": [ - 270, - 102 - ], - "flags": {}, - "order": 42, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 13081 - }, - { - "name": "audio", - "shape": 7, - "type": "AUDIO", - "link": 13069 - }, - { - "name": "fps", - "type": "FLOAT", - "widget": { - "name": "fps" - }, - "link": 13347 - } - ], - "outputs": [ - { - "name": "VIDEO", - "type": "VIDEO", - "links": [ - 13072 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.14.1", - "Node name for S&R": "CreateVideo" - }, - "widgets_values": [ - 30 - ] - }, { "id": 3059, "type": "EmptyLTXVLatentVideo", @@ -344,7 +60,7 @@ 194 ], "flags": {}, - "order": 22, + "order": 23, "mode": 0, "inputs": [ { @@ -470,7 +186,7 @@ "widget": { "name": "frame_rate" }, - "link": 13338 + "link": 13363 } ], "outputs": [ @@ -742,8 +458,8 @@ "type": "VAE", "links": [ 13279, - 13280, - 13305 + 13355, + 13358 ] } ], @@ -921,7 +637,7 @@ "name": "video_latent", "type": "LATENT", "links": [ - 13110 + 13354 ] }, { @@ -1036,114 +752,6 @@ }, "widgets_values": [] }, - { - "id": 4852, - "type": "SaveVideo", - "pos": [ - 198.4051508602923, - 2938.5275593141037 - ], - "size": [ - 523.0556530433919, - 506.3562313794205 - ], - "flags": {}, - "order": 41, - "mode": 0, - "inputs": [ - { - "name": "video", - "type": "VIDEO", - "link": 13112 - } - ], - "outputs": [], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.14.1" - }, - "widgets_values": [ - "output_D", - "auto", - "auto" - ] - }, - { - "id": 4823, - "type": "SaveVideo", - "pos": [ - 200.6970928098834, - 3618.666640637768 - ], - "size": [ - 523.0556530433919, - 506.3562313794205 - ], - "flags": {}, - "order": 43, - "mode": 0, - "inputs": [ - { - "name": "video", - "type": "VIDEO", - "link": 13072 - } - ], - "outputs": [], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.14.1" - }, - "widgets_values": [ - "output_F", - "auto", - "auto" - ] - }, - { - "id": 4974, - "type": "CM_FloatToInt", - "pos": [ - -2338.041111677508, - 3710.1908431089505 - ], - "size": [ - 270, - 58 - ], - "flags": { - "collapsed": true - }, - "order": 23, - "mode": 0, - "inputs": [ - { - "name": "a", - "type": "FLOAT", - "widget": { - "name": "a" - }, - "link": 13349 - } - ], - "outputs": [ - { - "name": "INT", - "type": "INT", - "links": [ - 13338 - ] - } - ], - "properties": { - "aux_id": "evanspearman/ComfyMath", - "ver": "c01177221c31b8e5fbc062778fc8254aeb541638", - "Node name for S&R": "CM_FloatToInt" - }, - "widgets_values": [ - 0 - ] - }, { "id": 4923, "type": "GemmaAPITextEncode", @@ -1443,86 +1051,6 @@ true ] }, - { - "id": 4922, - "type": "LoraLoaderModelOnly", - "pos": [ - -4217.883339387363, - 3262.713832635294 - ], - "size": [ - 454.14193097539646, - 128.44311555561626 - ], - "flags": {}, - "order": 14, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 13217 - } - ], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 13270 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.14.1", - "Node name for S&R": "LoraLoaderModelOnly" - }, - "widgets_values": [ - "ltxv/ltx2/ltx-2.3-22b-distilled-lora-384.safetensors", - 0.5 - ] - }, - { - "id": 4968, - "type": "LoraLoaderModelOnly", - "pos": [ - -4212.5785472767375, - 3448.9517207024496 - ], - "size": [ - 454.14193097539646, - 128.44311555561626 - ], - "flags": {}, - "order": 15, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 13324 - } - ], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 13325 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.14.1", - "Node name for S&R": "LoraLoaderModelOnly" - }, - "widgets_values": [ - "ltxv/ltx2/ltx-2.3-22b-distilled-lora-384.safetensors", - 0.2 - ] - }, { "id": 4964, "type": "GuiderParameters", @@ -1768,79 +1296,6 @@ true ] }, - { - "id": 4979, - "type": "PrimitiveInt", - "pos": [ - -2738.7811664958017, - 3930.388555565199 - ], - "size": [ - 270, - 82 - ], - "flags": {}, - "order": 12, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "INT", - "type": "INT", - "links": [ - 13350, - 13351 - ] - } - ], - "title": "number of frames", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.16.0", - "Node name for S&R": "PrimitiveInt" - }, - "widgets_values": [ - 121, - "fixed" - ] - }, - { - "id": 4978, - "type": "PrimitiveFloat", - "pos": [ - -3079.5387171915363, - 4031.84547703025 - ], - "size": [ - 270, - 58 - ], - "flags": {}, - "order": 13, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "FLOAT", - "type": "FLOAT", - "links": [ - 13346, - 13347, - 13348, - 13349 - ] - } - ], - "title": "fps", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.16.0", - "Node name for S&R": "PrimitiveFloat" - }, - "widgets_values": [ - 24 - ] - }, { "id": 4981, "type": "ResizeImageMaskNode", @@ -1923,6 +1378,549 @@ false, "ltx-2.3-22b-dev.safetensors" ] + }, + { + "id": 4922, + "type": "LoraLoaderModelOnly", + "pos": [ + -4217.883339387363, + 3262.713832635294 + ], + "size": [ + 454.14193097539646, + 128.44311555561626 + ], + "flags": {}, + "order": 14, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 13217 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 13270 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.14.1", + "Node name for S&R": "LoraLoaderModelOnly" + }, + "widgets_values": [ + "ltxv/ltx2/ltx-2.3-22b-distilled-lora-384-1.1.safetensors", + 0.5 + ] + }, + { + "id": 4968, + "type": "LoraLoaderModelOnly", + "pos": [ + -4212.5785472767375, + 3448.9517207024496 + ], + "size": [ + 454.14193097539646, + 128.44311555561626 + ], + "flags": {}, + "order": 15, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 13324 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 13325 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.14.1", + "Node name for S&R": "LoraLoaderModelOnly" + }, + "widgets_values": [ + "ltxv/ltx2/ltx-2.3-22b-distilled-lora-384-1.1.safetensors", + 0.2 + ] + }, + { + "id": 4848, + "type": "LTXVAudioVAEDecode", + "pos": [ + -410.5927284264932, + 3200.7525994678613 + ], + "size": [ + 242.46932983398438, + 46 + ], + "flags": {}, + "order": 36, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 13105 + }, + { + "name": "audio_vae", + "type": "VAE", + "link": 13275 + } + ], + "outputs": [ + { + "name": "Audio", + "type": "AUDIO", + "links": [ + 13108 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "LTXVAudioVAEDecode" + }, + "widgets_values": [] + }, + { + "id": 4982, + "type": "LTXVTiledVAEDecode", + "pos": [ + -421.5504968885962, + 2943.0798877291213 + ], + "size": [ + 267.6441352715875, + 198 + ], + "flags": {}, + "order": 35, + "mode": 0, + "inputs": [ + { + "name": "vae", + "type": "VAE", + "link": 13355 + }, + { + "name": "latents", + "type": "LATENT", + "link": 13354 + } + ], + "outputs": [ + { + "name": "image", + "type": "IMAGE", + "links": [ + 13356 + ] + } + ], + "properties": { + "Node name for S&R": "LTXVTiledVAEDecode" + }, + "widgets_values": [ + 2, + 2, + 6, + false, + "auto", + "auto" + ] + }, + { + "id": 4818, + "type": "LTXVAudioVAEDecode", + "pos": [ + -420.1637501892608, + 3892.8762268552587 + ], + "size": [ + 242.46932983398438, + 46 + ], + "flags": {}, + "order": 40, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 13080 + }, + { + "name": "audio_vae", + "type": "VAE", + "link": 13304 + } + ], + "outputs": [ + { + "name": "Audio", + "type": "AUDIO", + "links": [ + 13069 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "LTXVAudioVAEDecode" + }, + "widgets_values": [] + }, + { + "id": 4983, + "type": "LTXVTiledVAEDecode", + "pos": [ + -420.8123183266997, + 3631.5312679148037 + ], + "size": [ + 267.6441352715875, + 198 + ], + "flags": {}, + "order": 39, + "mode": 0, + "inputs": [ + { + "name": "vae", + "type": "VAE", + "link": 13358 + }, + { + "name": "latents", + "type": "LATENT", + "link": 13359 + } + ], + "outputs": [ + { + "name": "image", + "type": "IMAGE", + "links": [ + 13357 + ] + } + ], + "properties": { + "Node name for S&R": "LTXVTiledVAEDecode" + }, + "widgets_values": [ + 2, + 2, + 6, + false, + "auto", + "auto" + ] + }, + { + "id": 4819, + "type": "CreateVideo", + "pos": [ + -111.9091351459955, + 3630.5236288386586 + ], + "size": [ + 270, + 102 + ], + "flags": {}, + "order": 42, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 13357 + }, + { + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": 13069 + }, + { + "name": "fps", + "type": "FLOAT", + "widget": { + "name": "fps" + }, + "link": 13347 + } + ], + "outputs": [ + { + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 13072 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.14.1", + "Node name for S&R": "CreateVideo" + }, + "widgets_values": [ + 30 + ] + }, + { + "id": 4823, + "type": "SaveVideo", + "pos": [ + 199.85470080395447, + 3629.4874699098045 + ], + "size": [ + 523.0556530433919, + 506.3562313794205 + ], + "flags": {}, + "order": 43, + "mode": 0, + "inputs": [ + { + "name": "video", + "type": "VIDEO", + "link": 13072 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.14.1" + }, + "widgets_values": [ + "output_F", + "auto", + "auto" + ] + }, + { + "id": 4978, + "type": "PrimitiveFloat", + "pos": [ + -3098.8616266058857, + 4031.84547703025 + ], + "size": [ + 270, + 58 + ], + "flags": {}, + "order": 12, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "FLOAT", + "type": "FLOAT", + "links": [ + 13346, + 13347, + 13348, + 13362 + ] + } + ], + "title": "fps", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.16.0", + "Node name for S&R": "PrimitiveFloat" + }, + "widgets_values": [ + 24 + ] + }, + { + "id": 4979, + "type": "PrimitiveInt", + "pos": [ + -2768.412522415694, + 3929.5374791056006 + ], + "size": [ + 270, + 82 + ], + "flags": {}, + "order": 13, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "INT", + "type": "INT", + "links": [ + 13350, + 13351 + ] + } + ], + "title": "number of frames", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.16.0", + "Node name for S&R": "PrimitiveInt" + }, + "widgets_values": [ + 121, + "fixed" + ] + }, + { + "id": 4852, + "type": "SaveVideo", + "pos": [ + 198.4051508602923, + 2942.671426619292 + ], + "size": [ + 523.0556530433919, + 506.3562313794205 + ], + "flags": {}, + "order": 41, + "mode": 0, + "inputs": [ + { + "name": "video", + "type": "VIDEO", + "link": 13112 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.14.1" + }, + "widgets_values": [ + "output_D", + "auto", + "auto" + ] + }, + { + "id": 4849, + "type": "CreateVideo", + "pos": [ + -115.36479388728354, + 2942.2416627481953 + ], + "size": [ + 270, + 102 + ], + "flags": {}, + "order": 38, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 13356 + }, + { + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": 13108 + }, + { + "name": "fps", + "type": "FLOAT", + "widget": { + "name": "fps" + }, + "link": 13348 + } + ], + "outputs": [ + { + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 13112 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.14.1", + "Node name for S&R": "CreateVideo" + }, + "widgets_values": [ + 30 + ] + }, + { + "id": 4985, + "type": "LTXFloatToInt", + "pos": [ + -2383.6505616901677, + 3708.4758574347698 + ], + "size": [ + 270.1809911778764, + 58 + ], + "flags": { + "collapsed": true + }, + "order": 22, + "mode": 0, + "inputs": [ + { + "name": "a", + "type": "FLOAT", + "widget": { + "name": "a" + }, + "link": 13362 + } + ], + "outputs": [ + { + "name": "INT", + "type": "INT", + "links": [ + 13363 + ] + } + ], + "properties": { + "Node name for S&R": "LTXFloatToInt" + }, + "widgets_values": [ + 0 + ] } ], "links": [ @@ -2022,14 +2020,6 @@ 0, "LATENT" ], - [ - 13078, - 4824, - 0, - 4822, - 0, - "LATENT" - ], [ 13080, 4824, @@ -2038,14 +2028,6 @@ 0, "LATENT" ], - [ - 13081, - 4822, - 0, - 4819, - 0, - "IMAGE" - ], [ 13089, 4828, @@ -2078,14 +2060,6 @@ 0, "LATENT" ], - [ - 13107, - 4851, - 0, - 4849, - 0, - "IMAGE" - ], [ 13108, 4848, @@ -2094,14 +2068,6 @@ 1, "AUDIO" ], - [ - 13110, - 4845, - 0, - 4851, - 0, - "LATENT" - ], [ 13112, 4849, @@ -2158,14 +2124,6 @@ 0, "VAE" ], - [ - 13280, - 3940, - 2, - 4851, - 1, - "VAE" - ], [ 13289, 1241, @@ -2222,14 +2180,6 @@ 1, "VAE" ], - [ - 13305, - 3940, - 2, - 4822, - 1, - "VAE" - ], [ 13321, 4963, @@ -2310,14 +2260,6 @@ 0, "STRING" ], - [ - 13338, - 4974, - 0, - 3980, - 2, - "INT" - ], [ 13341, 4960, @@ -2366,14 +2308,6 @@ 2, "FLOAT" ], - [ - 13349, - 4978, - 0, - 4974, - 0, - "FLOAT" - ], [ 13350, 4979, @@ -2405,8 +2339,83 @@ 3336, 0, "IMAGE" + ], + [ + 13354, + 4845, + 0, + 4982, + 1, + "LATENT" + ], + [ + 13355, + 3940, + 2, + 4982, + 0, + "VAE" + ], + [ + 13356, + 4982, + 0, + 4849, + 0, + "IMAGE" + ], + [ + 13357, + 4983, + 0, + 4819, + 0, + "IMAGE" + ], + [ + 13358, + 3940, + 2, + 4983, + 0, + "VAE" + ], + [ + 13359, + 4824, + 0, + 4983, + 1, + "LATENT" + ], + [ + 13362, + 4978, + 0, + 4985, + 0, + "FLOAT" + ], + [ + 13363, + 4985, + 0, + 3980, + 2, + "INT" ] ], + "floatingLinks": [ + { + "id": 2, + "origin_id": 3940, + "origin_slot": 2, + "target_id": -1, + "target_slot": -1, + "type": "VAE", + "parentId": 38 + } + ], "groups": [ { "id": 54, @@ -2434,10 +2443,10 @@ "id": 106, "title": "Preprocess", "bounding": [ - -2495.2000699364985, + -2484.088851384863, 3225.5682237844176, - 911.7998063426669, - 521.6258583440732 + 900.6885877910327, + 496.2463276766031 ], "color": "#3f789e", "font_size": 24, @@ -2448,7 +2457,7 @@ 3980, 4528, 3336, - 4974 + 4985 ] }, { @@ -2540,17 +2549,17 @@ "bounding": [ -444.4648002758107, 2864.9275593141037, - 1175.9256041794947, - 589.9562313794205 + 1177.3395589018733, + 605.9017207733691 ], "color": "#b58b2a", "font_size": 24, "flags": {}, "nodes": [ 4848, - 4851, - 4849, - 4852 + 4982, + 4852, + 4849 ] }, { @@ -2559,15 +2568,15 @@ "bounding": [ -442.17285832621803, 3545.066640637768, - 1175.9256041794933, - 589.956231379421 + 1178.0045376079406, + 607.0216849099065 ], "color": "#3f789e", "font_size": 24, "flags": {}, "nodes": [ 4818, - 4822, + 4983, 4819, 4823 ] @@ -2576,13 +2585,13 @@ "config": {}, "extra": { "ds": { - "scale": 0.7094965082353154, + "scale": 0.5248203294583607, "offset": [ - 5360.328560176019, - -2808.797614629239 + 4615.128525222288, + -2831.576053982103 ] }, - "frontendVersion": "1.39.14", + "frontendVersion": "1.42.8", "VHS_latentpreview": false, "VHS_latentpreviewrate": 0, "VHS_MetadataImage": true, @@ -2736,8 +2745,8 @@ ], "linkIds": [ 13279, - 13280, - 13305 + 13355, + 13358 ] }, { @@ -2749,8 +2758,8 @@ ], "linkIds": [ 13279, - 13280, - 13305 + 13355, + 13358 ] }, { @@ -2761,8 +2770,8 @@ 2665.035568944363 ], "linkIds": [ - 13280, - 13305 + 13355, + 13358 ] }, { @@ -2784,7 +2793,7 @@ "linkIds": [ 13347, 13348, - 13349 + 13362 ] }, { @@ -2925,12 +2934,15 @@ "id": 38, "parentId": 17, "pos": [ - -474.4211088975866, - 3658.2864504877357 + -470.0180908872158, + 3638.694323009636 ], "linkIds": [ - 13305 - ] + 13358 + ], + "floating": { + "slotType": "output" + } }, { "id": 40, @@ -3008,10 +3020,6 @@ "id": 13279, "parentId": 16 }, - { - "id": 13280, - "parentId": 17 - }, { "id": 13289, "parentId": 25 @@ -3040,10 +3048,6 @@ "id": 13304, "parentId": 37 }, - { - "id": 13305, - "parentId": 38 - }, { "id": 13325, "parentId": 13 @@ -3064,10 +3068,6 @@ "id": 13348, "parentId": 43 }, - { - "id": 13349, - "parentId": 23 - }, { "id": 13351, "parentId": 19 @@ -3075,6 +3075,18 @@ { "id": 13353, "parentId": 5 + }, + { + "id": 13355, + "parentId": 17 + }, + { + "id": 13358, + "parentId": 38 + }, + { + "id": 13362, + "parentId": 23 } ] }, diff --git a/example_workflows/2.3/LTX-2.3_T2V_I2V_Two_Stage_Distilled.json b/example_workflows/2.3/LTX-2.3_T2V_I2V_Two_Stage_Distilled.json index 04d3821..6387f88 100644 --- a/example_workflows/2.3/LTX-2.3_T2V_I2V_Two_Stage_Distilled.json +++ b/example_workflows/2.3/LTX-2.3_T2V_I2V_Two_Stage_Distilled.json @@ -1,104 +1,9 @@ { "id": "394ed254-7306-42a2-9ae6-aa880ce4456d", "revision": 0, - "last_node_id": 4990, - "last_link_id": 13396, + "last_node_id": 5000, + "last_link_id": 13424, "nodes": [ - { - "id": 4848, - "type": "LTXVAudioVAEDecode", - "pos": [ - 716.3549191404252, - 3354.9364184694505 - ], - "size": [ - 242.46932983398438, - 46 - ], - "flags": {}, - "order": 38, - "mode": 0, - "inputs": [ - { - "name": "samples", - "type": "LATENT", - "link": 13383 - }, - { - "name": "audio_vae", - "type": "VAE", - "link": 13275 - } - ], - "outputs": [ - { - "name": "Audio", - "type": "AUDIO", - "links": [ - 13108 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.64", - "Node name for S&R": "LTXVAudioVAEDecode" - }, - "widgets_values": [] - }, - { - "id": 4849, - "type": "CreateVideo", - "pos": [ - 1011.0965242741515, - 3151.8639011999735 - ], - "size": [ - 270, - 102 - ], - "flags": {}, - "order": 39, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 13107 - }, - { - "name": "audio", - "shape": 7, - "type": "AUDIO", - "link": 13108 - }, - { - "name": "fps", - "type": "FLOAT", - "widget": { - "name": "fps" - }, - "link": 13392 - } - ], - "outputs": [ - { - "name": "VIDEO", - "type": "VIDEO", - "links": [ - 13112 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.14.1", - "Node name for S&R": "CreateVideo" - }, - "widgets_values": [ - 30 - ] - }, { "id": 3059, "type": "EmptyLTXVLatentVideo", @@ -111,7 +16,7 @@ 194 ], "flags": {}, - "order": 22, + "order": 20, "mode": 0, "inputs": [ { @@ -180,7 +85,7 @@ "widget": { "name": "frame_rate" }, - "link": 13372 + "link": 13424 } ], "outputs": [ @@ -215,7 +120,7 @@ 46 ], "flags": {}, - "order": 29, + "order": 31, "mode": 0, "inputs": [ { @@ -257,7 +162,7 @@ 142.859507731343 ], "flags": {}, - "order": 28, + "order": 30, "mode": 0, "inputs": [ { @@ -314,7 +219,7 @@ 78 ], "flags": {}, - "order": 23, + "order": 26, "mode": 0, "inputs": [ { @@ -365,53 +270,6 @@ 24 ] }, - { - "id": 4851, - "type": "VAEDecodeTiled", - "pos": [ - 691.996517885623, - 3152.177067903495 - ], - "size": [ - 270, - 150 - ], - "flags": {}, - "order": 37, - "mode": 0, - "inputs": [ - { - "name": "samples", - "type": "LATENT", - "link": 13382 - }, - { - "name": "vae", - "type": "VAE", - "link": 13348 - } - ], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 13107 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.14.1", - "Node name for S&R": "VAEDecodeTiled" - }, - "widgets_values": [ - 512, - 64, - 512, - 4 - ] - }, { "id": 4976, "type": "KSamplerSelect", @@ -457,7 +315,7 @@ 106 ], "flags": {}, - "order": 35, + "order": 37, "mode": 0, "inputs": [ { @@ -519,7 +377,7 @@ 98 ], "flags": {}, - "order": 27, + "order": 29, "mode": 0, "inputs": [ { @@ -556,129 +414,6 @@ 1 ] }, - { - "id": 4010, - "type": "LTXVAudioVAELoader", - "pos": [ - -4655.010641467211, - 3122.9236915172387 - ], - "size": [ - 384.6576773713696, - 79.30435270514249 - ], - "flags": {}, - "order": 1, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "Audio VAE", - "type": "VAE", - "links": [ - 13274, - 13275 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.64", - "Node name for S&R": "LTXVAudioVAELoader" - }, - "widgets_values": [ - "ltx-2.3-22b-dev.safetensors" - ] - }, - { - "id": 3940, - "type": "CheckpointLoaderSimple", - "pos": [ - -4648.711127852091, - 3261.3436773800554 - ], - "size": [ - 383.4002295473938, - 108.51948797992713 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 13217 - ] - }, - { - "name": "CLIP", - "type": "CLIP", - "links": [] - }, - { - "name": "VAE", - "type": "VAE", - "links": [ - 13279, - 13346, - 13347, - 13348 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.56", - "Node name for S&R": "CheckpointLoaderSimple" - }, - "widgets_values": [ - "ltx-2.3-22b-dev.safetensors" - ] - }, - { - "id": 4922, - "type": "LoraLoaderModelOnly", - "pos": [ - -4204.024401614721, - 3261.100838617218 - ], - "size": [ - 454.14193097539646, - 128.44311555561626 - ], - "flags": {}, - "order": 15, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 13217 - } - ], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 13270, - 13352 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.14.1", - "Node name for S&R": "LoraLoaderModelOnly" - }, - "widgets_values": [ - "ltxv/ltx2/ltx-2.3-22b-distilled-lora-384.safetensors", - 0.5 - ] - }, { "id": 4980, "type": "GemmaAPITextEncode", @@ -691,7 +426,7 @@ 160 ], "flags": {}, - "order": 16, + "order": 17, "mode": 4, "inputs": [ { @@ -733,7 +468,7 @@ 58 ], "flags": {}, - "order": 3, + "order": 1, "mode": 4, "inputs": [], "outputs": [ @@ -756,42 +491,6 @@ "" ] }, - { - "id": 4982, - "type": "LTXAVTextEncoderLoader", - "pos": [ - -3616.529586587242, - 3452.368379629139 - ], - "size": [ - 318.444921875, - 122 - ], - "flags": {}, - "order": 4, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "CLIP", - "type": "CLIP", - "links": [ - 13368, - 13369 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.14.1", - "Node name for S&R": "LTXAVTextEncoderLoader" - }, - "widgets_values": [ - "comfy_gemma_3_12B_it.safetensors", - "ltx-2.3-22b-dev.safetensors", - "default" - ] - }, { "id": 3336, "type": "LTXVPreprocess", @@ -804,7 +503,7 @@ 74 ], "flags": {}, - "order": 24, + "order": 27, "mode": 0, "inputs": [ { @@ -831,50 +530,6 @@ 18 ] }, - { - "id": 4983, - "type": "CM_FloatToInt", - "pos": [ - -2431.349724020329, - 3703.1711125515767 - ], - "size": [ - 270, - 58 - ], - "flags": { - "collapsed": true - }, - "order": 21, - "mode": 0, - "inputs": [ - { - "name": "a", - "type": "FLOAT", - "widget": { - "name": "a" - }, - "link": 13393 - } - ], - "outputs": [ - { - "name": "INT", - "type": "INT", - "links": [ - 13372 - ] - } - ], - "properties": { - "aux_id": "evanspearman/ComfyMath", - "ver": "c01177221c31b8e5fbc062778fc8254aeb541638", - "Node name for S&R": "CM_FloatToInt" - }, - "widgets_values": [ - 0 - ] - }, { "id": 2612, "type": "CLIPTextEncode", @@ -887,7 +542,7 @@ 117.23972533000051 ], "flags": {}, - "order": 19, + "order": 23, "mode": 0, "inputs": [ { @@ -923,14 +578,14 @@ "type": "RandomNoise", "pos": [ -1595.3099114719337, - 3194.760512128168 + 3238.258072571506 ], "size": [ 279.7478557810682, 82 ], "flags": {}, - "order": 5, + "order": 2, "mode": 0, "inputs": [], "outputs": [ @@ -957,14 +612,14 @@ "type": "CFGGuider", "pos": [ -1600.4177305123035, - 3327.7593389912104 + 3371.2568994345484 ], "size": [ 270, 114 ], "flags": {}, - "order": 26, + "order": 28, "mode": 0, "inputs": [ { @@ -1006,14 +661,14 @@ "type": "KSamplerSelect", "pos": [ -1599.2859684873301, - 3486.453792299004 + 3529.951352742342 ], "size": [ 270, 74 ], "flags": {}, - "order": 6, + "order": 3, "mode": 0, "inputs": [], "outputs": [ @@ -1039,14 +694,14 @@ "type": "SamplerCustomAdvanced", "pos": [ -1221.970314179945, - 3295.7653725358114 + 3339.2629329791494 ], "size": [ 212.3638671875, 106 ], "flags": {}, - "order": 30, + "order": 32, "mode": 0, "inputs": [ { @@ -1110,7 +765,7 @@ "flags": { "collapsed": false }, - "order": 7, + "order": 4, "mode": 0, "inputs": [], "outputs": [ @@ -1137,14 +792,14 @@ "type": "ManualSigmas", "pos": [ -1593.5601695497103, - 3614.617936723543 + 3658.115497166881 ], "size": [ 499.94633283206986, 67.3573576655076 ], "flags": {}, - "order": 8, + "order": 5, "mode": 0, "inputs": [], "outputs": [ @@ -1177,7 +832,7 @@ 58 ], "flags": {}, - "order": 9, + "order": 6, "mode": 0, "inputs": [], "outputs": [ @@ -1210,7 +865,7 @@ 46 ], "flags": {}, - "order": 34, + "order": 36, "mode": 0, "inputs": [ { @@ -1252,7 +907,7 @@ 122 ], "flags": {}, - "order": 33, + "order": 35, "mode": 0, "inputs": [ { @@ -1309,7 +964,7 @@ 66 ], "flags": {}, - "order": 32, + "order": 34, "mode": 0, "inputs": [ { @@ -1344,6 +999,285 @@ }, "widgets_values": [] }, + { + "id": 4989, + "type": "PrimitiveFloat", + "pos": [ + -3152.1276183269097, + 3984.2067549396024 + ], + "size": [ + 270, + 58 + ], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "FLOAT", + "type": "FLOAT", + "links": [ + 13391, + 13392, + 13423 + ] + } + ], + "title": "fps", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.16.0", + "Node name for S&R": "PrimitiveFloat" + }, + "widgets_values": [ + 24 + ] + }, + { + "id": 4988, + "type": "PrimitiveInt", + "pos": [ + -2818.760822457342, + 3891.612150182899 + ], + "size": [ + 270, + 82 + ], + "flags": {}, + "order": 8, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "INT", + "type": "INT", + "links": [ + 13389, + 13390 + ] + } + ], + "title": "number of frames", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.16.0", + "Node name for S&R": "PrimitiveInt" + }, + "widgets_values": [ + 121, + "fixed" + ] + }, + { + "id": 4981, + "type": "GemmaAPITextEncode", + "pos": [ + -3072.6921705697514, + 3243.4542361026756 + ], + "size": [ + 337.49481491927054, + 160 + ], + "flags": {}, + "order": 18, + "mode": 4, + "inputs": [ + { + "name": "api_key", + "type": "STRING", + "widget": { + "name": "api_key" + }, + "link": 13367 + } + ], + "outputs": [ + { + "name": "conditioning", + "type": "CONDITIONING", + "links": null + } + ], + "title": "🅛🅣🅧 Gemma API Text Encode - NEGATIVE", + "properties": { + "Node name for S&R": "GemmaAPITextEncode" + }, + "widgets_values": [ + "", + "pc game, console game, video game, cartoon, childish, ugly", + false, + "ltx-2.3-22b-dev.safetensors" + ] + }, + { + "id": 4990, + "type": "ResizeImageMaskNode", + "pos": [ + -4034.1483284692663, + 3511.4994332371434 + ], + "size": [ + 270, + 106 + ], + "flags": {}, + "order": 24, + "mode": 0, + "inputs": [ + { + "name": "input", + "type": "IMAGE,MASK", + "link": 13394 + } + ], + "outputs": [ + { + "name": "resized", + "type": "IMAGE", + "links": [ + 13395, + 13396 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.16.0", + "Node name for S&R": "ResizeImageMaskNode" + }, + "widgets_values": [ + "scale longer dimension", + 1536, + "lanczos" + ] + }, + { + "id": 4010, + "type": "LTXVAudioVAELoader", + "pos": [ + -4655.010641467211, + 3122.9236915172387 + ], + "size": [ + 384.6576773713696, + 79.30435270514249 + ], + "flags": {}, + "order": 9, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "Audio VAE", + "type": "VAE", + "links": [ + 13274, + 13275 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.64", + "Node name for S&R": "LTXVAudioVAELoader" + }, + "widgets_values": [ + "ltx-2.3-22b-dev.safetensors" + ] + }, + { + "id": 3940, + "type": "CheckpointLoaderSimple", + "pos": [ + -4648.711127852091, + 3261.3436773800554 + ], + "size": [ + 383.4002295473938, + 108.51948797992713 + ], + "flags": {}, + "order": 10, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 13217 + ] + }, + { + "name": "CLIP", + "type": "CLIP", + "links": [] + }, + { + "name": "VAE", + "type": "VAE", + "links": [ + 13279, + 13346, + 13347, + 13422 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.56", + "Node name for S&R": "CheckpointLoaderSimple" + }, + "widgets_values": [ + "ltx-2.3-22b-dev.safetensors" + ] + }, + { + "id": 4922, + "type": "LoraLoaderModelOnly", + "pos": [ + -4204.024401614721, + 3261.100838617218 + ], + "size": [ + 454.14193097539646, + 128.44311555561626 + ], + "flags": {}, + "order": 21, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 13217 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 13270, + 13352 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.14.1", + "Node name for S&R": "LoraLoaderModelOnly" + }, + "widgets_values": [ + "ltxv/ltx2/ltx-2.3-22b-distilled-lora-384-1.1.safetensors", + 0.5 + ] + }, { "id": 4974, "type": "LatentUpscaleModelLoader", @@ -1356,7 +1290,7 @@ 69.37478000918873 ], "flags": {}, - "order": 10, + "order": 11, "mode": 0, "inputs": [], "outputs": [ @@ -1374,7 +1308,43 @@ "Node name for S&R": "LatentUpscaleModelLoader" }, "widgets_values": [ - "ltx-2.3-spatial-upscaler-x2-1.0.safetensors" + "ltx-2.3-spatial-upscaler-x2-1.1.safetensors" + ] + }, + { + "id": 4982, + "type": "LTXAVTextEncoderLoader", + "pos": [ + -3616.529586587242, + 3452.368379629139 + ], + "size": [ + 318.444921875, + 122 + ], + "flags": {}, + "order": 12, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "CLIP", + "type": "CLIP", + "links": [ + 13368, + 13369 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.14.1", + "Node name for S&R": "LTXAVTextEncoderLoader" + }, + "widgets_values": [ + "comfy_gemma_3_12B_it.safetensors", + "ltx-2.3-22b-dev.safetensors", + "default" ] }, { @@ -1382,14 +1352,14 @@ "type": "LTXVSeparateAVLatent", "pos": [ -976.1182418849571, - 3297.1053739563445 + 3340.6029343996825 ], "size": [ 193.2916015625, 46 ], "flags": {}, - "order": 31, + "order": 33, "mode": 0, "inputs": [ { @@ -1433,7 +1403,7 @@ 46 ], "flags": {}, - "order": 36, + "order": 38, "mode": 0, "inputs": [ { @@ -1447,14 +1417,14 @@ "name": "video_latent", "type": "LATENT", "links": [ - 13382 + 13421 ] }, { "name": "audio_latent", "type": "LATENT", "links": [ - 13383 + 13406 ] } ], @@ -1466,115 +1436,98 @@ "widgets_values": [] }, { - "id": 2004, - "type": "LoadImage", + "id": 4848, + "type": "LTXVAudioVAEDecode", "pos": [ - -4339.520366567158, - 3508.6843590474864 + 707.1096368591906, + 3416.9624911399783 ], "size": [ - 274.080078125, - 314.000244140625 + 242.46932983398438, + 46 ], "flags": {}, - "order": 11, + "order": 40, "mode": 0, - "inputs": [], - "outputs": [ + "inputs": [ { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 11002, - 13394 - ] + "name": "samples", + "type": "LATENT", + "link": 13406 }, { - "name": "MASK", - "type": "MASK", - "links": [] + "name": "audio_vae", + "type": "VAE", + "link": 13275 + } + ], + "outputs": [ + { + "name": "Audio", + "type": "AUDIO", + "links": [ + 13108 + ] } ], "properties": { "cnr_id": "comfy-core", - "ver": "0.3.56", - "Node name for S&R": "LoadImage" + "ver": "0.3.64", + "Node name for S&R": "LTXVAudioVAEDecode" }, - "widgets_values": [ - "example.png", - "image" - ] + "widgets_values": [] }, { - "id": 4989, - "type": "PrimitiveFloat", + "id": 4849, + "type": "CreateVideo", "pos": [ - -3152.1276183269097, - 3984.2067549396024 + 1025.2676127789377, + 3160.0518639357665 ], "size": [ 270, - 58 + 102 ], "flags": {}, - "order": 12, + "order": 41, "mode": 0, - "inputs": [], - "outputs": [ + "inputs": [ { - "name": "FLOAT", + "name": "images", + "type": "IMAGE", + "link": 13420 + }, + { + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": 13108 + }, + { + "name": "fps", "type": "FLOAT", - "links": [ - 13391, - 13392, - 13393 - ] + "widget": { + "name": "fps" + }, + "link": 13392 } ], - "title": "fps", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.16.0", - "Node name for S&R": "PrimitiveFloat" - }, - "widgets_values": [ - 24 - ] - }, - { - "id": 4988, - "type": "PrimitiveInt", - "pos": [ - -2818.760822457342, - 3891.612150182899 - ], - "size": [ - 270, - 82 - ], - "flags": {}, - "order": 13, - "mode": 0, - "inputs": [], "outputs": [ { - "name": "INT", - "type": "INT", + "name": "VIDEO", + "type": "VIDEO", "links": [ - 13389, - 13390 + 13112 ] } ], - "title": "number of frames", "properties": { "cnr_id": "comfy-core", - "ver": "0.16.0", - "Node name for S&R": "PrimitiveInt" + "ver": "0.14.1", + "Node name for S&R": "CreateVideo" }, "widgets_values": [ - 121, - "fixed" + 30 ] }, { @@ -1589,7 +1542,7 @@ 506.3562313794205 ], "flags": {}, - "order": 40, + "order": 42, "mode": 0, "inputs": [ { @@ -1610,39 +1563,97 @@ ] }, { - "id": 4987, - "type": "PrimitiveBoolean", + "id": 4995, + "type": "LTXVTiledVAEDecode", "pos": [ - -4031.3167505882293, - 3762.482778928455 + 700.0113350797858, + 3161.86334072555 ], "size": [ - 270, - 58 + 267.6441352715875, + 198 + ], + "flags": {}, + "order": 39, + "mode": 0, + "inputs": [ + { + "name": "vae", + "type": "VAE", + "link": 13422 + }, + { + "name": "latents", + "type": "LATENT", + "link": 13421 + } + ], + "outputs": [ + { + "name": "image", + "type": "IMAGE", + "links": [ + 13420 + ] + } + ], + "properties": { + "Node name for S&R": "LTXVTiledVAEDecode" + }, + "widgets_values": [ + 2, + 2, + 6, + false, + "auto", + "auto" + ] + }, + { + "id": 4999, + "type": "Note", + "pos": [ + -1229.2588304733188, + 3495.319307488536 + ], + "size": [ + 222.81278386605618, + 88 + ], + "flags": {}, + "order": 13, + "mode": 0, + "inputs": [], + "outputs": [], + "properties": {}, + "widgets_values": [ + "Do explore various samplers and cfg values (although we advise them to be kept close to 1)" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 4997, + "type": "Note", + "pos": [ + 701.8056303092399, + 2959.9058362327496 + ], + "size": [ + 242.444556528573, + 102.13331675122572 ], "flags": {}, "order": 14, "mode": 0, "inputs": [], - "outputs": [ - { - "name": "BOOLEAN", - "type": "BOOLEAN", - "links": [ - 13387, - 13388 - ] - } - ], - "title": "bypass_i2v", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.16.0", - "Node name for S&R": "PrimitiveBoolean" - }, + "outputs": [], + "properties": {}, "widgets_values": [ - true - ] + "Make sure to adjust the number of tiles and overlap to fit your hardware.\n(fewer tiles will result in faster execution, but will require more memory) " + ], + "color": "#432", + "bgcolor": "#653" }, { "id": 2483, @@ -1656,7 +1667,7 @@ 204.2556610107422 ], "flags": {}, - "order": 18, + "order": 22, "mode": 0, "inputs": [ { @@ -1688,87 +1699,120 @@ "bgcolor": "#353" }, { - "id": 4981, - "type": "GemmaAPITextEncode", + "id": 2004, + "type": "LoadImage", "pos": [ - -3072.6921705697514, - 3243.4542361026756 + -4339.520366567158, + 3508.6843590474864 ], "size": [ - 337.49481491927054, - 160 + 274.080078125, + 314.000244140625 ], "flags": {}, - "order": 17, - "mode": 4, - "inputs": [ - { - "name": "api_key", - "type": "STRING", - "widget": { - "name": "api_key" - }, - "link": 13367 - } - ], - "outputs": [ - { - "name": "conditioning", - "type": "CONDITIONING", - "links": null - } - ], - "title": "🅛🅣🅧 Gemma API Text Encode - NEGATIVE", - "properties": { - "Node name for S&R": "GemmaAPITextEncode" - }, - "widgets_values": [ - "", - "pc game, console game, video game, cartoon, childish, ugly", - false, - "ltx-2.3-22b-dev.safetensors" - ] - }, - { - "id": 4990, - "type": "ResizeImageMaskNode", - "pos": [ - -4034.1483284692663, - 3511.4994332371434 - ], - "size": [ - 270, - 106 - ], - "flags": {}, - "order": 20, + "order": 15, "mode": 0, - "inputs": [ - { - "name": "input", - "type": "IMAGE,MASK", - "link": 13394 - } - ], + "inputs": [], "outputs": [ { - "name": "resized", + "name": "IMAGE", "type": "IMAGE", "links": [ - 13395, - 13396 + 11002, + 13394 ] + }, + { + "name": "MASK", + "type": "MASK", + "links": [] } ], "properties": { "cnr_id": "comfy-core", - "ver": "0.16.0", - "Node name for S&R": "ResizeImageMaskNode" + "ver": "0.3.56", + "Node name for S&R": "LoadImage" }, "widgets_values": [ - "scale longer dimension", - 1536, - "lanczos" + "example.png", + "image" + ] + }, + { + "id": 4987, + "type": "PrimitiveBoolean", + "pos": [ + -4031.3167505882293, + 3762.482778928455 + ], + "size": [ + 270, + 58 + ], + "flags": {}, + "order": 16, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "BOOLEAN", + "type": "BOOLEAN", + "links": [ + 13387, + 13388 + ] + } + ], + "title": "bypass_i2v", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.16.0", + "Node name for S&R": "PrimitiveBoolean" + }, + "widgets_values": [ + true + ] + }, + { + "id": 5000, + "type": "LTXFloatToInt", + "pos": [ + -2479.839240504694, + 3699.6873486876134 + ], + "size": [ + 270.1809911778764, + 58 + ], + "flags": { + "collapsed": true + }, + "order": 19, + "mode": 0, + "inputs": [ + { + "name": "a", + "type": "FLOAT", + "widget": { + "name": "a" + }, + "link": 13423 + } + ], + "outputs": [ + { + "name": "INT", + "type": "INT", + "links": [ + 13424 + ] + } + ], + "properties": { + "Node name for S&R": "LTXFloatToInt" + }, + "widgets_values": [ + 0 ] } ], @@ -1853,14 +1897,6 @@ 0, "NOISE" ], - [ - 13107, - 4851, - 0, - 4849, - 0, - "IMAGE" - ], [ 13108, 4848, @@ -2021,14 +2057,6 @@ 2, "VAE" ], - [ - 13348, - 3940, - 2, - 4851, - 1, - "VAE" - ], [ 13349, 4845, @@ -2109,14 +2137,6 @@ 0, "CLIP" ], - [ - 13372, - 4983, - 0, - 3980, - 2, - "INT" - ], [ 13374, 4984, @@ -2133,22 +2153,6 @@ 3, "SIGMAS" ], - [ - 13382, - 4973, - 0, - 4851, - 0, - "LATENT" - ], - [ - 13383, - 4973, - 1, - 4848, - 0, - "LATENT" - ], [ 13387, 4987, @@ -2197,14 +2201,6 @@ 2, "FLOAT" ], - [ - 13393, - 4989, - 0, - 4983, - 0, - "FLOAT" - ], [ 13394, 2004, @@ -2228,8 +2224,67 @@ 4970, 1, "IMAGE" + ], + [ + 13406, + 4973, + 1, + 4848, + 0, + "LATENT" + ], + [ + 13420, + 4995, + 0, + 4849, + 0, + "IMAGE" + ], + [ + 13421, + 4973, + 0, + 4995, + 1, + "LATENT" + ], + [ + 13422, + 3940, + 2, + 4995, + 0, + "VAE" + ], + [ + 13423, + 4989, + 0, + 5000, + 0, + "FLOAT" + ], + [ + 13424, + 5000, + 0, + 3980, + 2, + "INT" ] ], + "floatingLinks": [ + { + "id": 3, + "origin_id": 3940, + "origin_slot": 2, + "target_id": -1, + "target_slot": -1, + "type": "VAE", + "parentId": 50 + } + ], "groups": [ { "id": 54, @@ -2247,10 +2302,10 @@ 1241, 4980, 4979, - 4982, 2612, - 2483, - 4981 + 4981, + 4982, + 2483 ] }, { @@ -2271,7 +2326,7 @@ 4528, 3159, 3336, - 4983 + 5000 ] }, { @@ -2306,9 +2361,9 @@ "font_size": 24, "flags": {}, "nodes": [ + 4990, 2004, - 4987, - 4990 + 4987 ] }, { @@ -2316,9 +2371,9 @@ "title": "Generate Low Resolution", "bounding": [ -1610.4177305123035, - 3121.160512128168, - 842.7884060863674, - 683.0021825460141 + 3164.658072571506, + 837.5910901898463, + 570.8147822608827 ], "color": "#b58b2a", "font_size": 24, @@ -2330,7 +2385,8 @@ 4831, 4829, 4984, - 4845 + 4845, + 4999 ] }, { @@ -2348,8 +2404,8 @@ "nodes": [ 4848, 4849, - 4851, - 4852 + 4852, + 4995 ] }, { @@ -2380,13 +2436,13 @@ "config": {}, "extra": { "ds": { - "scale": 0.6708350354041495, + "scale": 0.6906413973696358, "offset": [ - 5096.828085602879, - -2650.3117890915855 + 3157.7554599613713, + -2803.3113349104365 ] }, - "frontendVersion": "1.39.14", + "frontendVersion": "1.42.8", "VHS_latentpreview": false, "VHS_latentpreviewrate": 0, "VHS_MetadataImage": true, @@ -2513,7 +2569,7 @@ 13279, 13346, 13347, - 13348 + 13422 ] }, { @@ -2527,7 +2583,7 @@ 13279, 13346, 13347, - 13348 + 13422 ] }, { @@ -2540,7 +2596,7 @@ "linkIds": [ 13346, 13347, - 13348 + 13422 ] }, { @@ -2561,7 +2617,7 @@ ], "linkIds": [ 13392, - 13393 + 13423 ] }, { @@ -2613,8 +2669,8 @@ { "id": 33, "pos": [ - -1643.4291815735385, - 3088.6246806014137 + -1648.2331290120594, + 3125.553934728809 ], "linkIds": [ 13302 @@ -2624,8 +2680,8 @@ "id": 34, "parentId": 33, "pos": [ - -1303.9256586080094, - 3086.9515649623418 + -1289.333304328089, + 3123.8924650229233 ], "linkIds": [ 13302 @@ -2715,8 +2771,11 @@ 2698.393757442232 ], "linkIds": [ - 13348 - ] + 13422 + ], + "floating": { + "slotType": "output" + } }, { "id": 51, @@ -2791,7 +2850,6 @@ ], "linkIds": [ 13347, - 13348, 13349 ] } @@ -2837,10 +2895,6 @@ "id": 13347, "parentId": 49 }, - { - "id": 13348, - "parentId": 50 - }, { "id": 13349, "parentId": 52 @@ -2873,10 +2927,6 @@ "id": 13392, "parentId": 43 }, - { - "id": 13393, - "parentId": 23 - }, { "id": 13395, "parentId": 5 @@ -2884,6 +2934,14 @@ { "id": 13396, "parentId": 47 + }, + { + "id": 13422, + "parentId": 50 + }, + { + "id": 13423, + "parentId": 23 } ] }, diff --git a/pyramid_blending.py b/pyramid_blending.py new file mode 100644 index 0000000..afc4bac --- /dev/null +++ b/pyramid_blending.py @@ -0,0 +1,267 @@ +import math + +import comfy.model_management +import torch +import torch.nn.functional as F +from comfy_api.latest import io +from kornia.geometry.transform.pyramid import ( + PyrUp, + build_laplacian_pyramid, + build_pyramid, + find_next_powerof_two, + is_powerof_two, + pad, +) +from torch import Tensor + +from .nodes_registry import comfy_node + +_CHUNK_SIZE = 8 +_MASK_LOW_RES_LONG_SIDE = 64 + + +def _pad_for_laplacian(image: torch.Tensor) -> tuple[torch.Tensor, tuple[int, int]]: + """Pad an image tensor so H and W are powers of two (kornia requirement).""" + h, w = image.shape[2], image.shape[3] + pad_right = 0 + pad_down = 0 + if not (is_powerof_two(h) and is_powerof_two(w)): + pad_right = find_next_powerof_two(w) - w + pad_down = find_next_powerof_two(h) - h + image = pad(image, (0, pad_right, 0, pad_down), "reflect") + return image, (pad_right, pad_down) + + +def _gaussian_pyramid( + images: torch.Tensor, + max_level: int, + border_type: str = "reflect", + align_corners: bool = False, +) -> list[Tensor]: + h, w = images.shape[2], images.shape[3] + if not (is_powerof_two(w) and is_powerof_two(h)): + padding = (0, find_next_powerof_two(w) - w, 0, find_next_powerof_two(h) - h) + images = pad(images, padding, border_type) + return build_pyramid(images, max_level, border_type, align_corners) + + +def _resize_preserving_aspect_ratio( + images: torch.Tensor, long_side: int, mode: str +) -> torch.Tensor: + h, w = images.shape[-2:] + current_long_side = max(h, w) + if current_long_side == long_side: + return images + + scale = long_side / current_long_side + resized_h = max(1, int(round(h * scale))) + resized_w = max(1, int(round(w * scale))) + + if mode == "nearest": + return F.interpolate(images, size=(resized_h, resized_w), mode=mode) + + return F.interpolate( + images, + size=(resized_h, resized_w), + mode=mode, + align_corners=False, + ) + + +def _apply_low_res_mask_dilation( + mask: torch.Tensor, + spatial_radius: int, + long_side: int = _MASK_LOW_RES_LONG_SIDE, +) -> torch.Tensor: + if spatial_radius <= 0: + return mask + + original_size = mask.shape[-2:] + mask_low_res = _resize_preserving_aspect_ratio( + mask.float(), long_side, mode="bilinear" + ) + mask_low_res = F.max_pool2d( + mask_low_res, + kernel_size=spatial_radius * 2 + 1, + stride=1, + padding=spatial_radius, + ) + return F.interpolate( + mask_low_res, + size=original_size, + mode="bilinear", + align_corners=False, + ) + + +def _pyramid_blend_chunk( + image1: torch.Tensor, + image2: torch.Tensor, + mask: torch.Tensor, + max_level: int = 7, +) -> torch.Tensor: + """Blend a single chunk (already padded, already on device).""" + pyramid1 = build_laplacian_pyramid(image1, max_level=max_level) + pyramid2 = build_laplacian_pyramid(image2, max_level=max_level) + pyramid_mask = _gaussian_pyramid(mask, max_level=max_level) + pyr_up = PyrUp() + + output = pyramid1[-1] * pyramid_mask[-1] + pyramid2[-1] * (1 - pyramid_mask[-1]) + for i in range(len(pyramid1) - 2, -1, -1): + residual = pyramid1[i] * pyramid_mask[i] + pyramid2[i] * (1 - pyramid_mask[i]) + output = pyr_up(output) + residual + + return output + + +def _pyramid_blend( + image1: torch.Tensor, + image2: torch.Tensor, + mask: torch.Tensor, + max_level: int = 7, + device: torch.device | None = None, + output_device: torch.device | None = None, +) -> torch.Tensor: + if image1.shape != image2.shape: + raise ValueError( + f"input images must have the same size, {image1.shape} != {image2.shape}" + ) + if image1.shape[0] != mask.shape[0]: + raise ValueError( + "image_a, image_b, and mask must have the same frame count for blending" + ) + if image1.shape[-2:] != mask.shape[-2:]: + raise ValueError( + "image_a, image_b, and mask must have the same spatial resolution for blending" + ) + + _, padding = _pad_for_laplacian(image1[:1]) + orig_h, orig_w = image1.shape[-2], image1.shape[-1] + padded_min = min(orig_h + padding[1], orig_w + padding[0]) + max_level = min(max_level, int(math.log2(padded_min))) + + if any(padding): + mask = torch.nn.functional.pad( + mask, (0, padding[0], 0, padding[1]), mode="reflect" + ) + + B = image1.shape[0] + results = [] + + for start in range(0, B, _CHUNK_SIZE): + end = min(start + _CHUNK_SIZE, B) + + img1_chunk, _ = _pad_for_laplacian(image1[start:end]) + img2_chunk, _ = _pad_for_laplacian(image2[start:end]) + mask_chunk = mask[start:end] + + if device is not None: + img1_chunk = img1_chunk.to(device) + img2_chunk = img2_chunk.to(device) + mask_chunk = mask_chunk.to(device) + + out_chunk = _pyramid_blend_chunk( + img1_chunk, img2_chunk, mask_chunk, max_level=max_level + ) + cropped = out_chunk[..., :orig_h, :orig_w].clamp(0, 1) + results.append( + cropped.to(output_device) if output_device is not None else cropped + ) + + return torch.cat(results, dim=0) + + +@comfy_node( + name="LTXVLaplacianPyramidBlend", + description="LTX Laplacian Pyramid Blend", +) +class LTXVLaplacianPyramidBlend(io.ComfyNode): + """Blend two images seamlessly using Laplacian pyramid blending with a mask.""" + + @classmethod + def define_schema(cls): + return io.Schema( + node_id="LTXVLaplacianPyramidBlend", + category="Lightricks/utility", + description="Blend two images seamlessly using Laplacian pyramid blending.", + inputs=[ + io.Image.Input( + "image_a", + tooltip="First source image.", + ), + io.Image.Input( + "image_b", + tooltip="Second source image.", + ), + io.Mask.Input( + "mask", + tooltip="Blend mask (white = image_a, black = image_b).", + ), + io.Boolean.Input( + "trim_to_shortest", + default=True, + tooltip="Trim image_a, image_b, and mask to the shortest sequence length before blending.", + ), + io.Int.Input( + "mask_low_res_dilation", + default=5, + min=0, + max=15, + tooltip="Downscale the mask to long side 64, dilate it spatially, then resize it back before blending.", + ), + ], + outputs=[ + io.Image.Output("image"), + ], + ) + + @classmethod + def execute( + cls, + image_a: torch.Tensor, + image_b: torch.Tensor, + mask: torch.Tensor, + trim_to_shortest: bool, + mask_low_res_dilation: int, + ) -> io.NodeOutput: + device = comfy.model_management.get_torch_device() + + if mask.ndim == 4: + mask = mask[:, :, :, 0] + if mask.ndim == 2: + mask = mask.unsqueeze(0) + + if image_a.shape[1:3] != image_b.shape[1:3]: + raise ValueError( + "image_a and image_b must have the same spatial resolution" + ) + if image_a.shape[1:3] != mask.shape[1:3]: + raise ValueError( + "image_a, image_b, and mask must have the same spatial resolution" + ) + + if trim_to_shortest: + shortest = min(image_a.shape[0], image_b.shape[0], mask.shape[0]) + image_a = image_a[:shortest] + image_b = image_b[:shortest] + mask = mask[:shortest] + elif not (image_a.shape[0] == image_b.shape[0] == mask.shape[0]): + raise ValueError( + "image_a, image_b, and mask must have the same frame count unless trim_to_shortest is enabled" + ) + + original = image_a.permute(0, 3, 1, 2) + target = image_b.permute(0, 3, 1, 2) + mask_4d = mask.unsqueeze(1).float() + mask_4d = _apply_low_res_mask_dilation(mask_4d, mask_low_res_dilation) + + result = _pyramid_blend( + original, + target, + mask_4d, + max_level=7, + device=device, + output_device=comfy.model_management.intermediate_device(), + ) + + return io.NodeOutput(result.permute(0, 2, 3, 1)) diff --git a/requirements.txt b/requirements.txt index 5649927..ec5155a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,6 @@ diffusers einops huggingface_hub>=0.25.2 +kornia ninja~=1.11.1.4 transformers[timm]>=4.50.0 diff --git a/utiltily_nodes.py b/utiltily_nodes.py index f5434a9..8428b86 100644 --- a/utiltily_nodes.py +++ b/utiltily_nodes.py @@ -35,6 +35,20 @@ def _build_av_meta(video_latent: dict, audio_latent: dict) -> dict: } +@comfy_node(name="LTXFloatToInt", description="Float To Int") +class FloatToInt: + @classmethod + def INPUT_TYPES(cls): + return {"required": {"a": ("FLOAT", {"default": 0.0})}} + + RETURN_TYPES = ("INT",) + FUNCTION = "op" + CATEGORY = "math/conversion" + + def op(self, a: float) -> tuple[int]: + return (round(a),) + + @comfy_node(description="Image to CPU") class ImageToCPU: @classmethod