From b7a8a2cfc2a5517442b3989c0d9d6beca8b05cb9 Mon Sep 17 00:00:00 2001 From: sync-bot Date: Wed, 7 Jan 2026 06:04:51 +0000 Subject: [PATCH] Automated PR - 2026-01-07 --- README.md | 10 +- __init__.py | 2 - embeddings_connector.py | 3 +- .../LTX-2_I2V_Distilled_wLora.json | 500 ++--- example_workflows/LTX-2_I2V_Full_wLora.json | 954 +++++---- .../LTX-2_ICLoRA_All_Distilled.json | 1882 +++++++++-------- .../LTX-2_T2V_Distilled_wLora.json | 326 +-- example_workflows/LTX-2_T2V_Full_wLora.json | 675 +++--- example_workflows/LTX-2_V2V_Detailer.json | 306 ++- gemma_encoder_mgpu_loader.py | 297 --- requirements.txt | 1 - 11 files changed, 2382 insertions(+), 2574 deletions(-) delete mode 100644 gemma_encoder_mgpu_loader.py diff --git a/README.md b/README.md index 26b1b9e..e01d917 100644 --- a/README.md +++ b/README.md @@ -64,17 +64,17 @@ Download the following models: * [`ltx-2-19b-dev.safetensors`](https://huggingface.co/Lightricks/LTX-2/blob/main/ltx-2-19b-dev.safetensors) * [`ltx-2-19b-distilled.safetensors`](https://huggingface.co/Lightricks/LTX-2/blob/main/ltx-2-19b-distilled.safetensors) -**Spatial Upsampler** - Required for current two-stage pipeline implementations in this repository - * [`ltx-2-spatial-upsampler-x2-1.0.safetensors`](https://huggingface.co/Lightricks/LTX-2/blob/main/ltx-2-spatial-upsampler-x2-1.0.safetensors) +**Spatial Upscaler** - Required for current two-stage pipeline implementations in this repository + * [`ltx-2-spatial-upscaler-x2-1.0.safetensors`](https://huggingface.co/Lightricks/LTX-2/blob/main/ltx-2-spatial-upscaler-x2-1.0.safetensors) -**Temporal Upsampler** - Required for current two-stage pipeline implementations in this repository - * [`ltx-2-temporal-upsampler-x2-1.0.safetensors`](https://huggingface.co/Lightricks/LTX-2/blob/main/ltx-2-temporal-upsampler-x2-1.0.safetensors) +**Temporal Upscaler** - Required for current two-stage pipeline implementations in this repository + * [`ltx-2-temporal-upscaler-x2-1.0.safetensors`](https://huggingface.co/Lightricks/LTX-2/blob/main/ltx-2-temporal-upscaler-x2-1.0.safetensors) **Distilled LoRA** - Required for current two-stage pipeline implementations in this repository (except DistilledPipeline and ICLoraPipeline) * [`ltx-2-19b-distilled-lora-384.safetensors`](https://huggingface.co/Lightricks/LTX-2/blob/main/ltx-2-19b-distilled-lora-384.safetensors) **Gemma Text Encoder** (download all assets from the repository) - * [`Gemma 3`](https://huggingface.co/google/gemma-3-12b-it-qat-q4_0-unquantized/) + * [`Gemma 3`](https://huggingface.co/google/gemma-3-12b-it-qat-q4_0-unquantized) **LoRAs** * [`ltx-2-19b-ic-lora-canny-control.safetensors`](https://huggingface.co/Lightricks/LTX-2-19b-IC-LoRA-Canny-Control/blob/main/ltx-2-19b-ic-lora-canny-control.safetensors) diff --git a/__init__.py b/__init__.py index 03e8411..dfef2de 100644 --- a/__init__.py +++ b/__init__.py @@ -7,7 +7,6 @@ from .easy_samplers import ( LTXVInContextSampler, ) from .gemma_encoder import LTXVGemmaCLIPModelLoader, LTXVGemmaEnhancePrompt -from .gemma_encoder_mgpu_loader import LTXVGemmaCLIPModelLoaderMGPU from .guide import LTXVAddGuideAdvanced from .guiders import GuiderParametersNode, MultimodalGuiderNode from .latent_norm import ( @@ -83,7 +82,6 @@ NODE_CLASS_MAPPINGS = { "LTXVStatNormLatent": LTXVStatNormLatent, "LTXVPerStepStatNormPatcher": LTXVPerStepStatNormPatcher, "LTXVGemmaCLIPModelLoader": LTXVGemmaCLIPModelLoader, - "LTXVGemmaCLIPModelLoaderMGPU": LTXVGemmaCLIPModelLoaderMGPU, "LTXVGemmaEnhancePrompt": LTXVGemmaEnhancePrompt, "DynamicConditioning": DynamicConditioning, "LowVRAMCheckpointLoader": LowVRAMCheckpointLoader, diff --git a/embeddings_connector.py b/embeddings_connector.py index 9465fb4..f3e45bb 100644 --- a/embeddings_connector.py +++ b/embeddings_connector.py @@ -284,7 +284,8 @@ class Embeddings1DConnector(nn.Module): ) learnable_registers = torch.tile( self.learnable_registers, (num_registers_duplications, 1) - ) + ).to(hidden_states.device) + attention_mask_binary = ( attention_mask.squeeze(1).squeeze(1).unsqueeze(-1) >= -9000.0 ).int() diff --git a/example_workflows/LTX-2_I2V_Distilled_wLora.json b/example_workflows/LTX-2_I2V_Distilled_wLora.json index 323808e..6075a08 100644 --- a/example_workflows/LTX-2_I2V_Distilled_wLora.json +++ b/example_workflows/LTX-2_I2V_Distilled_wLora.json @@ -283,44 +283,6 @@ "ltx-2-19b-distilled.safetensors" ] }, - { - "id": 5178, - "type": "LTXVGemmaCLIPModelLoader", - "pos": [ - -3158.5490398695288, - 7158.821506282883 - ], - "size": [ - 421.93656760943577, - 106 - ], - "flags": {}, - "order": 4, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "clip", - "type": "CLIP", - "links": [ - 13924, - 13926 - ] - } - ], - "properties": { - "Node name for S&R": "LTXVGemmaCLIPModelLoader", - "widget_ue_connectable": { - "model_path": true, - "max_length": true - } - }, - "widgets_values": [ - "gemma-3-12b-it-qat-q4_0-unquantized/model-00001-of-00005.safetensors", - "ltx-2-19b-distilled.safetensors", - 1024 - ] - }, { "id": 5188, "type": "LTXVAudioVAELoader", @@ -333,7 +295,7 @@ 58 ], "flags": {}, - "order": 5, + "order": 4, "mode": 0, "inputs": [], "outputs": [ @@ -561,7 +523,7 @@ 58 ], "flags": {}, - "order": 6, + "order": 5, "mode": 0, "inputs": [], "outputs": [ @@ -582,58 +544,6 @@ "ltx-2-spatial-upscaler-x2-1.0.safetensors" ] }, - { - "id": 5212, - "type": "MarkdownNote", - "pos": [ - -3624.6205106722414, - 6715.620851300959 - ], - "size": [ - 421.1303542521987, - 436.3332627074051 - ], - "flags": { - "collapsed": false - }, - "order": 7, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "Model Links", - "properties": {}, - "widgets_values": [ - "## Model Links\n\n**LTX-2 Model Weights**\n\n- [ltx-2-19b-distilled.safetensors](https://huggingface.co/Lightricks/LTX-2/resolve/main/ltx-2-19b-distilled.safetensors)\n- [ ltx-2-spatial-upscaler-x2-1.0.safetensors ](https://huggingface.co/Lightricks/LTX-2/tree/main/ltx-2-spatial-upscaler-x2-1.0.safetensors)\n\n**Text Encoder**\n- [Google Gemma 3](https://huggingface.co/google/gemma-3-12b-pt)\n\n**Model Storage Location**\n\n```\nπŸ“‚ ComfyUI/\nβ”œβ”€β”€ πŸ“‚ models/\nβ”‚ β”œβ”€β”€ πŸ“‚ text_encoders/\nβ”‚ β”‚ β”œβ”€β”€ comfy_gemma_3_12B_it.safetensors\nβ”‚ β”œβ”€β”€ πŸ“‚ checkpoints/\nβ”‚ β”‚ └── ltx-2-19b-distilled.safetensors\nβ”‚ β”œβ”€β”€ πŸ“‚ latent_upscale_models/ \n └── ltx-2-spatial-upscaler-x2-1.0.safetensors\n```\n\n## Report Issues\nTo report any issues when running this workflow, [go to GitHub](https://github.com/Lightricks/ComfyUI-LTXVideo/issues)\n" - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 5211, - "type": "MarkdownNote", - "pos": [ - -3623.5618947453854, - 7193.231548656596 - ], - "size": [ - 420.9178919734818, - 209.33158232705227 - ], - "flags": { - "collapsed": false - }, - "order": 8, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "Prompting LTX-2", - "properties": {}, - "widgets_values": [ - "## LTX-2 Prompting Tips\n1. **Core Actions**: Describe events and actions as they occur over time \n2. **Audio**: Describe sounds and dialogue needed for the scene \n3. **Reference Image**: Do not repeat details already present \n4. **Consistency**: Avoid instructions that do not match the reference image, as this will degrade results" - ], - "color": "#432", - "bgcolor": "#653" - }, { "id": 5213, "type": "MarkdownNote", @@ -648,7 +558,7 @@ "flags": { "collapsed": false }, - "order": 9, + "order": 6, "mode": 0, "inputs": [], "outputs": [], @@ -674,7 +584,7 @@ "flags": { "collapsed": false }, - "order": 10, + "order": 7, "mode": 0, "inputs": [], "outputs": [], @@ -745,6 +655,120 @@ "randomize" ] }, + { + "id": 5178, + "type": "LTXVGemmaCLIPModelLoader", + "pos": [ + -3158.5490398695288, + 7158.821506282883 + ], + "size": [ + 421.93656760943577, + 106 + ], + "flags": {}, + "order": 8, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "clip", + "type": "CLIP", + "links": [ + 13924, + 13926 + ] + } + ], + "properties": { + "Node name for S&R": "LTXVGemmaCLIPModelLoader", + "widget_ue_connectable": { + "model_path": true, + "max_length": true + } + }, + "widgets_values": [ + "gemma-3-12b-it-qat-q4_0-unquantized/model-00001-of-00005.safetensors", + "ltx-2-19b-distilled.safetensors", + 1024 + ] + }, + { + "id": 5175, + "type": "PrimitiveStringMultiline", + "pos": [ + -1990.592849503922, + 6831.482572842548 + ], + "size": [ + 281.93625497178095, + 424.68799816112823 + ], + "flags": {}, + "order": 9, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "STRING", + "type": "STRING", + "links": [ + 13928 + ] + } + ], + "title": "Positive Prompt", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.5.1", + "Node name for S&R": "PrimitiveStringMultiline" + }, + "widgets_values": [ + "a 3d animated movie scene shows the wise elderly owl on the left saying to a baby owl to his right, with a raspy deep voice: \"focus, close your eyes, and flap!\". we then see the little owl jump off the branch screaming in fear and disappear. the the elder owl remains standing on the branch with a disappointed face. the camera remains static in place" + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 5180, + "type": "LoadImage", + "pos": [ + -2403.4019881614336, + 6835.8261958245885 + ], + "size": [ + 395.509854028056, + 433.14022877831576 + ], + "flags": {}, + "order": 10, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 13927, + 13940 + ] + }, + { + "name": "MASK", + "type": "MASK", + "links": [] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.56", + "Node name for S&R": "LoadImage" + }, + "widgets_values": [ + "distilled image.png", + "image" + ] + }, { "id": 5189, "type": "3eaa20c4-5842-4fe4-87df-c0a7e83a6a78", @@ -899,80 +923,56 @@ ] }, { - "id": 5175, - "type": "PrimitiveStringMultiline", + "id": 5211, + "type": "MarkdownNote", "pos": [ - -1990.592849503922, - 6831.482572842548 + -3620.0939157608577, + 7287.881055902407 ], "size": [ - 281.93625497178095, - 424.68799816112823 + 420.9178919734818, + 209.33158232705227 ], - "flags": {}, + "flags": { + "collapsed": false + }, "order": 11, "mode": 0, "inputs": [], - "outputs": [ - { - "name": "STRING", - "type": "STRING", - "links": [ - 13928 - ] - } - ], - "title": "Positive Prompt", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.5.1", - "Node name for S&R": "PrimitiveStringMultiline" - }, + "outputs": [], + "title": "Prompting LTX-2", + "properties": {}, "widgets_values": [ - "a 3d animated movie scene shows the wise elderly owl on the left saying to a baby owl to his right, with a raspy deep voice: \"focus, close your eyes, and flap!\". we then see the little owl jump off the branch screaming in fear and disappear. the the elder owl remains standing on the branch with a disappointed face. the camera remains static in place" + "## LTX-2 Prompting Tips\n1. **Core Actions**: Describe events and actions as they occur over time \n2. **Audio**: Describe sounds and dialogue needed for the scene \n3. **Reference Image**: Do not repeat details already present \n4. **Consistency**: Avoid instructions that do not match the reference image, as this will degrade results" ], - "color": "#232", - "bgcolor": "#353" + "color": "#432", + "bgcolor": "#653" }, { - "id": 5180, - "type": "LoadImage", + "id": 5212, + "type": "MarkdownNote", "pos": [ - -2403.4019881614336, - 6835.8261958245885 + -3627.789651297241, + 6716.012179425959 ], "size": [ - 395.509854028056, - 433.14022877831576 + 427.8617596510994, + 529.3430202216196 ], - "flags": {}, + "flags": { + "collapsed": false + }, "order": 12, "mode": 0, "inputs": [], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 13927, - 13940 - ] - }, - { - "name": "MASK", - "type": "MASK", - "links": [] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.56", - "Node name for S&R": "LoadImage" - }, + "outputs": [], + "title": "Model Links", + "properties": {}, "widgets_values": [ - "distilled image.png", - "image" - ] + "## Model Links\n\n**LTX-2 Model Weights**\n\n- [ltx-2-19b-distilled.safetensors](https://huggingface.co/Lightricks/LTX-2/resolve/main/ltx-2-19b-distilled.safetensors)\n- [ ltx-2-spatial-upscaler-x2-1.0.safetensors ](https://huggingface.co/Lightricks/LTX-2/resolve/main/ltx-2-spatial-upscaler-x2-1.0.safetensors)\n\n**Text Encoder**\n- [Google Gemma 3](https://huggingface.co/google/gemma-3-12b-it-qat-q4_0-unquantized)\n\nPlease download the entire folder - \n\n- Run: \n 1. cd models/text_encoders\n 2. git clone https://huggingface.co/google/gemma-3-12b-it-qat-q4_0-unquantized\n\n*Full documentation can be found [here](https://docs.ltx.video/open-source-model/integration-tools/comfy-ui#text-encoder)\n\n\n**Model Storage Location**\n\n```\nπŸ“‚ ComfyUI/\nβ”œβ”€β”€ πŸ“‚ models/\nβ”‚ β”œβ”€β”€ πŸ“‚ text_encoders/\nβ”‚ β”‚ β”œβ”€β”€ gemma-3-12b-it-qat-q4_0-unquantized/model-00001-of-00005.safetensors\nβ”‚ β”œβ”€β”€ πŸ“‚ checkpoints/\nβ”‚ β”‚ └── ltx-2-19b-distilled.safetensors\nβ”‚ β”œβ”€β”€ πŸ“‚ latent_upscale_models/ \n └── ltx-2-spatial-upscaler-x2-1.0.safetensors\n```\n**Assets**\n- [distilled image](https://github.com/Lightricks/ComfyUI-LTXVideo/blob/master/example_workflows/assets/distilled%20image.png)\n\n## Report Issues\nTo report any issues when running this workflow, [go to GitHub](https://github.com/Lightricks/ComfyUI-LTXVideo/issues)\n" + ], + "color": "#432", + "bgcolor": "#653" } ], "links": [ @@ -1274,9 +1274,9 @@ "flags": {}, "nodes": [ 5176, - 5178, 5188, - 5210 + 5210, + 5178 ] } ], @@ -2100,58 +2100,6 @@ 1 ] }, - { - "id": 5239, - "type": "ImpactExecutionOrderController", - "pos": [ - -2153.013232660581, - 6935.750091838874 - ], - "size": [ - 254.63517702162235, - 47.506006012050875 - ], - "flags": {}, - "order": 19, - "mode": 0, - "inputs": [ - { - "localized_name": "signal", - "name": "signal", - "type": "*", - "link": 13982 - }, - { - "localized_name": "value", - "name": "value", - "type": "*", - "link": 13983 - } - ], - "outputs": [ - { - "localized_name": "signal", - "name": "signal", - "type": "*", - "links": [ - 13986, - 13987 - ] - }, - { - "localized_name": "value", - "name": "value", - "type": "*", - "links": [ - 14000 - ] - } - ], - "properties": { - "Node name for S&R": "ImpactExecutionOrderController" - }, - "widgets_values": [] - }, { "id": 5069, "type": "GetImageSize", @@ -2354,53 +2302,6 @@ "auto" ] }, - { - "id": 5111, - "type": "RandomNoise", - "pos": [ - -746.4419600673787, - 7087.4135610931135 - ], - "size": [ - 270, - 82 - ], - "flags": { - "collapsed": true - }, - "order": 14, - "mode": 0, - "inputs": [ - { - "localized_name": "noise_seed", - "name": "noise_seed", - "type": "INT", - "widget": { - "name": "noise_seed" - }, - "link": 13979 - } - ], - "outputs": [ - { - "localized_name": "NOISE", - "name": "NOISE", - "type": "NOISE", - "links": [ - 13783 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.71", - "Node name for S&R": "RandomNoise" - }, - "widgets_values": [ - 42, - "fixed" - ] - }, { "id": 5138, "type": "EmptyLTXVLatentVideo", @@ -2807,6 +2708,105 @@ 0.6, false ] + }, + { + "id": 5239, + "type": "ImpactExecutionOrderController", + "pos": [ + -2153.013232660581, + 6935.750091838874 + ], + "size": [ + 254.63517702162235, + 47.506006012050875 + ], + "flags": {}, + "order": 19, + "mode": 0, + "inputs": [ + { + "localized_name": "signal", + "name": "signal", + "type": "*", + "link": 13982 + }, + { + "localized_name": "value", + "name": "value", + "type": "*", + "link": 13983 + } + ], + "outputs": [ + { + "localized_name": "signal", + "name": "signal", + "type": "*", + "links": [ + 13986, + 13987 + ] + }, + { + "localized_name": "value", + "name": "value", + "type": "*", + "links": [ + 14000 + ] + } + ], + "properties": { + "Node name for S&R": "ImpactExecutionOrderController" + }, + "widgets_values": [] + }, + { + "id": 5111, + "type": "RandomNoise", + "pos": [ + -746.4419600673787, + 7087.4135610931135 + ], + "size": [ + 270, + 82 + ], + "flags": { + "collapsed": true + }, + "order": 14, + "mode": 0, + "inputs": [ + { + "localized_name": "noise_seed", + "name": "noise_seed", + "type": "INT", + "widget": { + "name": "noise_seed" + }, + "link": 13979 + } + ], + "outputs": [ + { + "localized_name": "NOISE", + "name": "NOISE", + "type": "NOISE", + "links": [ + 13783 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.71", + "Node name for S&R": "RandomNoise" + }, + "widgets_values": [ + 42, + "fixed" + ] } ], "groups": [ diff --git a/example_workflows/LTX-2_I2V_Full_wLora.json b/example_workflows/LTX-2_I2V_Full_wLora.json index 4b85342..63b9611 100644 --- a/example_workflows/LTX-2_I2V_Full_wLora.json +++ b/example_workflows/LTX-2_I2V_Full_wLora.json @@ -202,45 +202,6 @@ "ltx-2-19b-dev.safetensors" ] }, - { - "id": 5178, - "type": "LTXVGemmaCLIPModelLoader", - "pos": [ - -3530.572231483516, - 7128.353572103167 - ], - "size": [ - 421.93656760943577, - 106 - ], - "flags": {}, - "order": 3, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "clip", - "type": "CLIP", - "links": [ - 13924, - 13926, - 13952 - ] - } - ], - "properties": { - "Node name for S&R": "LTXVGemmaCLIPModelLoader", - "widget_ue_connectable": { - "model_path": true, - "max_length": true - } - }, - "widgets_values": [ - "gemma-3-12b-it-qat-q4_0-unquantized/model-00001-of-00005.safetensors", - "ltx-2-19b-dev.safetensors", - 1024 - ] - }, { "id": 5173, "type": "LTXVConditioning", @@ -314,7 +275,7 @@ 115.06840156250018 ], "flags": {}, - "order": 4, + "order": 3, "mode": 0, "inputs": [], "outputs": [ @@ -348,48 +309,6 @@ "ltx-2-19b-dev.safetensors" ] }, - { - "id": 5199, - "type": "LoraLoaderModelOnly", - "pos": [ - -3044.221020705583, - 6862.9289547908165 - ], - "size": [ - 216.56215979270246, - 137.56554105343366 - ], - "flags": { - "collapsed": false - }, - "order": 16, - "mode": 0, - "inputs": [ - { - "name": "model", - "type": "MODEL", - "link": 13954 - } - ], - "outputs": [ - { - "name": "MODEL", - "type": "MODEL", - "links": [ - 13955 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.68", - "Node name for S&R": "LoraLoaderModelOnly" - }, - "widgets_values": [ - "ltxv/ltx2/ltx-2-19b-distilled-lora-384.safetensors", - 0.6 - ] - }, { "id": 5182, "type": "LoraLoaderModelOnly", @@ -402,7 +321,7 @@ 82 ], "flags": {}, - "order": 15, + "order": 14, "mode": 4, "inputs": [ { @@ -516,7 +435,7 @@ "flags": { "collapsed": false }, - "order": 14, + "order": 17, "mode": 0, "inputs": [ { @@ -599,110 +518,6 @@ "color": "#232", "bgcolor": "#353" }, - { - "id": 5213, - "type": "MarkdownNote", - "pos": [ - -3993.0735339452635, - 7184.948009775131 - ], - "size": [ - 421.80023671152276, - 204.8409142517039 - ], - "flags": { - "collapsed": false - }, - "order": 5, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "Prompting LTX-2", - "properties": {}, - "widgets_values": [ - "## LTX-2 Prompting Tips\n1. **Core Actions**: Describe events and actions as they occur over time \n2. **Audio**: Describe sounds and dialogue needed for the scene \n3. **Reference Image**: Do not repeat details already present \n4. **Consistency**: Avoid instructions that do not match the reference image, as this will degrade results\n\n" - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 5214, - "type": "MarkdownNote", - "pos": [ - -3995.19689724344, - 6706.943697375089 - ], - "size": [ - 421.1303542521987, - 436.3332627074051 - ], - "flags": { - "collapsed": false - }, - "order": 6, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "Model Links", - "properties": {}, - "widgets_values": [ - "## Model Links\n\n**LTX-2 Model Weights**\n\n- [ltx-2-19b.safetensors](https://huggingface.co/Lightricks/LTX-2/resolve/main/ltx-2-19b.safetensors)\n- [ ltx-2-spatial-upscaler-x2-1.0.safetensors ](https://huggingface.co/Lightricks/LTX-2/tree/main/ltx-2-spatial-upscaler-x2-1.0.safetensors)\n\n**Text Encoder**\n- [Google Gemma 3](https://huggingface.co/google/gemma-3-12b-pt)\n\n**Model Storage Location**\n\n```\nπŸ“‚ ComfyUI/\nβ”œβ”€β”€ πŸ“‚ models/\nβ”‚ β”œβ”€β”€ πŸ“‚ text_encoders/\nβ”‚ β”‚ β”œβ”€β”€ comfy_gemma_3_12B_it.safetensors\nβ”‚ β”œβ”€β”€ πŸ“‚ checkpoints/\nβ”‚ β”‚ └── ltx-2-19b.safetensors\nβ”‚ β”œβ”€β”€ πŸ“‚ latent_upscale_models/ \n └── ltx-2-spatial-upscaler-x2-1.0.safetensors\n```\n\n## Report Issues\nTo report any issues when running this workflow, [go to GitHub](https://github.com/Lightricks/ComfyUI-LTXVideo/issues)\n" - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 5215, - "type": "MarkdownNote", - "pos": [ - -2678.84490556659, - 6636.50017724438 - ], - "size": [ - 240.16187366614236, - 98.41687371924309 - ], - "flags": { - "collapsed": false - }, - "order": 7, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "Video Size", - "properties": {}, - "widgets_values": [ - "Width & height settings must be divisible by 32 + 1. \nFrame count must be divisible by 8 + 1. \n\n\nRunning with invalid parameters **will not cause errors**. Instead, the flow will silently choose the closest valid parameters. " - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 5216, - "type": "MarkdownNote", - "pos": [ - -1976.902195401015, - 6320.914024269011 - ], - "size": [ - 469.5872194653941, - 209.10385276580928 - ], - "flags": { - "collapsed": false - }, - "order": 8, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "LoRA", - "properties": {}, - "widgets_values": [ - "# Using LoRAs\n**Ctrl + B to enable**\n\nFor the camera LoRA we recommend setting strength = 1\n\nYou can use LTX [Ready to use camera LoRAs](https://huggingface.co/collections/Lightricks/ltx-2)\n\n\n\n\nUse a second LoRa only when the details are important in the LoRa. \n\n## Training\nWe have made available a full trainer to help you to train your own LoRA. You can [find it here](https://github.com/Lightricks/LTX-2)." - ], - "color": "#432", - "bgcolor": "#653" - }, { "id": 5192, "type": "LTXVGemmaEnhancePrompt", @@ -717,7 +532,7 @@ "flags": { "collapsed": true }, - "order": 17, + "order": 16, "mode": 0, "inputs": [ { @@ -774,7 +589,7 @@ 58 ], "flags": {}, - "order": 9, + "order": 4, "mode": 0, "inputs": [], "outputs": [ @@ -807,7 +622,7 @@ 328.2067665578588 ], "flags": {}, - "order": 10, + "order": 5, "mode": 0, "inputs": [], "outputs": [ @@ -843,7 +658,7 @@ 433.14022877831576 ], "flags": {}, - "order": 11, + "order": 6, "mode": 0, "inputs": [], "outputs": [ @@ -871,6 +686,175 @@ "image" ] }, + { + "id": 5185, + "type": "EmptyImage", + "pos": [ + -2667.561287475645, + 6824.636229314792 + ], + "size": [ + 210, + 130 + ], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 13943 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.5.1", + "Node name for S&R": "EmptyImage" + }, + "widgets_values": [ + 1280, + 704, + 1, + 0 + ] + }, + { + "id": 5215, + "type": "MarkdownNote", + "pos": [ + -2678.84490556659, + 6636.50017724438 + ], + "size": [ + 240.16187366614236, + 98.41687371924309 + ], + "flags": { + "collapsed": false + }, + "order": 8, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "Video Size", + "properties": {}, + "widgets_values": [ + "Width & height settings must be divisible by 32 + 1. \nFrame count must be divisible by 8 + 1. \n\n\nRunning with invalid parameters **will not cause errors**. Instead, the flow will silently choose the closest valid parameters. " + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 5178, + "type": "LTXVGemmaCLIPModelLoader", + "pos": [ + -3530.572231483516, + 7128.353572103167 + ], + "size": [ + 421.93656760943577, + 106 + ], + "flags": {}, + "order": 9, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "clip", + "type": "CLIP", + "links": [ + 13924, + 13926, + 13952 + ] + } + ], + "properties": { + "Node name for S&R": "LTXVGemmaCLIPModelLoader", + "widget_ue_connectable": { + "model_path": true, + "max_length": true + } + }, + "widgets_values": [ + "gemma-3-12b-it-qat-q4_0-unquantized/model-00001-of-00005.safetensors", + "ltx-2-19b-dev.safetensors", + 1024 + ] + }, + { + "id": 5199, + "type": "LoraLoaderModelOnly", + "pos": [ + -3044.221020705583, + 6862.9289547908165 + ], + "size": [ + 216.56215979270246, + 137.56554105343366 + ], + "flags": { + "collapsed": false + }, + "order": 15, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 13954 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 13955 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.68", + "Node name for S&R": "LoraLoaderModelOnly" + }, + "widgets_values": [ + "ltx-2-19b-distilled-lora-384.safetensors", + 0.6 + ] + }, + { + "id": 5216, + "type": "MarkdownNote", + "pos": [ + -1976.902195401015, + 6320.914024269011 + ], + "size": [ + 469.5872194653941, + 209.10385276580928 + ], + "flags": { + "collapsed": false + }, + "order": 10, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "LoRA", + "properties": {}, + "widgets_values": [ + "# Using LoRAs\n**Ctrl + B to enable**\n\nFor the camera LoRA we recommend setting strength = 1\n\nYou can use LTX [Ready to use camera LoRAs](https://huggingface.co/collections/Lightricks/ltx-2)\n\n\n\n\nUse a second LoRa only when the details are important in the LoRa. \n\n## Training\nWe have made available a full trainer to help you to train your own LoRA. You can [find it here](https://github.com/Lightricks/LTX-2)." + ], + "color": "#432", + "bgcolor": "#653" + }, { "id": 5189, "type": "3eaa20c4-5842-4fe4-87df-c0a7e83a6a78", @@ -1016,40 +1000,56 @@ ] }, { - "id": 5185, - "type": "EmptyImage", + "id": 5213, + "type": "MarkdownNote", "pos": [ - -2667.561287475645, - 6824.636229314792 + -3994.7241915629565, + 7355.912237736982 ], "size": [ - 210, - 130 + 421.80023671152276, + 204.8409142517039 ], - "flags": {}, + "flags": { + "collapsed": false + }, + "order": 11, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "Prompting LTX-2", + "properties": {}, + "widgets_values": [ + "## LTX-2 Prompting Tips\n1. **Core Actions**: Describe events and actions as they occur over time \n2. **Audio**: Describe sounds and dialogue needed for the scene \n3. **Reference Image**: Do not repeat details already present \n4. **Consistency**: Avoid instructions that do not match the reference image, as this will degrade results\n\n" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 5214, + "type": "MarkdownNote", + "pos": [ + -3995.19689724344, + 6706.943697375089 + ], + "size": [ + 423.19410866682347, + 606.8676527747002 + ], + "flags": { + "collapsed": false + }, "order": 12, "mode": 0, "inputs": [], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 13943 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.5.1", - "Node name for S&R": "EmptyImage" - }, + "outputs": [], + "title": "Model Links", + "properties": {}, "widgets_values": [ - 1280, - 704, - 1, - 0 - ] + "## Model Links\n\n**LTX-2 Model Weights**\n\n- [ltx-2-19b-dev.safetensors](https://huggingface.co/Lightricks/LTX-2/resolve/main/ltx-2-19b-dev.safetensors)\n- [ ltx-2-19b-distilled-lora-384.safetensors ](https://huggingface.co/Lightricks/LTX-2/resolve/main/ltx-2-19b-distilled-lora-384.safetensors)\n- [ ltx-2-spatial-upscaler-x2-1.0.safetensors ](https://huggingface.co/Lightricks/LTX-2/resolve/main/ltx-2-spatial-upscaler-x2-1.0.safetensors)\n\n\n**Text Encoder**\n- [Google Gemma 3](https://huggingface.co/google/gemma-3-12b-it-qat-q4_0-unquantized)\n\nPlease download the entire folder - \n\n- Run: \n 1. cd models/text_encoders\n 2. git clone https://huggingface.co/google/gemma-3-12b-it-qat-q4_0-unquantized\n\n*Full documentation can be found [here](https://docs.ltx.video/open-source-model/integration-tools/comfy-ui#text-encoder)\n\n**Sampler**\n\n- [RES4LYF](https://github.com/ClownsharkBatwing/RES4LYF)\n\n\n\n**Model Storage Location**\n\n```\nπŸ“‚ ComfyUI/\nβ”œβ”€β”€ πŸ“‚ models/\nβ”‚ β”œβ”€β”€ πŸ“‚ text_encoders/\nβ”‚ β”‚ β”œβ”€β”€ gemma-3-12b-it-qat-q4_0-unquantized/model-00001-of-00005.safetensors\nβ”‚ β”œβ”€β”€ πŸ“‚ checkpoints/\nβ”‚ β”‚ └── ltx-2-19b-dev.safetensors\nβ”‚ β”œβ”€β”€ πŸ“‚ loras/\nβ”‚ β”‚ └── ltx-2-19b-distilled-lora-384.safetensors\nβ”‚ β”œβ”€β”€ πŸ“‚ latent_upscale_models/ \n └── ltx-2-spatial-upscaler-x2-1.0.safetensors\n```\n\n**Assets**\n- [base model image](https://github.com/Lightricks/ComfyUI-LTXVideo/blob/master/example_workflows/assets/base%20model%20image.png)\n\n## Report Issues\nTo report any issues when running this workflow, [go to GitHub](https://github.com/Lightricks/ComfyUI-LTXVideo/issues)\n" + ], + "color": "#432", + "bgcolor": "#653" } ], "links": [ @@ -1368,10 +1368,10 @@ "flags": {}, "nodes": [ 5188, - 5178, 5176, - 5199, - 5212 + 5212, + 5178, + 5199 ] }, { @@ -1398,7 +1398,7 @@ "version": 1, "state": { "lastGroupId": 21, - "lastNodeId": 5247, + "lastNodeId": 5251, "lastLinkId": 14012, "lastRerouteId": 0 }, @@ -1647,7 +1647,7 @@ 46 ], "flags": {}, - "order": 15, + "order": 17, "mode": 0, "inputs": [ { @@ -1694,7 +1694,7 @@ 130 ], "flags": {}, - "order": 10, + "order": 12, "mode": 0, "inputs": [ { @@ -1763,7 +1763,7 @@ 158.23828815113302 ], "flags": {}, - "order": 16, + "order": 18, "mode": 0, "inputs": [ { @@ -1865,7 +1865,7 @@ 46 ], "flags": {}, - "order": 11, + "order": 13, "mode": 0, "inputs": [ { @@ -1899,61 +1899,6 @@ }, "widgets_values": [] }, - { - "id": 5069, - "type": "GetImageSize", - "pos": [ - -2024.3908648247834, - 6541.936259651618 - ], - "size": [ - 140, - 66 - ], - "flags": { - "collapsed": false - }, - "order": 4, - "mode": 0, - "inputs": [ - { - "localized_name": "image", - "name": "image", - "type": "IMAGE", - "link": 13730 - } - ], - "outputs": [ - { - "localized_name": "width", - "name": "width", - "type": "INT", - "links": [ - 13846 - ] - }, - { - "localized_name": "height", - "name": "height", - "type": "INT", - "links": [ - 13847 - ] - }, - { - "localized_name": "batch_size", - "name": "batch_size", - "type": "INT", - "links": [] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.5.1", - "Node name for S&R": "GetImageSize" - }, - "widgets_values": [] - }, { "id": 5236, "type": "LTXVScheduler", @@ -1968,7 +1913,7 @@ "flags": { "collapsed": false }, - "order": 18, + "order": 20, "mode": 0, "inputs": [ { @@ -2014,7 +1959,7 @@ 114 ], "flags": {}, - "order": 12, + "order": 14, "mode": 0, "inputs": [ { @@ -2069,7 +2014,7 @@ "flags": { "collapsed": false }, - "order": 19, + "order": 21, "mode": 0, "inputs": [ { @@ -2122,7 +2067,7 @@ "flags": { "collapsed": false }, - "order": 8, + "order": 10, "mode": 0, "inputs": [ { @@ -2169,7 +2114,7 @@ "flags": { "collapsed": false }, - "order": 13, + "order": 15, "mode": 0, "inputs": [ { @@ -2202,82 +2147,6 @@ "fixed" ] }, - { - "id": 5109, - "type": "KSamplerSelect", - "pos": [ - -966.317767074268, - 6401.320879135822 - ], - "size": [ - 210, - 74 - ], - "flags": {}, - "order": 1, - "mode": 0, - "inputs": [], - "outputs": [ - { - "localized_name": "SAMPLER", - "name": "SAMPLER", - "type": "SAMPLER", - "links": [ - 13785 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.71", - "Node name for S&R": "KSamplerSelect" - }, - "widgets_values": [ - "res_2s" - ] - }, - { - "id": 5075, - "type": "ImageScaleBy", - "pos": [ - -2034.64249182114, - 6414.9725819876285 - ], - "size": [ - 210, - 82 - ], - "flags": {}, - "order": 5, - "mode": 0, - "inputs": [ - { - "localized_name": "image", - "name": "image", - "type": "IMAGE", - "link": 13731 - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 13730 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.5.1", - "Node name for S&R": "ImageScaleBy" - }, - "widgets_values": [ - "bicubic", - 0.5 - ] - }, { "id": 5238, "type": "ImpactExecutionOrderController", @@ -2290,7 +2159,7 @@ 47.506006012050875 ], "flags": {}, - "order": 20, + "order": 22, "mode": 0, "inputs": [ { @@ -2347,7 +2216,7 @@ "flags": { "collapsed": false }, - "order": 17, + "order": 19, "mode": 0, "inputs": [ { @@ -2410,7 +2279,7 @@ "flags": { "collapsed": true }, - "order": 22, + "order": 24, "mode": 0, "inputs": [ { @@ -2439,50 +2308,6 @@ 33 ] }, - { - "id": 5239, - "type": "ResizeImagesByLongerEdge", - "pos": [ - -1990.9408758658353, - 6790.223639374309 - ], - "size": [ - 303.6109375, - 58 - ], - "flags": { - "collapsed": true - }, - "order": 21, - "mode": 0, - "inputs": [ - { - "localized_name": "images", - "name": "images", - "type": "IMAGE", - "link": 13994 - } - ], - "outputs": [ - { - "localized_name": "images", - "name": "images", - "type": "IMAGE", - "links": [ - 13993, - 14002 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.5.1", - "Node name for S&R": "ResizeImagesByLongerEdge" - }, - "widgets_values": [ - 1536 - ] - }, { "id": 5100, "type": "SamplerCustomAdvanced", @@ -2495,7 +2320,7 @@ 106 ], "flags": {}, - "order": 7, + "order": 9, "mode": 0, "inputs": [ { @@ -2564,7 +2389,7 @@ 46 ], "flags": {}, - "order": 9, + "order": 11, "mode": 0, "inputs": [ { @@ -2611,7 +2436,7 @@ 58 ], "flags": {}, - "order": 2, + "order": 1, "mode": 0, "inputs": [], "outputs": [ @@ -2645,7 +2470,7 @@ 98 ], "flags": {}, - "order": 6, + "order": 8, "mode": 0, "inputs": [ { @@ -2686,40 +2511,6 @@ 1 ] }, - { - "id": 5099, - "type": "KSamplerSelect", - "pos": [ - 358.5710759382591, - 6424.6268458653085 - ], - "size": [ - 210, - 74 - ], - "flags": {}, - "order": 3, - "mode": 0, - "inputs": [], - "outputs": [ - { - "localized_name": "SAMPLER", - "name": "SAMPLER", - "type": "SAMPLER", - "links": [ - 13770 - ] - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.71", - "Node name for S&R": "KSamplerSelect" - }, - "widgets_values": [ - "res_2s" - ] - }, { "id": 5112, "type": "LTXVConcatAVLatent", @@ -2732,7 +2523,7 @@ 46 ], "flags": {}, - "order": 14, + "order": 16, "mode": 0, "inputs": [ { @@ -2777,7 +2568,7 @@ 122 ], "flags": {}, - "order": 24, + "order": 26, "mode": 0, "inputs": [ { @@ -2831,7 +2622,7 @@ 66 ], "flags": {}, - "order": 25, + "order": 27, "mode": 0, "inputs": [ { @@ -2882,7 +2673,7 @@ 122 ], "flags": {}, - "order": 23, + "order": 25, "mode": 0, "inputs": [ { @@ -2932,6 +2723,267 @@ 0.6, false ] + }, + { + "id": 5251, + "type": "MarkdownNote", + "pos": [ + 358.90851475055354, + 6284.424034545774 + ], + "size": [ + 210, + 88 + ], + "flags": { + "collapsed": false + }, + "order": 2, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "Sampler", + "properties": {}, + "widgets_values": [ + "We recommend using res_2s. \nhttps://github.com/ClownsharkBatwing/RES4LYF\n\nPlease make sure to install RES4LYF" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 5250, + "type": "MarkdownNote", + "pos": [ + -965.2104305619457, + 6261.107393920771 + ], + "size": [ + 210, + 88 + ], + "flags": { + "collapsed": false + }, + "order": 3, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "Sampler", + "properties": {}, + "widgets_values": [ + "We recommend using res_2s. \nhttps://github.com/ClownsharkBatwing/RES4LYF\n\nPlease make sure to install RES4LYF" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 5075, + "type": "ImageScaleBy", + "pos": [ + -2034.64249182114, + 6414.9725819876285 + ], + "size": [ + 210, + 82 + ], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [ + { + "localized_name": "image", + "name": "image", + "type": "IMAGE", + "link": 13731 + } + ], + "outputs": [ + { + "localized_name": "IMAGE", + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 13730 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.5.1", + "Node name for S&R": "ImageScaleBy" + }, + "widgets_values": [ + "bicubic", + 0.5 + ] + }, + { + "id": 5069, + "type": "GetImageSize", + "pos": [ + -2024.3908648247834, + 6541.936259651618 + ], + "size": [ + 140, + 66 + ], + "flags": { + "collapsed": false + }, + "order": 6, + "mode": 0, + "inputs": [ + { + "localized_name": "image", + "name": "image", + "type": "IMAGE", + "link": 13730 + } + ], + "outputs": [ + { + "localized_name": "width", + "name": "width", + "type": "INT", + "links": [ + 13846 + ] + }, + { + "localized_name": "height", + "name": "height", + "type": "INT", + "links": [ + 13847 + ] + }, + { + "localized_name": "batch_size", + "name": "batch_size", + "type": "INT", + "links": [] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.5.1", + "Node name for S&R": "GetImageSize" + }, + "widgets_values": [] + }, + { + "id": 5239, + "type": "ResizeImagesByLongerEdge", + "pos": [ + -1990.9408758658353, + 6790.223639374309 + ], + "size": [ + 303.6109375, + 58 + ], + "flags": { + "collapsed": true + }, + "order": 23, + "mode": 0, + "inputs": [ + { + "localized_name": "images", + "name": "images", + "type": "IMAGE", + "link": 13994 + } + ], + "outputs": [ + { + "localized_name": "images", + "name": "images", + "type": "IMAGE", + "links": [ + 13993, + 14002 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.5.1", + "Node name for S&R": "ResizeImagesByLongerEdge" + }, + "widgets_values": [ + 1536 + ] + }, + { + "id": 5109, + "type": "KSamplerSelect", + "pos": [ + -966.317767074268, + 6401.320879135822 + ], + "size": [ + 210, + 74 + ], + "flags": {}, + "order": 4, + "mode": 0, + "inputs": [], + "outputs": [ + { + "localized_name": "SAMPLER", + "name": "SAMPLER", + "type": "SAMPLER", + "links": [ + 13785 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.71", + "Node name for S&R": "KSamplerSelect" + }, + "widgets_values": [ + "res_2s" + ] + }, + { + "id": 5099, + "type": "KSamplerSelect", + "pos": [ + 358.5710759382591, + 6424.6268458653085 + ], + "size": [ + 210, + 74 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [], + "outputs": [ + { + "localized_name": "SAMPLER", + "name": "SAMPLER", + "type": "SAMPLER", + "links": [ + 13770 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.71", + "Node name for S&R": "KSamplerSelect" + }, + "widgets_values": [ + "res_2s" + ] } ], "groups": [ diff --git a/example_workflows/LTX-2_ICLoRA_All_Distilled.json b/example_workflows/LTX-2_ICLoRA_All_Distilled.json index d6d3cc1..2395d9d 100644 --- a/example_workflows/LTX-2_ICLoRA_All_Distilled.json +++ b/example_workflows/LTX-2_ICLoRA_All_Distilled.json @@ -36,90 +36,6 @@ "auto" ] }, - { - "id": 263, - "type": "SaveVideo", - "pos": [ - -3300.791002295813, - 4850.00281731496 - ], - "size": [ - 407.5231522848858, - 444.0448474342347 - ], - "flags": {}, - "order": 11, - "mode": 4, - "inputs": [ - { - "name": "video", - "type": "VIDEO", - "link": 454 - } - ], - "outputs": [], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.5.1" - }, - "widgets_values": [ - "video/ComfyUI", - "auto", - "auto" - ] - }, - { - "id": 272, - "type": "MarkdownNote", - "pos": [ - -4750.121632656192, - 4942.588985581988 - ], - "size": [ - 449.98823755897365, - 205.15008103687887 - ], - "flags": { - "collapsed": false - }, - "order": 0, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "Prompting LTX-2", - "properties": {}, - "widgets_values": [ - "## LTX-2 Prompting Tips\n1. **Core Actions**: Describe events and actions as they occur over time \n2. **Audio**: Describe sounds and dialogue needed for the scene \n3. **Reference Image**: Do not repeat details already present \n4. **Consistency**: Avoid instructions that do not match the reference image, as this will degrade results\n" - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 273, - "type": "MarkdownNote", - "pos": [ - -4755.900143250212, - 4452.350555323921 - ], - "size": [ - 452.9937955776454, - 446.01542081507796 - ], - "flags": { - "collapsed": false - }, - "order": 1, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "Model Links", - "properties": {}, - "widgets_values": [ - "## Model Links\n\n**LTX-2 Model Weights**\n\n- [ltx-2-19b-distilled.safetensors](https://huggingface.co/Lightricks/LTX-2/resolve/main/ltx-2-19b-distilled.safetensors)\n- [ ltx-2-spatial-upscaler-x2-1.0.safetensors ](https://huggingface.co/Lightricks/LTX-2/tree/main/ltx-2-spatial-upscaler-x2-1.0.safetensors)\n- [ IC LoRA - Canny ](https://huggingface.co/Lightricks/LTX-2-19b-IC-LoRA-Canny-Control/tree/main/ltx-2-19b-ic-lora-canny-control.safetensors)\n- [ IC LoRA - Depth ](https://huggingface.co/Lightricks/LTX-2-19b-IC-LoRA-Depth-Control/tree/main/ltx-2-19b-ic-lora-depth-control.safetensors)\n- [ IC LoRA - Pose ](https://huggingface.co/Lightricks/LTX-2-19b-IC-LoRA-Pose-Control/tree/main/ltx-2-19b-ic-lora-pose-control.safetensors)\n\n\n**Text Encoder**\n- [Google Gemma 3](https://huggingface.co/google/gemma-3-12b-pt)\n\n**Model Storage Location**\n\n```\nπŸ“‚ ComfyUI/\nβ”œβ”€β”€ πŸ“‚ models/\nβ”‚ β”œβ”€β”€ πŸ“‚ text_encoders/\nβ”‚ β”‚ β”œβ”€β”€ comfy_gemma_3_12B_it.safetensors\nβ”‚ β”œβ”€β”€ πŸ“‚ checkpoints/\nβ”‚ β”‚ └── ltx-2-19b-distilled.safetensors\nβ”‚ β”œβ”€β”€ πŸ“‚ latent_upscale_models/ \nβ”‚ β”‚ └── ltx-2-spatial-upscaler-x2-1.0.safetensors\nβ”‚ β”œβ”€β”€ πŸ“‚ loras/ \nβ”‚ └── ltx-2-19b-ic-lora-canny-control.safetensors\nβ”‚ └── ltx-2-19b-ic-lora-depth-control.safetensors\nβ”‚ └── ltx-2-19b-ic-lora-pose-control.safetensors\n```\n\n## Report Issues\nTo report any issues when running this workflow, [go to GitHub](https://github.com/Lightricks/ComfyUI-LTXVideo/issues)\n" - ], - "color": "#432", - "bgcolor": "#653" - }, { "id": 274, "type": "MarkdownNote", @@ -134,7 +50,7 @@ "flags": { "collapsed": false }, - "order": 2, + "order": 0, "mode": 0, "inputs": [], "outputs": [], @@ -146,200 +62,6 @@ "color": "#432", "bgcolor": "#653" }, - { - "id": 271, - "type": "MarkdownNote", - "pos": [ - -4514.828909451778, - 5344.275812975885 - ], - "size": [ - 210, - 88 - ], - "flags": { - "collapsed": false - }, - "order": 3, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "Important", - "properties": {}, - "widgets_values": [ - "# Always load Image" - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 240, - "type": "b83ac947-e174-4a8e-b0c1-f7c3b8f00419", - "pos": [ - -3775.456558964413, - 4846.109439002414 - ], - "size": [ - 428.1032473412265, - 462.6733832580858 - ], - "flags": {}, - "order": 8, - "mode": 4, - "inputs": [ - { - "name": "switch", - "type": "BOOLEAN", - "widget": { - "name": "switch" - }, - "link": 397 - }, - { - "name": "video", - "type": "VIDEO", - "link": 398 - }, - { - "label": "first frame", - "name": "image_1", - "type": "IMAGE", - "link": 451 - } - ], - "outputs": [ - { - "label": "video", - "name": "VIDEO", - "type": "VIDEO", - "links": [ - 454 - ] - } - ], - "properties": { - "proxyWidgets": [ - [ - "-1", - "height" - ], - [ - "229", - "value" - ], - [ - "-1", - "width" - ], - [ - "239", - "noise_seed" - ], - [ - "239", - "461: control_after_generate" - ], - [ - "-1", - "switch" - ] - ], - "cnr_id": "comfy-core", - "ver": "0.5.1" - }, - "widgets_values": [ - 1920, - null, - 1920, - null, - null, - true - ] - }, - { - "id": 256, - "type": "3ad0b41c-8c47-4e10-a53e-ed340cc26b5f", - "pos": [ - -3774.406825396875, - 5370.867781047884 - ], - "size": [ - 425.6797091343742, - 459.5094361285983 - ], - "flags": {}, - "order": 9, - "mode": 4, - "inputs": [ - { - "name": "video", - "type": "VIDEO", - "link": 432 - }, - { - "name": "switch", - "type": "BOOLEAN", - "widget": { - "name": "switch" - }, - "link": 433 - }, - { - "label": "first frame", - "name": "image_1", - "type": "IMAGE", - "link": 452 - } - ], - "outputs": [ - { - "label": "video", - "name": "VIDEO", - "type": "VIDEO", - "links": [ - 456 - ] - } - ], - "properties": { - "proxyWidgets": [ - [ - "-1", - "height" - ], - [ - "244", - "value" - ], - [ - "-1", - "width" - ], - [ - "253", - "noise_seed" - ], - [ - "253", - "461: control_after_generate" - ], - [ - "-1", - "switch" - ] - ], - "cnr_id": "comfy-core", - "ver": "0.5.1" - }, - "widgets_values": [ - 1920, - null, - 1920, - null, - null, - true - ] - }, { "id": 264, "type": "SaveVideo", @@ -384,7 +106,7 @@ 58 ], "flags": {}, - "order": 4, + "order": 1, "mode": 0, "inputs": [], "outputs": [ @@ -408,6 +130,115 @@ false ] }, + { + "id": 200, + "type": "LoadImage", + "pos": [ + -4285.129479933403, + 5143.939169472896 + ], + "size": [ + 400.4874419937255, + 378.7916882359277 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 450, + 451, + 452 + ] + }, + { + "name": "MASK", + "type": "MASK", + "links": null + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.5.1", + "Node name for S&R": "LoadImage" + }, + "widgets_values": [ + "buildings ff.png", + "image" + ] + }, + { + "id": 263, + "type": "SaveVideo", + "pos": [ + -3300.791002295813, + 4850.00281731496 + ], + "size": [ + 407.5231522848858, + 444.0448474342347 + ], + "flags": {}, + "order": 11, + "mode": 4, + "inputs": [ + { + "name": "video", + "type": "VIDEO", + "link": 454 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.5.1" + }, + "widgets_values": [ + "video/ComfyUI", + "auto", + "auto" + ] + }, + { + "id": 164, + "type": "LoadVideo", + "pos": [ + -4273.650112839631, + 4496.243204253725 + ], + "size": [ + 386.798828125, + 458.5515914425977 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 362, + 398, + 432 + ] + } + ], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.5.1", + "Node name for S&R": "LoadVideo" + }, + "widgets_values": [ + "buildings.mp4", + "image" + ] + }, { "id": 224, "type": "2dc75cab-e957-4437-a5bb-2afb0ea00516", @@ -493,80 +324,249 @@ ] }, { - "id": 200, - "type": "LoadImage", + "id": 273, + "type": "MarkdownNote", "pos": [ - -4285.129479933403, - 5143.939169472896 + -4785.564205750212, + 4455.096649073921 ], "size": [ - 400.4874419937255, - 378.7916882359277 + 474.7453652124491, + 605.585189911063 ], - "flags": {}, + "flags": { + "collapsed": false + }, + "order": 4, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "Model Links", + "properties": {}, + "widgets_values": [ + "## Model Links\n\n**LTX-2 Model Weights**\n\n- [ltx-2-19b-distilled.safetensors](https://huggingface.co/Lightricks/LTX-2/resolve/main/ltx-2-19b-distilled.safetensors)\n- [ ltx-2-spatial-upscaler-x2-1.0.safetensors ](https://huggingface.co/Lightricks/LTX-2/resolve/main/ltx-2-spatial-upscaler-x2-1.0.safetensors)\n- [ IC LoRA - Canny ](https://huggingface.co/Lightricks/LTX-2-19b-IC-LoRA-Canny-Control/resolve/main/ltx-2-19b-ic-lora-canny-control.safetensors)\n- [ IC LoRA - Depth ](https://huggingface.co/Lightricks/LTX-2-19b-IC-LoRA-Depth-Control/resolve/main/ltx-2-19b-ic-lora-depth-control.safetensors)\n- [ IC LoRA - Pose ](https://huggingface.co/Lightricks/LTX-2-19b-IC-LoRA-Pose-Control/resolve/main/ltx-2-19b-ic-lora-pose-control.safetensors)\n\n\n\n**Text Encoder**\n- [Google Gemma 3](https://huggingface.co/google/gemma-3-12b-it-qat-q4_0-unquantized)\n\nPlease download the entire folder - \n\n- Run: \n 1. cd models/text_encoders\n 2. git clone https://huggingface.co/google/gemma-3-12b-it-qat-q4_0-unquantized\n\n*Full documentation can be found [here](https://docs.ltx.video/open-source-model/integration-tools/comfy-ui#text-encoder)\n\n\n**Model Storage Location**\n\n```\nπŸ“‚ ComfyUI/\nβ”œβ”€β”€ πŸ“‚ models/\nβ”‚ β”œβ”€β”€ πŸ“‚ text_encoders/\nβ”‚ β”‚ β”œβ”€β”€ gemma-3-12b-it-qat-q4_0-unquantized/model-00001-of-00005.safetensors\nβ”‚ β”œβ”€β”€ πŸ“‚ checkpoints/\nβ”‚ β”‚ └── ltx-2-19b-distilled.safetensors\nβ”‚ β”œβ”€β”€ πŸ“‚ latent_upscale_models/ \nβ”‚ β”‚ └── ltx-2-spatial-upscaler-x2-1.0.safetensors\nβ”‚ β”œβ”€β”€ πŸ“‚ loras/ \nβ”‚ └── ltx-2-19b-ic-lora-canny-control.safetensors\nβ”‚ └── ltx-2-19b-ic-lora-depth-control.safetensors\nβ”‚ └── ltx-2-19b-ic-lora-pose-control.safetensors\n```\n**Assets**\n- [buildings.mp4 (input video)](https://github.com/Lightricks/ComfyUI-LTXVideo/blob/master/example_workflows/assets/buildings.mp4)\n- [buildings ff (first frame)](https://github.com/Lightricks/ComfyUI-LTXVideo/blob/master/example_workflows/assets/buildings%20ff.png)\n\n## Report Issues\nTo report any issues when running this workflow, [go to GitHub](https://github.com/Lightricks/ComfyUI-LTXVideo/issues)\n" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 271, + "type": "MarkdownNote", + "pos": [ + -4517.278638109156, + 5357.133250216258 + ], + "size": [ + 210, + 88 + ], + "flags": { + "collapsed": false + }, "order": 5, "mode": 0, "inputs": [], - "outputs": [ - { - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 450, - 451, - 452 - ] - }, - { - "name": "MASK", - "type": "MASK", - "links": null - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.5.1", - "Node name for S&R": "LoadImage" - }, + "outputs": [], + "title": "Important", + "properties": {}, "widgets_values": [ - "buildings ff.png", - "image" - ] + "# Always load Image" + ], + "color": "#432", + "bgcolor": "#653" }, { - "id": 164, - "type": "LoadVideo", + "id": 272, + "type": "MarkdownNote", "pos": [ - -4273.650112839631, - 4496.243204253725 + -4782.341673813574, + 5107.78314157236 ], "size": [ - 386.798828125, - 458.5515914425977 + 471.21870630897365, + 207.61883103687887 ], - "flags": {}, + "flags": { + "collapsed": false + }, "order": 6, "mode": 0, "inputs": [], + "outputs": [], + "title": "Prompting LTX-2", + "properties": {}, + "widgets_values": [ + "## LTX-2 Prompting Tips\n1. **Core Actions**: Describe events and actions as they occur over time \n2. **Audio**: Describe sounds and dialogue needed for the scene \n3. **Reference Image**: Do not repeat details already present \n4. **Consistency**: Avoid instructions that do not match the reference image, as this will degrade results\n" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 256, + "type": "3ad0b41c-8c47-4e10-a53e-ed340cc26b5f", + "pos": [ + -3774.406825396875, + 5370.867781047884 + ], + "size": [ + 425.6797091343742, + 459.5094361285983 + ], + "flags": {}, + "order": 9, + "mode": 4, + "inputs": [ + { + "name": "video", + "type": "VIDEO", + "link": 432 + }, + { + "name": "switch", + "type": "BOOLEAN", + "widget": { + "name": "switch" + }, + "link": 433 + }, + { + "label": "first frame", + "name": "image_1", + "type": "IMAGE", + "link": 452 + } + ], "outputs": [ { + "label": "video", "name": "VIDEO", "type": "VIDEO", "links": [ - 362, - 398, - 432 + 456 ] } ], "properties": { + "proxyWidgets": [ + [ + "244", + "value" + ], + [ + "-1", + "width" + ], + [ + "-1", + "height" + ], + [ + "253", + "noise_seed" + ], + [ + "253", + "461: control_after_generate" + ], + [ + "-1", + "switch" + ] + ], "cnr_id": "comfy-core", - "ver": "0.5.1", - "Node name for S&R": "LoadVideo" + "ver": "0.5.1" }, "widgets_values": [ - "buildings.mp4", - "image" + null, + 1920, + 1088, + null, + null, + true + ] + }, + { + "id": 240, + "type": "b83ac947-e174-4a8e-b0c1-f7c3b8f00419", + "pos": [ + -3775.456558964413, + 4846.109439002414 + ], + "size": [ + 428.1032473412265, + 462.6733832580858 + ], + "flags": {}, + "order": 8, + "mode": 4, + "inputs": [ + { + "name": "switch", + "type": "BOOLEAN", + "widget": { + "name": "switch" + }, + "link": 397 + }, + { + "name": "video", + "type": "VIDEO", + "link": 398 + }, + { + "label": "first frame", + "name": "image_1", + "type": "IMAGE", + "link": 451 + } + ], + "outputs": [ + { + "label": "video", + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 454 + ] + } + ], + "properties": { + "proxyWidgets": [ + [ + "229", + "value" + ], + [ + "-1", + "width" + ], + [ + "-1", + "height" + ], + [ + "239", + "noise_seed" + ], + [ + "239", + "461: control_after_generate" + ], + [ + "-1", + "switch" + ] + ], + "cnr_id": "comfy-core", + "ver": "0.5.1" + }, + "widgets_values": [ + null, + 1920, + 1088, + null, + null, + true ] } ], @@ -3709,7 +3709,7 @@ "state": { "lastGroupId": 31, "lastNodeId": 636, - "lastLinkId": 1320, + "lastLinkId": 1321, "lastRerouteId": 0 }, "revision": 0, @@ -3745,7 +3745,7 @@ "label": "model stage 1", "pos": [ -5711.57487156867, - 3637.6135133757766 + 3617.6135133757766 ] }, { @@ -3760,7 +3760,7 @@ "label": "model stage 2", "pos": [ -5711.57487156867, - 3717.6135133757766 + 3637.6135133757766 ] }, { @@ -3773,7 +3773,7 @@ "label": "upscale model", "pos": [ -5711.57487156867, - 3877.6135133757766 + 3657.6135133757766 ] }, { @@ -3786,7 +3786,7 @@ "localized_name": "positive", "pos": [ -5711.57487156867, - 3737.6135133757766 + 3677.6135133757766 ] }, { @@ -3799,7 +3799,7 @@ "localized_name": "negative", "pos": [ -5711.57487156867, - 3757.6135133757766 + 3697.6135133757766 ] }, { @@ -3818,7 +3818,7 @@ "label": "VAE", "pos": [ -5711.57487156867, - 3697.6135133757766 + 3717.6135133757766 ] }, { @@ -3834,7 +3834,7 @@ "label": "audio VAE", "pos": [ -5711.57487156867, - 3657.6135133757766 + 3737.6135133757766 ] }, { @@ -3848,7 +3848,7 @@ "label": "first frame", "pos": [ -5711.57487156867, - 3797.6135133757766 + 3757.6135133757766 ] }, { @@ -3862,7 +3862,7 @@ "label": "frame rate", "pos": [ -5711.57487156867, - 3677.6135133757766 + 3777.6135133757766 ] }, { @@ -3878,7 +3878,7 @@ "shape": 7, "pos": [ -5711.57487156867, - 3777.6135133757766 + 3797.6135133757766 ] }, { @@ -3891,7 +3891,7 @@ ], "pos": [ -5711.57487156867, - 3837.6135133757766 + 3817.6135133757766 ] }, { @@ -3904,7 +3904,7 @@ ], "pos": [ -5711.57487156867, - 3857.6135133757766 + 3837.6135133757766 ] }, { @@ -3917,7 +3917,7 @@ "localized_name": "image", "pos": [ -5711.57487156867, - 3617.6135133757766 + 3857.6135133757766 ] }, { @@ -3930,7 +3930,7 @@ "label": "noise seed", "pos": [ -5711.57487156867, - 3817.6135133757766 + 3877.6135133757766 ] }, { @@ -5047,7 +5047,7 @@ "localized_name": "images", "name": "images", "type": "IMAGE", - "link": 1259 + "link": 1321 } ], "outputs": [ @@ -5117,8 +5117,7 @@ "name": "IMAGE", "type": "IMAGE", "links": [ - 1226, - 1259 + 1226 ] } ], @@ -5131,7 +5130,7 @@ "widgets_values": [ "bicubic", 1920, - 1920, + 1088, "center" ] }, @@ -5199,49 +5198,6 @@ "disabled" ] }, - { - "id": 587, - "type": "ImageScaleBy", - "pos": [ - -4981.92269765682, - 3714.861944166483 - ], - "size": [ - 210, - 82 - ], - "flags": {}, - "order": 28, - "mode": 4, - "inputs": [ - { - "localized_name": "image", - "name": "image", - "type": "IMAGE", - "link": 1226 - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 1229 - ] - } - ], - "title": "Upscale Video to Stage 1", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.5.1", - "Node name for S&R": "ImageScaleBy" - }, - "widgets_values": [ - "bicubic", - 0.5 - ] - }, { "id": 589, "type": "GetImageSize", @@ -5425,7 +5381,7 @@ "widgets_values": [ "bicubic", 1920, - 1920, + 1088, "center" ] }, @@ -6074,6 +6030,50 @@ "Node name for S&R": "ImpactExecutionOrderController" }, "widgets_values": [] + }, + { + "id": 587, + "type": "ImageScaleBy", + "pos": [ + -4981.92269765682, + 3714.861944166483 + ], + "size": [ + 210, + 82 + ], + "flags": {}, + "order": 28, + "mode": 4, + "inputs": [ + { + "localized_name": "image", + "name": "image", + "type": "IMAGE", + "link": 1226 + } + ], + "outputs": [ + { + "localized_name": "IMAGE", + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 1229, + 1321 + ] + } + ], + "title": "Upscale Video to Stage 1", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.5.1", + "Node name for S&R": "ImageScaleBy" + }, + "widgets_values": [ + "bicubic", + 0.5 + ] } ], "groups": [ @@ -6089,7 +6089,22 @@ "color": "#3f789e", "font_size": 24, "flags": {}, - "nodes": [] + "nodes": [ + 486, + 490, + 502, + 478, + 479, + 516, + 489, + 480, + 592, + 623, + 625, + 487, + 474, + 471 + ] }, { "id": 26, @@ -6103,7 +6118,18 @@ "color": "#3f789e", "font_size": 24, "flags": {}, - "nodes": [] + "nodes": [ + 584, + 583, + 585, + 590, + 588, + 589, + 586, + 624, + 591, + 587 + ] }, { "id": 27, @@ -6117,7 +6143,11 @@ "color": "#b58b2a", "font_size": 24, "flags": {}, - "nodes": [] + "nodes": [ + 511, + 508, + 593 + ] }, { "id": 28, @@ -6131,7 +6161,16 @@ "color": "#3f789e", "font_size": 24, "flags": {}, - "nodes": [] + "nodes": [ + 472, + 462, + 485, + 501, + 477, + 468, + 515, + 461 + ] } ], "links": [ @@ -6647,14 +6686,6 @@ "target_slot": 4, "type": "IMAGE" }, - { - "id": 1259, - "origin_id": 590, - "origin_slot": 0, - "target_id": 508, - "target_slot": 1, - "type": "IMAGE" - }, { "id": 1286, "origin_id": 481, @@ -6830,6 +6861,14 @@ "target_id": 590, "target_slot": 0, "type": "IMAGE" + }, + { + "id": 1321, + "origin_id": 587, + "origin_slot": 0, + "target_id": 508, + "target_slot": 1, + "type": "IMAGE" } ], "extra": { @@ -6878,7 +6917,7 @@ "label": "model stage 1", "pos": [ -5717.390884569629, - 3569.011919677603 + 3549.011919677603 ] }, { @@ -6893,7 +6932,7 @@ "label": "model stage 2", "pos": [ -5717.390884569629, - 3649.011919677603 + 3569.011919677603 ] }, { @@ -6906,7 +6945,7 @@ "label": "upscale model", "pos": [ -5717.390884569629, - 3809.011919677603 + 3589.011919677603 ] }, { @@ -6919,7 +6958,7 @@ "localized_name": "positive", "pos": [ -5717.390884569629, - 3669.011919677603 + 3609.011919677603 ] }, { @@ -6932,7 +6971,7 @@ "localized_name": "negative", "pos": [ -5717.390884569629, - 3689.011919677603 + 3629.011919677603 ] }, { @@ -6951,7 +6990,7 @@ "label": "VAE", "pos": [ -5717.390884569629, - 3629.011919677603 + 3649.011919677603 ] }, { @@ -6967,7 +7006,7 @@ "label": "audio VAE", "pos": [ -5717.390884569629, - 3589.011919677603 + 3669.011919677603 ] }, { @@ -6982,7 +7021,7 @@ "label": "first frame", "pos": [ -5717.390884569629, - 3729.011919677603 + 3689.011919677603 ] }, { @@ -6996,7 +7035,7 @@ "label": "frame rate", "pos": [ -5717.390884569629, - 3609.011919677603 + 3709.011919677603 ] }, { @@ -7012,7 +7051,7 @@ "shape": 7, "pos": [ -5717.390884569629, - 3709.011919677603 + 3729.011919677603 ] }, { @@ -7025,7 +7064,7 @@ ], "pos": [ -5717.390884569629, - 3769.011919677603 + 3749.011919677603 ] }, { @@ -7038,7 +7077,7 @@ ], "pos": [ -5717.390884569629, - 3789.011919677603 + 3769.011919677603 ] }, { @@ -7051,7 +7090,7 @@ "localized_name": "image", "pos": [ -5717.390884569629, - 3549.011919677603 + 3789.011919677603 ] }, { @@ -7064,7 +7103,7 @@ "label": "noise seed", "pos": [ -5717.390884569629, - 3749.011919677603 + 3809.011919677603 ] }, { @@ -8416,7 +8455,7 @@ "widgets_values": [ "bicubic", 1920, - 1920, + 1088, "center" ] }, @@ -8937,7 +8976,7 @@ "widgets_values": [ "bicubic", 1920, - 1920, + 1088, "center" ] }, @@ -9825,7 +9864,7 @@ "version": 1, "state": { "lastGroupId": 19, - "lastNodeId": 234, + "lastNodeId": 237, "lastLinkId": 375, "lastRerouteId": 0 }, @@ -10334,15 +10373,15 @@ "widgets_values": [] }, { - "id": 218, - "type": "LTXVGemmaCLIPModelLoader", + "id": 233, + "type": "MarkdownNote", "pos": [ - -4717.118791809181, - 3832.829005690576 + -3923.1618258543112, + 3835.7948591109102 ], "size": [ - 361.9550439528154, - 106 + 243.8124037464695, + 146.00584955273098 ], "flags": { "collapsed": false @@ -10350,103 +10389,14 @@ "order": 1, "mode": 0, "inputs": [], - "outputs": [ - { - "localized_name": "clip", - "name": "clip", - "type": "CLIP", - "links": [ - 334, - 340 - ] - } - ], - "properties": { - "aux_id": "Lightricks/ComfyUI-LTXVideo", - "Node name for S&R": "LTXVGemmaCLIPModelLoader", - "ver": "445e087a43b95b57ef765874b6787446ec72546c" - }, - "widgets_values": [ - "gemma-3-12b-it-qat-q4_0-unquantized/model-00001-of-00005.safetensors", - "ltx-2-19b-distilled.safetensors", - 1024 - ] - }, - { - "id": 224, - "type": "SaveVideo", - "pos": [ - -3451.5346631448497, - 3454.1334693386984 - ], - "size": [ - 507.7172093653958, - 399.11336809064983 - ], - "flags": {}, - "order": 12, - "mode": 0, - "inputs": [ - { - "localized_name": "video", - "name": "video", - "type": "VIDEO", - "link": 364 - } - ], "outputs": [], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.5.1" - }, + "title": "RTX 5090", + "properties": {}, "widgets_values": [ - "LTX-2/Video", - "auto", - "auto" - ] - }, - { - "id": 221, - "type": "LoraLoaderModelOnly", - "pos": [ - -4711.303941127742, - 3576.0270328288934 + "This workflow is structured for optimized GPU and VRAM usage.\n\nModel nodes are ordered intentionally to reduce peak VRAM load.\n\nInput dependencies are used to organize execution order and should not be removed." ], - "size": [ - 374.2736204838038, - 82 - ], - "flags": {}, - "order": 9, - "mode": 0, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 367 - } - ], - "outputs": [ - { - "localized_name": "MODEL", - "name": "MODEL", - "type": "MODEL", - "links": [ - 345 - ] - } - ], - "title": "IC LoRA - Canny", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.75", - "Node name for S&R": "LoraLoaderModelOnly" - }, - "widgets_values": [ - "Internal/ltxv_apps/opensource_release/ic-loras/canny.safetensors", - 1 - ] + "color": "#432", + "bgcolor": "#653" }, { "id": 229, @@ -10500,7 +10450,7 @@ "Node name for S&R": "LowVRAMCheckpointLoader" }, "widgets_values": [ - "ltx-av-distilled-from-42500.safetensors" + "ltx-2-19b-distilled.safetensors" ] }, { @@ -10540,19 +10490,135 @@ "Node name for S&R": "LowVRAMAudioVAELoader" }, "widgets_values": [ - "ltx-av-distilled-from-42500.safetensors" + "ltx-2-19b-distilled.safetensors" ] }, { - "id": 233, - "type": "MarkdownNote", + "id": 232, + "type": "LowVRAMLatentUpscaleModelLoader", "pos": [ - -3923.1618258543112, - 3835.7948591109102 + -4706.116238030607, + 3717.0363964895646 ], "size": [ - 243.8124037464695, - 146.00584955273098 + 353.34921875, + 58 + ], + "flags": {}, + "order": 15, + "mode": 0, + "inputs": [ + { + "localized_name": "dependencies", + "name": "dependencies", + "shape": 7, + "type": "*", + "link": 373 + } + ], + "outputs": [ + { + "localized_name": "LATENT_UPSCALE_MODEL", + "name": "LATENT_UPSCALE_MODEL", + "type": "LATENT_UPSCALE_MODEL", + "links": [ + 374 + ] + } + ], + "properties": { + "Node name for S&R": "LowVRAMLatentUpscaleModelLoader" + }, + "widgets_values": [ + "ltx-2-spatial-upscaler-x2-1.0.safetensors" + ] + }, + { + "id": 221, + "type": "LoraLoaderModelOnly", + "pos": [ + -4711.303941127742, + 3576.0270328288934 + ], + "size": [ + 374.2736204838038, + 82 + ], + "flags": {}, + "order": 9, + "mode": 0, + "inputs": [ + { + "localized_name": "model", + "name": "model", + "type": "MODEL", + "link": 367 + } + ], + "outputs": [ + { + "localized_name": "MODEL", + "name": "MODEL", + "type": "MODEL", + "links": [ + 345 + ] + } + ], + "title": "IC LoRA - Canny", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.75", + "Node name for S&R": "LoraLoaderModelOnly" + }, + "widgets_values": [ + "ltx-2-19b-ic-lora-canny-control.safetensors", + 1 + ] + }, + { + "id": 224, + "type": "SaveVideo", + "pos": [ + -3449.9920902353, + 3465.5558544546634 + ], + "size": [ + 507.7172093653958, + 399.11336809064983 + ], + "flags": {}, + "order": 12, + "mode": 0, + "inputs": [ + { + "localized_name": "video", + "name": "video", + "type": "VIDEO", + "link": 364 + } + ], + "outputs": [], + "properties": { + "cnr_id": "comfy-core", + "ver": "0.5.1" + }, + "widgets_values": [ + "LTX-2/Video", + "auto", + "auto" + ] + }, + { + "id": 218, + "type": "LTXVGemmaCLIPModelLoader", + "pos": [ + -4717.118791809181, + 3832.829005690576 + ], + "size": [ + 361.9550439528154, + 106 ], "flags": { "collapsed": false @@ -10560,14 +10626,27 @@ "order": 2, "mode": 0, "inputs": [], - "outputs": [], - "title": "RTX 5090", - "properties": {}, - "widgets_values": [ - "This workflow is structured for optimized GPU and VRAM usage.\n\nModel nodes are ordered intentionally to reduce peak VRAM load.\n\nInput dependencies are used to organize execution order and should not be removed." + "outputs": [ + { + "localized_name": "clip", + "name": "clip", + "type": "CLIP", + "links": [ + 334, + 340 + ] + } ], - "color": "#432", - "bgcolor": "#653" + "properties": { + "aux_id": "Lightricks/ComfyUI-LTXVideo", + "Node name for S&R": "LTXVGemmaCLIPModelLoader", + "ver": "445e087a43b95b57ef765874b6787446ec72546c" + }, + "widgets_values": [ + "gemma-3-12b-it-qat-q4_0-unquantized/model-00001-of-00005.safetensors", + "ltx-2-19b-distilled.safetensors", + 1024 + ] }, { "id": 234, @@ -10797,46 +10876,6 @@ 1, 42 ] - }, - { - "id": 232, - "type": "LowVRAMLatentUpscaleModelLoader", - "pos": [ - -4706.116238030607, - 3717.0363964895646 - ], - "size": [ - 353.34921875, - 58 - ], - "flags": {}, - "order": 15, - "mode": 0, - "inputs": [ - { - "localized_name": "dependencies", - "name": "dependencies", - "shape": 7, - "type": "*", - "link": 373 - } - ], - "outputs": [ - { - "localized_name": "LATENT_UPSCALE_MODEL", - "name": "LATENT_UPSCALE_MODEL", - "type": "LATENT_UPSCALE_MODEL", - "links": [ - 374 - ] - } - ], - "properties": { - "Node name for S&R": "LowVRAMLatentUpscaleModelLoader" - }, - "widgets_values": [ - "ltx-2-spatial-upscaler-x2-1.0.safetensors" - ] } ], "groups": [ @@ -11694,64 +11733,21 @@ "Node name for S&R": "PrimitiveStringMultiline" }, "widgets_values": [ - "" + "cinematic aerial shot of a city landscape at night with warm lights illuminating the windows of the buildings. there is a visible green aurora borealis in the sky. soft piano melody playing " ], "color": "#232", "bgcolor": "#353" }, { - "id": 232, - "type": "LoraLoaderModelOnly", + "id": 253, + "type": "MarkdownNote", "pos": [ - -4876.456414820086, - 3252.7804226113144 + -4077.1904429734523, + 3572.8970015988957 ], "size": [ - 366.4906700768861, - 82 - ], - "flags": {}, - "order": 9, - "mode": 4, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 411 - } - ], - "outputs": [ - { - "localized_name": "MODEL", - "name": "MODEL", - "type": "MODEL", - "links": [ - 380 - ] - } - ], - "title": "IC LoRA - Depth", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.75", - "Node name for S&R": "LoraLoaderModelOnly" - }, - "widgets_values": [ - "Internal/ltxv_apps/opensource_release/ic-loras/depth.safetensors", - 1 - ] - }, - { - "id": 237, - "type": "LTXVGemmaCLIPModelLoader", - "pos": [ - -4879.374382504993, - 3521.0348105408675 - ], - "size": [ - 369.34488792888595, - 106 + 243.8124037464695, + 146.00584955273098 ], "flags": { "collapsed": false @@ -11759,27 +11755,40 @@ "order": 1, "mode": 4, "inputs": [], - "outputs": [ - { - "localized_name": "clip", - "name": "clip", - "type": "CLIP", - "links": [ - 369, - 375 - ] - } - ], - "properties": { - "aux_id": "Lightricks/ComfyUI-LTXVideo", - "Node name for S&R": "LTXVGemmaCLIPModelLoader", - "ver": "445e087a43b95b57ef765874b6787446ec72546c" - }, + "outputs": [], + "title": "RTX 5090", + "properties": {}, "widgets_values": [ - "gemma-3-12b-it-qat-q4_0-unquantized_readout_proj/model/model.safetensors", - "ltx-2-19b-distilled.safetensors", - 1024 - ] + "This workflow is structured for optimized GPU and VRAM usage.\n\nModel nodes are ordered intentionally to reduce peak VRAM load.\n\nInput dependencies are used to organize execution order and should not be removed." + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 254, + "type": "MarkdownNote", + "pos": [ + -5328.875479604414, + 3439.3993891434043 + ], + "size": [ + 428.34650223258404, + 159.11619167692334 + ], + "flags": { + "collapsed": false + }, + "order": 2, + "mode": 4, + "inputs": [], + "outputs": [], + "title": "IC LoRA", + "properties": {}, + "widgets_values": [ + "# IC LoRA Training \n\nFor your own IC LoRA - Upload to the \"IC LoRA\" node.\nMake sure to bypass the \"IC LoRA Preprocessing\" in the Samplers subgraph \n\n## Training\nWe have made available a full trainer to help you to train your own LoRA. You can [find it here](https://github.com/Lightricks/LTX-2)." + ], + "color": "#432", + "bgcolor": "#653" }, { "id": 250, @@ -11833,47 +11842,7 @@ "Node name for S&R": "LowVRAMCheckpointLoader" }, "widgets_values": [ - "ltx-av-distilled-from-42500.safetensors" - ] - }, - { - "id": 251, - "type": "LowVRAMLatentUpscaleModelLoader", - "pos": [ - -4866.020413516841, - 3409.0859146237253 - ], - "size": [ - 353.34921875, - 58 - ], - "flags": {}, - "order": 14, - "mode": 4, - "inputs": [ - { - "localized_name": "dependencies", - "name": "dependencies", - "shape": 7, - "type": "*", - "link": 417 - } - ], - "outputs": [ - { - "localized_name": "LATENT_UPSCALE_MODEL", - "name": "LATENT_UPSCALE_MODEL", - "type": "LATENT_UPSCALE_MODEL", - "links": [ - 418 - ] - } - ], - "properties": { - "Node name for S&R": "LowVRAMLatentUpscaleModelLoader" - }, - "widgets_values": [ - "ltx2-spatial-upscaler-x2-1.0.safetensors" + "ltx-2-19b-distilled.safetensors" ] }, { @@ -11913,45 +11882,62 @@ "Node name for S&R": "LowVRAMAudioVAELoader" }, "widgets_values": [ - "ltx-av-distilled-from-42500.safetensors" + "ltx-2-19b-distilled.safetensors" ] }, { - "id": 253, - "type": "MarkdownNote", + "id": 232, + "type": "LoraLoaderModelOnly", "pos": [ - -4077.1904429734523, - 3572.8970015988957 + -4876.456414820086, + 3252.7804226113144 ], "size": [ - 243.8124037464695, - 146.00584955273098 + 366.4906700768861, + 82 ], - "flags": { - "collapsed": false - }, - "order": 2, + "flags": {}, + "order": 9, "mode": 4, - "inputs": [], - "outputs": [], - "title": "RTX 5090", - "properties": {}, - "widgets_values": [ - "This workflow is structured for optimized GPU and VRAM usage.\n\nModel nodes are ordered intentionally to reduce peak VRAM load.\n\nInput dependencies are used to organize execution order and should not be removed." + "inputs": [ + { + "localized_name": "model", + "name": "model", + "type": "MODEL", + "link": 411 + } ], - "color": "#432", - "bgcolor": "#653" + "outputs": [ + { + "localized_name": "MODEL", + "name": "MODEL", + "type": "MODEL", + "links": [ + 380 + ] + } + ], + "title": "IC LoRA - Depth", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.75", + "Node name for S&R": "LoraLoaderModelOnly" + }, + "widgets_values": [ + "ltx-2-19b-ic-lora-depth-control.safetensors", + 1 + ] }, { - "id": 254, - "type": "MarkdownNote", + "id": 237, + "type": "LTXVGemmaCLIPModelLoader", "pos": [ - -5328.875479604414, - 3439.3993891434043 + -4879.374382504993, + 3521.0348105408675 ], "size": [ - 428.34650223258404, - 159.11619167692334 + 369.34488792888595, + 106 ], "flags": { "collapsed": false @@ -11959,14 +11945,67 @@ "order": 3, "mode": 4, "inputs": [], - "outputs": [], - "title": "IC LoRA", - "properties": {}, - "widgets_values": [ - "# IC LoRA Training \n\nFor your own IC LoRA - Upload to the \"IC LoRA\" node.\nMake sure to bypass the \"IC LoRA Preprocessing\" in the Samplers subgraph \n\n## Training\nWe have made available a full trainer to help you to train your own LoRA. You can [find it here](https://github.com/Lightricks/LTX-2)." + "outputs": [ + { + "localized_name": "clip", + "name": "clip", + "type": "CLIP", + "links": [ + 369, + 375 + ] + } ], - "color": "#432", - "bgcolor": "#653" + "properties": { + "aux_id": "Lightricks/ComfyUI-LTXVideo", + "Node name for S&R": "LTXVGemmaCLIPModelLoader", + "ver": "445e087a43b95b57ef765874b6787446ec72546c" + }, + "widgets_values": [ + "gemma-3-12b-it-qat-q4_0-unquantized/model-00001-of-00005.safetensors", + "ltx-2-19b-distilled.safetensors", + 1024 + ] + }, + { + "id": 251, + "type": "LowVRAMLatentUpscaleModelLoader", + "pos": [ + -4866.020413516841, + 3409.0859146237253 + ], + "size": [ + 353.34921875, + 58 + ], + "flags": {}, + "order": 14, + "mode": 4, + "inputs": [ + { + "localized_name": "dependencies", + "name": "dependencies", + "shape": 7, + "type": "*", + "link": 417 + } + ], + "outputs": [ + { + "localized_name": "LATENT_UPSCALE_MODEL", + "name": "LATENT_UPSCALE_MODEL", + "type": "LATENT_UPSCALE_MODEL", + "links": [ + 418 + ] + } + ], + "properties": { + "Node name for S&R": "LowVRAMLatentUpscaleModelLoader" + }, + "widgets_values": [ + "ltx-2-spatial-upscaler-x2-1.0.safetensors" + ] }, { "id": 239, @@ -12164,7 +12203,7 @@ "widgets_values": [ 24, true, - 1920, + 1088, 1920, 1, 42 @@ -12184,7 +12223,13 @@ "color": "#3f789e", "font_size": 24, "flags": {}, - "nodes": [] + "nodes": [ + 250, + 252, + 232, + 237, + 251 + ] }, { "id": 18, @@ -12198,7 +12243,13 @@ "color": "#3f789e", "font_size": 24, "flags": {}, - "nodes": [] + "nodes": [ + 225, + 228, + 231, + 235, + 229 + ] }, { "id": 19, @@ -12212,7 +12263,12 @@ "color": "#3f789e", "font_size": 24, "flags": {}, - "nodes": [] + "nodes": [ + 225, + 228, + 231, + 235 + ] } ], "links": [ @@ -12697,7 +12753,7 @@ "Node name for S&R": "PrimitiveStringMultiline" }, "widgets_values": [ - "" + "cinematic aerial shot of a city landscape at night with warm lights illuminating the windows of the buildings. there is a visible green aurora borealis in the sky. soft piano melody playing" ], "color": "#232", "bgcolor": "#353" @@ -13051,58 +13107,15 @@ "widgets_values": [] }, { - "id": 246, - "type": "LoraLoaderModelOnly", + "id": 269, + "type": "MarkdownNote", "pos": [ - -4703.035740729796, - 6554.255921054208 + -3924.9280052905788, + 6873.5415123161265 ], "size": [ - 323.90644822095646, - 82 - ], - "flags": {}, - "order": 7, - "mode": 4, - "inputs": [ - { - "localized_name": "model", - "name": "model", - "type": "MODEL", - "link": 450 - } - ], - "outputs": [ - { - "localized_name": "MODEL", - "name": "MODEL", - "type": "MODEL", - "links": [ - 415 - ] - } - ], - "title": "IC LoRA - Pose", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.3.75", - "Node name for S&R": "LoraLoaderModelOnly" - }, - "widgets_values": [ - "Internal/ltxv_apps/opensource_release/ic-loras/pose.safetensors", - 1 - ] - }, - { - "id": 250, - "type": "LTXVGemmaCLIPModelLoader", - "pos": [ - -4719.826929856459, - 6811.4889293323395 - ], - "size": [ - 353.23373465460344, - 106 + 243.8124037464695, + 146.00584955273098 ], "flags": { "collapsed": false @@ -13110,106 +13123,72 @@ "order": 1, "mode": 4, "inputs": [], - "outputs": [ - { - "localized_name": "clip", - "name": "clip", - "type": "CLIP", - "links": [ - 404, - 410 - ] - } - ], - "properties": { - "aux_id": "Lightricks/ComfyUI-LTXVideo", - "Node name for S&R": "LTXVGemmaCLIPModelLoader", - "ver": "445e087a43b95b57ef765874b6787446ec72546c" - }, + "outputs": [], + "title": "RTX 5090", + "properties": {}, "widgets_values": [ - "gemma-3-12b-it-qat-q4_0-unquantized_readout_proj/model/model.safetensors", - "ltx-2-19b-distilled.safetensors", - 1024 - ] + "This workflow is structured for optimized GPU and VRAM usage.\n\nModel nodes are ordered intentionally to reduce peak VRAM load.\n\nInput dependencies are used to organize execution order and should not be removed." + ], + "color": "#432", + "bgcolor": "#653" }, { - "id": 268, - "type": "LowVRAMAudioVAELoader", + "id": 270, + "type": "MarkdownNote", "pos": [ - -4734.310465787393, - 6969.913236857175 + -5181.39485402919, + 6743.973328267672 ], "size": [ - 369.648335325472, - 58 + 428.34650223258404, + 159.11619167692334 + ], + "flags": { + "collapsed": false + }, + "order": 2, + "mode": 4, + "inputs": [], + "outputs": [], + "title": "IC LoRA", + "properties": {}, + "widgets_values": [ + "# IC LoRA Training \n\nFor your own IC LoRA - Upload to the \"IC LoRA\" node.\nMake sure to bypass the \"IC LoRA Preprocessing\" in the Samplers subgraph \n\n## Training\nWe have made available a full trainer to help you to train your own LoRA. You can [find it here](https://github.com/Lightricks/LTX-2)." + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 256, + "type": "SaveVideo", + "pos": [ + -3445.418506295727, + 6503.453622594923 + ], + "size": [ + 403.7172093653958, + 501.7172093653958 ], "flags": {}, - "order": 16, + "order": 12, "mode": 4, "inputs": [ { - "localized_name": "dependencies", - "name": "dependencies", - "shape": 7, - "type": "*", - "link": 456 - } - ], - "outputs": [ - { - "localized_name": "audio_vae", - "name": "audio_vae", - "type": "VAE", - "links": [ - 457 - ] + "localized_name": "video", + "name": "video", + "type": "VIDEO", + "link": 434 } ], + "outputs": [], "properties": { - "Node name for S&R": "LowVRAMAudioVAELoader" + "cnr_id": "comfy-core", + "ver": "0.5.1" }, "widgets_values": [ - "ltx-av-distilled-from-42500.safetensors" - ] - }, - { - "id": 267, - "type": "LowVRAMLatentUpscaleModelLoader", - "pos": [ - -4719.478697480771, - 6694.642921567023 - ], - "size": [ - 353.34921875, - 58 - ], - "flags": {}, - "order": 15, - "mode": 4, - "inputs": [ - { - "localized_name": "dependencies", - "name": "dependencies", - "shape": 7, - "type": "*", - "link": 454 - } - ], - "outputs": [ - { - "localized_name": "LATENT_UPSCALE_MODEL", - "name": "LATENT_UPSCALE_MODEL", - "type": "LATENT_UPSCALE_MODEL", - "links": [ - 453 - ] - } - ], - "properties": { - "Node name for S&R": "LowVRAMLatentUpscaleModelLoader" - }, - "widgets_values": [ - "ltx2-spatial-upscaler-x2-1.0.safetensors" + "LTX-2/Video", + "auto", + "auto" ] }, { @@ -13264,45 +13243,102 @@ "Node name for S&R": "LowVRAMCheckpointLoader" }, "widgets_values": [ - "ltx-av-distilled-from-42500.safetensors" + "ltx-2-19b-distilled.safetensors" ] }, { - "id": 269, - "type": "MarkdownNote", + "id": 268, + "type": "LowVRAMAudioVAELoader", "pos": [ - -3924.9280052905788, - 6873.5415123161265 + -4734.310465787393, + 6969.913236857175 ], "size": [ - 243.8124037464695, - 146.00584955273098 + 369.648335325472, + 58 ], - "flags": { - "collapsed": false - }, - "order": 2, + "flags": {}, + "order": 16, "mode": 4, - "inputs": [], - "outputs": [], - "title": "RTX 5090", - "properties": {}, - "widgets_values": [ - "This workflow is structured for optimized GPU and VRAM usage.\n\nModel nodes are ordered intentionally to reduce peak VRAM load.\n\nInput dependencies are used to organize execution order and should not be removed." + "inputs": [ + { + "localized_name": "dependencies", + "name": "dependencies", + "shape": 7, + "type": "*", + "link": 456 + } ], - "color": "#432", - "bgcolor": "#653" + "outputs": [ + { + "localized_name": "audio_vae", + "name": "audio_vae", + "type": "VAE", + "links": [ + 457 + ] + } + ], + "properties": { + "Node name for S&R": "LowVRAMAudioVAELoader" + }, + "widgets_values": [ + "ltx-2-19b-distilled.safetensors" + ] }, { - "id": 270, - "type": "MarkdownNote", + "id": 246, + "type": "LoraLoaderModelOnly", "pos": [ - -5181.39485402919, - 6743.973328267672 + -4715.515138064328, + 6555.232987817329 ], "size": [ - 428.34650223258404, - 159.11619167692334 + 346.1144241569232, + 82 + ], + "flags": {}, + "order": 7, + "mode": 4, + "inputs": [ + { + "localized_name": "model", + "name": "model", + "type": "MODEL", + "link": 450 + } + ], + "outputs": [ + { + "localized_name": "MODEL", + "name": "MODEL", + "type": "MODEL", + "links": [ + 415 + ] + } + ], + "title": "IC LoRA - Pose", + "properties": { + "cnr_id": "comfy-core", + "ver": "0.3.75", + "Node name for S&R": "LoraLoaderModelOnly" + }, + "widgets_values": [ + "ltx-2-19b-ic-lora-pose-control.safetensors", + 1 + ] + }, + { + "id": 250, + "type": "LTXVGemmaCLIPModelLoader", + "pos": [ + -4719.826929856459, + 6811.4889293323395 + ], + "size": [ + 353.23373465460344, + 106 ], "flags": { "collapsed": false @@ -13310,46 +13346,26 @@ "order": 3, "mode": 4, "inputs": [], - "outputs": [], - "title": "IC LoRA", - "properties": {}, - "widgets_values": [ - "# IC LoRA Training \n\nFor your own IC LoRA - Upload to the \"IC LoRA\" node.\nMake sure to bypass the \"IC LoRA Preprocessing\" in the Samplers subgraph \n\n## Training\nWe have made available a full trainer to help you to train your own LoRA. You can [find it here](https://github.com/Lightricks/LTX-2)." - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 256, - "type": "SaveVideo", - "pos": [ - -3445.418506295727, - 6503.453622594923 - ], - "size": [ - 403.7172093653958, - 501.7172093653958 - ], - "flags": {}, - "order": 12, - "mode": 4, - "inputs": [ + "outputs": [ { - "localized_name": "video", - "name": "video", - "type": "VIDEO", - "link": 434 + "localized_name": "clip", + "name": "clip", + "type": "CLIP", + "links": [ + 404, + 410 + ] } ], - "outputs": [], "properties": { - "cnr_id": "comfy-core", - "ver": "0.5.1" + "aux_id": "Lightricks/ComfyUI-LTXVideo", + "Node name for S&R": "LTXVGemmaCLIPModelLoader", + "ver": "445e087a43b95b57ef765874b6787446ec72546c" }, "widgets_values": [ - "LTX-2/Video", - "auto", - "auto" + "gemma-3-12b-it-qat-q4_0-unquantized/model-00001-of-00005.safetensors", + "ltx-2-19b-distilled.safetensors", + 1024 ] }, { @@ -13549,10 +13565,50 @@ 24, true, 1920, - 1920, + 1088, 1, 42 ] + }, + { + "id": 267, + "type": "LowVRAMLatentUpscaleModelLoader", + "pos": [ + -4719.478697480771, + 6694.642921567023 + ], + "size": [ + 353.34921875, + 58 + ], + "flags": {}, + "order": 15, + "mode": 4, + "inputs": [ + { + "localized_name": "dependencies", + "name": "dependencies", + "shape": 7, + "type": "*", + "link": 454 + } + ], + "outputs": [ + { + "localized_name": "LATENT_UPSCALE_MODEL", + "name": "LATENT_UPSCALE_MODEL", + "type": "LATENT_UPSCALE_MODEL", + "links": [ + 453 + ] + } + ], + "properties": { + "Node name for S&R": "LowVRAMLatentUpscaleModelLoader" + }, + "widgets_values": [ + "ltx-2-spatial-upscaler-x2-1.0.safetensors" + ] } ], "groups": [ diff --git a/example_workflows/LTX-2_T2V_Distilled_wLora.json b/example_workflows/LTX-2_T2V_Distilled_wLora.json index 736f508..d0a1f00 100644 --- a/example_workflows/LTX-2_T2V_Distilled_wLora.json +++ b/example_workflows/LTX-2_T2V_Distilled_wLora.json @@ -251,44 +251,6 @@ "ltx-2-19b-distilled.safetensors" ] }, - { - "id": 5227, - "type": "LTXVGemmaCLIPModelLoader", - "pos": [ - -3298.5249619455894, - 7907.801436963024 - ], - "size": [ - 421.93656760943577, - 106 - ], - "flags": {}, - "order": 4, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "clip", - "type": "CLIP", - "links": [ - 13961, - 13962 - ] - } - ], - "properties": { - "Node name for S&R": "LTXVGemmaCLIPModelLoader", - "widget_ue_connectable": { - "model_path": true, - "max_length": true - } - }, - "widgets_values": [ - "gemma-3-12b-it-qat-q4_0-unquantized/model-00001-of-00005.safetensors", - "ltx-2-19b-distilled.safetensors", - 1024 - ] - }, { "id": 5219, "type": "LTXVAudioVAELoader", @@ -301,7 +263,7 @@ 58 ], "flags": {}, - "order": 5, + "order": 4, "mode": 0, "inputs": [], "outputs": [ @@ -551,42 +513,6 @@ "auto" ] }, - { - "id": 5222, - "type": "PrimitiveStringMultiline", - "pos": [ - -2567.508915639494, - 7588.770792256889 - ], - "size": [ - 337.7200214704494, - 515.3418506718763 - ], - "flags": {}, - "order": 6, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "STRING", - "type": "STRING", - "links": [ - 13980 - ] - } - ], - "title": "Positive Prompt", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.5.1", - "Node name for S&R": "PrimitiveStringMultiline" - }, - "widgets_values": [ - "A medium shot captures a doctor, clad in a white lab coat over a blue shirt, with a stethoscope draped around his neck, as he gently palpates the right knee of a patient. The patient, wearing a dark blue garment, sits on a light blue examination table, her left hand resting on her left thigh, and her right hand resting on her right thigh, just above the knee. A subtle red inflamed area is visible on the patient's right knee. The background is softly blurred, showing medical supplies on a counter. The camera slowly tilts up, revealing the doctor's face as he carefully flexes the patient's knee, testing its range of movement. The patient's expression shifts, her brow furrowing slightly, and she winces in discomfort. As the doctor continues to assess the knee, a nurse, dressed in scrubs and holding a notepad, enters the frame from the left, walking past the doctor and patient. She briefly pauses, extending the notepad towards the doctor, who glances at the notes and gives a subtle nod of acknowledgment before returning his attention to the patient's knee. The nurse continues walking out of frame to the right, and the doctor resumes his examination, his hands continuing to gently manipulate the patient's knee, who continues to wince.\n" - ], - "color": "#232", - "bgcolor": "#353" - }, { "id": 5244, "type": "LatentUpscaleModelLoader", @@ -599,7 +525,7 @@ 100.68012732230727 ], "flags": {}, - "order": 7, + "order": 5, "mode": 0, "inputs": [], "outputs": [ @@ -620,58 +546,6 @@ "ltx-2-spatial-upscaler-x2-1.0.safetensors" ] }, - { - "id": 5246, - "type": "MarkdownNote", - "pos": [ - -3759.587881115107, - 7906.926955158114 - ], - "size": [ - 418.0950915480007, - 208.54998853542747 - ], - "flags": { - "collapsed": false - }, - "order": 8, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "Prompting LTX-2", - "properties": {}, - "widgets_values": [ - "## LTX-2 Prompting Tips\n1. **Core Actions**: Describe events and actions as they occur over time \n2. **Audio**: Describe sounds and dialogue needed for the scene \n3. **Consistency**: Avoid instructions that do not match the reference image, as this will degrade results\n" - ], - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 5245, - "type": "MarkdownNote", - "pos": [ - -3759.592503870824, - 7426.935420507221 - ], - "size": [ - 421.1303542521987, - 436.3332627074051 - ], - "flags": { - "collapsed": false - }, - "order": 9, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "Model Links", - "properties": {}, - "widgets_values": [ - "## Model Links\n\n**LTX-2 Model Weights**\n\n- [ltx-2-19b-distilled.safetensors](https://huggingface.co/Lightricks/LTX-2/resolve/main/ltx-2-19b-distilled.safetensors)\n- [ ltx-2-spatial-upscaler-x2-1.0.safetensors ](https://huggingface.co/Lightricks/LTX-2/tree/main/ltx-2-spatial-upscaler-x2-1.0.safetensors)\n\n**Text Encoder**\n- [Google Gemma 3](https://huggingface.co/google/gemma-3-12b-pt)\n\n**Model Storage Location**\n\n```\nπŸ“‚ ComfyUI/\nβ”œβ”€β”€ πŸ“‚ models/\nβ”‚ β”œβ”€β”€ πŸ“‚ text_encoders/\nβ”‚ β”‚ β”œβ”€β”€ comfy_gemma_3_12B_it.safetensors\nβ”‚ β”œβ”€β”€ πŸ“‚ checkpoints/\nβ”‚ β”‚ └── ltx-2-19b-distilled.safetensors\nβ”‚ β”œβ”€β”€ πŸ“‚ latent_upscale_models/ \n └── ltx-2-spatial-upscaler-x2-1.0.safetensors\n```\n\n## Report Issues\nTo report any issues when running this workflow, [go to GitHub](https://github.com/Lightricks/ComfyUI-LTXVideo/issues)\n" - ], - "color": "#432", - "bgcolor": "#653" - }, { "id": 5247, "type": "MarkdownNote", @@ -686,7 +560,7 @@ "flags": { "collapsed": false }, - "order": 10, + "order": 6, "mode": 0, "inputs": [], "outputs": [], @@ -698,32 +572,6 @@ "color": "#432", "bgcolor": "#653" }, - { - "id": 5248, - "type": "MarkdownNote", - "pos": [ - -2581.888874206601, - 7104.237854538457 - ], - "size": [ - 469.5872194653941, - 209.10385276580928 - ], - "flags": { - "collapsed": false - }, - "order": 11, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "LoRA", - "properties": {}, - "widgets_values": [ - "# Using LoRAs\n**Ctrl + B to enable**\n\nFor the camera LoRA we recommend setting strength = 1\n\nYou can use LTX [Ready to use camera LoRAs](https://huggingface.co/collections/Lightricks/ltx-2)\n\n\n\n\nUse a second LoRa only when the details are important in the LoRa. \n\n## Training\nWe have made available a full trainer to help you to train your own LoRA. You can [find it here](https://github.com/Lightricks/LTX-2)." - ], - "color": "#432", - "bgcolor": "#653" - }, { "id": 5225, "type": "LTXVGemmaEnhancePrompt", @@ -778,9 +626,111 @@ "", "You are a Creative Assistant. Given a user's raw input prompt describing a scene or concept, expand it into a detailed video generation prompt with specific visuals and integrated audio to guide a text-to-video model.\n\n#### Guidelines\n- Strictly follow all aspects of the user's raw input: include every element requested (style, visuals, motions, actions, camera movement, audio).\n - If the input is vague, invent concrete details: lighting, textures, materials, scene settings, etc.\n - For characters: describe gender, clothing, hair, expressions. DO NOT invent unrequested characters.\n- Use active language: present-progressive verbs (\"is walking,\" \"speaking\"). If no action specified, describe natural movements.\n- Maintain chronological flow: use temporal connectors (\"as,\" \"then,\" \"while\").\n- Audio layer: Describe complete soundscape (background audio, ambient sounds, SFX, speech/music when requested). Integrate sounds chronologically alongside actions. Be specific (e.g., \"soft footsteps on tile\"), not vague (e.g., \"ambient sound is present\").\n- Speech (only when requested): \n - For ANY speech-related input (talking, conversation, singing, etc.), ALWAYS include exact words in quotes with voice characteristics (e.g., \"The man says in an excited voice: 'You won't believe what I just saw!'\").\n - Specify language if not English and accent if relevant.\n- Style: Include visual style at the beginning: \"Style: