From 339ecc13800ac52cf71e05d0e7b8136654be19ac Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 20 Oct 2026 06:55:07 +0000 Subject: [PATCH] Automated PR - 2026-10-20 --- __init__.py | 4 - .../LTX-2.5_I2V_HDR_Two_Stage_Distilled.json | 1265 ++- ...CLoRA_Inpaint_HDR_Two_Stage_Distilled.json | 1638 ++-- .../LTX-2.5_ICLoRA_SDR_to_HDR_Distilled.json | 2034 +++-- .../LTX-2.5_V2V_TiledFusion_HDR_to_HDR.json | 7072 ++++++++--------- .../LTX-2.5_V2V_TiledFusion_SDR_to_HDR.json | 2137 +++-- example_workflows/2.5/README.md | 12 +- hdr_color.py | 81 +- hdr_io.py | 226 +- hdr_nodes.py | 181 +- pyproject.toml | 24 + stg.py | 12 +- 12 files changed, 6492 insertions(+), 8194 deletions(-) create mode 100644 pyproject.toml diff --git a/__init__.py b/__init__.py index aa447ee..16a424b 100644 --- a/__init__.py +++ b/__init__.py @@ -16,8 +16,6 @@ from .guiders import GuiderParametersNode, MultimodalGuiderNode from .hdr_nodes import ( LTXVHDRDecodePostprocess, LTXVLoadEXRSequence, - LTXVSaveHLG, - LTXVSDRToHDRWorkingSpace, LTXVVAEForceFloat32, ) from .iclora import ( @@ -106,10 +104,8 @@ NODE_CLASS_MAPPINGS = { "LTXVInpaintPreprocess": LTXVInpaintPreprocess, "LTXVLaplacianPyramidBlend": LTXVLaplacianPyramidBlend, "LTXVHDRDecodePostprocess": LTXVHDRDecodePostprocess, - "LTXVSDRToHDRWorkingSpace": LTXVSDRToHDRWorkingSpace, "LTXVLoadEXRSequence": LTXVLoadEXRSequence, "LTXVVAEForceFloat32": LTXVVAEForceFloat32, - "LTXVSaveHLG": LTXVSaveHLG, "LTXVAudioOnlyModel": LTXVAudioOnlyModel, "LTXVAudioOnlyEmptyVideoLatent": LTXVAudioOnlyEmptyVideoLatent, } diff --git a/example_workflows/2.5/HDR_workflows/LTX-2.5_I2V_HDR_Two_Stage_Distilled.json b/example_workflows/2.5/HDR_workflows/LTX-2.5_I2V_HDR_Two_Stage_Distilled.json index 88a4936..b8166a5 100644 --- a/example_workflows/2.5/HDR_workflows/LTX-2.5_I2V_HDR_Two_Stage_Distilled.json +++ b/example_workflows/2.5/HDR_workflows/LTX-2.5_I2V_HDR_Two_Stage_Distilled.json @@ -1,8 +1,8 @@ { "id": "b0f9490f-5bae-434c-8205-c6216ac08d2c", "revision": 0, - "last_node_id": 5600, - "last_link_id": 13868, + "last_node_id": 5605, + "last_link_id": 13882, "nodes": [ { "id": 5529, @@ -37,12 +37,12 @@ "id": 5531, "type": "MarkdownNote", "pos": [ - -1260.4597847527684, - 2876.9038975734984 + -1307.1033005936974, + 2874.587226942385 ], "size": [ - 406.796875, - 300.0625 + 389.48124253917354, + 302.50141515355745 ], "flags": { "collapsed": false @@ -54,10 +54,10 @@ "title": "Decode", "properties": {}, "widgets_values": [ - "## Decode\n\nMake 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).\n\n### Recommended settings\n\n| node settings (pixels) | resolved latent geometry |\n| ------------------------------------------ | ------------------------------- |\n| `512 / 64 / 128 / 32` | 16×16, ov 2 | 16f, ov 4 |\n| `768 / 192 / 128 / 32` | 24×24, ov 6 | 16f, ov 4 |\n| `1024 / 256 / 128 / 48` | 32×32, ov 8 | 16f, ov 6 |\n| `1536 / 384 / 192 / 48` | 48×48, ov 12 | 24f, ov 6 |\n| `768 / 192 / spatial-only` | 24×24, ov 6 | no temporal split |" + "## Decode\n\nMake 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).\n\n### Recommended settings\n\n| node settings (pixels) | resolved latent geometry |\n| ------------------------------------------ | ------------------------------- |\n| `512 / 64 / 128 / 32` | 16×16, ov 2 | 16f, ov 4 |\n| `768 / 192 / 128 / 32` | 24×24, ov 6 | 16f, ov 4 |\n| `1024 / 256 / 128 / 48` | 32×32, ov 8 | 16f, ov 6 |\n| `1536 / 384 / 192 / 48` | 48×48, ov 12 | 24f, ov 6 |\n| `768 / 192 / spatial-only` | 24×24, ov 6 | no temporal split |\n\n**Convert Image Color Space** ACEScct → `HDR` (Rec.2020 HLG) feeds the video; the ACEScct image goes to the EXR save.\n" ], "widgets_values_named": { - "text": "## Decode\n\nMake 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).\n\n### Recommended settings\n\n| node settings (pixels) | resolved latent geometry |\n| ------------------------------------------ | ------------------------------- |\n| `512 / 64 / 128 / 32` | 16×16, ov 2 | 16f, ov 4 |\n| `768 / 192 / 128 / 32` | 24×24, ov 6 | 16f, ov 4 |\n| `1024 / 256 / 128 / 48` | 32×32, ov 8 | 16f, ov 6 |\n| `1536 / 384 / 192 / 48` | 48×48, ov 12 | 24f, ov 6 |\n| `768 / 192 / spatial-only` | 24×24, ov 6 | no temporal split |" + "text": "## Decode\n\nMake 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).\n\n### Recommended settings\n\n| node settings (pixels) | resolved latent geometry |\n| ------------------------------------------ | ------------------------------- |\n| `512 / 64 / 128 / 32` | 16×16, ov 2 | 16f, ov 4 |\n| `768 / 192 / 128 / 32` | 24×24, ov 6 | 16f, ov 4 |\n| `1024 / 256 / 128 / 48` | 32×32, ov 8 | 16f, ov 6 |\n| `1536 / 384 / 192 / 48` | 48×48, ov 12 | 24f, ov 6 |\n| `768 / 192 / spatial-only` | 24×24, ov 6 | no temporal split |\n\n**Convert Image Color Space** ACEScct → `HDR` (Rec.2020 HLG) feeds the video; the ACEScct image goes to the EXR save.\n" }, "color": "#432", "bgcolor": "#653" @@ -66,21 +66,21 @@ "id": 5518, "type": "bee43e38-9234-4e41-86ff-63874164f482", "pos": [ - -1260.4597847527684, - 3234.6204748269606 + -1277.6879960616106, + 3241.133350649767 ], "size": [ 319.265625, 245.796875 ], "flags": {}, - "order": 20, + "order": 16, "mode": 0, "inputs": [ { "name": "vae", "type": "VAE", - "link": 13844 + "link": 13882 }, { "label": "video_latent", @@ -102,18 +102,26 @@ ], "outputs": [ { + "label": "ACEScct_image", "name": "IMAGE", "type": "IMAGE", "links": [ - 13846 + 13876 ] }, { "name": "AUDIO", "type": "AUDIO", "links": [ - 13854, - 13857 + 13878 + ] + }, + { + "label": "HDR_HLG_image", + "name": "IMAGE_1", + "type": "IMAGE", + "links": [ + 13877 ] } ], @@ -139,8 +147,8 @@ "id": 5509, "type": "PrimitiveStringMultiline", "pos": [ - -3559.5562371930837, - 3326.6663977802655 + -3557.156896832392, + 3339.927482263426 ], "size": [ 343.59375, @@ -174,45 +182,6 @@ "color": "#322", "bgcolor": "#533" }, - { - "id": 5511, - "type": "PrimitiveFloat", - "pos": [ - -3563.387047603918, - 3908.395628761551 - ], - "size": [ - 343.59375, - 62 - ], - "flags": {}, - "order": 3, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "FLOAT", - "type": "FLOAT", - "links": [ - 13633 - ] - } - ], - "title": "fps (frames per second)", - "properties": { - "Node name for S&R": "PrimitiveFloat", - "cnr_id": "comfy-core", - "ver": "0.25.0" - }, - "widgets_values": [ - 24 - ], - "widgets_values_named": { - "value": 24 - }, - "color": "#2a363b", - "bgcolor": "#3f5159" - }, { "id": 5530, "type": "MarkdownNote", @@ -227,7 +196,7 @@ "flags": { "collapsed": false }, - "order": 4, + "order": 3, "mode": 0, "inputs": [], "outputs": [], @@ -246,27 +215,27 @@ "id": 5576, "type": "MarkdownNote", "pos": [ - -4286.114557585211, - 2491.086618331007 + -4294.451674884059, + 2466.4111736066952 ], "size": [ - 572.421875, - 676.078125 + 584.1171097015317, + 582.0190385261626 ], "flags": { "collapsed": false }, - "order": 5, + "order": 4, "mode": 0, "inputs": [], "outputs": [], "title": "Model Links", "properties": {}, "widgets_values": [ - "## Model Links\n\n**LTX-2.5 Model Weights**\n\nMake sure to click the \"Agree and Access\" button the first time you download.\n\n- [ Distilled model - ltx-2.5-22b-distilled-transformer-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/diffusion_models/ltx-2.5-22b-distilled-transformer-bf16.safetensors)\n\n- [ Audio VAE - ltx-2.5-audio-vae-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/vae/ltx-2.5-audio-vae-bf16.safetensors)\n\n- Video VAE - one of these:\n - [ Diffusion decoder ltx-2.5-video-vae-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/vae/ltx-2.5-video-vae-bf16.safetensors) - Best quality\n - [ Convolutional decoder - ltx-2.5-video-vae-conv-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/vae/ltx-2.5-video-vae-conv-bf16.safetensors) - Lower memory & faster\n\n- [ Upscaler - ltx-2.5-latent-spatial-upscaler-x2-bf16-1.0.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/latent_upscale_models/ltx-2.5-latent-spatial-upscaler-x2-bf16-1.0.safetensors)\n\n\n\n**Text Encoder - finetuned for LTX-2.5**\n- [gemma4-12b-with-proj-ltx-2.5-bf16.safetensors](https://huggingface.co/Lightricks/LTX-2.5/blob/main/text_encoders/gemma4-12b-with-proj-ltx-2.5-bf16.safetensors)\n\n**Text Enhancer**\n- [Google Gemma 4 E2B IT](https://huggingface.co/Comfy-Org/gemma-4/blob/main/text_encoders/gemma4_e2b_it_bf16.safetensors)\n\n\n**Model Storage Location**\n\n```\n📂 ComfyUI/\n├── 📂 models/\n│ ├── 📂 text_encoders/\n│ │ ├── gemma4-12b-with-proj-ltx-2.5-bf16.safetensors\n│ │ └── gemma4_e2b_it_bf16.safetensors\n│ ├── 📂 diffusion_models/\n│ │ └── ltx-2.5-22b-distilled-transformer-bf16.safetensors\n│ ├── 📂 vae/\n│ │ └── ltx-2.5-audio-vae-bf16.safetensors\n│ │ └── ltx-2.5-video-vae-conv-bf16.safetensors / ltx-2.5-video-vae-bf16.safetensors\n│ ├── 📂 latent_upscale_models/\n│ └── ltx-2.5-latent-spatial-upscaler-x2-bf16-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\n**Native HDR:** use float32 video VAE path (node in graph). EXR plates require OpenImageIO (`pip install openimageio`).\n" + "## Model Links\n\n**LTX-2.5 Model Weights**\n\nMake sure to click the \"Agree and Access\" button the first time you download.\n\n- [ Distilled model - ltx-2.5-22b-distilled-transformer-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/diffusion_models/ltx-2.5-22b-distilled-transformer-bf16.safetensors)\n\n- [ Audio VAE - ltx-2.5-audio-vae-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/vae/ltx-2.5-audio-vae-bf16.safetensors)\n\n- Video VAE - one of these:\n - [ Diffusion decoder ltx-2.5-video-vae-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/vae/ltx-2.5-video-vae-bf16.safetensors) - Best quality\n - [ Convolutional decoder - ltx-2.5-video-vae-conv-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/vae/ltx-2.5-video-vae-conv-bf16.safetensors) - Lower memory & faster\n\n- [ Upscaler - ltx-2.5-latent-spatial-upscaler-x2-bf16-1.0.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/latent_upscale_models/ltx-2.5-latent-spatial-upscaler-x2-bf16-1.0.safetensors)\n\n\n\n**Text Encoder - finetuned for LTX-2.5**\n- [gemma4-12b-with-proj-ltx-2.5-bf16.safetensors](https://huggingface.co/Lightricks/LTX-2.5/blob/main/text_encoders/gemma4-12b-with-proj-ltx-2.5-bf16.safetensors)\n\n**Text Enhancer**\n- [Google Gemma 4 E2B IT](https://huggingface.co/Comfy-Org/gemma-4/blob/main/text_encoders/gemma4_e2b_it_bf16.safetensors)\n\n\n**Model Storage Location**\n\n```\n📂 ComfyUI/\n├── 📂 models/\n│ ├── 📂 text_encoders/\n│ │ ├── gemma4-12b-with-proj-ltx-2.5-bf16.safetensors\n│ │ └── gemma4_e2b_it_bf16.safetensors\n│ ├── 📂 diffusion_models/\n│ │ └── ltx-2.5-22b-distilled-transformer-bf16.safetensors\n│ ├── 📂 vae/\n│ │ └── ltx-2.5-audio-vae-bf16.safetensors\n│ │ └── ltx-2.5-video-vae-conv-bf16.safetensors / ltx-2.5-video-vae-bf16.safetensors\n│ ├── 📂 latent_upscale_models/\n│ └── ltx-2.5-latent-spatial-upscaler-x2-bf16-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\n**Native HDR:** use the float32 video VAE (inside **Load Models**). EXR plates require OpenImageIO (`pip install openimageio`).\n" ], "widgets_values_named": { - "text": "## Model Links\n\n**LTX-2.5 Model Weights**\n\nMake sure to click the \"Agree and Access\" button the first time you download.\n\n- [ Distilled model - ltx-2.5-22b-distilled-transformer-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/diffusion_models/ltx-2.5-22b-distilled-transformer-bf16.safetensors)\n\n- [ Audio VAE - ltx-2.5-audio-vae-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/vae/ltx-2.5-audio-vae-bf16.safetensors)\n\n- Video VAE - one of these:\n - [ Diffusion decoder ltx-2.5-video-vae-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/vae/ltx-2.5-video-vae-bf16.safetensors) - Best quality\n - [ Convolutional decoder - ltx-2.5-video-vae-conv-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/vae/ltx-2.5-video-vae-conv-bf16.safetensors) - Lower memory & faster\n\n- [ Upscaler - ltx-2.5-latent-spatial-upscaler-x2-bf16-1.0.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/latent_upscale_models/ltx-2.5-latent-spatial-upscaler-x2-bf16-1.0.safetensors)\n\n\n\n**Text Encoder - finetuned for LTX-2.5**\n- [gemma4-12b-with-proj-ltx-2.5-bf16.safetensors](https://huggingface.co/Lightricks/LTX-2.5/blob/main/text_encoders/gemma4-12b-with-proj-ltx-2.5-bf16.safetensors)\n\n**Text Enhancer**\n- [Google Gemma 4 E2B IT](https://huggingface.co/Comfy-Org/gemma-4/blob/main/text_encoders/gemma4_e2b_it_bf16.safetensors)\n\n\n**Model Storage Location**\n\n```\n📂 ComfyUI/\n├── 📂 models/\n│ ├── 📂 text_encoders/\n│ │ ├── gemma4-12b-with-proj-ltx-2.5-bf16.safetensors\n│ │ └── gemma4_e2b_it_bf16.safetensors\n│ ├── 📂 diffusion_models/\n│ │ └── ltx-2.5-22b-distilled-transformer-bf16.safetensors\n│ ├── 📂 vae/\n│ │ └── ltx-2.5-audio-vae-bf16.safetensors\n│ │ └── ltx-2.5-video-vae-conv-bf16.safetensors / ltx-2.5-video-vae-bf16.safetensors\n│ ├── 📂 latent_upscale_models/\n│ └── ltx-2.5-latent-spatial-upscaler-x2-bf16-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\n**Native HDR:** use float32 video VAE path (node in graph). EXR plates require OpenImageIO (`pip install openimageio`).\n" + "text": "## Model Links\n\n**LTX-2.5 Model Weights**\n\nMake sure to click the \"Agree and Access\" button the first time you download.\n\n- [ Distilled model - ltx-2.5-22b-distilled-transformer-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/diffusion_models/ltx-2.5-22b-distilled-transformer-bf16.safetensors)\n\n- [ Audio VAE - ltx-2.5-audio-vae-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/vae/ltx-2.5-audio-vae-bf16.safetensors)\n\n- Video VAE - one of these:\n - [ Diffusion decoder ltx-2.5-video-vae-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/vae/ltx-2.5-video-vae-bf16.safetensors) - Best quality\n - [ Convolutional decoder - ltx-2.5-video-vae-conv-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/vae/ltx-2.5-video-vae-conv-bf16.safetensors) - Lower memory & faster\n\n- [ Upscaler - ltx-2.5-latent-spatial-upscaler-x2-bf16-1.0.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/latent_upscale_models/ltx-2.5-latent-spatial-upscaler-x2-bf16-1.0.safetensors)\n\n\n\n**Text Encoder - finetuned for LTX-2.5**\n- [gemma4-12b-with-proj-ltx-2.5-bf16.safetensors](https://huggingface.co/Lightricks/LTX-2.5/blob/main/text_encoders/gemma4-12b-with-proj-ltx-2.5-bf16.safetensors)\n\n**Text Enhancer**\n- [Google Gemma 4 E2B IT](https://huggingface.co/Comfy-Org/gemma-4/blob/main/text_encoders/gemma4_e2b_it_bf16.safetensors)\n\n\n**Model Storage Location**\n\n```\n📂 ComfyUI/\n├── 📂 models/\n│ ├── 📂 text_encoders/\n│ │ ├── gemma4-12b-with-proj-ltx-2.5-bf16.safetensors\n│ │ └── gemma4_e2b_it_bf16.safetensors\n│ ├── 📂 diffusion_models/\n│ │ └── ltx-2.5-22b-distilled-transformer-bf16.safetensors\n│ ├── 📂 vae/\n│ │ └── ltx-2.5-audio-vae-bf16.safetensors\n│ │ └── ltx-2.5-video-vae-conv-bf16.safetensors / ltx-2.5-video-vae-bf16.safetensors\n│ ├── 📂 latent_upscale_models/\n│ └── ltx-2.5-latent-spatial-upscaler-x2-bf16-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\n**Native HDR:** use the float32 video VAE (inside **Load Models**). EXR plates require OpenImageIO (`pip install openimageio`).\n" }, "color": "#432", "bgcolor": "#653" @@ -285,7 +254,7 @@ "flags": { "collapsed": false }, - "order": 6, + "order": 5, "mode": 0, "inputs": [ { @@ -357,7 +326,9 @@ "name": "VAE", "type": "VAE", "links": [ - 13841 + 13872, + 13881, + 13882 ] }, { @@ -456,111 +427,6 @@ "model_name": "gemma4-12b-with-proj-ltx-2.5-bf16.safetensors" } }, - { - "id": 5512, - "type": "PrimitiveFloat", - "pos": [ - -3561.853511157809, - 4052.2349475123683 - ], - "size": [ - 343.59375, - 62 - ], - "flags": {}, - "order": 7, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "FLOAT", - "type": "FLOAT", - "links": [ - 13634 - ] - } - ], - "title": "duration in seconds (determines frames #)", - "properties": { - "Node name for S&R": "PrimitiveFloat", - "cnr_id": "comfy-core", - "ver": "0.25.0" - }, - "widgets_values": [ - 5 - ], - "widgets_values_named": { - "value": 5 - }, - "color": "#2a363b", - "bgcolor": "#3f5159" - }, - { - "id": 5593, - "type": "MarkdownNote", - "pos": [ - -3959.222780553446, - 3623.5526311422145 - ], - "size": [ - 360, - 120 - ], - "flags": {}, - "order": 8, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "Native HDR EXR", - "properties": {}, - "widgets_values": [ - "## Native HDR I2V\n\nEXR still → ACEScct → float32 VAE → two-stage distilled I2V → EXR + HLG out (same I/O as pipelines `--hdr` on Distilled).\nNot the SDR→HDR IC-LoRA upgrade path.\n" - ], - "widgets_values_named": { - "text": "## Native HDR I2V\n\nEXR still → ACEScct → float32 VAE → two-stage distilled I2V → EXR + HLG out (same I/O as pipelines `--hdr` on Distilled).\nNot the SDR→HDR IC-LoRA upgrade path.\n" - }, - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 5578, - "type": "LTXVVAEForceFloat32", - "pos": [ - -3133.4473963659534, - 3652.460902145821 - ], - "size": [ - 417.203125, - 86.109375 - ], - "flags": {}, - "order": 14, - "mode": 0, - "inputs": [ - { - "name": "vae", - "type": "VAE", - "link": 13841 - } - ], - "outputs": [ - { - "name": "VAE", - "type": "VAE", - "links": [ - 13842, - 13844, - 13855 - ] - } - ], - "title": "VAE float32 (native HDR)", - "properties": { - "Node name for S&R": "LTXVVAEForceFloat32" - }, - "color": "#233", - "bgcolor": "#355" - }, { "id": 5528, "type": "MarkdownNote", @@ -575,7 +441,7 @@ "flags": { "collapsed": false }, - "order": 9, + "order": 6, "mode": 0, "inputs": [], "outputs": [], @@ -590,104 +456,6 @@ "color": "#432", "bgcolor": "#653" }, - { - "id": 5585, - "type": "SaveVideo", - "pos": [ - -124.52833294481351, - 3234.233568140196 - ], - "size": [ - 320, - 106 - ], - "flags": {}, - "order": 24, - "mode": 0, - "inputs": [ - { - "name": "video", - "type": "VIDEO", - "link": 13852 - } - ], - "outputs": [ - { - "name": "video", - "type": "VIDEO", - "links": null - } - ], - "title": "Save video (preview)", - "properties": { - "Node name for S&R": "SaveVideo", - "cnr_id": "comfy-core" - }, - "widgets_values": [ - "hdr/preview", - "auto", - "auto", - "auto" - ], - "widgets_values_named": { - "filename_prefix": "hdr/preview", - "format": "auto", - "format.codec": "auto", - "codec": "auto" - } - }, - { - "id": 5586, - "type": "LTXVSaveHLG", - "pos": [ - -473.6449577252563, - 3418.9773064326732 - ], - "size": [ - 320, - 170 - ], - "flags": {}, - "order": 23, - "mode": 0, - "inputs": [ - { - "name": "hdr_linear", - "type": "IMAGE", - "link": 13848 - }, - { - "name": "audio", - "shape": 7, - "type": "AUDIO", - "link": 13854 - }, - { - "name": "frame_rate", - "type": "FLOAT", - "widget": { - "name": "frame_rate" - }, - "link": 13851 - } - ], - "outputs": [], - "properties": { - "Node name for S&R": "LTXVSaveHLG" - }, - "widgets_values": [ - 24, - "hdr/ltxv_hlg", - "acescg" - ], - "widgets_values_named": { - "frame_rate": 24, - "filename_prefix": "hdr/ltxv_hlg", - "linear_primaries": "acescg" - }, - "color": "#233", - "bgcolor": "#355" - }, { "id": 5516, "type": "f9337bd7-ca7a-4a59-99f1-65b664bed7e7", @@ -700,7 +468,7 @@ 261.015625 ], "flags": {}, - "order": 18, + "order": 14, "mode": 0, "inputs": [ { @@ -786,7 +554,7 @@ 310 ], "flags": {}, - "order": 19, + "order": 15, "mode": 0, "inputs": [ { @@ -803,7 +571,7 @@ { "name": "vae", "type": "VAE", - "link": 13855 + "link": 13872 }, { "name": "image", @@ -887,105 +655,44 @@ "id": 5532, "type": "MarkdownNote", "pos": [ - -792.5376444678003, - 3081.236023755434 + -816.1957965455863, + 3041.3032532483558 ], "size": [ 523.046875, - 114.03125 + 123 ], "flags": { "collapsed": false }, - "order": 10, + "order": 7, "mode": 0, "inputs": [], "outputs": [], "title": "Save video", "properties": {}, "widgets_values": [ - "## Save HDR\n\n1. **LTXVHDRDecodePostprocess** (`transfer=acescct`) — EXR + `hdr_linear`.\n2. **LTXVSaveHLG** — BT.2020/HLG 10-bit master (muxes Decode **AUDIO**).\n3. Preview: CreateVideo → SaveVideo from `hdr_linear` + Decode AUDIO.\n" + "## Save HDR\n\n1. **Save EXR (ACEScg)** — `LTXVHDRDecodePostprocess` with `save_exr` on and `exr_color_space` = `acescg`; writes the ACEScg EXR sequence to `output/hdr_exr`. Its image outputs are not used.\n2. **HLG video**: Create Video (`HDR`, generated audio) → Save Video (10-bit; auto = H.264, AV1 also available). Core HLG uses 1.0 = 203 nits and clips above 1000 nits.\n" ], "widgets_values_named": { - "text": "## Save HDR\n\n1. **LTXVHDRDecodePostprocess** (`transfer=acescct`) — EXR + `hdr_linear`.\n2. **LTXVSaveHLG** — BT.2020/HLG 10-bit master (muxes Decode **AUDIO**).\n3. Preview: CreateVideo → SaveVideo from `hdr_linear` + Decode AUDIO.\n" + "text": "## Save HDR\n\n1. **Save EXR (ACEScg)** — `LTXVHDRDecodePostprocess` with `save_exr` on and `exr_color_space` = `acescg`; writes the ACEScg EXR sequence to `output/hdr_exr`. Its image outputs are not used.\n2. **HLG video**: Create Video (`HDR`, generated audio) → Save Video (10-bit; auto = H.264, AV1 also available). Core HLG uses 1.0 = 203 nits and clips above 1000 nits.\n" }, "color": "#432", "bgcolor": "#653" }, - { - "id": 5583, - "type": "LTXVHDRDecodePostprocess", - "pos": [ - -869.5796231613673, - 3244.094400684741 - ], - "size": [ - 340, - 295 - ], - "flags": {}, - "order": 21, - "mode": 0, - "inputs": [ - { - "name": "image", - "type": "IMAGE", - "link": 13846 - } - ], - "outputs": [ - { - "name": "tonemapped", - "type": "IMAGE", - "links": [ - 13868 - ] - }, - { - "name": "hdr_linear", - "type": "IMAGE", - "links": [ - 13848 - ] - } - ], - "properties": { - "Node name for S&R": "LTXVHDRDecodePostprocess" - }, - "widgets_values": [ - "acescct", - 0, - true, - "acescg", - "output/hdr_exr", - "frame", - true - ], - "widgets_values_named": { - "transfer": "acescct", - "exposure": 0, - "save_exr": true, - "exr_color_space": "acescg", - "output_dir": "output/hdr_exr", - "filename_prefix": "frame", - "half_precision": true - }, - "color": "#233", - "bgcolor": "#355" - }, { "id": 5544, "type": "PreviewAny", "pos": [ - -3135.5848671645426, - 3832.259290401888 + -3151.6115455681443, + 3566.8657585055366 ], "size": [ 407.5, 257.9375 ], "flags": {}, - "order": 16, + "order": 12, "mode": 0, "inputs": [ { @@ -1010,79 +717,19 @@ "color": "#232", "bgcolor": "#353" }, - { - "id": 5584, - "type": "CreateVideo", - "pos": [ - -460.4597847527683, - 3234.6204748269606 - ], - "size": [ - 270, - 150 - ], - "flags": {}, - "order": 22, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 13868 - }, - { - "name": "audio", - "shape": 7, - "type": "AUDIO", - "link": 13857 - }, - { - "name": "fps", - "type": "FLOAT", - "widget": { - "name": "fps" - }, - "link": 13856 - } - ], - "outputs": [ - { - "name": "VIDEO", - "type": "VIDEO", - "links": [ - 13852 - ] - } - ], - "properties": { - "Node name for S&R": "CreateVideo" - }, - "widgets_values": [ - 8, - "auto", - "sRGB", - "none" - ], - "widgets_values_named": { - "fps": 8, - "bit_depth": "auto", - "color_space": "sRGB", - "codec": "none" - } - }, { "id": 5508, "type": "PrimitiveStringMultiline", "pos": [ - -3559.5562371930837, - 3092.721020219687 + -3557.9298092337067, + 3097.36313458893 ], "size": [ 343.59375, 197.109375 ], "flags": {}, - "order": 11, + "order": 8, "mode": 0, "inputs": [], "outputs": [ @@ -1113,15 +760,15 @@ "id": 5001, "type": "LTXVLoadEXRSequence", "pos": [ - -3561.1031747561606, - 3493.1095411775505 + -3558.0019526716974, + 3505.718522782598 ], "size": [ - 360, - 334 + 358.18805001806686, + 288.1586610339991 ], "flags": {}, - "order": 12, + "order": 9, "mode": 0, "inputs": [], "outputs": [ @@ -1196,7 +843,7 @@ "flags": { "collapsed": false }, - "order": 13, + "order": 10, "mode": 0, "inputs": [], "outputs": [], @@ -1215,15 +862,15 @@ "id": 5014, "type": "c28230e9-b195-4ec2-9679-39e1e920f733", "pos": [ - -3126.68049328901, - 3109.6333005846423 + -3170.3978617378934, + 3118.6202043199396 ], "size": [ 418.431640625, - 470 + 386 ], "flags": {}, - "order": 15, + "order": 11, "mode": 0, "inputs": [ { @@ -1278,7 +925,7 @@ "widget": { "name": "value" }, - "link": 13633 + "link": null }, { "label": "duration in seconds", @@ -1287,7 +934,7 @@ "widget": { "name": "value_5" }, - "link": 13634 + "link": null }, { "label": "enhancer_seed", @@ -1359,8 +1006,7 @@ "type": "FLOAT", "links": [ 13640, - 13851, - 13856 + 13879 ] }, { @@ -1410,7 +1056,7 @@ 266 ], "flags": {}, - "order": 17, + "order": 13, "mode": 0, "inputs": [ { @@ -1444,7 +1090,7 @@ { "name": "vae", "type": "VAE", - "link": 13842 + "link": 13881 }, { "label": "video width", @@ -1504,6 +1150,172 @@ "img_compression": 0, "strength": 1 } + }, + { + "id": 5603, + "type": "LTXVHDRDecodePostprocess", + "pos": [ + -865.8049575945913, + 3253.2421656169613 + ], + "size": [ + 340, + 295 + ], + "flags": {}, + "order": 17, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": 13876 + } + ], + "outputs": [ + { + "name": "tonemapped", + "type": "IMAGE", + "links": [] + }, + { + "name": "hdr_linear", + "type": "IMAGE", + "links": [] + } + ], + "title": "Save EXR (ACEScg)", + "properties": { + "Node name for S&R": "LTXVHDRDecodePostprocess" + }, + "widgets_values": [ + "acescct", + 0, + true, + "acescg", + "output/hdr_exr", + "frame", + true + ], + "widgets_values_named": { + "transfer": "acescct", + "exposure": 0, + "save_exr": true, + "exr_color_space": "acescg", + "output_dir": "output/hdr_exr", + "filename_prefix": "frame", + "half_precision": true + }, + "color": "#233", + "bgcolor": "#355" + }, + { + "id": 5604, + "type": "CreateVideo", + "pos": [ + -850.7667563077839, + 3592.119559778101 + ], + "size": [ + 280, + 150 + ], + "flags": {}, + "order": 18, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 13877 + }, + { + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": 13878 + }, + { + "name": "fps", + "type": "FLOAT", + "widget": { + "name": "fps" + }, + "link": 13879 + } + ], + "outputs": [ + { + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 13880 + ] + } + ], + "title": "CreateVideo (HLG)", + "properties": { + "Node name for S&R": "CreateVideo", + "cnr_id": "comfy-core" + }, + "widgets_values": [ + 24, + "auto", + "HDR", + "none" + ], + "widgets_values_named": { + "fps": 24, + "bit_depth": "auto", + "color_space": "HDR", + "codec": "none" + } + }, + { + "id": 5605, + "type": "SaveVideo", + "pos": [ + -492.0446298737707, + 3261.8374416805814 + ], + "size": [ + 360, + 296 + ], + "flags": {}, + "order": 19, + "mode": 0, + "inputs": [ + { + "name": "video", + "type": "VIDEO", + "link": 13880 + } + ], + "outputs": [ + { + "name": "video", + "type": "VIDEO", + "links": [] + } + ], + "title": "Save video (HLG)", + "properties": { + "Node name for S&R": "SaveVideo", + "cnr_id": "comfy-core" + }, + "widgets_values": [ + "hdr/hlg", + "auto", + "auto", + "auto" + ], + "widgets_values_named": { + "filename_prefix": "hdr/hlg", + "format": "auto", + "format.codec": "auto", + "codec": "auto" + } } ], "links": [ @@ -1523,22 +1335,6 @@ 5, "STRING" ], - [ - 13633, - 5511, - 0, - 5014, - 6, - "FLOAT" - ], - [ - 13634, - 5512, - 0, - 5014, - 7, - "FLOAT" - ], [ 13638, 5014, @@ -1699,86 +1495,6 @@ 1, "LATENT_UPSCALE_MODEL" ], - [ - 13841, - 5575, - 1, - 5578, - 0, - "VAE" - ], - [ - 13842, - 5578, - 0, - 5514, - 4, - "VAE" - ], - [ - 13848, - 5583, - 1, - 5586, - 0, - "IMAGE" - ], - [ - 13851, - 5014, - 4, - 5586, - 2, - "FLOAT" - ], - [ - 13855, - 5578, - 0, - 5517, - 2, - "VAE" - ], - [ - 13856, - 5014, - 4, - 5584, - 2, - "FLOAT" - ], - [ - 13846, - 5518, - 0, - 5583, - 0, - "IMAGE" - ], - [ - 13854, - 5518, - 1, - 5586, - 1, - "AUDIO" - ], - [ - 13857, - 5518, - 1, - 5584, - 1, - "AUDIO" - ], - [ - 13844, - 5578, - 0, - 5518, - 0, - "VAE" - ], [ 13734, 5517, @@ -1804,20 +1520,68 @@ "VAE" ], [ - 13852, - 5584, + 13872, + 5575, + 1, + 5517, + 2, + "VAE" + ], + [ + 13876, + 5518, 0, - 5585, + 5603, + 0, + "IMAGE" + ], + [ + 13877, + 5518, + 2, + 5604, + 0, + "IMAGE" + ], + [ + 13878, + 5518, + 1, + 5604, + 1, + "AUDIO" + ], + [ + 13879, + 5014, + 4, + 5604, + 2, + "FLOAT" + ], + [ + 13880, + 5604, + 0, + 5605, 0, "VIDEO" ], [ - 13868, - 5583, + 13881, + 5575, + 1, + 5514, + 4, + "VAE" + ], + [ + 13882, + 5575, + 1, + 5518, 0, - 5584, - 0, - "IMAGE" + "VAE" ] ], "groups": [ @@ -1827,8 +1591,8 @@ "bounding": [ -3585.5562371930837, 3026.721020219687, - 910.8582745912299, - 1191.0306527777561 + 857.7658571429038, + 841.3550019788154 ], "color": "#3f789e", "flags": {} @@ -1844,6 +1608,18 @@ ], "color": "#3f789e", "flags": {} + }, + { + "id": 159, + "title": "Export", + "bounding": [ + -879.5796231613673, + 3174.094400684741, + 805.7579274669431, + 609.546779703509 + ], + "color": "#3f789e", + "flags": {} } ], "definitions": { @@ -1852,10 +1628,10 @@ "id": "c28230e9-b195-4ec2-9679-39e1e920f733", "version": 1, "state": { - "lastGroupId": 158, - "lastNodeId": 5600, - "lastLinkId": 13868, - "lastRerouteId": 5047 + "lastGroupId": 159, + "lastNodeId": 5605, + "lastLinkId": 13882, + "lastRerouteId": 5053 }, "revision": 0, "config": {}, @@ -2162,12 +1938,12 @@ "widgets_values": [ "scale longer dimension", 1536, - "lanczos" + "bilinear" ], "widgets_values_named": { "resize_type": "scale longer dimension", "resize_type.longer_size": 1536, - "scale_method": "lanczos" + "scale_method": "bilinear" }, "color": "#432", "bgcolor": "#653" @@ -3365,6 +3141,14 @@ "target_slot": 5, "type": "STRING" }, + { + "id": 13730, + "origin_id": -10, + "origin_slot": 8, + "target_id": 5546, + "target_slot": 6, + "type": "INT" + }, { "id": 13859, "origin_id": 5017, @@ -3381,14 +3165,6 @@ "target_slot": 1, "type": "FLOAT" }, - { - "id": 13730, - "origin_id": -10, - "origin_slot": 8, - "target_id": 5546, - "target_slot": 6, - "type": "INT" - }, { "id": 13616, "origin_id": -10, @@ -3511,10 +3287,10 @@ "id": "792f0fd8-129e-48eb-9904-8d1aa82154d1", "version": 1, "state": { - "lastGroupId": 158, - "lastNodeId": 5600, - "lastLinkId": 13868, - "lastRerouteId": 5047 + "lastGroupId": 159, + "lastNodeId": 5605, + "lastLinkId": 13882, + "lastRerouteId": 5053 }, "revision": 0, "config": {}, @@ -4201,10 +3977,10 @@ "id": "f9337bd7-ca7a-4a59-99f1-65b664bed7e7", "version": 1, "state": { - "lastGroupId": 158, - "lastNodeId": 5600, - "lastLinkId": 13868, - "lastRerouteId": 5047 + "lastGroupId": 159, + "lastNodeId": 5605, + "lastLinkId": 13882, + "lastRerouteId": 5053 }, "revision": 0, "config": {}, @@ -4846,10 +4622,10 @@ "id": "bee43e38-9234-4e41-86ff-63874164f482", "version": 1, "state": { - "lastGroupId": 158, - "lastNodeId": 5600, - "lastLinkId": 13868, - "lastRerouteId": 5047 + "lastGroupId": 159, + "lastNodeId": 5605, + "lastLinkId": 13882, + "lastRerouteId": 5053 }, "revision": 0, "config": {}, @@ -4985,6 +4761,7 @@ 13860 ], "localized_name": "IMAGE", + "label": "ACEScct_image", "pos": [ -989.6521488113667, 3495.725923686955 @@ -5002,6 +4779,19 @@ -989.6521488113667, 3515.725923686955 ] + }, + { + "id": "8de6a869-92c8-410f-b921-669b91911128", + "name": "IMAGE_1", + "type": "IMAGE", + "linkIds": [ + 13875 + ], + "label": "HDR_HLG_image", + "pos": [ + -989.6521488113667, + 3535.725923686955 + ] } ], "widgets": [], @@ -5120,7 +4910,8 @@ "name": "IMAGE", "type": "IMAGE", "links": [ - 13860 + 13860, + 13874 ] } ], @@ -5139,6 +4930,54 @@ "temporal_size": 64, "temporal_overlap": 8 } + }, + { + "id": 5602, + "type": "ImageColorSpace", + "pos": [ + -1040.9462354838788, + 3310.8872234873465 + ], + "size": [ + 315, + 106 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "localized_name": "image", + "name": "image", + "type": "IMAGE", + "link": 13874 + } + ], + "outputs": [ + { + "localized_name": "IMAGE", + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 13875 + ] + } + ], + "title": "ACEScct → HDR (HLG)", + "properties": { + "Node name for S&R": "ImageColorSpace", + "cnr_id": "comfy-core" + }, + "widgets_values": [ + "HDR ACEScct", + "HDR" + ], + "widgets_values_named": { + "source": "HDR ACEScct", + "destination": "HDR" + }, + "color": "#233", + "bgcolor": "#355" } ], "groups": [ @@ -5235,6 +5074,22 @@ "target_id": 5538, "target_slot": 5, "type": "INT" + }, + { + "id": 13874, + "origin_id": 5538, + "origin_slot": 0, + "target_id": 5602, + "target_slot": 0, + "type": "IMAGE" + }, + { + "id": 13875, + "origin_id": 5602, + "origin_slot": 0, + "target_id": -20, + "target_slot": 2, + "type": "IMAGE" } ], "floatingLinks": [ @@ -5305,10 +5160,10 @@ "id": "cf7c664d-af7e-4a9e-9f19-9f93cfd2476e", "version": 1, "state": { - "lastGroupId": 158, - "lastNodeId": 5600, - "lastLinkId": 13868, - "lastRerouteId": 5047 + "lastGroupId": 159, + "lastNodeId": 5605, + "lastLinkId": 13882, + "lastRerouteId": 5053 }, "revision": 0, "config": {}, @@ -6323,10 +6178,10 @@ "id": "f007aab9-e7ad-4b10-974c-4d7cc55001a9", "version": 1, "state": { - "lastGroupId": 158, - "lastNodeId": 5600, - "lastLinkId": 13868, - "lastRerouteId": 5047 + "lastGroupId": 159, + "lastNodeId": 5605, + "lastLinkId": 13882, + "lastRerouteId": 5053 }, "revision": 0, "config": {}, @@ -6449,7 +6304,7 @@ "name": "VAE", "type": "VAE", "linkIds": [ - 13800 + 13870 ], "localized_name": "VAE", "label": "Video VAE", @@ -6611,7 +6466,7 @@ "name": "VAE", "type": "VAE", "links": [ - 13800 + 13869 ] } ], @@ -6891,6 +6746,45 @@ "type": "ltxv", "device": "default" } + }, + { + "id": 5601, + "type": "LTXVVAEForceFloat32", + "pos": [ + -4673.3109083199, + 3189.133404489309 + ], + "size": [ + 300, + 70 + ], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [ + { + "localized_name": "vae", + "name": "vae", + "type": "VAE", + "link": 13869 + } + ], + "outputs": [ + { + "localized_name": "VAE", + "name": "VAE", + "type": "VAE", + "links": [ + 13870 + ] + } + ], + "title": "VAE float32 (HDR)", + "properties": { + "Node name for S&R": "LTXVVAEForceFloat32" + }, + "color": "#233", + "bgcolor": "#355" } ], "groups": [ @@ -6932,14 +6826,6 @@ "target_slot": 0, "type": "COMBO" }, - { - "id": 13800, - "origin_id": 5571, - "origin_slot": 0, - "target_id": -20, - "target_slot": 1, - "type": "VAE" - }, { "id": 13863, "origin_id": -10, @@ -7019,6 +6905,22 @@ "target_id": -20, "target_slot": 6, "type": "CLIP" + }, + { + "id": 13869, + "origin_id": 5571, + "origin_slot": 0, + "target_id": 5601, + "target_slot": 0, + "type": "VAE" + }, + { + "id": 13870, + "origin_id": 5601, + "origin_slot": 0, + "target_id": -20, + "target_slot": 1, + "type": "VAE" } ], "extra": {} @@ -7027,7 +6929,7 @@ }, "config": {}, "extra": { - "frontendVersion": "1.53.6", + "frontendVersion": "1.55.14", "VHS_latentpreview": false, "VHS_latentpreviewrate": 0, "VHS_MetadataImage": true, @@ -7044,8 +6946,8 @@ { "id": 5001, "pos": [ - -3674.4449691105788, - 4373.899757708305 + -3682.975296757635, + 4045.2751753090342 ], "linkIds": [ 13823, @@ -7056,8 +6958,8 @@ "id": 5002, "parentId": 5001, "pos": [ - -2517.6422086847338, - 4368.007737349459 + -2526.17253633179, + 4039.3831549501883 ], "linkIds": [ 13823, @@ -7068,8 +6970,8 @@ "id": 5003, "parentId": 5002, "pos": [ - -1190.3778769766027, - 4335.778069473409 + -1198.9082046236597, + 4007.153487074139 ], "linkIds": [ 13824 @@ -7078,8 +6980,8 @@ { "id": 5008, "pos": [ - -3665.6409165376094, - 4321.577946584291 + -3674.1712441846657, + 3992.9533641850203 ], "linkIds": [ 13828, @@ -7090,8 +6992,8 @@ "id": 5009, "parentId": 5008, "pos": [ - -2214.769558779009, - 4312.342079517551 + -2223.2998864260653, + 3983.7174971182803 ], "linkIds": [ 13828, @@ -7102,8 +7004,8 @@ "id": 5010, "parentId": 5009, "pos": [ - -1761.401331918572, - 4296.062925402747 + -1769.931659565629, + 3967.438343003477 ], "linkIds": [ 13829 @@ -7112,8 +7014,8 @@ { "id": 5011, "pos": [ - -3665.5418379757407, - 4347.502965094672 + -3674.072165622797, + 4018.8783826954013 ], "linkIds": [ 13840 @@ -7123,8 +7025,8 @@ "id": 5012, "parentId": 5011, "pos": [ - -1783.2397635871514, - 4324.922648056117 + -1791.7700912342084, + 3996.298065656847 ], "linkIds": [ 13840 @@ -7167,8 +7069,8 @@ { "id": 5018, "pos": [ - -2676.3679950548817, - 3504 + -2679.704660970683, + 3563.4445783616184 ], "linkIds": [ 13655, @@ -7179,8 +7081,8 @@ "id": 5019, "parentId": 5018, "pos": [ - -2211.4181244152037, - 3508.6204748269606 + -2224.029183056623, + 3566.1707500605885 ], "linkIds": [ 13655, @@ -7191,8 +7093,8 @@ "id": 5020, "parentId": 5019, "pos": [ - -1757.996034229879, - 3508.6204748269606 + -1768.876257525927, + 3573.1998647131836 ], "linkIds": [ 13802 @@ -7222,8 +7124,8 @@ { "id": 5025, "pos": [ - -3662.491355928488, - 4144 + -3624.644621562911, + 3894.437188875677 ], "linkIds": [ 13837 @@ -7233,8 +7135,8 @@ "id": 5026, "parentId": 5025, "pos": [ - -3166.8033468662784, - 4157.704130457274 + -3203.6923470145834, + 3901.688787953873 ], "linkIds": [ 13837 @@ -7243,8 +7145,8 @@ { "id": 5027, "pos": [ - -3662.491355928488, - 4198 + -3630.4316088248997, + 3923.398120568191 ], "linkIds": [ 13839 @@ -7254,8 +7156,8 @@ "id": 5028, "parentId": 5027, "pos": [ - -3162.8149398246173, - 4196.11418682331 + -3191.985251493045, + 3931.3169085310283 ], "linkIds": [ 13839 @@ -7264,8 +7166,8 @@ { "id": 5029, "pos": [ - -3662.491355928488, - 4260 + -3641.607880156961, + 3960.4807981357835 ], "linkIds": [ 13838 @@ -7275,103 +7177,79 @@ "id": 5030, "parentId": 5029, "pos": [ - -3174.7996356798817, - 4260 + -3173.565944145766, + 3960.561962052499 ], "linkIds": [ 13838 ] }, { - "id": 5037, + "id": 5048, "pos": [ - -3662.4683236335136, - 4294.7029343632175 + -2648.1616308471685, + 3658.892394028949 ], "linkIds": [ - 13841 + 13879 ] }, { - "id": 5038, - "parentId": 5037, + "id": 5050, "pos": [ - -3171.144975192556, - 4297.157847054363 + -3677.518608381742, + 4078.9387832755824 ], "linkIds": [ - 13841 + 13872, + 13881, + 13882 ] }, { - "id": 5042, - "parentId": 5043, + "id": 5051, + "parentId": 5052, "pos": [ - -1345.7027525383564, - 3706.9914747080397 + -1729.4505103338233, + 4052.1087419319256 ], "linkIds": [ - 13844 + 13872, + 13882 ] }, { - "id": 5043, + "id": 5052, + "parentId": 5050, "pos": [ - -1764.4648020096513, - 3714.6609565010854 + -2551.278239086373, + 4064.824839121106 ], "linkIds": [ - 13844, - 13855 + 13872, + 13881, + 13882 ] }, { - "id": 5044, + "id": 5053, + "parentId": 5051, "pos": [ - -2678.908667814226, - 3661.179368209216 + -1220.8038185227015, + 4034.6366855344595 ], "linkIds": [ - 13851, - 13856 - ] - }, - { - "id": 5045, - "parentId": 5044, - "pos": [ - -507.00753055133646, - 3653.304710366201 - ], - "linkIds": [ - 13851, - 13856 - ] - }, - { - "id": 5046, - "pos": [ - -902.0286967478261, - 3548.7510997340073 - ], - "linkIds": [ - 13854, - 13857 - ] - }, - { - "id": 5047, - "parentId": 5046, - "pos": [ - -519.1655250729357, - 3541.0546468726448 - ], - "linkIds": [ - 13854, - 13857 + 13882 ] } ], + "ds": { + "scale": 0.2056588979396934, + "offset": [ + 6131.193647115985, + -584.9829352133224 + ] + }, "linkExtensions": [ { "id": 13654, @@ -7421,46 +7299,27 @@ "id": 13840, "parentId": 5012 }, - { - "id": 13841, - "parentId": 5038 - }, - { - "id": 13851, - "parentId": 5045 - }, - { - "id": 13855, - "parentId": 5043 - }, - { - "id": 13856, - "parentId": 5045 - }, - { - "id": 13854, - "parentId": 5047 - }, - { - "id": 13857, - "parentId": 5047 - }, - { - "id": 13844, - "parentId": 5042 - }, { "id": 13824, "parentId": 5003 + }, + { + "id": 13872, + "parentId": 5051 + }, + { + "id": 13879, + "parentId": 5048 + }, + { + "id": 13881, + "parentId": 5052 + }, + { + "id": 13882, + "parentId": 5053 } - ], - "ds": { - "scale": 0.560421630314949, - "offset": [ - 4966.47542800655, - -3789.3900074133353 - ] - } + ] }, "version": 0.4 } diff --git a/example_workflows/2.5/HDR_workflows/LTX-2.5_ICLoRA_Inpaint_HDR_Two_Stage_Distilled.json b/example_workflows/2.5/HDR_workflows/LTX-2.5_ICLoRA_Inpaint_HDR_Two_Stage_Distilled.json index 7cd367d..b861e80 100644 --- a/example_workflows/2.5/HDR_workflows/LTX-2.5_ICLoRA_Inpaint_HDR_Two_Stage_Distilled.json +++ b/example_workflows/2.5/HDR_workflows/LTX-2.5_ICLoRA_Inpaint_HDR_Two_Stage_Distilled.json @@ -1,8 +1,8 @@ { "id": "ae44066e-0b1b-4cd3-a254-4b5c4055e122", "revision": 0, - "last_node_id": 9025, - "last_link_id": 13953, + "last_node_id": 9030, + "last_link_id": 13976, "nodes": [ { "id": 5433, @@ -63,11 +63,11 @@ "type": "MarkdownNote", "pos": [ -880, - 2962 + 2899.03125 ], "size": [ 274.25, - 175.03125 + 238 ], "flags": {}, "order": 2, @@ -77,10 +77,10 @@ "title": "Decode + Blend (stage 2)", "properties": {}, "widgets_values": [ - "## Decode + Blend (stage 2)\n\nDecodes the high-res latent (video and audio) with the native tiled VAE decode and\ndoes the **final Laplacian-pyramid blend** with the original video for a seamless\ntransition, then assembles the output video.\n\nTiling is exposed on the node: `512 / 64 / 128 / 32` suits most hardware. Fewer,\nlarger tiles run faster but need more memory." + "## Decode + Blend (stage 2)\n\nDecodes the high-res latent (video and audio) with the native tiled VAE decode and\ndoes the **final Laplacian-pyramid blend** with the original video for a seamless\ntransition, then assembles the output video.\n\nTiling is exposed on the node: `512 / 64 / 128 / 32` suits most hardware. Fewer,\nlarger tiles run faster but need more memory.\n\n**Convert Image Color Space** ACEScct → `HDR` (Rec.2020 HLG) feeds the video; the ACEScct image goes to the EXR save.\n" ], "widgets_values_named": { - "text": "## Decode + Blend (stage 2)\n\nDecodes the high-res latent (video and audio) with the native tiled VAE decode and\ndoes the **final Laplacian-pyramid blend** with the original video for a seamless\ntransition, then assembles the output video.\n\nTiling is exposed on the node: `512 / 64 / 128 / 32` suits most hardware. Fewer,\nlarger tiles run faster but need more memory." + "text": "## Decode + Blend (stage 2)\n\nDecodes the high-res latent (video and audio) with the native tiled VAE decode and\ndoes the **final Laplacian-pyramid blend** with the original video for a seamless\ntransition, then assembles the output video.\n\nTiling is exposed on the node: `512 / 64 / 128 / 32` suits most hardware. Fewer,\nlarger tiles run faster but need more memory.\n\n**Convert Image Color Space** ACEScct → `HDR` (Rec.2020 HLG) feeds the video; the ACEScct image goes to the EXR save.\n" }, "color": "#432", "bgcolor": "#653" @@ -97,14 +97,14 @@ 320 ], "flags": {}, - "order": 18, + "order": 17, "mode": 0, "inputs": [ { "label": "vae", "name": "vae", "type": "VAE", - "link": 13770 + "link": 13967 }, { "label": "negative", @@ -214,14 +214,14 @@ 320 ], "flags": {}, - "order": 23, + "order": 22, "mode": 0, "inputs": [ { "label": "vae", "name": "vae", "type": "VAE", - "link": 13785 + "link": 13969 }, { "label": "video latent", @@ -280,11 +280,19 @@ ], "outputs": [ { - "label": "blended_image", + "label": "ACEScct_image", "name": "IMAGE", "type": "IMAGE", "links": [ - 13775 + 13962 + ] + }, + { + "label": "HDR_HLG_image", + "name": "IMAGE_1", + "type": "IMAGE", + "links": [ + 13963 ] } ], @@ -308,22 +316,22 @@ "id": 9005, "type": "f09a2fcf-1b11-4f77-b498-3cc2929dd325", "pos": [ - -2080, - 3230 + -2075.845936754407, + 3233.0743926702594 ], "size": [ 330, 320 ], "flags": {}, - "order": 20, + "order": 19, "mode": 0, "inputs": [ { "label": "vae", "name": "vae", "type": "VAE", - "link": 13783 + "link": 13968 }, { "label": "video latent", @@ -472,7 +480,7 @@ 206.171875 ], "flags": {}, - "order": 17, + "order": 16, "mode": 0, "inputs": [ { @@ -563,7 +571,7 @@ 320 ], "flags": {}, - "order": 21, + "order": 20, "mode": 0, "inputs": [ { @@ -585,7 +593,7 @@ "label": "vae", "name": "vae", "type": "VAE", - "link": 13784 + "link": 13958 }, { "label": "stage 1 image", @@ -681,26 +689,26 @@ 320 ], "flags": {}, - "order": 22, + "order": 21, "mode": 0, "inputs": [ { "label": "model", "name": "model", "type": "MODEL", - "link": 15 + "link": 13975 }, { "label": "positive", "name": "positive", "type": "CONDITIONING", - "link": 18 + "link": 13973 }, { "label": "negative", "name": "negative", "type": "CONDITIONING", - "link": 19 + "link": 13971 }, { "label": "latent_image", @@ -741,7 +749,7 @@ 320 ], "flags": {}, - "order": 19, + "order": 18, "mode": 0, "inputs": [ { @@ -783,8 +791,8 @@ "name": "positive", "type": "CONDITIONING", "links": [ - 18, - 43 + 43, + 13973 ] }, { @@ -792,8 +800,8 @@ "name": "negative", "type": "CONDITIONING", "links": [ - 19, - 42 + 42, + 13971 ] }, { @@ -902,7 +910,10 @@ "name": "VAE", "type": "VAE", "links": [ - 13774 + 13958, + 13967, + 13968, + 13969 ] }, { @@ -911,7 +922,7 @@ "type": "MODEL", "links": [ 3, - 15 + 13975 ] }, { @@ -1014,12 +1025,12 @@ "id": 9025, "type": "MarkdownNote", "pos": [ - -476.63078183067375, - 3032.709306123109 + -466.93317285107406, + 2945.9179308871326 ], "size": [ 520, - 140 + 160 ], "flags": {}, "order": 9, @@ -1029,74 +1040,27 @@ "title": "Save HDR", "properties": {}, "widgets_values": [ - "## Save HDR\n\n1. **LTXVHDRDecodePostprocess** (`transfer=acescct`) — EXR + `hdr_linear`.\n2. **LTXVSaveHLG** — BT.2020/HLG 10-bit (`linear_primaries=acescg`).\n3. Preview: CreateVideo → SaveVideo from `hdr_linear`.\n\nPreprocess **img_compression = 0** (no JPEG/CRF on ACEScct).\nVideo VAE forced **float32**.\n" + "## Save HDR\n\n1. **Save EXR (ACEScg)** — `LTXVHDRDecodePostprocess` with `save_exr` on and `exr_color_space` = `acescg`; writes the ACEScg EXR sequence to `output/hdr_exr`. Its image outputs are not used.\n2. **HLG video**: Create Video (`HDR`, EXR sequence audio) → Save Video (10-bit; auto = H.264, AV1 also available). Core HLG uses 1.0 = 203 nits and clips above 1000 nits.\n\nPreprocess **img_compression = 0** (no JPEG/CRF on ACEScct).\nVideo VAE forced **float32** in **Load Models**.\n" ], "widgets_values_named": { - "text": "## Save HDR\n\n1. **LTXVHDRDecodePostprocess** (`transfer=acescct`) — EXR + `hdr_linear`.\n2. **LTXVSaveHLG** — BT.2020/HLG 10-bit (`linear_primaries=acescg`).\n3. Preview: CreateVideo → SaveVideo from `hdr_linear`.\n\nPreprocess **img_compression = 0** (no JPEG/CRF on ACEScct).\nVideo VAE forced **float32**.\n" + "text": "## Save HDR\n\n1. **Save EXR (ACEScg)** — `LTXVHDRDecodePostprocess` with `save_exr` on and `exr_color_space` = `acescg`; writes the ACEScg EXR sequence to `output/hdr_exr`. Its image outputs are not used.\n2. **HLG video**: Create Video (`HDR`, EXR sequence audio) → Save Video (10-bit; auto = H.264, AV1 also available). Core HLG uses 1.0 = 203 nits and clips above 1000 nits.\n\nPreprocess **img_compression = 0** (no JPEG/CRF on ACEScct).\nVideo VAE forced **float32** in **Load Models**.\n" }, "color": "#432", "bgcolor": "#653" }, - { - "id": 5228, - "type": "SaveVideo", - "pos": [ - 273.11847629699116, - 3253.6968344575935 - ], - "size": [ - 330, - 126 - ], - "flags": {}, - "order": 27, - "mode": 0, - "inputs": [ - { - "name": "video", - "type": "VIDEO", - "link": 13782 - } - ], - "outputs": [ - { - "name": "video", - "type": "VIDEO", - "links": [] - } - ], - "title": "Save preview video", - "properties": { - "cnr_id": "comfy-core", - "ver": "0.14.1", - "Node name for S&R": "SaveVideo" - }, - "widgets_values": [ - "hdr/preview", - "auto", - "auto", - "auto" - ], - "widgets_values_named": { - "filename_prefix": "hdr/preview", - "format": "auto", - "format.codec": "auto", - "codec": "auto" - } - }, { "id": 9020, "type": "CreateVideo", "pos": [ - -3902.8699150115362, - 3926.7223116398445 + -3896.0505837366904, + 3922.249129037718 ], "size": [ 336.1875, 150 ], "flags": {}, - "order": 15, + "order": 14, "mode": 0, "inputs": [ { @@ -1147,133 +1111,19 @@ "color": "#233", "bgcolor": "#355" }, - { - "id": 9024, - "type": "CreateVideo", - "pos": [ - -68.88618835210384, - 3240.2811566193077 - ], - "size": [ - 270, - 150 - ], - "flags": {}, - "order": 25, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 13951 - }, - { - "name": "audio", - "shape": 7, - "type": "AUDIO", - "link": 13780 - }, - { - "name": "fps", - "type": "FLOAT", - "widget": { - "name": "fps" - }, - "link": 13781 - } - ], - "outputs": [ - { - "name": "VIDEO", - "type": "VIDEO", - "links": [ - 13782 - ] - } - ], - "title": "Preview video (hdr_linear)", - "properties": { - "Node name for S&R": "CreateVideo" - }, - "widgets_values": [ - 8, - "auto", - "sRGB", - "none" - ], - "widgets_values_named": { - "fps": 8, - "bit_depth": "auto", - "color_space": "sRGB", - "codec": "none" - } - }, - { - "id": 9023, - "type": "LTXVSaveHLG", - "pos": [ - -89.50128847550275, - 3427.6888983876534 - ], - "size": [ - 320, - 170 - ], - "flags": {}, - "order": 26, - "mode": 0, - "inputs": [ - { - "name": "hdr_linear", - "type": "IMAGE", - "link": 13776 - }, - { - "name": "audio", - "shape": 7, - "type": "AUDIO", - "link": 13786 - }, - { - "name": "frame_rate", - "type": "FLOAT", - "widget": { - "name": "frame_rate" - }, - "link": 13787 - } - ], - "outputs": [], - "title": "Save HLG (BT.2020 / 10-bit)", - "properties": { - "Node name for S&R": "LTXVSaveHLG" - }, - "widgets_values": [ - 24, - "hdr/ltxv_hlg", - "acescg" - ], - "widgets_values_named": { - "frame_rate": 24, - "filename_prefix": "hdr/ltxv_hlg", - "linear_primaries": "acescg" - }, - "color": "#233", - "bgcolor": "#355" - }, { "id": 5408, "type": "c9a49931-8154-4596-8a93-d47126ad589a", "pos": [ - -3505.9975059035696, - 3238.312708920202 + -3508.5404413457654, + 3246.209364631852 ], "size": [ 317.677734375, 570 ], "flags": {}, - "order": 16, + "order": 15, "mode": 0, "inputs": [ { @@ -1450,7 +1300,9 @@ "label": "fps", "name": "fps", "type": "FLOAT", - "links": [] + "links": [ + 13970 + ] }, { "label": "effective_positive_prompt", @@ -1498,8 +1350,8 @@ "id": 5375, "type": "LoadVideo", "pos": [ - -4290, - 3694 + -4287.379855289706, + 3580.3788802739978 ], "size": [ 349.29453125, @@ -1574,74 +1426,12 @@ "image" ], "widgets_values_named": { - "image": "", + "image": "example.png", "upload": "image" }, "color": "#232", "bgcolor": "#353" }, - { - "id": 9022, - "type": "LTXVHDRDecodePostprocess", - "pos": [ - -475.45623494108906, - 3240.159128674455 - ], - "size": [ - 340, - 295 - ], - "flags": {}, - "order": 24, - "mode": 0, - "inputs": [ - { - "name": "image", - "type": "IMAGE", - "link": 13775 - } - ], - "outputs": [ - { - "name": "tonemapped", - "type": "IMAGE", - "links": [ - 13951 - ] - }, - { - "name": "hdr_linear", - "type": "IMAGE", - "links": [ - 13776 - ] - } - ], - "title": "HDR postprocess (ACEScct → EXR)", - "properties": { - "Node name for S&R": "LTXVHDRDecodePostprocess" - }, - "widgets_values": [ - "acescct", - 0, - true, - "acescg", - "output/hdr_exr", - "frame", - true - ], - "widgets_values_named": { - "transfer": "acescct", - "exposure": 0, - "save_exr": true, - "exr_color_space": "acescg", - "output_dir": "output/hdr_exr", - "filename_prefix": "frame", - "half_precision": true - }, - "color": "#233", - "bgcolor": "#355" - }, { "id": 5368, "type": "LTXVLoadEXRSequence", @@ -1650,8 +1440,8 @@ 3230 ], "size": [ - 340, - 400 + 340.50656131065716, + 287.3687127201106 ], "flags": {}, "order": 12, @@ -1669,9 +1459,7 @@ "name": "frame_rate", "type": "FLOAT", "links": [ - 13768, - 13781, - 13787 + 13768 ] }, { @@ -1694,8 +1482,7 @@ "type": "AUDIO", "links": [ 13767, - 13780, - 13786 + 13964 ] } ], @@ -1723,46 +1510,6 @@ "color": "#232", "bgcolor": "#353" }, - { - "id": 9021, - "type": "LTXVVAEForceFloat32", - "pos": [ - -3513.723293091418, - 4253.446498419571 - ], - "size": [ - 280, - 60 - ], - "flags": {}, - "order": 14, - "mode": 0, - "inputs": [ - { - "name": "vae", - "type": "VAE", - "link": 13774 - } - ], - "outputs": [ - { - "name": "VAE", - "type": "VAE", - "links": [ - 13770, - 13783, - 13784, - 13785 - ] - } - ], - "title": "VAE float32 (native HDR)", - "properties": { - "Node name for S&R": "LTXVVAEForceFloat32" - }, - "color": "#233", - "bgcolor": "#355" - }, { "id": 5404, "type": "PrimitiveStringMultiline", @@ -1801,6 +1548,172 @@ }, "color": "#232", "bgcolor": "#353" + }, + { + "id": 9028, + "type": "LTXVHDRDecodePostprocess", + "pos": [ + -453.1723874994564, + 3239.8233726525305 + ], + "size": [ + 340, + 295 + ], + "flags": {}, + "order": 23, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": 13962 + } + ], + "outputs": [ + { + "name": "tonemapped", + "type": "IMAGE", + "links": [] + }, + { + "name": "hdr_linear", + "type": "IMAGE", + "links": [] + } + ], + "title": "Save EXR (ACEScg)", + "properties": { + "Node name for S&R": "LTXVHDRDecodePostprocess" + }, + "widgets_values": [ + "acescct", + 0, + true, + "acescg", + "output/hdr_exr", + "frame", + true + ], + "widgets_values_named": { + "transfer": "acescct", + "exposure": 0, + "save_exr": true, + "exr_color_space": "acescg", + "output_dir": "output/hdr_exr", + "filename_prefix": "frame", + "half_precision": true + }, + "color": "#233", + "bgcolor": "#355" + }, + { + "id": 9029, + "type": "CreateVideo", + "pos": [ + -433.08424303220863, + 3585.9368248947694 + ], + "size": [ + 280, + 150 + ], + "flags": {}, + "order": 24, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 13963 + }, + { + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": 13964 + }, + { + "name": "fps", + "type": "FLOAT", + "widget": { + "name": "fps" + }, + "link": 13970 + } + ], + "outputs": [ + { + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 13966 + ] + } + ], + "title": "CreateVideo (HLG)", + "properties": { + "Node name for S&R": "CreateVideo", + "cnr_id": "comfy-core" + }, + "widgets_values": [ + 24, + "auto", + "HDR", + "none" + ], + "widgets_values_named": { + "fps": 24, + "bit_depth": "auto", + "color_space": "HDR", + "codec": "none" + } + }, + { + "id": 9030, + "type": "SaveVideo", + "pos": [ + -76.65604912053554, + 3244.051670870314 + ], + "size": [ + 360, + 296 + ], + "flags": {}, + "order": 25, + "mode": 0, + "inputs": [ + { + "name": "video", + "type": "VIDEO", + "link": 13966 + } + ], + "outputs": [ + { + "name": "video", + "type": "VIDEO", + "links": [] + } + ], + "title": "Save video (HLG)", + "properties": { + "Node name for S&R": "SaveVideo", + "cnr_id": "comfy-core" + }, + "widgets_values": [ + "hdr/hlg", + "auto", + "auto", + "auto" + ], + "widgets_values_named": { + "filename_prefix": "hdr/hlg", + "format": "auto", + "format.codec": "auto", + "codec": "auto" + } } ], "links": [ @@ -1868,30 +1781,6 @@ 3, "IMAGE" ], - [ - 15, - 5407, - 2, - 5414, - 0, - "MODEL" - ], - [ - 18, - 5410, - 1, - 5414, - 1, - "CONDITIONING" - ], - [ - 19, - 5410, - 2, - 5414, - 2, - "CONDITIONING" - ], [ 23, 5408, @@ -2100,94 +1989,6 @@ 4, "VIDEO" ], - [ - 13770, - 9021, - 0, - 5409, - 0, - "VAE" - ], - [ - 13774, - 5407, - 1, - 9021, - 0, - "VAE" - ], - [ - 13776, - 9022, - 1, - 9023, - 0, - "IMAGE" - ], - [ - 13780, - 5368, - 5, - 9024, - 1, - "AUDIO" - ], - [ - 13781, - 5368, - 1, - 9024, - 2, - "FLOAT" - ], - [ - 13783, - 9021, - 0, - 9005, - 0, - "VAE" - ], - [ - 13784, - 9021, - 0, - 5413, - 2, - "VAE" - ], - [ - 13786, - 5368, - 5, - 9023, - 1, - "AUDIO" - ], - [ - 13787, - 5368, - 1, - 9023, - 2, - "FLOAT" - ], - [ - 13775, - 9006, - 0, - 9022, - 0, - "IMAGE" - ], - [ - 13785, - 9021, - 0, - 9006, - 0, - "VAE" - ], [ 46, 5414, @@ -2213,32 +2014,103 @@ "IMAGE" ], [ - 13782, - 9024, - 0, - 5228, - 0, - "VIDEO" + 13958, + 5407, + 1, + 5413, + 2, + "VAE" ], [ - 13951, - 9022, + 13962, + 9006, 0, - 9024, + 9028, 0, "IMAGE" + ], + [ + 13963, + 9006, + 1, + 9029, + 0, + "IMAGE" + ], + [ + 13964, + 5368, + 5, + 9029, + 1, + "AUDIO" + ], + [ + 13967, + 5407, + 1, + 5409, + 0, + "VAE" + ], + [ + 13968, + 5407, + 1, + 9005, + 0, + "VAE" + ], + [ + 13969, + 5407, + 1, + 9006, + 0, + "VAE" + ], + [ + 13970, + 5408, + 8, + 9029, + 2, + "FLOAT" + ], + [ + 13971, + 5410, + 2, + 5414, + 2, + "CONDITIONING" + ], + [ + 13973, + 5410, + 1, + 5414, + 1, + "CONDITIONING" + ], + [ + 13975, + 5407, + 2, + 5414, + 0, + "MODEL" + ], + [ + 13966, + 9029, + 0, + 9030, + 0, + "VIDEO" ] ], "floatingLinks": [ - { - "id": 13947, - "origin_id": 5408, - "origin_slot": 8, - "target_id": -1, - "target_slot": -1, - "type": "FLOAT", - "parentId": 9038 - }, { "id": 13948, "origin_id": 5407, @@ -2246,7 +2118,16 @@ "target_id": -1, "target_slot": -1, "type": "VAE", - "parentId": 9046 + "parentId": 9045 + }, + { + "id": 13976, + "origin_id": 5407, + "origin_slot": 2, + "target_id": -1, + "target_slot": -1, + "type": "MODEL", + "parentId": 9011 } ], "groups": [ @@ -2285,6 +2166,18 @@ ], "color": "#3f789e", "flags": {} + }, + { + "id": 158, + "title": "Export", + "bounding": [ + -485.8651698176221, + 3161.105939638595, + 799.7465691834605, + 594.7827865296185 + ], + "color": "#3f789e", + "flags": {} } ], "definitions": { @@ -2293,10 +2186,10 @@ "id": "43b40f55-109c-4d2f-9e38-e8073a3474eb", "version": 1, "state": { - "lastGroupId": 157, - "lastNodeId": 9025, - "lastLinkId": 13953, - "lastRerouteId": 9095 + "lastGroupId": 158, + "lastNodeId": 9030, + "lastLinkId": 13976, + "lastRerouteId": 9105 }, "revision": 0, "config": {}, @@ -2432,7 +2325,7 @@ "name": "VAE", "type": "VAE", "linkIds": [ - 13793 + 13955 ], "localized_name": "VAE", "label": "VAE", @@ -2610,7 +2503,7 @@ "name": "VAE", "type": "VAE", "links": [ - 13793 + 13954 ] } ], @@ -2923,6 +2816,45 @@ "lora_name": "ltx-2.3-22b-ic-lora-in-outpainting-0.9.safetensors", "strength_model": 1 } + }, + { + "id": 9026, + "type": "LTXVVAEForceFloat32", + "pos": [ + -480, + 190 + ], + "size": [ + 300, + 70 + ], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [ + { + "localized_name": "vae", + "name": "vae", + "type": "VAE", + "link": 13954 + } + ], + "outputs": [ + { + "localized_name": "VAE", + "name": "VAE", + "type": "VAE", + "links": [ + 13955 + ] + } + ], + "title": "VAE float32 (HDR)", + "properties": { + "Node name for S&R": "LTXVVAEForceFloat32" + }, + "color": "#233", + "bgcolor": "#355" } ], "groups": [ @@ -3012,14 +2944,6 @@ "target_slot": 0, "type": "VAE" }, - { - "id": 13793, - "origin_id": 5601, - "origin_slot": 0, - "target_id": -20, - "target_slot": 1, - "type": "VAE" - }, { "id": 12, "origin_id": 5607, @@ -3059,6 +2983,22 @@ "target_id": -20, "target_slot": 7, "type": "FLOAT" + }, + { + "id": 13954, + "origin_id": 5601, + "origin_slot": 0, + "target_id": 9026, + "target_slot": 0, + "type": "VAE" + }, + { + "id": 13955, + "origin_id": 9026, + "origin_slot": 0, + "target_id": -20, + "target_slot": 1, + "type": "VAE" } ], "extra": {} @@ -3067,10 +3007,10 @@ "id": "c9a49931-8154-4596-8a93-d47126ad589a", "version": 1, "state": { - "lastGroupId": 157, - "lastNodeId": 9025, - "lastLinkId": 13953, - "lastRerouteId": 9095 + "lastGroupId": 158, + "lastNodeId": 9030, + "lastLinkId": 13976, + "lastRerouteId": 9105 }, "revision": 0, "config": {}, @@ -4099,12 +4039,12 @@ "widgets_values": [ "scale by multiplier", 0.5, - "lanczos" + "area" ], "widgets_values_named": { "resize_type": "scale by multiplier", "resize_type.multiplier": 0.5, - "scale_method": "lanczos" + "scale_method": "area" } }, { @@ -4151,12 +4091,12 @@ "widgets_values": [ "scale to multiple", 64, - "lanczos" + "area" ], "widgets_values_named": { "resize_type": "scale to multiple", "resize_type.multiple": 64, - "scale_method": "lanczos" + "scale_method": "area" } }, { @@ -4201,20 +4141,20 @@ "widgets_values": [ "scale shorter dimension", 1024, - "lanczos" + "area" ], "widgets_values_named": { "resize_type": "scale shorter dimension", "resize_type.shorter_size": 1024, - "scale_method": "lanczos" + "scale_method": "area" } }, { "id": 5168, "type": "GetVideoComponents", "pos": [ - -3900, - 5970.136413979002 + -3901.4325566101143, + 5966.013946781519 ], "size": [ 451, @@ -5259,8 +5199,7 @@ "origin_slot": 2, "target_id": 2612, "target_slot": 0, - "type": "CLIP", - "parentId": 502 + "type": "CLIP" }, { "id": 13803, @@ -5284,8 +5223,7 @@ "origin_slot": 5, "target_id": 5376, "target_slot": 0, - "type": "VIDEO", - "parentId": 504 + "type": "VIDEO" }, { "id": 13807, @@ -5514,8 +5452,7 @@ "origin_slot": 11, "target_id": 2612, "target_slot": 1, - "type": "STRING", - "parentId": 522 + "type": "STRING" }, { "id": 13841, @@ -5539,8 +5476,7 @@ "origin_slot": 1, "target_id": 5611, "target_slot": 0, - "type": "STRING", - "parentId": 524 + "type": "STRING" }, { "id": 13844, @@ -5607,14 +5543,22 @@ "target_slot": 0, "type": "CONDITIONING" }, + { + "id": 13759, + "origin_id": -10, + "origin_slot": 7, + "target_id": 5020, + "target_slot": 2, + "type": "COMBO", + "parentId": 514 + }, { "id": 36, "origin_id": -10, "origin_slot": 6, "target_id": 5406, "target_slot": 0, - "type": "CLIP", - "parentId": 512 + "type": "CLIP" }, { "id": 13821, @@ -5632,6 +5576,14 @@ "target_slot": 5, "type": "STRING" }, + { + "id": 13832, + "origin_id": -10, + "origin_slot": 12, + "target_id": 5406, + "target_slot": 6, + "type": "INT" + }, { "id": 13802, "origin_id": -10, @@ -5648,6 +5600,14 @@ "target_slot": 0, "type": "MASK" }, + { + "id": 13952, + "origin_id": 5371, + "origin_slot": 0, + "target_id": 5373, + "target_slot": 1, + "type": "IMAGE" + }, { "id": 13810, "origin_id": 5377, @@ -5656,6 +5616,14 @@ "target_slot": 0, "type": "MASK" }, + { + "id": 13953, + "origin_id": 5384, + "origin_slot": 0, + "target_id": 5381, + "target_slot": 1, + "type": "IMAGE" + }, { "id": 13811, "origin_id": 5371, @@ -5696,31 +5664,6 @@ "target_slot": 5, "type": "STRING" }, - { - "id": 13814, - "origin_id": 5400, - "origin_slot": 0, - "target_id": 5372, - "target_slot": 0, - "type": "INT" - }, - { - "id": 13759, - "origin_id": -10, - "origin_slot": 7, - "target_id": 5020, - "target_slot": 2, - "type": "COMBO", - "parentId": 514 - }, - { - "id": 13832, - "origin_id": -10, - "origin_slot": 12, - "target_id": 5406, - "target_slot": 6, - "type": "INT" - }, { "id": 13831, "origin_id": -10, @@ -5730,65 +5673,15 @@ "type": "INT" }, { - "id": 13952, - "origin_id": 5371, + "id": 13814, + "origin_id": 5400, "origin_slot": 0, - "target_id": 5373, - "target_slot": 1, - "type": "IMAGE" - }, - { - "id": 13953, - "origin_id": 5384, - "origin_slot": 0, - "target_id": 5381, - "target_slot": 1, - "type": "IMAGE" + "target_id": 5372, + "target_slot": 0, + "type": "INT" } ], "reroutes": [ - { - "id": 501, - "pos": [ - -4077.35546875, - 5172 - ], - "linkIds": [ - 13801 - ] - }, - { - "id": 502, - "parentId": 501, - "pos": [ - -3924, - 5172 - ], - "linkIds": [ - 13801 - ] - }, - { - "id": 503, - "pos": [ - -4077.35546875, - 6250 - ], - "linkIds": [ - 13806 - ] - }, - { - "id": 504, - "parentId": 503, - "pos": [ - -3924, - 6250 - ], - "linkIds": [ - 13806 - ] - }, { "id": 505, "pos": [ @@ -5831,27 +5724,6 @@ 22 ] }, - { - "id": 511, - "pos": [ - -4045.35546875, - 5172 - ], - "linkIds": [ - 36 - ] - }, - { - "id": 512, - "parentId": 511, - "pos": [ - -4028, - 5172 - ], - "linkIds": [ - 36 - ] - }, { "id": 513, "pos": [ @@ -5936,48 +5808,6 @@ 13837 ] }, - { - "id": 521, - "pos": [ - -4045.35546875, - 5172 - ], - "linkIds": [ - 13840 - ] - }, - { - "id": 522, - "parentId": 521, - "pos": [ - -4028, - 5172 - ], - "linkIds": [ - 13840 - ] - }, - { - "id": 523, - "pos": [ - -4045.35546875, - 6250 - ], - "linkIds": [ - 13843 - ] - }, - { - "id": 524, - "parentId": 523, - "pos": [ - -4028, - 6250 - ], - "linkIds": [ - 13843 - ] - }, { "id": 525, "pos": [ @@ -6006,10 +5836,10 @@ "id": "e8498d2a-2b93-4e5f-b5bb-62240585529c", "version": 1, "state": { - "lastGroupId": 157, - "lastNodeId": 9025, - "lastLinkId": 13953, - "lastRerouteId": 9095 + "lastGroupId": 158, + "lastNodeId": 9030, + "lastLinkId": 13976, + "lastRerouteId": 9105 }, "revision": 0, "config": {}, @@ -7227,10 +7057,10 @@ "id": "a0faecfd-06db-49d2-a37c-68822f750b66", "version": 1, "state": { - "lastGroupId": 157, - "lastNodeId": 9025, - "lastLinkId": 13953, - "lastRerouteId": 9095 + "lastGroupId": 158, + "lastNodeId": 9030, + "lastLinkId": 13976, + "lastRerouteId": 9105 }, "revision": 0, "config": {}, @@ -7935,10 +7765,10 @@ "id": "7209520a-8490-4a0a-aacf-2393ee619e63", "version": 1, "state": { - "lastGroupId": 157, - "lastNodeId": 9025, - "lastLinkId": 13953, - "lastRerouteId": 9095 + "lastGroupId": 158, + "lastNodeId": 9030, + "lastLinkId": 13976, + "lastRerouteId": 9105 }, "revision": 0, "config": {}, @@ -8435,14 +8265,6 @@ "target_slot": 0, "type": "LATENT" }, - { - "id": 13898, - "origin_id": -10, - "origin_slot": 3, - "target_id": 5385, - "target_slot": 0, - "type": "IMAGE" - }, { "id": 13893, "origin_id": -10, @@ -8451,6 +8273,14 @@ "target_slot": 3, "type": "BOOLEAN", "parentId": 9085 + }, + { + "id": 13898, + "origin_id": -10, + "origin_slot": 3, + "target_id": 5385, + "target_slot": 0, + "type": "IMAGE" } ], "reroutes": [ @@ -8566,10 +8396,10 @@ "id": "1b59f03f-a847-420d-855c-4c97767093d6", "version": 1, "state": { - "lastGroupId": 157, - "lastNodeId": 9025, - "lastLinkId": 13953, - "lastRerouteId": 9095 + "lastGroupId": 158, + "lastNodeId": 9030, + "lastLinkId": 13976, + "lastRerouteId": 9105 }, "revision": 0, "config": {}, @@ -9077,10 +8907,10 @@ "id": "f09a2fcf-1b11-4f77-b498-3cc2929dd325", "version": 1, "state": { - "lastGroupId": 157, - "lastNodeId": 9025, - "lastLinkId": 13953, - "lastRerouteId": 9095 + "lastGroupId": 158, + "lastNodeId": 9030, + "lastLinkId": 13976, + "lastRerouteId": 9105 }, "revision": 0, "config": {}, @@ -9507,10 +9337,10 @@ "id": "68dd05a7-f058-439b-b018-2f22e6f2efa8", "version": 1, "state": { - "lastGroupId": 157, - "lastNodeId": 9025, - "lastLinkId": 13953, - "lastRerouteId": 9095 + "lastGroupId": 158, + "lastNodeId": 9030, + "lastLinkId": 13976, + "lastRerouteId": 9105 }, "revision": 0, "config": {}, @@ -9647,11 +9477,24 @@ 13944 ], "localized_name": "IMAGE", - "label": "blended_image", + "label": "ACEScct_image", "pos": [ 1062.4606811179804, 404.41171124729806 ] + }, + { + "id": "444a8fc6-3bd2-49ad-be17-0fd0c7f89647", + "name": "IMAGE_1", + "type": "IMAGE", + "linkIds": [ + 13961 + ], + "label": "HDR_HLG_image", + "pos": [ + 1062.4606811179804, + 424.41171124729806 + ] } ], "widgets": [], @@ -9786,7 +9629,8 @@ "name": "image", "type": "IMAGE", "links": [ - 13944 + 13944, + 13960 ] } ], @@ -9843,6 +9687,54 @@ "properties": { "Node name for S&R": "LTXVInpaintPreprocess" } + }, + { + "id": 9027, + "type": "ImageColorSpace", + "pos": [ + 1029.91611409289, + 498.608401179627 + ], + "size": [ + 315, + 106 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "localized_name": "image", + "name": "image", + "type": "IMAGE", + "link": 13960 + } + ], + "outputs": [ + { + "localized_name": "IMAGE", + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 13961 + ] + } + ], + "title": "ACEScct → HDR (HLG)", + "properties": { + "Node name for S&R": "ImageColorSpace", + "cnr_id": "comfy-core" + }, + "widgets_values": [ + "HDR ACEScct", + "HDR" + ], + "widgets_values_named": { + "source": "HDR ACEScct", + "destination": "HDR" + }, + "color": "#233", + "bgcolor": "#355" } ], "groups": [], @@ -9943,6 +9835,22 @@ "target_id": 5387, "target_slot": 5, "type": "INT" + }, + { + "id": 13960, + "origin_id": 5226, + "origin_slot": 0, + "target_id": 9027, + "target_slot": 0, + "type": "IMAGE" + }, + { + "id": 13961, + "origin_id": 9027, + "origin_slot": 0, + "target_id": -20, + "target_slot": 1, + "type": "IMAGE" } ], "floatingLinks": [ @@ -10005,7 +9913,7 @@ }, "config": {}, "extra": { - "frontendVersion": "1.53.6", + "frontendVersion": "1.55.14", "reroutes": [ { "id": 9005, @@ -10014,18 +9922,20 @@ 4136 ], "linkIds": [ - 3 + 3, + 13975 ] }, { "id": 9006, "parentId": 9005, "pos": [ - -2474, - 4136 + -2464.4904482023467, + 4143.732732181842 ], "linkIds": [ - 3 + 3, + 13975 ] }, { @@ -10042,102 +9952,29 @@ "id": 9008, "parentId": 9007, "pos": [ - -3536, - 4148 + -3533.726081367697, + 4153.257368266412 ], "linkIds": [ 5 ] }, - { - "id": 9009, - "pos": [ - -3538, - 4148 - ], - "linkIds": [ - 14 - ] - }, - { - "id": 9010, - "parentId": 9009, - "pos": [ - -3536, - 4148 - ], - "linkIds": [ - 14 - ] - }, { "id": 9011, "pos": [ -4389.367055895488, 4136 ], - "linkIds": [ - 15 - ] - }, - { - "id": 9012, - "parentId": 9011, - "pos": [ - -1274, - 4136 - ], - "linkIds": [ - 15 - ] - }, - { - "id": 9013, - "pos": [ - -2096, - 4124 - ], - "linkIds": [ - 18 - ] - }, - { - "id": 9014, - "parentId": 9013, - "pos": [ - -1274, - 4124 - ], - "linkIds": [ - 18 - ] - }, - { - "id": 9015, - "pos": [ - -2096, - 4148 - ], - "linkIds": [ - 19 - ] - }, - { - "id": 9016, - "parentId": 9015, - "pos": [ - -1274, - 4148 - ], - "linkIds": [ - 19 - ] + "linkIds": [], + "floating": { + "slotType": "output" + } }, { "id": 9019, "pos": [ - -3191.732421875, - 3900 + -3110.9596219964337, + 3642.3737969604176 ], "linkIds": [ 23 @@ -10147,8 +9984,8 @@ "id": 9020, "parentId": 9019, "pos": [ - -1644, - 3900 + -1674.0565082117864, + 3640.893668012031 ], "linkIds": [ 23 @@ -10157,8 +9994,8 @@ { "id": 9023, "pos": [ - -3926, - 4172 + -3927.225536327316, + 4096.468534403284 ], "linkIds": [ 26 @@ -10168,8 +10005,8 @@ "id": 9024, "parentId": 9023, "pos": [ - -3536, - 4172 + -3531.913147925429, + 4094.5471427036805 ], "linkIds": [ 26 @@ -10178,8 +10015,8 @@ { "id": 9025, "pos": [ - -3175.732421875, - 4172 + -3125.8998742948884, + 3690.493609688785 ], "linkIds": [ 28 @@ -10189,8 +10026,8 @@ "id": 9026, "parentId": 9025, "pos": [ - -904, - 4172 + -877.4658903675805, + 3679.8014767701943 ], "linkIds": [ 28 @@ -10199,8 +10036,8 @@ { "id": 9027, "pos": [ - -2466, - 4148 + -2505.644987226221, + 3739.0159045036203 ], "linkIds": [ 29 @@ -10210,8 +10047,8 @@ "id": 9028, "parentId": 9027, "pos": [ - -2104, - 4148 + -2129.2604435019653, + 3738.2295450162997 ], "linkIds": [ 29 @@ -10220,8 +10057,8 @@ { "id": 9029, "pos": [ - -3207.732421875, - 3600 + -3082.579403086762, + 3598.1941390896322 ], "linkIds": [ 30 @@ -10241,8 +10078,8 @@ { "id": 9031, "pos": [ - -3207.732421875, - 3612 + -3093.931181923332, + 3617.559308524073 ], "linkIds": [ 33 @@ -10283,63 +10120,57 @@ { "id": 9037, "pos": [ - -3207.732421875, - 3624 + -3116.802592600614, + 3672.622298292807 ], - "linkIds": [] - }, - { - "id": 9038, - "parentId": 9037, - "pos": [ - -904, - 3624 - ], - "linkIds": [], - "floating": { - "slotType": "output" - } + "linkIds": [ + 13970 + ] }, { "id": 9039, "pos": [ - -2096, - 4148 + -2101.532392881299, + 3731.537696132821 ], "linkIds": [ - 42 + 42, + 13971 ] }, { "id": 9040, "parentId": 9039, "pos": [ - -1644, - 4148 + -1673.6738266986567, + 3736.488465142979 ], "linkIds": [ - 42 + 42, + 13971 ] }, { "id": 9041, "pos": [ - -2096, - 4124 + -2087.6972093221857, + 3713.812985457029 ], "linkIds": [ - 43 + 43, + 13973 ] }, { "id": 9042, "parentId": 9041, "pos": [ - -1644, - 4124 + -1692.2595257529874, + 3714.46491283064 ], "linkIds": [ - 43 + 43, + 13973 ] }, { @@ -10369,15 +10200,6 @@ -4389.367055895488, 4184 ], - "linkIds": [] - }, - { - "id": 9046, - "parentId": 9045, - "pos": [ - -904, - 4184 - ], "linkIds": [], "floating": { "slotType": "output" @@ -10447,111 +10269,130 @@ ] }, { - "id": 9053, + "id": 9096, + "parentId": 9099, "pos": [ - -2858.5100370388536, - 4223.328973136899 + -1661.9911651054153, + 4221.650924194572 ], "linkIds": [ - 13770, - 13783, - 13784, - 13785 + 13958, + 13969 ] }, { - "id": 9054, - "parentId": 9053, + "id": 9097, + "parentId": 9098, "pos": [ - -2114.538183262209, - 4216.543132335077 + -2849.691156376593, + 4246.5277029959525 ], "linkIds": [ - 13783, - 13784, - 13785 + 13958, + 13967, + 13968, + 13969 ] }, { - "id": 9055, - "parentId": 9054, + "id": 9098, "pos": [ - -1659.6910981291671, - 4214.041210472599 + -4359.92365272905, + 4244.129888412011 ], "linkIds": [ - 13784, - 13785 + 13958, + 13967, + 13968, + 13969 ] }, { - "id": 9056, - "parentId": 9055, + "id": 9099, + "parentId": 9097, "pos": [ - -914.191451206295, - 4207.380473486154 + -2096.1791596725197, + 4235.843208844982 ], "linkIds": [ - 13785 + 13958, + 13968, + 13969 ] }, { - "id": 9057, + "id": 9100, + "parentId": 9096, "pos": [ - -4382.285366703479, - 4238.958021568193 + -926.1077233269915, + 4204.821715993667 ], "linkIds": [ - 13774 + 13969 ] }, { - "id": 9058, + "id": 9101, + "parentId": 9102, "pos": [ - -3983.954691795493, - 4361.190671911134 + -475.722980084416, + 4257.301809849129 ], "linkIds": [ - 13781, - 13787 + 13964 ] }, { - "id": 9059, + "id": 9102, "pos": [ - -3960.861635812854, - 4339.547571105984 + -3952.736335313225, + 4276.54268832623 ], "linkIds": [ - 13780, - 13786 + 13964 ] }, { - "id": 9060, - "parentId": 9058, + "id": 9103, + "parentId": 9040, "pos": [ - -144.39788084924592, - 4340.656165228381 + -1306.1520585779356, + 3732.915139076312 ], "linkIds": [ - 13781, - 13787 + 13971 ] }, { - "id": 9061, - "parentId": 9059, + "id": 9104, + "parentId": 9042, "pos": [ - -164.12796612408874, - 4314.894639360639 + -1325.8623586592732, + 3710.823711799034 ], "linkIds": [ - 13780, - 13786 + 13973 + ] + }, + { + "id": 9105, + "parentId": 9006, + "pos": [ + -1183.722970690596, + 4151.564807792325 + ], + "linkIds": [ + 13975 ] } ], + "ds": { + "scale": 0.6425180481507757, + "offset": [ + 5297.747156023086, + -2758.9521299673247 + ] + }, "linkExtensions": [ { "id": 3, @@ -10561,22 +10402,6 @@ "id": 5, "parentId": 9008 }, - { - "id": 14, - "parentId": 9010 - }, - { - "id": 15, - "parentId": 9012 - }, - { - "id": 18, - "parentId": 9014 - }, - { - "id": 19, - "parentId": 9016 - }, { "id": 23, "parentId": 9020 @@ -10621,42 +10446,6 @@ "id": 13764, "parentId": 9052 }, - { - "id": 13770, - "parentId": 9053 - }, - { - "id": 13774, - "parentId": 9057 - }, - { - "id": 13780, - "parentId": 9061 - }, - { - "id": 13781, - "parentId": 9060 - }, - { - "id": 13783, - "parentId": 9054 - }, - { - "id": 13784, - "parentId": 9055 - }, - { - "id": 13786, - "parentId": 9061 - }, - { - "id": 13787, - "parentId": 9060 - }, - { - "id": 13785, - "parentId": 9056 - }, { "id": 28, "parentId": 9026 @@ -10664,15 +10453,44 @@ { "id": 33, "parentId": 9032 + }, + { + "id": 13958, + "parentId": 9096 + }, + { + "id": 13964, + "parentId": 9101 + }, + { + "id": 13967, + "parentId": 9097 + }, + { + "id": 13968, + "parentId": 9099 + }, + { + "id": 13969, + "parentId": 9100 + }, + { + "id": 13970, + "parentId": 9037 + }, + { + "id": 13971, + "parentId": 9103 + }, + { + "id": 13973, + "parentId": 9104 + }, + { + "id": 13975, + "parentId": 9105 } - ], - "ds": { - "scale": 0.7204033596119069, - "offset": [ - 3401.8889916905623, - -5490.952645379254 - ] - } + ] }, "version": 0.4 } diff --git a/example_workflows/2.5/HDR_workflows/LTX-2.5_ICLoRA_SDR_to_HDR_Distilled.json b/example_workflows/2.5/HDR_workflows/LTX-2.5_ICLoRA_SDR_to_HDR_Distilled.json index d8cc024..d4d08ce 100644 --- a/example_workflows/2.5/HDR_workflows/LTX-2.5_ICLoRA_SDR_to_HDR_Distilled.json +++ b/example_workflows/2.5/HDR_workflows/LTX-2.5_ICLoRA_SDR_to_HDR_Distilled.json @@ -1,15 +1,15 @@ { "id": "6b1f4c07-92ae-4d35-8f7c-1a2b5e63d8f4", "revision": 0, - "last_node_id": 9104, - "last_link_id": 13949, + "last_node_id": 9117, + "last_link_id": 13991, "nodes": [ { "id": 5531, "type": "MarkdownNote", "pos": [ - -1188, - 2780 + -1402.3175604930266, + 2799.2685932671357 ], "size": [ 300, @@ -25,10 +25,10 @@ "title": "Decode", "properties": {}, "widgets_values": [ - "## Decode\n\nFloat32 VAE decode → HDR postprocess.\n" + "## Decode\n\nFloat32 VAE decode.\n\n**Convert Image Color Space** ACEScct → `HDR` (Rec.2020 HLG) feeds the video; the ACEScct image goes to the EXR save.\n" ], "widgets_values_named": { - "text": "## Decode\n\nFloat32 VAE decode → HDR postprocess.\n" + "text": "## Decode\n\nFloat32 VAE decode → crop padding back to source size.\n\n**Convert Image Color Space** ACEScct → `HDR` (Rec.2020 HLG) feeds the video; the ACEScct image goes to the EXR save.\n" }, "color": "#432", "bgcolor": "#653" @@ -37,8 +37,8 @@ "id": 5532, "type": "MarkdownNote", "pos": [ - -750, - 2780 + -1011.7741580726669, + 2794.1577947915453 ], "size": [ 360, @@ -54,10 +54,10 @@ "title": "Save HDR", "properties": {}, "widgets_values": [ - "## Save HDR\n\n1. Postprocess (`transfer=acescct`) → EXR (`acescct`)\n2. HLG master — muxes **source** audio if the MP4 has a track; silent videos stay video-only\n3. Linear preview video\n" + "## Save HDR\n\n1. **Save EXR (ACEScg)** — `LTXVHDRDecodePostprocess` with `save_exr` on and `exr_color_space` = `acescg`; writes the ACEScg EXR sequence to `output/hdr_exr`. Its image outputs are not used.\n2. **HLG video**: Create Video (`HDR`, source audio) → Save Video (10-bit; auto = H.264, AV1 also available). Core HLG uses 1.0 = 203 nits and clips above 1000 nits.\n" ], "widgets_values_named": { - "text": "## Save HDR\n\n1. Postprocess (`transfer=acescct`) → EXR (`acescct`)\n2. HLG master — muxes **source** audio if the MP4 has a track; silent videos stay video-only\n3. Linear preview video\n" + "text": "## Save HDR\n\n1. **Save EXR (ACEScg)** — `LTXVHDRDecodePostprocess` with `save_exr` on and `exr_color_space` = `acescg`; writes the ACEScg EXR sequence to `output/hdr_exr`. Its image outputs are not used.\n2. **HLG video**: Create Video (`HDR`, source audio) → Save Video (10-bit; auto = H.264, AV1 also available). Core HLG uses 1.0 = 203 nits and clips above 1000 nits.\n" }, "color": "#432", "bgcolor": "#653" @@ -66,15 +66,15 @@ "id": 5516, "type": "f9337bd7-ca7a-4a59-99f1-65b664bed7e7", "pos": [ - -1696.797599482797, - 3046.981424603911 + -1814.4002252591622, + 3050.911448317488 ], "size": [ 305, 260 ], "flags": {}, - "order": 15, + "order": 10, "mode": 0, "inputs": [ { @@ -168,7 +168,7 @@ "## Preprocess\n\nGuide = ACEScct-mapped SDR (resized to multiple of 32).\nConditioning = scene embeddings.\nAudio latent = **LTXVEmptyLatentAudio** (same as Motion Track / Ingredients) — works for silent videos. Original soundtrack is muxed on save when present.\n" ], "widgets_values_named": { - "text": "## Preprocess\n\nGuide = ACEScct-mapped SDR (resized to multiple of 32).\nConditioning = scene embeddings.\nAudio latent = **LTXVEmptyLatentAudio** (same as Motion Track / Ingredients) — works for silent videos. Original soundtrack is muxed on save when present.\n" + "text": "## Preprocess\n\nGuide = ACEScct-mapped SDR (reflect-padded to multiple of 32; cropped back after decode).\nConditioning = scene embeddings.\nAudio latent = **LTXVEmptyLatentAudio** (same as Motion Track / Ingredients) — works for silent videos. Original soundtrack is muxed on save when present.\n" }, "color": "#432", "bgcolor": "#653" @@ -177,21 +177,21 @@ "id": 5518, "type": "bee43e38-9234-4e41-86ff-63874164f482", "pos": [ - -1182.7964073377007, - 3047.075599066888 + -1396.3146990273342, + 3048.3264798679356 ], "size": [ 307, 280 ], "flags": {}, - "order": 16, + "order": 11, "mode": 0, "inputs": [ { "name": "vae", "type": "VAE", - "link": 13922 + "link": 13973 }, { "label": "video_latent", @@ -202,10 +202,19 @@ ], "outputs": [ { + "label": "ACEScct_image", "name": "IMAGE", "type": "IMAGE", "links": [ - 13804 + 13986 + ] + }, + { + "label": "HDR_HLG_image", + "name": "IMAGE_1", + "type": "IMAGE", + "links": [ + 13967 ] } ], @@ -227,74 +236,12 @@ "temporal_overlap": 32 } }, - { - "id": 9014, - "type": "CreateVideo", - "pos": [ - -274.84335150091, - 3025.1371847254586 - ], - "size": [ - 280, - 150 - ], - "flags": {}, - "order": 18, - "mode": 0, - "inputs": [ - { - "name": "images", - "type": "IMAGE", - "link": 13949 - }, - { - "name": "audio", - "shape": 7, - "type": "AUDIO", - "link": 13924 - }, - { - "name": "fps", - "type": "FLOAT", - "widget": { - "name": "fps" - }, - "link": 13810 - } - ], - "outputs": [ - { - "name": "VIDEO", - "type": "VIDEO", - "links": [ - 13811 - ] - } - ], - "title": "CreateVideo (preview)", - "properties": { - "Node name for S&R": "CreateVideo", - "cnr_id": "comfy-core" - }, - "widgets_values": [ - 24, - "auto", - "sRGB", - "none" - ], - "widgets_values_named": { - "fps": 24, - "bit_depth": "auto", - "color_space": "sRGB", - "codec": "none" - } - }, { "id": 5004, "type": "b7c1e94a-3f52-4d08-9a61-2e7c5d4f8a13", "pos": [ - -3921.3438490052713, - 3041.7498098107253 + -3705.302365780429, + 3044.056051271388 ], "size": [ 420, @@ -364,7 +311,8 @@ "name": "VAE", "type": "VAE", "links": [ - 13801 + 13972, + 13973 ] }, { @@ -380,6 +328,14 @@ "links": [ 13766 ] + }, + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [ + 13982, + 13983 + ] } ], "properties": { @@ -433,8 +389,8 @@ "id": 5526, "type": "MarkdownNote", "pos": [ - -3886.699970706411, - 2632.1588331497965 + -3674.4002465861126, + 2626.0480777149137 ], "size": [ 360, @@ -458,204 +414,6 @@ "color": "#432", "bgcolor": "#653" }, - { - "id": 9023, - "type": "MarkdownNote", - "pos": [ - -3296.327636227033, - 3338.985082714822 - ], - "size": [ - 360, - 120 - ], - "flags": {}, - "order": 5, - "mode": 0, - "inputs": [], - "outputs": [], - "title": "Scene embeddings", - "properties": {}, - "widgets_values": [ - "## Scene embeddings\n\nFixed `video_context` (+ audio). Replaces prompt boxes.\n" - ], - "widgets_values_named": { - "text": "## Scene embeddings\n\nFixed `video_context` (+ audio). Replaces prompt boxes.\n" - }, - "color": "#432", - "bgcolor": "#653" - }, - { - "id": 9020, - "type": "LTXVLoadConditioning", - "pos": [ - -3297.9984952706413, - 3503.526540537847 - ], - "size": [ - 360, - 138 - ], - "flags": {}, - "order": 6, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [ - 13901, - 13925 - ] - } - ], - "title": "Load scene embeddings", - "properties": { - "Node name for S&R": "LTXVLoadConditioning", - "models": [ - { - "name": "ltx-2.5-22b-ic-lora-sdr-to-hdr-scene-emb.safetensors", - "url": "https://huggingface.co/Lightricks/LTX-2.5-22b-IC-LoRA-SDR-To-HDR/resolve/main/ltx-2.5-22b-ic-lora-sdr-to-hdr-scene-emb.safetensors", - "directory": "embeddings" - } - ] - }, - "widgets_values": [ - "ltx-2.5-22b-ic-lora-sdr-to-hdr-scene-emb.safetensors", - "cpu" - ], - "widgets_values_named": { - "file_name": "ltx-2.5-22b-ic-lora-sdr-to-hdr-scene-emb.safetensors", - "device": "cpu" - }, - "color": "#233", - "bgcolor": "#355" - }, - { - "id": 9012, - "type": "LTXVHDRDecodePostprocess", - "pos": [ - -740.04738833505, - 3049.104495198274 - ], - "size": [ - 360, - 295 - ], - "flags": {}, - "order": 17, - "mode": 0, - "inputs": [ - { - "name": "image", - "type": "IMAGE", - "link": 13804 - } - ], - "outputs": [ - { - "name": "tonemapped", - "type": "IMAGE", - "links": [ - 13949 - ] - }, - { - "name": "hdr_linear", - "type": "IMAGE", - "links": [ - 13807 - ] - } - ], - "title": "HDR postprocess", - "properties": { - "Node name for S&R": "LTXVHDRDecodePostprocess" - }, - "widgets_values": [ - "acescct", - 0, - true, - "acescg", - "output/hdr_exr", - "frame", - true - ], - "widgets_values_named": { - "transfer": "acescct", - "exposure": 0, - "save_exr": true, - "exr_color_space": "acescg", - "output_dir": "output/hdr_exr", - "filename_prefix": "frame", - "half_precision": true - }, - "color": "#233", - "bgcolor": "#355" - }, - { - "id": 9021, - "type": "LTXVConditioning", - "pos": [ - -2212.0702258130295, - 3043.56402390757 - ], - "size": [ - 300, - 90 - ], - "flags": {}, - "order": 13, - "mode": 0, - "inputs": [ - { - "name": "positive", - "type": "CONDITIONING", - "link": 13901 - }, - { - "name": "negative", - "type": "CONDITIONING", - "link": 13925 - }, - { - "name": "frame_rate", - "type": "FLOAT", - "widget": { - "name": "frame_rate" - }, - "link": 13928 - } - ], - "outputs": [ - { - "name": "positive", - "type": "CONDITIONING", - "links": [ - 13905 - ] - }, - { - "name": "negative", - "type": "CONDITIONING", - "links": [ - 13906 - ] - } - ], - "title": "LTXV Conditioning", - "properties": { - "Node name for S&R": "LTXVConditioning", - "cnr_id": "comfy-core" - }, - "widgets_values": [ - 24 - ], - "widgets_values_named": { - "frame_rate": 24 - } - }, { "id": 5548, "type": "c4a8f261-5b93-4e17-8d2a-6f01b3e97c45", @@ -665,10 +423,10 @@ ], "size": [ 366, - 170 + 210 ], "flags": {}, - "order": 11, + "order": 8, "mode": 0, "inputs": [ { @@ -711,17 +469,14 @@ "type": "FLOAT", "links": [ 13771, - 13810, - 13923, - 13927 + 13923 ] }, { "name": "audio", "type": "AUDIO", "links": [ - 13805, - 13924 + 13805 ] } ], @@ -729,79 +484,41 @@ "previewExposures": [] }, "widgets_values": [ - "srgb_gamma" + "sRGB" ], "widgets_values_named": { - "color_space": "srgb_gamma" + "source": "sRGB" } }, - { - "id": 9011, - "type": "LTXVVAEForceFloat32", - "pos": [ - -2723.8819002697096, - 3284.9516896926043 - ], - "size": [ - 300, - 70 - ], - "flags": {}, - "order": 10, - "mode": 0, - "inputs": [ - { - "name": "vae", - "type": "VAE", - "link": 13801 - } - ], - "outputs": [ - { - "name": "VAE", - "type": "VAE", - "links": [ - 13802, - 13922 - ] - } - ], - "title": "VAE float32 (HDR)", - "properties": { - "Node name for S&R": "LTXVVAEForceFloat32" - }, - "color": "#233", - "bgcolor": "#355" - }, { "id": 9002, "type": "d92e6f38-7a14-4c85-b3e0-9f52a1d68b74", "pos": [ - -2209.985570333348, - 3189.4630669960707 + -2207.292743812075, + 3044.945936644642 ], "size": [ - 300, - 320 + 301.83427729938967, + 249.4239972425312 ], "flags": {}, - "order": 14, + "order": 9, "mode": 0, "inputs": [ { "name": "positive", "type": "CONDITIONING", - "link": 13905 + "link": 13982 }, { "name": "negative", "type": "CONDITIONING", - "link": 13906 + "link": 13983 }, { "name": "vae", "type": "VAE", - "link": 13802 + "link": 13972 }, { "name": "audio_vae", @@ -852,17 +569,6 @@ "name": "fps" }, "link": 13771 - }, - { - "label": "audio", - "name": "audio", - "type": "AUDIO", - "link": null - }, - { - "name": "conditioning_fps", - "type": "FLOAT", - "link": 13929 } ], "outputs": [ @@ -910,8 +616,8 @@ "id": 5527, "type": "MarkdownNote", "pos": [ - -3300.0723423969744, - 2775.577956325394 + -3193.302775998755, + 2774.1581273989323 ], "size": [ 360, @@ -920,7 +626,7 @@ "flags": { "collapsed": false }, - "order": 7, + "order": 5, "mode": 0, "inputs": [], "outputs": [], @@ -936,24 +642,24 @@ "bgcolor": "#653" }, { - "id": 9013, - "type": "LTXVSaveHLG", + "id": 9108, + "type": "CreateVideo", "pos": [ - -289.3396315289, - 3200.3032557484607 + -994.2810519364609, + 3276.3792193613335 ], "size": [ - 320, - 170 + 280, + 150 ], "flags": {}, - "order": 19, + "order": 13, "mode": 0, "inputs": [ { - "name": "hdr_linear", + "name": "images", "type": "IMAGE", - "link": 13807 + "link": 13967 }, { "name": "audio", @@ -962,51 +668,60 @@ "link": 13805 }, { - "name": "frame_rate", + "name": "fps", "type": "FLOAT", "widget": { - "name": "frame_rate" + "name": "fps" }, "link": 13923 } ], - "outputs": [], - "title": "Save HLG", + "outputs": [ + { + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 13961 + ] + } + ], + "title": "CreateVideo (HLG)", "properties": { - "Node name for S&R": "LTXVSaveHLG" + "Node name for S&R": "CreateVideo", + "cnr_id": "comfy-core" }, "widgets_values": [ 24, - "hdr/ltxv_hlg", - "acescg" + "auto", + "HDR", + "none" ], "widgets_values_named": { - "frame_rate": 24, - "filename_prefix": "hdr/ltxv_hlg", - "linear_primaries": "acescg" - }, - "color": "#233", - "bgcolor": "#355" + "fps": 24, + "bit_depth": "auto", + "color_space": "HDR", + "codec": "none" + } }, { - "id": 4852, + "id": 9109, "type": "SaveVideo", "pos": [ - -309.5881060018383, - 3420.2453781477548 + -645.6084728166708, + 3064.078385708285 ], "size": [ 360, 296 ], "flags": {}, - "order": 20, + "order": 14, "mode": 0, "inputs": [ { "name": "video", "type": "VIDEO", - "link": 13811 + "link": 13961 } ], "outputs": [ @@ -1016,19 +731,19 @@ "links": [] } ], - "title": "Save video (preview)", + "title": "Save video (HLG)", "properties": { - "cnr_id": "comfy-core", - "ver": "0.14.1" + "Node name for S&R": "SaveVideo", + "cnr_id": "comfy-core" }, "widgets_values": [ - "hdr/preview", + "hdr/hlg", "auto", "auto", "auto" ], "widgets_values_named": { - "filename_prefix": "hdr/preview", + "filename_prefix": "hdr/hlg", "format": "auto", "format.codec": "auto", "codec": "auto" @@ -1038,15 +753,15 @@ "id": 9102, "type": "LoadVideo", "pos": [ - -3297.8834783461107, - 3032.8960169744805 + -3191.929939653848, + 3039.4226528494887 ], "size": [ 339.078125, 264.7314453125 ], "flags": {}, - "order": 8, + "order": 6, "mode": 0, "inputs": [], "outputs": [ @@ -1075,68 +790,6 @@ "color": "#232", "bgcolor": "#353" }, - { - "id": 9103, - "type": "ComfyMathExpression", - "pos": [ - -2755.7664928560057, - 3401.582727363453 - ], - "size": [ - 347.4057027275571, - 128 - ], - "flags": { - "collapsed": false - }, - "order": 12, - "mode": 0, - "inputs": [ - { - "label": "a", - "name": "values.a", - "type": "FLOAT,INT,BOOLEAN", - "link": 13927 - }, - { - "name": "values.b", - "shape": 7, - "type": "FLOAT,INT,BOOLEAN", - "link": null - } - ], - "outputs": [ - { - "name": "FLOAT", - "type": "FLOAT", - "links": [ - 13928, - 13929 - ] - }, - { - "name": "INT", - "type": "INT", - "links": [] - }, - { - "name": "BOOL", - "type": "BOOLEAN", - "links": [] - } - ], - "title": "Conditioning FPS (≤30 keep, >30 → 30)", - "properties": { - "Node name for S&R": "ComfyMathExpression", - "cnr_id": "comfy-core" - }, - "widgets_values": [ - "a if a <= 30 else 30" - ], - "widgets_values_named": { - "expression": "a if a <= 30 else 30" - } - }, { "id": 9104, "type": "MarkdownNote", @@ -1149,7 +802,7 @@ 88 ], "flags": {}, - "order": 9, + "order": 7, "mode": 0, "inputs": [], "outputs": [], @@ -1163,6 +816,64 @@ }, "color": "#432", "bgcolor": "#653" + }, + { + "id": 9117, + "type": "LTXVHDRDecodePostprocess", + "pos": [ + -1007.9641830679967, + 3058.553310643306 + ], + "size": [ + 340, + 295 + ], + "flags": {}, + "order": 21, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": 13986 + } + ], + "outputs": [ + { + "name": "tonemapped", + "type": "IMAGE", + "links": [] + }, + { + "name": "hdr_linear", + "type": "IMAGE", + "links": [] + } + ], + "properties": { + "Node name for S&R": "LTXVHDRDecodePostprocess" + }, + "widgets_values": [ + "acescct", + 0, + true, + "acescg", + "output/hdr_exr", + "frame", + true + ], + "widgets_values_named": { + "transfer": "acescct", + "exposure": 0, + "save_exr": true, + "exr_color_space": "acescg", + "output_dir": "output/hdr_exr", + "filename_prefix": "frame", + "half_precision": true + }, + "color": "#233", + "bgcolor": "#355", + "title": "Save EXR (ACEScg)" } ], "links": [ @@ -1174,6 +885,110 @@ 0, "MODEL" ], + [ + 13773, + 9002, + 0, + 5516, + 1, + "CONDITIONING" + ], + [ + 13774, + 9002, + 1, + 5516, + 2, + "CONDITIONING" + ], + [ + 13775, + 9002, + 2, + 5516, + 3, + "LATENT" + ], + [ + 13923, + 5548, + 4, + 9108, + 2, + "FLOAT" + ], + [ + 13805, + 5548, + 5, + 9108, + 1, + "AUDIO" + ], + [ + 13926, + 9102, + 0, + 5548, + 0, + "VIDEO" + ], + [ + 13785, + 5516, + 0, + 5518, + 1, + "LATENT" + ], + [ + 13967, + 5518, + 1, + 9108, + 0, + "IMAGE" + ], + [ + 13973, + 5004, + 1, + 5518, + 0, + "VAE" + ], + [ + 13961, + 9108, + 0, + 9109, + 0, + "VIDEO" + ], + [ + 13982, + 5004, + 4, + 9002, + 0, + "CONDITIONING" + ], + [ + 13983, + 5004, + 4, + 9002, + 1, + "CONDITIONING" + ], + [ + 13972, + 5004, + 1, + 9002, + 2, + "VAE" + ], [ 13763, 5004, @@ -1231,186 +1046,10 @@ "FLOAT" ], [ - 13773, - 9002, - 0, - 5516, - 1, - "CONDITIONING" - ], - [ - 13774, - 9002, - 1, - 5516, - 2, - "CONDITIONING" - ], - [ - 13775, - 9002, - 2, - 5516, - 3, - "LATENT" - ], - [ - 13801, - 5004, - 1, - 9011, - 0, - "VAE" - ], - [ - 13802, - 9011, - 0, - 9002, - 2, - "VAE" - ], - [ - 13807, - 9012, - 1, - 9013, - 0, - "IMAGE" - ], - [ - 13810, - 5548, - 4, - 9014, - 2, - "FLOAT" - ], - [ - 13901, - 9020, - 0, - 9021, - 0, - "CONDITIONING" - ], - [ - 13905, - 9021, - 0, - 9002, - 0, - "CONDITIONING" - ], - [ - 13906, - 9021, - 1, - 9002, - 1, - "CONDITIONING" - ], - [ - 13923, - 5548, - 4, - 9013, - 2, - "FLOAT" - ], - [ - 13805, - 5548, - 5, - 9013, - 1, - "AUDIO" - ], - [ - 13924, - 5548, - 5, - 9014, - 1, - "AUDIO" - ], - [ - 13925, - 9020, - 0, - 9021, - 1, - "CONDITIONING" - ], - [ - 13926, - 9102, - 0, - 5548, - 0, - "VIDEO" - ], - [ - 13928, - 9103, - 0, - 9021, - 2, - "FLOAT" - ], - [ - 13929, - 9103, - 0, - 9002, - 11, - "FLOAT" - ], - [ - 13804, + 13986, 5518, 0, - 9012, - 0, - "IMAGE" - ], - [ - 13922, - 9011, - 0, - 5518, - 0, - "VAE" - ], - [ - 13785, - 5516, - 0, - 5518, - 1, - "LATENT" - ], - [ - 13811, - 9014, - 0, - 4852, - 0, - "VIDEO" - ], - [ - 13927, - 5548, - 4, - 9103, - 0, - "FLOAT" - ], - [ - 13949, - 9012, - 0, - 9014, + 9117, 0, "IMAGE" ] @@ -1420,8 +1059,8 @@ "id": 1, "title": "1 · Models", "bounding": [ - -3947.4871434031115, - 2968.129578960652, + -3731.4456601782695, + 2970.4358204213145, 466.93307897400655, 403.98201531941186 ], @@ -1432,10 +1071,10 @@ "id": 2, "title": "2 · Inputs", "bounding": [ - -3320.0723423969744, - 2955.577956325394, - 405.70000440683134, - 710.6562735522962 + -3214.118803704712, + 2962.1045922004023, + 394.19226872656327, + 363.6013139914271 ], "color": "#3f789e", "flags": {} @@ -1446,8 +1085,8 @@ "bounding": [ -2779, 2960, - 397.50438773380847, - 599.6177309794921 + 408.22128044390274, + 318.6470358870456 ], "color": "#3f789e", "flags": {} @@ -1458,8 +1097,8 @@ "bounding": [ -2236.879788536259, 2960.673825376728, - 359.22043849026386, - 573.07014893203 + 354.0368644772975, + 362.5833361740497 ], "color": "#3f789e", "flags": {} @@ -1468,8 +1107,8 @@ "id": 5, "title": "5 · Generate", "bounding": [ - -1727, - 2960, + -1844.6026257763651, + 2963.930023713577, 363.7114905585222, 384.8905622756938 ], @@ -1480,8 +1119,8 @@ "id": 6, "title": "6 · Decode", "bounding": [ - -1208, - 2960, + -1426.4889231422799, + 2969.413230451684, 355.1384988932941, 398.58032543632726 ], @@ -1492,10 +1131,10 @@ "id": 7, "title": "7 · Save HDR", "bounding": [ - -770, - 2960, - 855.207237168871, - 611.7738676471809 + -1039.0573633959873, + 2974.9428049832477, + 787.5546169291983, + 476.8842248773649 ], "color": "#3f789e", "flags": {} @@ -1508,9 +1147,9 @@ "version": 1, "state": { "lastGroupId": 158, - "lastNodeId": 9104, - "lastLinkId": 13949, - "lastRerouteId": 5060 + "lastNodeId": 9117, + "lastLinkId": 13991, + "lastRerouteId": 5072 }, "revision": 0, "config": {}, @@ -1530,7 +1169,7 @@ 80, 40, 184.962890625, - 128 + 148 ] }, "inputs": [ @@ -1619,7 +1258,7 @@ "name": "VAE", "type": "VAE", "linkIds": [ - 11 + 13971 ], "localized_name": "VAE", "pos": [ @@ -1651,6 +1290,18 @@ 104, 124 ] + }, + { + "id": "3a7cfc14-1a5a-4e42-8577-fa1b667c492a", + "name": "CONDITIONING", + "type": "CONDITIONING", + "linkIds": [ + 13981 + ], + "pos": [ + 104, + 144 + ] } ], "widgets": [], @@ -1659,15 +1310,15 @@ "id": 5600, "type": "VAELoader", "pos": [ - -820, - 40 + -823.2009457826248, + 49.6779128353131 ], "size": [ 376.828125, 62 ], "flags": {}, - "order": 0, + "order": 2, "mode": 0, "inputs": [ { @@ -1720,7 +1371,7 @@ 62 ], "flags": {}, - "order": 1, + "order": 3, "mode": 0, "inputs": [ { @@ -1739,7 +1390,7 @@ "name": "VAE", "type": "VAE", "links": [ - 11 + 13970 ] } ], @@ -1773,7 +1424,7 @@ 86 ], "flags": {}, - "order": 2, + "order": 4, "mode": 0, "inputs": [ { @@ -1827,7 +1478,7 @@ 134 ], "flags": {}, - "order": 3, + "order": 5, "mode": 0, "inputs": [ { @@ -1891,6 +1542,119 @@ "lora_name": "ltx-2.5-22b-ic-lora-sdr-to-hdr-1.0.safetensors", "strength_model": 1 } + }, + { + "id": 9112, + "type": "LTXVVAEForceFloat32", + "pos": [ + -343.50860278232466, + 157.33861221990261 + ], + "size": [ + 300, + 70 + ], + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [ + { + "localized_name": "vae", + "name": "vae", + "type": "VAE", + "link": 13970 + } + ], + "outputs": [ + { + "localized_name": "VAE", + "name": "VAE", + "type": "VAE", + "links": [ + 13971 + ] + } + ], + "title": "VAE float32 (HDR)", + "properties": { + "Node name for S&R": "LTXVVAEForceFloat32" + }, + "color": "#233", + "bgcolor": "#355" + }, + { + "id": 9115, + "type": "LTXVLoadConditioning", + "pos": [ + -409.6282574848006, + 512.5316848770024 + ], + "size": [ + 360, + 138 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "localized_name": "CONDITIONING", + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [ + 13981 + ] + } + ], + "title": "Load scene embeddings", + "properties": { + "Node name for S&R": "LTXVLoadConditioning", + "models": [ + { + "name": "ltx-2.5-22b-ic-lora-sdr-to-hdr-scene-emb.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-2.5-22b-IC-LoRA-SDR-To-HDR/resolve/main/ltx-2.5-22b-ic-lora-sdr-to-hdr-scene-emb.safetensors", + "directory": "embeddings" + } + ] + }, + "widgets_values": [ + "ltx-2.5-22b-ic-lora-sdr-to-hdr-scene-emb.safetensors", + "cpu" + ], + "widgets_values_named": { + "file_name": "ltx-2.5-22b-ic-lora-sdr-to-hdr-scene-emb.safetensors", + "device": "cpu" + }, + "color": "#233", + "bgcolor": "#355" + }, + { + "id": 9116, + "type": "MarkdownNote", + "pos": [ + -808.9673583242701, + 525.3723458966094 + ], + "size": [ + 360, + 120 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [], + "outputs": [], + "title": "Scene embeddings", + "properties": {}, + "widgets_values": [ + "## Scene embeddings\n\nFixed `video_context` (+ audio). Replaces prompt boxes.\n" + ], + "widgets_values_named": { + "text": "## Scene embeddings\n\nFixed `video_context` (+ audio). Replaces prompt boxes.\n" + }, + "color": "#432", + "bgcolor": "#653" } ], "groups": [ @@ -1900,8 +1664,8 @@ "bounding": [ -860, -36, - 911.9531051256308, - 568.4381644093297 + 938.1087244714902, + 720.2854808672281 ], "color": "#3f789e", "flags": {} @@ -1964,14 +1728,6 @@ "target_slot": 0, "type": "VAE" }, - { - "id": 11, - "origin_id": 5601, - "origin_slot": 0, - "target_id": -20, - "target_slot": 1, - "type": "VAE" - }, { "id": 12, "origin_id": 5606, @@ -1987,6 +1743,30 @@ "target_id": -20, "target_slot": 3, "type": "FLOAT" + }, + { + "id": 13970, + "origin_id": 5601, + "origin_slot": 0, + "target_id": 9112, + "target_slot": 0, + "type": "VAE" + }, + { + "id": 13971, + "origin_id": 9112, + "origin_slot": 0, + "target_id": -20, + "target_slot": 1, + "type": "VAE" + }, + { + "id": 13981, + "origin_id": 9115, + "origin_slot": 0, + "target_id": -20, + "target_slot": 4, + "type": "CONDITIONING" } ], "extra": {} @@ -1996,9 +1776,9 @@ "version": 1, "state": { "lastGroupId": 158, - "lastNodeId": 9104, - "lastLinkId": 13949, - "lastRerouteId": 5060 + "lastNodeId": 9117, + "lastLinkId": 13991, + "lastRerouteId": 5072 }, "revision": 0, "config": {}, @@ -2793,9 +2573,9 @@ "version": 1, "state": { "lastGroupId": 158, - "lastNodeId": 9104, - "lastLinkId": 13949, - "lastRerouteId": 5060 + "lastNodeId": 9117, + "lastLinkId": 13991, + "lastRerouteId": 5072 }, "revision": 0, "config": {}, @@ -2806,16 +2586,16 @@ -1698.4995179126513, 3393.3353381489246, 145.658203125, - 168 + 208 ] }, "outputNode": { "id": -20, "bounding": [ - -1006.6352410657306, - 3416.710223073224, - 128, - 68 + 59.61739721542561, + 3421.06330402221, + 143.8828125, + 88 ] }, "inputs": [ @@ -2901,12 +2681,26 @@ "name": "IMAGE", "type": "IMAGE", "linkIds": [ - 13740 + 13991 ], "localized_name": "IMAGE", + "label": "ACEScct_image", "pos": [ - -982.6352410657306, - 3440.710223073224 + 83.61739721542561, + 3445.06330402221 + ] + }, + { + "id": "639bb075-5945-4051-bdf5-50aaf00dabc6", + "name": "IMAGE_1", + "type": "IMAGE", + "linkIds": [ + 13969 + ], + "label": "HDR_HLG_image", + "pos": [ + 83.61739721542561, + 3465.06330402221 ] } ], @@ -2982,7 +2776,8 @@ "name": "IMAGE", "type": "IMAGE", "links": [ - 13740 + 13990, + 13991 ] } ], @@ -3001,6 +2796,54 @@ "temporal_size": 64, "temporal_overlap": 8 } + }, + { + "id": 9111, + "type": "ImageColorSpace", + "pos": [ + -733.9665025300264, + 3501.002954801432 + ], + "size": [ + 315, + 106 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "localized_name": "image", + "name": "image", + "type": "IMAGE", + "link": 13990 + } + ], + "outputs": [ + { + "localized_name": "IMAGE", + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 13969 + ] + } + ], + "title": "ACEScct → HDR (HLG)", + "properties": { + "Node name for S&R": "ImageColorSpace", + "cnr_id": "comfy-core" + }, + "widgets_values": [ + "HDR ACEScct", + "HDR" + ], + "widgets_values_named": { + "source": "HDR ACEScct", + "destination": "HDR" + }, + "color": "#233", + "bgcolor": "#355" } ], "groups": [ @@ -3010,7 +2853,7 @@ "bounding": [ -1426.9462354838788, 3293.5356059816863, - 325.1055670968335, + 640, 305.0193473252107 ], "color": "#b58b2a", @@ -3034,14 +2877,6 @@ "target_slot": 0, "type": "LATENT" }, - { - "id": 13740, - "origin_id": 5538, - "origin_slot": 0, - "target_id": -20, - "target_slot": 0, - "type": "IMAGE" - }, { "id": 13736, "origin_id": -10, @@ -3073,6 +2908,30 @@ "target_id": 5538, "target_slot": 5, "type": "INT" + }, + { + "id": 13969, + "origin_id": 9111, + "origin_slot": 0, + "target_id": -20, + "target_slot": 1, + "type": "IMAGE" + }, + { + "id": 13990, + "origin_id": 5538, + "origin_slot": 0, + "target_id": 9111, + "target_slot": 0, + "type": "IMAGE" + }, + { + "id": 13991, + "origin_id": 5538, + "origin_slot": 0, + "target_id": -20, + "target_slot": 0, + "type": "IMAGE" } ], "floatingLinks": [ @@ -3144,9 +3003,9 @@ "version": 1, "state": { "lastGroupId": 158, - "lastNodeId": 9104, - "lastLinkId": 13949, - "lastRerouteId": 5060 + "lastNodeId": 9117, + "lastLinkId": 13991, + "lastRerouteId": 5072 }, "revision": 0, "config": {}, @@ -3165,8 +3024,8 @@ "bounding": [ -1933.4663348206166, 4460.5399132023895, - 128, - 168 + 128.05078125, + 208 ] }, "inputs": [ @@ -3184,7 +3043,7 @@ }, { "id": "54baa254-495d-49b3-a759-26a45bd56524", - "name": "color_space", + "name": "source", "type": "COMBO", "linkIds": [ 13946 @@ -3201,7 +3060,7 @@ "name": "image", "type": "IMAGE", "linkIds": [ - 13931 + 13989 ], "pos": [ -1909.4663348206166, @@ -3338,59 +3197,12 @@ "ver": "0.3.75" } }, - { - "id": 5026, - "type": "ResizeImageMaskNode", - "pos": [ - -2583.5801590538194, - 4508.8637719239905 - ], - "size": [ - 240.984375, - 118 - ], - "flags": {}, - "order": 1, - "mode": 0, - "inputs": [ - { - "localized_name": "input", - "name": "input", - "type": "IMAGE,MASK", - "link": 21 - } - ], - "outputs": [ - { - "localized_name": "resized", - "name": "resized", - "type": "IMAGE", - "links": [ - 4, - 13931 - ] - } - ], - "properties": { - "Node name for S&R": "ResizeImageMaskNode" - }, - "widgets_values": [ - "scale to multiple", - 32, - "lanczos" - ], - "widgets_values_named": { - "resize_type": "scale to multiple", - "resize_type.multiple": 32, - "scale_method": "lanczos" - } - }, { "id": 5029, "type": "GetImageSize", "pos": [ - -2253.4663348206154, - 4491.5399132023895 + -2283.8705625587268, + 4493.7473434354315 ], "size": [ 225, @@ -3404,7 +3216,7 @@ "localized_name": "image", "name": "image", "type": "IMAGE", - "link": 4 + "link": 13988 } ], "outputs": [ @@ -3441,14 +3253,14 @@ }, { "id": 9010, - "type": "LTXVSDRToHDRWorkingSpace", + "type": "ImageColorSpace", "pos": [ -2971.5014553656697, 4510.459522294336 ], "size": [ 315, - 86 + 106 ], "flags": {}, "order": 4, @@ -3461,34 +3273,37 @@ "link": 20 }, { - "localized_name": "color_space", - "name": "color_space", + "localized_name": "source", + "name": "source", "type": "COMBO", "widget": { - "name": "color_space" + "name": "source" }, "link": 13946 } ], "outputs": [ { - "localized_name": "acescct", - "name": "acescct", + "localized_name": "IMAGE", + "name": "IMAGE", "type": "IMAGE", "links": [ - 21 + 13987 ] } ], "title": "SDR → ACEScct", "properties": { - "Node name for S&R": "LTXVSDRToHDRWorkingSpace" + "Node name for S&R": "ImageColorSpace", + "cnr_id": "comfy-core" }, "widgets_values": [ - "srgb_gamma" + "sRGB", + "HDR ACEScct" ], "widgets_values_named": { - "color_space": "srgb_gamma" + "source": "sRGB", + "destination": "HDR ACEScct" }, "color": "#233", "bgcolor": "#355" @@ -3512,13 +3327,60 @@ "title": "Source video → guide frames", "properties": {}, "widgets_values": [ - "## Source Video (SDR→HDR)\n\nDecode the SDR MP4, map to ACEScct with **LTXVSDRToHDRWorkingSpace** (`srgb_gamma`), then **Resize Image/Mask → scale to multiple 32** (same alignment pattern as other 2.5 IC-LoRA graphs). IDT runs before resize. Output size follows this guide via GetImageSize.\n" + "## Source Video (SDR→HDR)\n\nDecode the SDR MP4, map to ACEScct with **Convert Image Color Space** (`sRGB` → `HDR ACEScct`), then **Resize Image/Mask → scale to multiple 32**. Output size follows this guide via GetImageSize. Do not use Convert SDR to HDR (Lottes) — that is a creative HLG expand, not the IC-LoRA working-space IDT.\n" ], "widgets_values_named": { - "text": "## Source Video (SDR→HDR)\n\nDecode the SDR MP4, map to ACEScct with **LTXVSDRToHDRWorkingSpace** (`srgb_gamma`), then **Resize Image/Mask → scale to multiple 32** (same alignment pattern as other 2.5 IC-LoRA graphs). IDT runs before resize. Output size follows this guide via GetImageSize.\n" + "text": "## Source Video (SDR→HDR)\n\nDecode the SDR MP4, map to ACEScct with **Convert Image Color Space** (`sRGB` → `HDR ACEScct`), then **Pad To Multiple 32**: mirror-pads bottom/right without resizing. Generation size follows the padded guide via GetImageSize; `source_width`/`source_height` crop the decode back to the original resolution. Do not use Convert SDR to HDR (Lottes) — that is a creative HLG expand, not the IC-LoRA working-space IDT.\n" }, "color": "#432", "bgcolor": "#653" + }, + { + "id": 5026, + "type": "ResizeImageMaskNode", + "pos": [ + -2583.5801590538194, + 4508.8637719239905 + ], + "size": [ + 240.984375, + 118 + ], + "flags": {}, + "order": 1, + "mode": 0, + "inputs": [ + { + "localized_name": "input", + "name": "input", + "type": "IMAGE,MASK", + "link": 13987 + } + ], + "outputs": [ + { + "localized_name": "resized", + "name": "resized", + "type": "IMAGE", + "links": [ + 13988, + 13989 + ] + } + ], + "properties": { + "Node name for S&R": "ResizeImageMaskNode" + }, + "widgets_values": [ + "scale to multiple", + 32, + "lanczos" + ], + "widgets_values_named": { + "resize_type": "scale to multiple", + "resize_type.multiple": 32, + "scale_method": "lanczos" + } } ], "groups": [ @@ -3536,14 +3398,6 @@ } ], "links": [ - { - "id": 4, - "origin_id": 5026, - "origin_slot": 0, - "target_id": 5029, - "target_slot": 0, - "type": "IMAGE" - }, { "id": 13930, "origin_id": -10, @@ -3552,15 +3406,6 @@ "target_slot": 0, "type": "VIDEO" }, - { - "id": 13931, - "origin_id": 5026, - "origin_slot": 0, - "target_id": -20, - "target_slot": 0, - "type": "IMAGE", - "parentId": 4006 - }, { "id": 13, "origin_id": 5029, @@ -3620,12 +3465,28 @@ "type": "COMBO" }, { - "id": 21, + "id": 13987, "origin_id": 9010, "origin_slot": 0, "target_id": 5026, "target_slot": 0, "type": "IMAGE" + }, + { + "id": 13988, + "origin_id": 5026, + "origin_slot": 0, + "target_id": 5029, + "target_slot": 0, + "type": "IMAGE" + }, + { + "id": 13989, + "origin_id": 5026, + "origin_slot": 0, + "target_id": -20, + "target_slot": 0, + "type": "IMAGE" } ], "reroutes": [ @@ -3677,9 +3538,7 @@ -2303.4663348206154, 4715.5399132023895 ], - "linkIds": [ - 13931 - ] + "linkIds": [] }, { "id": 4006, @@ -3688,9 +3547,41 @@ -1973.466334820616, 4715.5399132023895 ], - "linkIds": [ - 13931 - ] + "linkIds": [] + }, + { + "id": 5065, + "pos": [ + -2316.3110786423526, + 4776.157499629707 + ], + "linkIds": [] + }, + { + "id": 5066, + "parentId": 5065, + "pos": [ + -1957.829647684132, + 4770.967542224707 + ], + "linkIds": [] + }, + { + "id": 5067, + "pos": [ + -2305.4632439636885, + 4748.194848205896 + ], + "linkIds": [] + }, + { + "id": 5068, + "parentId": 5067, + "pos": [ + -1974.5273617968437, + 4751.531705354591 + ], + "linkIds": [] } ], "extra": {} @@ -3700,9 +3591,9 @@ "version": 1, "state": { "lastGroupId": 158, - "lastNodeId": 9104, - "lastLinkId": 13949, - "lastRerouteId": 5060 + "lastNodeId": 9117, + "lastLinkId": 13991, + "lastRerouteId": 5072 }, "revision": 0, "config": {}, @@ -3710,17 +3601,17 @@ "inputNode": { "id": -10, "bounding": [ - -2900, - 3462, + -3359.58496488856, + 3789.604868494878, 184.962890625, - 292 + 248 ] }, "outputNode": { "id": -20, "bounding": [ - -1148.3621728846233, - 3556, + -1179.8391326857434, + 3786.3452551122286, 128, 108 ] @@ -3734,8 +3625,8 @@ 13936 ], "pos": [ - -2739.037109375, - 3486 + -3198.62207426356, + 3813.604868494878 ] }, { @@ -3746,8 +3637,8 @@ 13937 ], "pos": [ - -2739.037109375, - 3506 + -3198.62207426356, + 3833.604868494878 ] }, { @@ -3759,8 +3650,8 @@ 13939 ], "pos": [ - -2739.037109375, - 3526 + -3198.62207426356, + 3853.604868494878 ] }, { @@ -3771,8 +3662,8 @@ 42 ], "pos": [ - -2739.037109375, - 3546 + -3198.62207426356, + 3873.604868494878 ] }, { @@ -3783,8 +3674,8 @@ 13940 ], "pos": [ - -2739.037109375, - 3566 + -3198.62207426356, + 3893.604868494878 ] }, { @@ -3795,8 +3686,8 @@ 13941 ], "pos": [ - -2739.037109375, - 3586 + -3198.62207426356, + 3913.604868494878 ] }, { @@ -3807,8 +3698,8 @@ 17 ], "pos": [ - -2739.037109375, - 3606 + -3198.62207426356, + 3933.604868494878 ] }, { @@ -3819,8 +3710,8 @@ 13942 ], "pos": [ - -2739.037109375, - 3626 + -3198.62207426356, + 3953.604868494878 ] }, { @@ -3832,8 +3723,8 @@ 40 ], "pos": [ - -2739.037109375, - 3646 + -3198.62207426356, + 3973.604868494878 ] }, { @@ -3841,34 +3732,12 @@ "name": "fps", "type": "FLOAT", "linkIds": [ - 13943, - 41 + 41, + 13978 ], "pos": [ - -2739.037109375, - 3666 - ] - }, - { - "id": "a37f5b28-9c14-4e60-b8d3-71f2a64c8e59", - "name": "audio", - "type": "AUDIO", - "linkIds": [], - "label": "audio", - "pos": [ - -2739.037109375, - 3686 - ] - }, - { - "id": "d866ca78-1cc6-4cb4-abcd-b9f561ac346f", - "name": "conditioning_fps", - "type": "FLOAT", - "linkIds": [], - "localized_name": "conditioning_fps", - "pos": [ - -2739.037109375, - 3706 + -3198.62207426356, + 3993.604868494878 ] } ], @@ -3881,8 +3750,8 @@ 23 ], "pos": [ - -1124.3621728846233, - 3580 + -1155.8391326857434, + 3810.3452551122286 ] }, { @@ -3893,8 +3762,8 @@ 24 ], "pos": [ - -1124.3621728846233, - 3600 + -1155.8391326857434, + 3830.3452551122286 ] }, { @@ -3905,8 +3774,8 @@ 25 ], "pos": [ - -1124.3621728846233, - 3620 + -1155.8391326857434, + 3850.3452551122286 ] } ], @@ -3916,8 +3785,8 @@ "id": 4528, "type": "LTXVConcatAVLatent", "pos": [ - -1439.6703760096234, - 3608 + -1471.3058180693045, + 3862.753199523075 ], "size": [ 225, @@ -3960,8 +3829,8 @@ "id": 3059, "type": "EmptyLTXVLatentVideo", "pos": [ - -2610, - 3550 + -2592.63019067551, + 4109.449331223939 ], "size": [ 270.171875, @@ -4031,8 +3900,8 @@ "id": 5012, "type": "LTXAddVideoICLoRAGuide", "pos": [ - -1846.5567041346235, - 3490 + -1855.4493778817214, + 3718.157228015776 ], "size": [ 316.875, @@ -4138,8 +4007,8 @@ "id": 9005, "type": "LTXVConditioning", "pos": [ - -2610, - 3396 + -2210.2658869382194, + 3732.6450763503344 ], "size": [ 270.171875, @@ -4168,7 +4037,7 @@ "widget": { "name": "frame_rate" }, - "link": 13943 + "link": 13979 } ], "outputs": [ @@ -4207,8 +4076,8 @@ "id": 9100, "type": "EmptyImage", "pos": [ - -2599.243249997725, - 3198.683614328814 + -2511.00070702207, + 3872.577489459077 ], "size": [ 225, @@ -4249,8 +4118,8 @@ "id": 3159, "type": "LTXVImgToVideoInplace", "pos": [ - -2238.3549841788617, - 3551.092128544148 + -2253.616431222709, + 3886.804615394926 ], "size": [ 313.25, @@ -4305,8 +4174,8 @@ "id": 9009, "type": "LTXVEmptyLatentAudio", "pos": [ - -1894.7995640893162, - 3273.2459920448396 + -2876.8652435217805, + 3875.8259198468672 ], "size": [ 327.9458984375, @@ -4365,6 +4234,72 @@ "frame_rate": 25, "batch_size": 1 } + }, + { + "id": 9114, + "type": "ComfyMathExpression", + "pos": [ + -2661.127978089695, + 3598.7783847170876 + ], + "size": [ + 347.4057027275571, + 128 + ], + "flags": { + "collapsed": false + }, + "order": 7, + "mode": 0, + "inputs": [ + { + "label": "a", + "localized_name": "a", + "name": "values.a", + "type": "FLOAT,INT,BOOLEAN", + "link": 13978 + }, + { + "localized_name": "b", + "name": "values.b", + "shape": 7, + "type": "FLOAT,INT,BOOLEAN", + "link": null + } + ], + "outputs": [ + { + "localized_name": "FLOAT", + "name": "FLOAT", + "type": "FLOAT", + "links": [ + 13979 + ] + }, + { + "localized_name": "INT", + "name": "INT", + "type": "INT", + "links": [] + }, + { + "localized_name": "BOOL", + "name": "BOOL", + "type": "BOOLEAN", + "links": [] + } + ], + "title": "Conditioning FPS (≤30 keep, >30 → 30)", + "properties": { + "Node name for S&R": "ComfyMathExpression", + "cnr_id": "comfy-core" + }, + "widgets_values": [ + "a if a <= 30 else 30" + ], + "widgets_values_named": { + "expression": "a if a <= 30 else 30" + } } ], "groups": [], @@ -4391,8 +4326,7 @@ "origin_slot": 0, "target_id": 5012, "target_slot": 0, - "type": "CONDITIONING", - "parentId": 3040 + "type": "CONDITIONING" }, { "id": 5, @@ -4400,8 +4334,7 @@ "origin_slot": 1, "target_id": 5012, "target_slot": 1, - "type": "CONDITIONING", - "parentId": 3042 + "type": "CONDITIONING" }, { "id": 6, @@ -4478,22 +4411,13 @@ "target_slot": 2, "type": "INT" }, - { - "id": 13943, - "origin_id": -10, - "origin_slot": 11, - "target_id": 9005, - "target_slot": 2, - "type": "FLOAT" - }, { "id": 23, "origin_id": 5012, "origin_slot": 0, "target_id": -20, "target_slot": 0, - "type": "CONDITIONING", - "parentId": 3048 + "type": "CONDITIONING" }, { "id": 24, @@ -4501,8 +4425,7 @@ "origin_slot": 1, "target_id": -20, "target_slot": 1, - "type": "CONDITIONING", - "parentId": 3050 + "type": "CONDITIONING" }, { "id": 25, @@ -4542,7 +4465,8 @@ "origin_slot": 0, "target_id": 4528, "target_slot": 1, - "type": "LATENT" + "type": "LATENT", + "parentId": 5072 }, { "id": 50, @@ -4560,14 +4484,30 @@ "target_slot": 5, "type": "FLOAT", "parentId": 3034 + }, + { + "id": 13979, + "origin_id": 9114, + "origin_slot": 0, + "target_id": 9005, + "target_slot": 2, + "type": "FLOAT" + }, + { + "id": 13978, + "origin_id": -10, + "origin_slot": 9, + "target_id": 9114, + "target_slot": 0, + "type": "FLOAT,INT,BOOLEAN" } ], "reroutes": [ { "id": 3030, "pos": [ - -2680, - 3503 + -2635.6602967654176, + 4378.697896564726 ], "linkIds": [ 13938, @@ -4578,8 +4518,8 @@ "id": 3031, "parentId": 3030, "pos": [ - -2297.8190088221236, - 3503 + -2307.2063445728536, + 4381.806397564816 ], "linkIds": [ 13938, @@ -4590,8 +4530,8 @@ "id": 3032, "parentId": 3031, "pos": [ - -1886.5567041346235, - 3503 + -1964.4884543430726, + 4374.819296763526 ], "linkIds": [ 13939 @@ -4600,8 +4540,8 @@ { "id": 3033, "pos": [ - -2664.3515343818844, - 3785.2012117606214 + -2609.3091441596443, + 4314.663811579139 ], "linkIds": [ 13940 @@ -4611,8 +4551,8 @@ "id": 3034, "parentId": 3033, "pos": [ - -1899.3067725637343, - 3791.7034107525083 + -1923.1854565572055, + 4306.343013939485 ], "linkIds": [ 13940 @@ -4621,8 +4561,8 @@ { "id": 3035, "pos": [ - -2644.4370503845903, - 3808.2833755209654 + -2625.4656160454065, + 4341.972275757017 ], "linkIds": [ 13941 @@ -4632,95 +4572,32 @@ "id": 3036, "parentId": 3035, "pos": [ - -1922.1772378001456, - 3814.9439306506642 + -1946.7192907505691, + 4339.057432213971 ], "linkIds": [ 13941 ] }, { - "id": 3039, + "id": 5071, "pos": [ - -2296.863027583008, - 3725.556733865249 + -2517.2158368898768, + 4041.335015368585 ], "linkIds": [ - 13935 + 43 ] }, { - "id": 3040, - "parentId": 3039, + "id": 5072, + "parentId": 5071, "pos": [ - -1912.6038894689161, - 3716.5256353392465 + -1535.4788160222292, + 4067.9834078961626 ], "linkIds": [ - 13935 - ] - }, - { - "id": 3041, - "pos": [ - -2315.0948982594327, - 3751.480150374682 - ], - "linkIds": [ - 5 - ] - }, - { - "id": 3042, - "parentId": 3041, - "pos": [ - -1914.5761431852754, - 3749.0712176116367 - ], - "linkIds": [ - 5 - ] - }, - { - "id": 3047, - "pos": [ - -1489.6703760096234, - 3682 - ], - "linkIds": [ - 23 - ] - }, - { - "id": 3048, - "parentId": 3047, - "pos": [ - -1188.3621728846233, - 3682 - ], - "linkIds": [ - 23 - ] - }, - { - "id": 3049, - "pos": [ - -1489.6703760096234, - 3719 - ], - "linkIds": [ - 24 - ] - }, - { - "id": 3050, - "parentId": 3049, - "pos": [ - -1188.3621728846233, - 3719 - ], - "linkIds": [ - 24 + 43 ] } ], @@ -4730,7 +4607,7 @@ }, "config": {}, "extra": { - "frontendVersion": "1.53.6", + "frontendVersion": "1.55.14", "VHS_latentpreview": false, "VHS_latentpreviewrate": 0, "VHS_MetadataImage": true, @@ -4747,8 +4624,8 @@ { "id": 5004, "pos": [ - -3421.6935989200983, - 3738.4590672573977 + -3234.647340763041, + 3420.7912595040543 ], "linkIds": [ 13763 @@ -4758,8 +4635,8 @@ "id": 5005, "parentId": 5004, "pos": [ - -2390.8850552530375, - 3732.7977015761903 + -2370.0748242537925, + 3422.484924223758 ], "linkIds": [ 13763 @@ -4768,8 +4645,8 @@ { "id": 5007, "pos": [ - -3446.7555464281195, - 3766.8593871062394 + -3262.118444446695, + 3498.8796240033826 ], "linkIds": [ 13653 @@ -4779,8 +4656,8 @@ "id": 5008, "parentId": 5007, "pos": [ - -1830.4743970853895, - 3767.8292502255026 + -1882.2031318647093, + 3502.588800896482 ], "linkIds": [ 13653 @@ -4789,8 +4666,8 @@ { "id": 5009, "pos": [ - -3404.9919166956042, - 3711.9263010123914 + -3221.977330119098, + 3392.1750783457933 ], "linkIds": [ 13766 @@ -4800,8 +4677,8 @@ "id": 5010, "parentId": 5009, "pos": [ - -2364.399582163732, - 3694.812355987085 + -2373.7429143736726, + 3397.8406550209843 ], "linkIds": [ 13766 @@ -4810,11 +4687,10 @@ { "id": 5048, "pos": [ - -2285.250963736707, - 3603.9475426763925 + -2282.1900728645055, + 3476.2460263486873 ], "linkIds": [ - 13810, 13923 ] }, @@ -4822,109 +4698,139 @@ "id": 5049, "parentId": 5048, "pos": [ - -362.7384020588817, - 3615.581606374166 + -1050.9942554173695, + 3481.6842706146854 ], "linkIds": [ - 13810, 13923 ] }, - { - "id": 5050, - "pos": [ - -2317.4841823824813, - 3634.6654883964425 - ], - "linkIds": [ - 13802, - 13922 - ] - }, - { - "id": 5051, - "parentId": 5050, - "pos": [ - -1293.40846753903, - 3637.4529130930746 - ], - "linkIds": [ - 13922 - ] - }, { "id": 5053, "pos": [ - -3380.156071482709, - 3681.291699728875 + -3277.9067782206034, + 3520.7008495729933 ], "linkIds": [ - 13801 + 13972, + 13973 ] }, { "id": 5054, "pos": [ - -2269.0288250032554, - 3580.002396248507 + -2265.967934131054, + 3452.300879920802 ], "linkIds": [ - 13805, - 13924 + 13805 ] }, { "id": 5055, "parentId": 5054, "pos": [ - -385.97515202160116, - 3593.7829243044357 + -1062.1655744129812, + 3452.9485571159526 ], "linkIds": [ - 13805, - 13924 - ] - }, - { - "id": 5057, - "pos": [ - -2814.8397964216706, - 3580.782679105816 - ], - "linkIds": [ - 13901, - 13925 + 13805 ] }, { "id": 5058, - "parentId": 5057, + "parentId": 5070, "pos": [ - -2366.0588483264405, - 3580.960590402162 + -2381.9677337738226, + 3370.020102540913 ], "linkIds": [ - 13901, - 13925 + 13982, + 13983 ] }, { "id": 5060, "parentId": 5053, "pos": [ - -2825.7696150631214, - 3682.929264197456 + -2318.2220826230823, + 3525.1021948200973 ], "linkIds": [ - 13801 + 13972, + 13973 + ] + }, + { + "id": 5061, + "pos": [ + -2250.8815764028127, + 3430.115064746368 + ], + "linkIds": [ + 13955 + ] + }, + { + "id": 5062, + "parentId": 5061, + "pos": [ + -1452.558641659438, + 3435.925621940366 + ], + "linkIds": [ + 13955 + ] + }, + { + "id": 5063, + "pos": [ + -2238.299731417955, + 3409.6606196910966 + ], + "linkIds": [ + 13954 + ] + }, + { + "id": 5064, + "parentId": 5063, + "pos": [ + -1463.3004396873512, + 3408.2705871384696 + ], + "linkIds": [ + 13954 + ] + }, + { + "id": 5069, + "parentId": 5060, + "pos": [ + -1477.286361288666, + 3519.616037149485 + ], + "linkIds": [ + 13973 + ] + }, + { + "id": 5070, + "pos": [ + -3207.605375172764, + 3367.8425812222695 + ], + "linkIds": [ + 13982, + 13983 ] } ], "ds": { - "scale": 0.7424620970940294, + "scale": 0.6260980825429926, "offset": [ - 1418.4964709195483, - -2415.233699923728 + 3915.257601168939, + -2280.5772655002725 ] }, "linkExtensions": [ @@ -4932,30 +4838,6 @@ "id": 13653, "parentId": 5008 }, - { - "id": 13763, - "parentId": 5005 - }, - { - "id": 13766, - "parentId": 5010 - }, - { - "id": 13801, - "parentId": 5060 - }, - { - "id": 13802, - "parentId": 5050 - }, - { - "id": 13810, - "parentId": 5049 - }, - { - "id": 13901, - "parentId": 5058 - }, { "id": 13923, "parentId": 5049 @@ -4965,16 +4847,36 @@ "parentId": 5055 }, { - "id": 13924, - "parentId": 5055 + "id": 13973, + "parentId": 5069 }, { - "id": 13925, + "id": 13954, + "parentId": 5064 + }, + { + "id": 13955, + "parentId": 5062 + }, + { + "id": 13982, "parentId": 5058 }, { - "id": 13922, - "parentId": 5051 + "id": 13983, + "parentId": 5058 + }, + { + "id": 13972, + "parentId": 5060 + }, + { + "id": 13763, + "parentId": 5005 + }, + { + "id": 13766, + "parentId": 5010 } ] }, diff --git a/example_workflows/2.5/HDR_workflows/LTX-2.5_V2V_TiledFusion_HDR_to_HDR.json b/example_workflows/2.5/HDR_workflows/LTX-2.5_V2V_TiledFusion_HDR_to_HDR.json index 4134022..8bb2836 100644 --- a/example_workflows/2.5/HDR_workflows/LTX-2.5_V2V_TiledFusion_HDR_to_HDR.json +++ b/example_workflows/2.5/HDR_workflows/LTX-2.5_V2V_TiledFusion_HDR_to_HDR.json @@ -1,8 +1,8 @@ { "id": "ltx-2.5-v2v-tiledfusion-hdr-to-hdr", "revision": 0, - "last_node_id": 9310, - "last_link_id": 13941, + "last_node_id": 9328, + "last_link_id": 14044, "nodes": [ { "id": 5509, @@ -37,6 +37,9 @@ "widgets_values": [ "" ], + "widgets_values_named": { + "value": "" + }, "color": "#322", "bgcolor": "#533" }, @@ -45,11 +48,11 @@ "type": "MarkdownNote", "pos": [ -807.1999999999998, - 2840.0 + 2829 ], "size": [ 406.8, - 300.0 + 311 ], "flags": { "collapsed": false @@ -61,8 +64,11 @@ "title": "Decode", "properties": {}, "widgets_values": [ - "## Decode\n\nMake 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).\n\n### Recommended settings\n\n| node settings (pixels) | resolved latent geometry |\n| ------------------------------------------ | ------------------------------- |\n| `512 / 64 / 128 / 32` | 16x16, ov 2 - 16f ov 4 |\n| `768 / 192 / 128 / 32` | 24x24, ov 6 - 16f ov 4 |\n| `1024 / 256 / 128 / 48` | 32x32, ov 8 - 16f, ov 6 |\n| `1536 / 384 / 192 / 48` | 48x48, ov 12 - 24f, ov 6 |\n| `768 / 192 / spatial-only` | 24x24, ov 6 - no temporal split |\n" + "## Decode\n\nMake 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).\n\n### Recommended settings\n\n| node settings (pixels) | resolved latent geometry |\n| ------------------------------------------ | ------------------------------- |\n| `512 / 64 / 128 / 32` | 16x16, ov 2 - 16f ov 4 |\n| `768 / 192 / 128 / 32` | 24x24, ov 6 - 16f ov 4 |\n| `1024 / 256 / 128 / 48` | 32x32, ov 8 - 16f, ov 6 |\n| `1536 / 384 / 192 / 48` | 48x48, ov 12 - 24f, ov 6 |\n| `768 / 192 / spatial-only` | 24x24, ov 6 - no temporal split |\n\n**Convert Image Color Space** ACEScct → `HDR` (Rec.2020 HLG) feeds the video; the ACEScct image goes to the EXR save.\n" ], + "widgets_values_named": { + "text": "## Decode\n\nMake 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).\n\n### Recommended settings\n\n| node settings (pixels) | resolved latent geometry |\n| ------------------------------------------ | ------------------------------- |\n| `512 / 64 / 128 / 32` | 16x16, ov 2 - 16f ov 4 |\n| `768 / 192 / 128 / 32` | 24x24, ov 6 - 16f ov 4 |\n| `1024 / 256 / 128 / 48` | 32x32, ov 8 - 16f, ov 6 |\n| `1536 / 384 / 192 / 48` | 48x48, ov 12 - 24f, ov 6 |\n| `768 / 192 / spatial-only` | 24x24, ov 6 - no temporal split |\n\n**Convert Image Color Space** ACEScct → `HDR` (Rec.2020 HLG) feeds the video; the ACEScct image goes to the EXR save.\n" + }, "color": "#432", "bgcolor": "#653" }, @@ -70,12 +76,12 @@ "id": 5532, "type": "MarkdownNote", "pos": [ - -320.3999999999998, - 3052.0 + -313.6826123006003, + 2979.015578487224 ], "size": [ - 523.0, - 88.0 + 523, + 123 ], "flags": { "collapsed": false @@ -87,8 +93,11 @@ "title": "Save video", "properties": {}, "widgets_values": [ - "## Save HDR\n\n1. **LTXVHDRDecodePostprocess** (`transfer=acescct`) \u2014 EXR + `hdr_linear`.\n2. **LTXVSaveHLG** \u2014 BT.2020/HLG 10-bit master.\n3. Preview: tonemapped frames muxed by Decode \u2192 SaveVideo.\n" + "## Save HDR\n\n1. **Save EXR (ACEScg)** — `LTXVHDRDecodePostprocess` with `save_exr` on and `exr_color_space` = `acescg`; writes the ACEScg EXR sequence to `output/hdr_exr`. Its image outputs are not used.\n2. **HLG video**: Create Video (`HDR`, generated audio) → Save Video (10-bit; auto = H.264, AV1 also available). Core HLG uses 1.0 = 203 nits and clips above 1000 nits.\n" ], + "widgets_values_named": { + "text": "## Save HDR\n\n1. **Save EXR (ACEScg)** — `LTXVHDRDecodePostprocess` with `save_exr` on and `exr_color_space` = `acescg`; writes the ACEScg EXR sequence to `output/hdr_exr`. Its image outputs are not used.\n2. **HLG video**: Create Video (`HDR`, generated audio) → Save Video (10-bit; auto = H.264, AV1 also available). Core HLG uses 1.0 = 203 nits and clips above 1000 nits.\n" + }, "color": "#432", "bgcolor": "#653" }, @@ -97,11 +106,11 @@ "type": "MarkdownNote", "pos": [ -3592.6, - 2784.0 + 2784 ], "size": [ 863.7999999999997, - 356.0 + 356 ], "flags": { "collapsed": false @@ -113,8 +122,11 @@ "title": "Inputs", "properties": {}, "widgets_values": [ - "## Inputs (native HDR \u2192 HDR)\n\nLoad an **EXR still** (`Load EXR still`). Set **fps** and **duration**; Source HDR repeats the plate to `1 + floor(fps \u00d7 duration / 8) \u00d7 8` frames.\n\nThis is **not** the SDR\u2192HDR IC-LoRA upgrade. Frames stay in ACEScct; the video VAE is forced to float32 (`VAE float32`); `img_compression` is 0. The example IC-LoRA is the **detail refiner** (`ltx25_general_refine.safetensors`).\n\nSize combos (`tile_size`, `initial_canvas_size`, `output_size`) are widgets on **Preprocess**.\n\n### Stage 1 prompt\n\nDescribe the **change** you want on the HDR plate.\n\nThe negative prompt is used as written. Enable **Enhance positive prompt** or paste an **LTX API key** to encode through the API.\n\n### Stage 2 prompt\n\nThis pass uses spatial tiling. Describe **look and style** only: lighting, palette, film stock, sharpness, grade. Do **not** name specific objects, people, or props \u2014 anything you name can stamp into every spatial tile after upscale.\n" + "## Inputs (native HDR → HDR)\n\nLoad an **EXR still** (`Load EXR still`). Set **fps** and **duration**; Source HDR repeats the plate to `1 + floor(fps × duration / 8) × 8` frames.\n\nThis is **not** the SDR→HDR IC-LoRA upgrade. Frames stay in ACEScct; the video VAE is forced to float32 inside **Load Models** (`VAE float32`); `img_compression` is 0. The example IC-LoRA is the **detail refiner** (`ltx25_general_refine.safetensors`).\n\nSize combos (`tile_size`, `initial_canvas_size`, `output_size`) are widgets on **Preprocess**.\n\n### Stage 1 prompt\n\nDescribe the **change** you want on the HDR plate.\n\nThe negative prompt is used as written. Enable **Enhance positive prompt** or paste an **LTX API key** to encode through the API.\n\n### Stage 2 prompt\n\nThis pass uses spatial tiling. Describe **look and style** only: lighting, palette, film stock, sharpness, grade. Do **not** name specific objects, people, or props — anything you name can stamp into every spatial tile after upscale.\n" ], + "widgets_values_named": { + "text": "## Inputs (native HDR → HDR)\n\nLoad an **EXR still** (`Load EXR still`). Set **fps** and **duration**; Source HDR repeats the plate to `1 + floor(fps × duration / 8) × 8` frames.\n\nThis is **not** the SDR→HDR IC-LoRA upgrade. Frames stay in ACEScct; the video VAE is forced to float32 inside **Load Models** (`VAE float32`); `img_compression` is 0. The example IC-LoRA is the **detail refiner** (`ltx25_general_refine.safetensors`).\n\nSize combos (`tile_size`, `initial_canvas_size`, `output_size`) are widgets on **Preprocess**.\n\n### Stage 1 prompt\n\nDescribe the **change** you want on the HDR plate.\n\nThe negative prompt is used as written. Enable **Enhance positive prompt** or paste an **LTX API key** to encode through the API.\n\n### Stage 2 prompt\n\nThis pass uses spatial tiling. Describe **look and style** only: lighting, palette, film stock, sharpness, grade. Do **not** name specific objects, people, or props — anything you name can stamp into every spatial tile after upscale.\n" + }, "color": "#432", "bgcolor": "#653" }, @@ -122,15 +134,15 @@ "id": 5544, "type": "PreviewAny", "pos": [ - -3134.8, - 4198.0 + -3142.946435983197, + 4073.3624012911496 ], "size": [ - 380.0, + 380, 152.8261854221696 ], "flags": {}, - "order": 13, + "order": 18, "mode": 0, "inputs": [ { @@ -151,6 +163,7 @@ "Node name for S&R": "PreviewAny" }, "widgets_values": [], + "widgets_values_named": {}, "color": "#232", "bgcolor": "#353" }, @@ -159,11 +172,11 @@ "type": "MarkdownNote", "pos": [ -4275.5, - 2635.0 + 2635 ], "size": [ 575.5, - 505.0 + 505 ], "flags": { "collapsed": false @@ -175,8 +188,11 @@ "title": "Model Links", "properties": {}, "widgets_values": [ - "## Model Links\n\n**LTX-2.5 Model Weights**\n\nMake sure to click the \"Agree and Access\" button the first time you download.\n\n- [ Distilled model - ltx-2.5-22b-distilled-transformer-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/diffusion_models/ltx-2.5-22b-distilled-transformer-bf16.safetensors)\n\n- [ Audio VAE - ltx-2.5-audio-vae-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/vae/ltx-2.5-audio-vae-bf16.safetensors)\n\n- Video VAE \u2014 `ltx-2.5-video-vae-bf16.safetensors`\n\n- [ Text encoder - gemma4-12b-with-proj-ltx-2.5-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/text_encoders/gemma4-12b-with-proj-ltx-2.5-bf16.safetensors)\n\nSame two-stage tiled ladder as Dynamic / SDR\u2192HDR, but native HDR I/O (EXR still \u2192 ACEScct, float32 VAE) and the **detail refiner** (`ltx25_general_refine.safetensors`) instead of the HDR IC-LoRA. After decode: tonemapped preview, optional EXR, HLG.\n\nPut LoRAs in `ComfyUI/models/loras/`.\n" + "## Model Links\n\n**LTX-2.5 Model Weights**\n\nMake sure to click the \"Agree and Access\" button the first time you download.\n\n- [ Distilled model - ltx-2.5-22b-distilled-transformer-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/diffusion_models/ltx-2.5-22b-distilled-transformer-bf16.safetensors)\n\n- [ Audio VAE - ltx-2.5-audio-vae-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/vae/ltx-2.5-audio-vae-bf16.safetensors)\n\n- Video VAE — `ltx-2.5-video-vae-bf16.safetensors`\n\n- [ Text encoder - gemma4-12b-with-proj-ltx-2.5-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/text_encoders/gemma4-12b-with-proj-ltx-2.5-bf16.safetensors)\n\nSame two-stage tiled ladder as Dynamic / SDR→HDR, but native HDR I/O (EXR still → ACEScct, float32 VAE) and the **detail refiner** (`ltx25_general_refine.safetensors`) instead of the HDR IC-LoRA. After decode: EXR + HLG.\n\nPut LoRAs in `ComfyUI/models/loras/`.\n" ], + "widgets_values_named": { + "text": "## Model Links\n\n**LTX-2.5 Model Weights**\n\nMake sure to click the \"Agree and Access\" button the first time you download.\n\n- [ Distilled model - ltx-2.5-22b-distilled-transformer-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/diffusion_models/ltx-2.5-22b-distilled-transformer-bf16.safetensors)\n\n- [ Audio VAE - ltx-2.5-audio-vae-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/vae/ltx-2.5-audio-vae-bf16.safetensors)\n\n- Video VAE — `ltx-2.5-video-vae-bf16.safetensors`\n\n- [ Text encoder - gemma4-12b-with-proj-ltx-2.5-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/text_encoders/gemma4-12b-with-proj-ltx-2.5-bf16.safetensors)\n\nSame two-stage tiled ladder as Dynamic / SDR→HDR, but native HDR I/O (EXR still → ACEScct, float32 VAE) and the **detail refiner** (`ltx25_general_refine.safetensors`) instead of the HDR IC-LoRA. After decode: EXR + HLG.\n\nPut LoRAs in `ComfyUI/models/loras/`.\n" + }, "color": "#432", "bgcolor": "#653" }, @@ -185,11 +201,11 @@ "type": "MarkdownNote", "pos": [ -2167.2, - 3006.0 + 3006 ], "size": [ - 320.0, - 134.0 + 320, + 134 ], "flags": { "collapsed": false @@ -201,8 +217,11 @@ "title": "Generate - stage 1", "properties": {}, "widgets_values": [ - "## Generate \u2014 stage 1\n\n**Tiled Fusion Sampler**, 8 distilled steps with the refine IC-LoRA. Tile equals the FullHD canvas when `tile_size` matches. `SAMPLER` is euler. Sigmas must end at 0.\n" + "## Generate — stage 1\n\n**Tiled Fusion Sampler**, 8 distilled steps with the refine IC-LoRA. Tile equals the FullHD canvas when `tile_size` matches. `SAMPLER` is euler. Sigmas must end at 0.\n" ], + "widgets_values_named": { + "text": "## Generate — stage 1\n\n**Tiled Fusion Sampler**, 8 distilled steps with the refine IC-LoRA. Tile equals the FullHD canvas when `tile_size` matches. `SAMPLER` is euler. Sigmas must end at 0.\n" + }, "color": "#432", "bgcolor": "#653" }, @@ -210,121 +229,135 @@ "id": 5516, "type": "f9337bd7-ca7a-4a59-99f1-65b664bed7e7", "pos": [ - -2167.2, - 3230.0 + -2171.744414886537, + 3238.4836282661877 ], "size": [ - 320.0, - 513.0 + 321.72374357765216, + 306.7559721886155 ], "flags": {}, - "order": 15, + "order": 20, "mode": 0, "inputs": [ { + "label": "model", "name": "model", "type": "MODEL", - "link": 13653, - "label": "model" + "link": 13653 }, { + "label": "positive", "name": "positive", "type": "CONDITIONING", - "link": 13878, - "label": "positive" + "link": 13878 }, { + "label": "negative", "name": "negative", "type": "CONDITIONING", - "link": 13879, - "label": "negative" + "link": 13879 }, { + "label": "latent_image", "name": "latent_image", "type": "LATENT", - "link": 13880, - "label": "latent_image" + "link": 13880 }, { + "label": "noise seed", "name": "noise_seed", "type": "INT", - "link": null, - "label": "noise seed", "widget": { "name": "noise_seed" - } + }, + "link": null }, { + "label": "guider cfg", "name": "cfg", "type": "FLOAT", - "link": null, - "label": "guider cfg", "widget": { "name": "cfg" - } + }, + "link": null }, { + "label": "sampler_name", "name": "sampler_name", "type": "COMBO", - "link": null, - "label": "sampler_name", "widget": { "name": "sampler_name" - } + }, + "link": null }, { + "label": "tile_width", "name": "tile_width", "type": "INT", - "link": 13882, - "label": "tile_width" + "widget": { + "name": "tile_width" + }, + "link": 13882 }, { + "label": "tile_height", "name": "tile_height", "type": "INT", - "link": 13883, - "label": "tile_height" + "widget": { + "name": "tile_height" + }, + "link": 13883 }, { + "label": "overlap_frac", "name": "overlap_frac", "type": "FLOAT", - "link": 13884, - "label": "overlap_frac" + "widget": { + "name": "overlap_frac" + }, + "link": 13884 }, { + "label": "tile_frames", "name": "tile_frames", "type": "INT", - "link": 13885, - "label": "tile_frames" + "widget": { + "name": "tile_frames" + }, + "link": 13885 }, { + "label": "vae", "name": "vae", + "shape": 7, "type": "VAE", - "link": 13811, - "label": "vae" + "link": 13945 }, { + "label": "audio_latent", "name": "audio_latent", "type": "LATENT", - "link": 13881, - "label": "audio_latent" + "link": 13881 } ], "outputs": [ { + "label": "video_latent", "name": "video_latent", "type": "LATENT", "links": [ 13919 - ], - "label": "video_latent" + ] }, { + "label": "audio_latent", "name": "audio_latent", "type": "LATENT", - "links": null, - "label": "audio_latent" + "links": null } ], + "title": "Tiled Fusion (8 steps)", "properties": { "cnr_id": "comfy-core", "ver": "0.25.0", @@ -332,48 +365,22 @@ }, "widgets_values": [ 42, - 1.0, - "euler" + 1, + "euler", + 1024, + 576, + 0.5, + 97 ], - "title": "Tiled Fusion (8 steps)" - }, - { - "id": 4852, - "type": "SaveVideo", - "pos": [ - -320.3999999999998, - 3230.0 - ], - "size": [ - 523.0, - 106.0 - ], - "flags": {}, - "order": 17, - "mode": 0, - "inputs": [ - { - "name": "video", - "type": "VIDEO", - "link": 13675 - } - ], - "outputs": [ - { - "name": "video", - "type": "VIDEO", - "links": null - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.14.1" - }, - "widgets_values": [ - "hdr2hdr/preview", - "auto", - "auto" - ] + "widgets_values_named": { + "noise_seed": 42, + "cfg": 1, + "sampler_name": "euler", + "tile_width": 1024, + "tile_height": 576, + "overlap_frac": 0.5, + "tile_frames": 97 + } }, { "id": 5001, @@ -424,6 +431,7 @@ "links": [] } ], + "title": "Load EXR still (native HDR → ACEScct)", "properties": { "Node name for S&R": "LTXVLoadEXRSequence", "cnr_id": "comfyui-ltxvideo" @@ -436,16 +444,23 @@ 0, true ], + "widgets_values_named": { + "path": "", + "color_space": "srgb_linear", + "frame_rate": 24, + "frame_start": 0, + "frame_cap": 0, + "trim_to_8k1": true + }, "color": "#232", - "bgcolor": "#353", - "title": "Load EXR still (native HDR \u2192 ACEScct)" + "bgcolor": "#353" }, { "id": 5508, "type": "PrimitiveStringMultiline", "pos": [ -3566.6, - 3230.0 + 3230 ], "size": [ 343.6, @@ -473,6 +488,9 @@ "widgets_values": [ "" ], + "widgets_values_named": { + "value": "" + }, "color": "#232", "bgcolor": "#353" }, @@ -481,117 +499,108 @@ "type": "c28230e9-b195-4ec2-9679-39e1e920f733", "pos": [ -3134.8, - 3456.0 + 3456 ], "size": [ - 380.0, - 560.0 + 380, + 560 ], "flags": {}, - "order": 12, + "order": 16, "mode": 0, "inputs": [ { + "label": "text encoder clip", "name": "clip", "type": "CLIP", - "link": 13862, - "label": "text encoder clip" + "link": 13862 }, { + "label": "text enhancer clip", "name": "clip_1", "type": "CLIP", - "link": 13863, - "label": "text enhancer clip" + "link": 13863 }, { + "label": "Positive prompt", "name": "value_2", "type": "STRING", - "link": 13864, - "label": "Positive prompt", "widget": { "name": "value_2" - } + }, + "link": 13864 }, { + "label": "Enhance positive prompt", "name": "cond", "type": "BOOLEAN", - "link": null, - "label": "Enhance positive prompt", "widget": { "name": "cond" - } + }, + "link": null }, { + "label": "Negative prompt", "name": "text", "type": "STRING", - "link": 13865, - "label": "Negative prompt", "widget": { "name": "text" - } + }, + "link": 13865 }, { + "label": "enhancer_seed", "name": "seed", "type": "INT", - "link": null, - "label": "enhancer_seed", "widget": { "name": "seed" - } + }, + "link": null }, { + "label": "LTX API key", "name": "value_4", "type": "STRING", - "link": null, - "label": "LTX API key", "widget": { "name": "value_4" - } + }, + "link": null }, { + "label": "ltx model ckpt path", "name": "ckpt_name", "type": "COMBO", - "link": 13866, - "label": "ltx model ckpt path", "widget": { "name": "ckpt_name" - } - }, - { - "name": "value", - "type": "FLOAT", - "link": 13867, - "label": "fps", - "widget": { - "name": "value" - } + }, + "link": 13866 } ], "outputs": [ { + "label": "effective_prompt", "name": "effective_prompt", "type": "STRING", "links": [ 13868 - ], - "label": "effective_prompt" + ] }, { + "label": "positive_encoded", "name": "positive_encoded", "type": "CONDITIONING", "links": [ 13869 - ], - "label": "positive_encoded" + ] }, { + "label": "negative_encoded", "name": "negative_encoded", "type": "CONDITIONING", "links": [ 13870, 13911 - ], - "label": "negative_encoded" + ] } ], "properties": { @@ -605,218 +614,224 @@ "", 457289196, "", - "ltx-2.3-22b-dev.safetensors", - 24 - ] + "ltx-2.3-22b-dev.safetensors" + ], + "widgets_values_named": { + "value_2": "", + "cond": false, + "text": "", + "seed": 457289196, + "value_4": "", + "ckpt_name": "ltx-2.3-22b-dev.safetensors" + } }, { "id": 9002, "type": "d92e6f38-7a14-4c85-b3e0-9f52a1d68b74", "pos": [ - -2620.0, - 3230.0 + -2620, + 3230 ], "size": [ - 340.0, - 560.0 + 340, + 560 ], "flags": {}, - "order": 14, + "order": 19, "mode": 0, "inputs": [ { + "label": "positive", "name": "positive", "type": "CONDITIONING", - "link": 13869, - "label": "positive" + "link": 13869 }, { + "label": "negative", "name": "negative", "type": "CONDITIONING", - "link": 13870, - "label": "negative" + "link": 13870 }, { + "label": "vae", "name": "vae", "type": "VAE", - "link": 13871, - "label": "vae" + "link": 13947 }, { + "label": "audio_vae", "name": "audio_vae", "type": "VAE", - "link": 13872, - "label": "audio_vae" + "link": 13872 }, { + "label": "latent_downscale_factor", "name": "latent_downscale_factor", "type": "FLOAT", - "link": 13873, - "label": "latent_downscale_factor", "widget": { "name": "latent_downscale_factor" - } + }, + "link": 13873 }, { + "label": "source_image", "name": "source_image", "type": "IMAGE", - "link": 13874, - "label": "source_image" + "link": 13874 }, { + "label": "length", "name": "length", "type": "INT", - "link": 13875, - "label": "length", "widget": { "name": "length" - } + }, + "link": 13875 }, { + "label": "fps", "name": "fps", "type": "FLOAT", - "link": 13876, - "label": "fps", "widget": { "name": "fps" - } + }, + "link": 13876 }, { + "label": "audio", "name": "audio", "type": "AUDIO", - "link": null, - "label": "audio", - "shape": 7 + "link": null }, { + "label": "tile_size", "name": "tile_size", "type": "COMBO", - "link": null, - "label": "tile_size", "widget": { "name": "tile_size" - } + }, + "link": null }, { + "label": "initial_canvas_size", "name": "initial_canvas_size", "type": "COMBO", - "link": null, - "label": "initial_canvas_size", "widget": { "name": "initial_canvas_size" - } + }, + "link": null }, { + "label": "output_size", "name": "output_size", "type": "COMBO", - "link": null, - "label": "output_size", "widget": { "name": "output_size" - } + }, + "link": null } ], "outputs": [ { + "label": "positive", "name": "positive", "type": "CONDITIONING", "links": [ 13878 - ], - "label": "positive" + ] }, { + "label": "negative", "name": "negative", "type": "CONDITIONING", "links": [ 13879 - ], - "label": "negative" + ] }, { + "label": "latent", "name": "latent", "type": "LATENT", "links": [ 13880 - ], - "label": "latent" + ] }, { + "label": "frozen_audio", "name": "frozen_audio", "type": "LATENT", "links": [ 13881 - ], - "label": "frozen_audio" + ] }, { + "label": "tile_width", "name": "tile_width", "type": "INT", "links": [ 13882, 13904 - ], - "label": "tile_width" + ] }, { + "label": "tile_height", "name": "tile_height", "type": "INT", "links": [ 13883, 13905 - ], - "label": "tile_height" + ] }, { + "label": "overlap_frac", "name": "overlap_frac", "type": "FLOAT", "links": [ 13884, 13906 - ], - "label": "overlap_frac" + ] }, { + "label": "tile_frames", "name": "tile_frames", "type": "INT", "links": [ 13885, 13907, 13918 - ], - "label": "tile_frames" + ] }, { + "label": "output_width", "name": "output_width", "type": "INT", "links": [ 13920 - ], - "label": "output_width" + ] }, { + "label": "output_height", "name": "output_height", "type": "INT", "links": [ 13921 - ], - "label": "output_height" + ] }, { + "label": "is_8k", "name": "is_8k", "type": "BOOLEAN", "links": [ 13923 - ], - "label": "is_8k" + ] }, { + "label": "summary", "name": "summary", "type": "STRING", "links": [ 13908 - ], - "label": "summary" + ] } ], "properties": { @@ -830,18 +845,25 @@ "FullHD", "4K" ], - "title": "Preprocess" + "widgets_values_named": { + "latent_downscale_factor": 1, + "length": 97, + "fps": 24, + "tile_size": "FullHD", + "initial_canvas_size": "FullHD", + "output_size": "4K" + } }, { "id": 9003, "type": "MarkdownNote", "pos": [ - -2620.0, - 2974.0 + -2620, + 2974 ], "size": [ - 340.0, - 166.0 + 340, + 166 ], "flags": {}, "order": 8, @@ -853,6 +875,9 @@ "widgets_values": [ "## Preprocess\n\n**Get Tiling Sizes** and canvas resize live in this subgraph. `tile_size` / `initial_canvas_size` are qHD / HD / FullHD; `output_size` is FullHD / 4K / 8K. Stage 1 guide at the initial canvas. `LTXVPreprocess` uses **img_compression = 0** (JPEG/CRF on ACEScct darkens highlights). `use_streaming` is on; `use_tiled_encode` stays **false**. Audio is an empty latent (native HDR I2V setup), not frozen from a soundtrack.\n" ], + "widgets_values_named": { + "text": "## Preprocess\n\n**Get Tiling Sizes** and canvas resize live in this subgraph. `tile_size` / `initial_canvas_size` are qHD / HD / FullHD; `output_size` is FullHD / 4K / 8K. Stage 1 guide at the initial canvas. `LTXVPreprocess` uses **img_compression = 0** (JPEG/CRF on ACEScct darkens highlights). `use_streaming` is on; `use_tiled_encode` stays **false**. Audio is an empty latent (native HDR I2V setup), not frozen from a soundtrack.\n" + }, "color": "#432", "bgcolor": "#653" }, @@ -861,143 +886,145 @@ "type": "c4a8f261-5b93-4e17-8d2a-6f01b3e97c45", "pos": [ -3134.8, - 3230.0 + 3230 ], "size": [ - 380.0, - 178.0 + 380, + 178 ], "flags": {}, - "order": 11, + "order": 17, "mode": 0, "inputs": [ { + "label": "image", "name": "image", "type": "IMAGE", - "link": 13939, - "label": "image" + "link": 13939 }, { + "label": "fps", "name": "fps", "type": "FLOAT", - "link": 13940, - "label": "fps", - "widget": { - "name": "fps" - } + "link": 13940 }, { - "name": "duration", - "type": "FLOAT", - "link": 13941, "label": "duration", - "widget": { - "name": "duration" - } + "name": "duration", + "shape": 7, + "type": "FLOAT", + "link": 13941 } ], "outputs": [ { + "label": "image", "name": "image", "type": "IMAGE", "links": [ 13874, 13915 - ], - "label": "image" + ] }, { + "label": "width", "name": "width", "type": "INT", - "links": null, - "label": "width" + "links": null }, { + "label": "height", "name": "height", "type": "INT", - "links": null, - "label": "height" + "links": null }, { + "label": "length", "name": "length", "type": "INT", "links": [ 13875, 13938 - ], - "label": "length" + ] }, { + "label": "fps", "name": "fps", "type": "FLOAT", "links": [ - 13772, - 13867, 13876, - 13916 - ], - "label": "fps" + 13916, + 13956 + ] } ], "properties": { "previewExposures": [] - }, - "title": "Source HDR" + } }, { "id": 5518, "type": "6dccac65-c5c2-4f24-8e81-ef9145cb3927", "pos": [ -807.1999999999998, - 3230.0 + 3230 ], "size": [ - 340.0, - 380.0 + 340, + 380 ], "flags": {}, - "order": 16, + "order": 24, "mode": 0, + "showAdvanced": true, "inputs": [ { "name": "vae", "type": "VAE", - "link": 13670 + "link": 13944 }, { + "label": "video_latent", "name": "latents", "type": "LATENT", - "link": 13851, - "label": "video_latent" + "link": 13851 }, { + "label": "audio_latent", "name": "samples", "type": "LATENT", - "link": 13852, - "label": "audio_latent" + "link": 13852 }, { "name": "audio_vae", "type": "VAE", "link": 13673 - }, - { - "name": "fps", - "type": "FLOAT", - "link": 13772, - "widget": { - "name": "fps" - } } ], "outputs": [ { - "name": "VIDEO", - "type": "VIDEO", + "label": "ACEScct_image", + "name": "IMAGE", + "type": "IMAGE", "links": [ - 13675 - ], - "label": "VIDEO" + 13953 + ] + }, + { + "label": "HDR_HLG_image", + "name": "IMAGE_1", + "type": "IMAGE", + "links": [ + 13954 + ] + }, + { + "label": "audio", + "name": "AUDIO", + "type": "AUDIO", + "links": [ + 13955 + ] } ], "properties": { @@ -1009,196 +1036,203 @@ 30, 8, 512, - 64, - 128, - 32 + 64 ], - "showAdvanced": true + "widgets_values_named": { + "tile_size": 30, + "overlap": 8, + "temporal_size": 512, + "temporal_overlap": 64 + } }, { "id": 5004, "type": "b7c1e94a-3f52-4d08-9a61-2e7c5d4f8a13", "pos": [ -4275.5, - 3230.0 + 3230 ], "size": [ 575.5, - 498.0 + 498 ], "flags": { "collapsed": false }, - "order": 10, + "order": 9, "mode": 0, "inputs": [ { + "label": "audio_vae", "name": "audio_vae", "type": "COMBO", - "link": null, - "label": "audio_vae", "widget": { "name": "audio_vae" - } + }, + "link": null }, { + "label": "video_vae", "name": "video_vae", "type": "COMBO", - "link": null, - "label": "video_vae", "widget": { "name": "video_vae" - } + }, + "link": null }, { + "label": "ltx_2.5_model_checkpoint", "name": "ltx_2.5_model_checkpoint", "type": "COMBO", - "link": null, - "label": "ltx_2.5_model_checkpoint", "widget": { "name": "ltx_2.5_model_checkpoint" - } + }, + "link": null }, { + "label": "gemma4_e2b_enhancer", "name": "gemma4_e2b_enhancer", "type": "COMBO", - "link": null, - "label": "gemma4_e2b_enhancer", "widget": { "name": "gemma4_e2b_enhancer" - } + }, + "link": null }, { + "label": "gemma4_12b_encoder", "name": "gemma4_12b_encoder", "type": "COMBO", - "link": null, - "label": "gemma4_12b_encoder", "widget": { "name": "gemma4_12b_encoder" - } + }, + "link": null }, { + "label": "ic_lora", "name": "ic_lora", "type": "COMBO", - "link": null, - "label": "ic_lora", "widget": { "name": "ic_lora" - } + }, + "link": null }, { + "label": "lora strength", "name": "lora strength", "type": "FLOAT", - "link": null, - "label": "lora strength", "widget": { "name": "lora strength" - } + }, + "link": null }, { + "label": "ic_lora_stage2", "name": "ic_lora_stage2", "type": "COMBO", - "link": null, - "label": "ic_lora_stage2", "widget": { "name": "ic_lora_stage2" - } + }, + "link": null }, { + "label": "stage2 lora strength", "name": "stage2 lora strength", "type": "FLOAT", - "link": null, - "label": "stage2 lora strength", "widget": { "name": "stage2 lora strength" - } + }, + "link": null }, { + "label": "spatial_upscaler", "name": "spatial_upscaler", "type": "COMBO", - "link": null, - "label": "spatial_upscaler", "widget": { "name": "spatial_upscaler" - } + }, + "link": null } ], "outputs": [ { + "label": "Audio VAE", "name": "Audio VAE", "type": "VAE", "links": [ 13673, 13872, 13913 - ], - "label": "Audio VAE" + ] }, { + "label": "VAE", "name": "VAE", "type": "VAE", "links": [ - 13924 - ], - "label": "VAE" + 13944, + 13945, + 13946, + 13947, + 13948 + ] }, { + "label": "MODEL", "name": "MODEL", "type": "MODEL", "links": [ 13653 - ], - "label": "MODEL" + ] }, { + "label": "text enhancer", "name": "text enhancer", "type": "CLIP", "links": [ 13863 - ], - "label": "text enhancer" + ] }, { + "label": "text_encoder", "name": "text_encoder", "type": "CLIP", "links": [ 13862, 13909 - ], - "label": "text_encoder" + ] }, { + "label": "ltx_2.5_model_checkpoint_path", "name": "ltx_2.5_model_checkpoint_path", "type": "*", "links": [ 13866 - ], - "label": "ltx_2.5_model_checkpoint_path" + ] }, { + "label": "latent_downscale_factor", "name": "latent_downscale_factor", "type": "FLOAT", "links": [ 13873, 13914 - ], - "label": "latent_downscale_factor" + ] }, { + "label": "MODEL_stage2", "name": "MODEL_stage2", "type": "MODEL", "links": [ 13841 - ], - "label": "MODEL_stage2" + ] }, { + "label": "LATENT_UPSCALE_MODEL", "name": "LATENT_UPSCALE_MODEL", "type": "LATENT_UPSCALE_MODEL", "links": [ 13922 - ], - "label": "LATENT_UPSCALE_MODEL" + ] } ], "properties": { @@ -1254,7 +1288,19 @@ "ltx25_general_refine.safetensors", 1, "ltx-2.5-latent-spatial-upscaler-x2-bf16-1.0.safetensors" - ] + ], + "widgets_values_named": { + "audio_vae": "ltx-2.5-audio-vae-bf16.safetensors", + "video_vae": "ltx-2.5-video-vae-bf16.safetensors", + "ltx_2.5_model_checkpoint": "ltx-2.5-22b-distilled-transformer-bf16.safetensors", + "gemma4_e2b_enhancer": "gemma4_e2b_it_bf16.safetensors", + "gemma4_12b_encoder": "gemma4-12b-with-proj-ltx-2.5-bf16.safetensors", + "ic_lora": "ltx25_general_refine.safetensors", + "lora strength": 1, + "ic_lora_stage2": "ltx25_general_refine.safetensors", + "stage2 lora strength": 1, + "spatial_upscaler": "ltx-2.5-latent-spatial-upscaler-x2-bf16-1.0.safetensors" + } }, { "id": 9011, @@ -1268,7 +1314,7 @@ 197.1146191439493 ], "flags": {}, - "order": 7, + "order": 10, "mode": 0, "inputs": [], "outputs": [ @@ -1289,6 +1335,9 @@ "widgets_values": [ "The same scene, sharper and more detailed, fine textures, clean edges." ], + "widgets_values_named": { + "value": "The same scene, sharper and more detailed, fine textures, clean edges." + }, "color": "#232", "bgcolor": "#353" }, @@ -1297,319 +1346,368 @@ "type": "2449b2d3-ef34-45f8-833d-a4ebca19b39e", "pos": [ -1727.1999999999998, - 3230.0 + 3230 ], "size": [ - 340.0, - 520.0 + 336.64977737258823, + 396 ], "flags": {}, - "order": 20, + "order": 22, "mode": 0, "inputs": [ { + "label": "text encoder clip", "name": "clip", "type": "CLIP", - "link": 13909, - "label": "text encoder clip" + "link": 13909 }, { + "label": "Stage 2 prompt", "name": "prompt", "type": "STRING", - "link": 13910, - "label": "Stage 2 prompt", "widget": { "name": "prompt" - } + }, + "link": 13910 }, { + "label": "negative", "name": "negative", "type": "CONDITIONING", - "link": 13911, - "label": "negative" + "link": 13911 }, { + "label": "vae", "name": "vae", "type": "VAE", - "link": 13912, - "label": "vae" + "link": 13948 }, { + "label": "audio_vae", "name": "audio_vae", "type": "VAE", - "link": 13913, - "label": "audio_vae" + "link": 13913 }, { + "label": "latent_downscale_factor", "name": "latent_downscale_factor", "type": "FLOAT", - "link": 13914, - "label": "latent_downscale_factor", "widget": { "name": "latent_downscale_factor" - } + }, + "link": 13914 }, { + "label": "source_image", "name": "source_image", "type": "IMAGE", - "link": 13915, - "label": "source_image" + "link": 13915 }, { + "label": "fps", "name": "fps", "type": "FLOAT", - "link": 13916, - "label": "fps", "widget": { "name": "fps" - } + }, + "link": 13916 }, { + "label": "audio", "name": "audio", "type": "AUDIO", - "link": null, - "label": "audio", - "shape": 7 + "link": null }, { - "name": "tile_frames", - "type": "INT", - "link": 13918, "label": "tile_frames", + "name": "tile_frames", + "shape": 7, + "type": "INT", "widget": { "name": "tile_frames" - } + }, + "link": 13918 }, { + "label": "latent", "name": "latent", "type": "LATENT", - "link": 13919, - "label": "latent" + "link": 13919 }, { + "label": "output_width", "name": "output_width", "type": "INT", - "link": 13920, - "label": "output_width", "widget": { "name": "output_width" - } + }, + "link": 13920 }, { + "label": "output_height", "name": "output_height", "type": "INT", - "link": 13921, - "label": "output_height", "widget": { "name": "output_height" - } + }, + "link": 13921 }, { + "label": "upscale model", "name": "upscale_model", "type": "LATENT_UPSCALE_MODEL", - "link": 13922, - "label": "upscale model" + "link": 13922 }, { + "label": "is_8k", "name": "is_8k", "type": "BOOLEAN", - "link": 13923, - "label": "is_8k", "widget": { "name": "is_8k" - } + }, + "link": 13923 }, { + "label": "length", "name": "length", "type": "INT", - "link": 13938, - "label": "length" + "widget": { + "name": "length" + }, + "link": 13938 } ], "outputs": [ { + "label": "positive", "name": "positive", "type": "CONDITIONING", "links": [ 13900 - ], - "label": "positive" + ] }, { + "label": "negative", "name": "negative", "type": "CONDITIONING", "links": [ 13901 - ], - "label": "negative" + ] }, { + "label": "latent", "name": "latent", "type": "LATENT", "links": [ 13902 - ], - "label": "latent" + ] }, { + "label": "frozen_audio", "name": "frozen_audio", "type": "LATENT", "links": [ 13903 - ], - "label": "frozen_audio" + ] } ], "properties": { - "Node name for S&R": "Preprocess - stage 2" + "Node name for S&R": "Preprocess - stage 2", + "previewExposures": [] }, - "widgets_values": [], - "title": "Preprocess - stage 2" + "widgets_values": [ + "", + 1, + 24, + 97, + 3840, + 2176, + false, + 121 + ], + "widgets_values_named": { + "prompt": "", + "latent_downscale_factor": 1, + "fps": 24, + "tile_frames": 97, + "output_width": 3840, + "output_height": 2176, + "is_8k": false, + "length": 121 + } }, { "id": 9019, "type": "8deebd57-c969-4460-8f46-12a98501e2c3", "pos": [ - -1267.1999999999998, - 3230.0 + -1268.3509635800624, + 3230.1729147162537 ], "size": [ - 320.0, - 513.0 + 322.8638999879488, + 315.90964498028643 ], "flags": {}, - "order": 20, + "order": 23, "mode": 0, "inputs": [ { + "label": "model", "name": "model", "type": "MODEL", - "link": 13841, - "label": "model" + "link": 13841 }, { + "label": "positive", "name": "positive", "type": "CONDITIONING", - "link": 13900, - "label": "positive" + "link": 13900 }, { + "label": "negative", "name": "negative", "type": "CONDITIONING", - "link": 13901, - "label": "negative" + "link": 13901 }, { + "label": "latent_image", "name": "latent_image", "type": "LATENT", - "link": 13902, - "label": "latent_image" + "link": 13902 }, { + "label": "noise seed", "name": "noise_seed", "type": "INT", - "link": null, - "label": "noise seed", "widget": { "name": "noise_seed" - } + }, + "link": null }, { + "label": "guider cfg", "name": "cfg", "type": "FLOAT", - "link": null, - "label": "guider cfg", "widget": { "name": "cfg" - } + }, + "link": null }, { + "label": "sampler_name", "name": "sampler_name", "type": "COMBO", - "link": null, - "label": "sampler_name", "widget": { "name": "sampler_name" - } + }, + "link": null }, { + "label": "tile_width", "name": "tile_width", "type": "INT", - "link": 13904, - "label": "tile_width" + "widget": { + "name": "tile_width" + }, + "link": 13904 }, { + "label": "tile_height", "name": "tile_height", "type": "INT", - "link": 13905, - "label": "tile_height" + "widget": { + "name": "tile_height" + }, + "link": 13905 }, { + "label": "overlap_frac", "name": "overlap_frac", "type": "FLOAT", - "link": 13906, - "label": "overlap_frac" + "widget": { + "name": "overlap_frac" + }, + "link": 13906 }, { + "label": "tile_frames", "name": "tile_frames", "type": "INT", - "link": 13907, - "label": "tile_frames" + "widget": { + "name": "tile_frames" + }, + "link": 13907 }, { + "label": "vae", "name": "vae", + "shape": 7, "type": "VAE", - "link": 13845, - "label": "vae" + "link": 13946 }, { + "label": "audio_latent", "name": "audio_latent", "type": "LATENT", - "link": 13903, - "label": "audio_latent" + "link": 13903 } ], "outputs": [ { + "label": "video_latent", "name": "video_latent", "type": "LATENT", "links": [ 13851 - ], - "label": "video_latent" + ] }, { + "label": "audio_latent", "name": "audio_latent", "type": "LATENT", "links": [ 13852 - ], - "label": "audio_latent" + ] } ], + "title": "Tiled Fusion (3 steps)", "properties": { - "Node name for S&R": "Sampler - Distilled (3 steps)" + "Node name for S&R": "Sampler - Distilled (3 steps)", + "previewExposures": [] }, "widgets_values": [ 42, - 1.0, - "euler" + 1, + "euler", + 1024, + 576, + 0.5, + 97 ], - "title": "Tiled Fusion (3 steps)" + "widgets_values_named": { + "noise_seed": 42, + "cfg": 1, + "sampler_name": "euler", + "tile_width": 1024, + "tile_height": 576, + "overlap_frac": 0.5, + "tile_frames": 97 + } }, { "id": 9101, "type": "PreviewAny", "pos": [ - -2620.0, - 3814.0 + -2620, + 3814 ], "size": [ - 340.0, - 160.0 + 340, + 160 ], "flags": {}, - "order": 15, + "order": 21, "mode": 0, "inputs": [ { @@ -1630,6 +1728,7 @@ "Node name for S&R": "PreviewAny" }, "widgets_values": [], + "widgets_values_named": {}, "color": "#232", "bgcolor": "#353" }, @@ -1638,24 +1737,27 @@ "type": "MarkdownNote", "pos": [ -1727.1999999999998, - 2974.0 + 2974 ], "size": [ - 340.0, - 166.0 + 340, + 166 ], "flags": { "collapsed": false }, - "order": 0, + "order": 11, "mode": 0, "inputs": [], "outputs": [], "title": "Preprocess - stage 2", "properties": {}, "widgets_values": [ - "## Preprocess \u2014 stage 2\n\nLatent \u00d72 (\u00d74 when `output_size` is 8K). Fresh encode of the stage-2 prompt, then IC-LoRA guide at output resolution. `use_streaming` is on; `use_tiled_encode` stays **false**.\n" + "## Preprocess — stage 2\n\nLatent ×2 (×4 when `output_size` is 8K). Fresh encode of the stage-2 prompt, then IC-LoRA guide at output resolution. `use_streaming` is on; `use_tiled_encode` stays **false**.\n" ], + "widgets_values_named": { + "text": "## Preprocess — stage 2\n\nLatent ×2 (×4 when `output_size` is 8K). Fresh encode of the stage-2 prompt, then IC-LoRA guide at output resolution. `use_streaming` is on; `use_tiled_encode` stays **false**.\n" + }, "color": "#432", "bgcolor": "#653" }, @@ -1664,24 +1766,27 @@ "type": "MarkdownNote", "pos": [ -1267.1999999999998, - 3006.0 + 3006 ], "size": [ - 320.0, - 134.0 + 320, + 134 ], "flags": { "collapsed": false }, - "order": 0, + "order": 12, "mode": 0, "inputs": [], "outputs": [], "title": "Generate - stage 2", "properties": {}, "widgets_values": [ - "## Generate \u2014 stage 2\n\n**Tiled Fusion Sampler**, 3 fused steps at output size with spatial tiles from `tile_size`. `SAMPLER` is euler. Sigmas must end at 0.\n" + "## Generate — stage 2\n\n**Tiled Fusion Sampler**, 3 fused steps at output size with spatial tiles from `tile_size`. `SAMPLER` is euler. Sigmas must end at 0.\n" ], + "widgets_values_named": { + "text": "## Generate — stage 2\n\n**Tiled Fusion Sampler**, 3 fused steps at output size with spatial tiles from `tile_size`. `SAMPLER` is euler. Sigmas must end at 0.\n" + }, "color": "#432", "bgcolor": "#653" }, @@ -1690,22 +1795,25 @@ "type": "MarkdownNote", "pos": [ -4275.5, - 3776.0 + 3776 ], "size": [ 575.5, - 140.0 + 140 ], "flags": {}, - "order": 5, + "order": 13, "mode": 0, "inputs": [], "outputs": [], "title": "Native HDR EXR", "properties": {}, "widgets_values": [ - "## Native HDR\n\nEXR still \u2192 ACEScct \u2192 float32 VAE \u2192 tiled fusion refine \u2192 EXR + HLG (same I/O as pipelines `--hdr`). Not the SDR\u2192HDR IC-LoRA upgrade path.\n" + "## Native HDR\n\nEXR still → ACEScct → float32 VAE → tiled fusion refine → EXR + HLG (same I/O as pipelines `--hdr`). Not the SDR→HDR IC-LoRA upgrade path.\n" ], + "widgets_values_named": { + "text": "## Native HDR\n\nEXR still → ACEScct → float32 VAE → tiled fusion refine → EXR + HLG (same I/O as pipelines `--hdr`). Not the SDR→HDR IC-LoRA upgrade path.\n" + }, "color": "#432", "bgcolor": "#653" }, @@ -1721,6 +1829,7 @@ 62 ], "flags": {}, + "order": 14, "mode": 0, "inputs": [], "outputs": [ @@ -1741,6 +1850,9 @@ "widgets_values": [ 24 ], + "widgets_values_named": { + "value": 24 + }, "color": "#2a363b", "bgcolor": "#3f5159" }, @@ -1756,6 +1868,7 @@ 62 ], "flags": {}, + "order": 15, "mode": 0, "inputs": [], "outputs": [ @@ -1776,48 +1889,177 @@ "widgets_values": [ 5 ], + "widgets_values_named": { + "value": 5 + }, "color": "#2a363b", "bgcolor": "#3f5159" }, { - "id": 9307, - "type": "LTXVVAEForceFloat32", + "id": 9313, + "type": "LTXVHDRDecodePostprocess", "pos": [ - -3134.8, - 4064.0 + -328.52117968749985, + 3282.9521406249996 ], "size": [ - 380.0, - 86.0 + 340, + 295 ], "flags": {}, + "order": 25, "mode": 0, "inputs": [ { - "name": "vae", - "type": "VAE", - "link": 13924 + "name": "image", + "type": "IMAGE", + "link": 13953 } ], "outputs": [ { - "name": "VAE", - "type": "VAE", - "links": [ - 13670, - 13811, - 13845, - 13871, - 13912 - ] + "name": "tonemapped", + "type": "IMAGE", + "links": [] + }, + { + "name": "hdr_linear", + "type": "IMAGE", + "links": [] } ], - "title": "VAE float32 (native HDR)", + "title": "Save EXR (ACEScg)", "properties": { - "Node name for S&R": "LTXVVAEForceFloat32" + "Node name for S&R": "LTXVHDRDecodePostprocess" + }, + "widgets_values": [ + "acescct", + 0, + true, + "acescg", + "output/hdr_exr", + "frame", + true + ], + "widgets_values_named": { + "transfer": "acescct", + "exposure": 0, + "save_exr": true, + "exr_color_space": "acescg", + "output_dir": "output/hdr_exr", + "filename_prefix": "frame", + "half_precision": true }, "color": "#233", "bgcolor": "#355" + }, + { + "id": 9314, + "type": "CreateVideo", + "pos": [ + -319.5309941658136, + 3631.7164973912404 + ], + "size": [ + 280, + 150 + ], + "flags": {}, + "order": 26, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 13954 + }, + { + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": 13955 + }, + { + "name": "fps", + "type": "FLOAT", + "widget": { + "name": "fps" + }, + "link": 13956 + } + ], + "outputs": [ + { + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 13957 + ] + } + ], + "title": "CreateVideo (HLG)", + "properties": { + "Node name for S&R": "CreateVideo", + "cnr_id": "comfy-core" + }, + "widgets_values": [ + 24, + "auto", + "HDR", + "none" + ], + "widgets_values_named": { + "fps": 24, + "bit_depth": "auto", + "color_space": "HDR", + "codec": "none" + } + }, + { + "id": 9315, + "type": "SaveVideo", + "pos": [ + 41.47882031250019, + 3282.9521406249996 + ], + "size": [ + 360, + 296 + ], + "flags": {}, + "order": 27, + "mode": 0, + "inputs": [ + { + "name": "video", + "type": "VIDEO", + "link": 13957 + } + ], + "outputs": [ + { + "name": "video", + "type": "VIDEO", + "links": [] + } + ], + "title": "Save video (HLG)", + "properties": { + "Node name for S&R": "SaveVideo", + "cnr_id": "comfy-core" + }, + "widgets_values": [ + "hdr/hlg", + "auto", + "auto", + "auto" + ], + "widgets_values_named": { + "filename_prefix": "hdr/hlg", + "format": "auto", + "format.codec": "auto", + "codec": "auto" + } } ], "links": [ @@ -1829,14 +2071,6 @@ 0, "MODEL" ], - [ - 13670, - 9307, - 0, - 5518, - 0, - "VAE" - ], [ 13673, 5004, @@ -1845,30 +2079,6 @@ 3, "VAE" ], - [ - 13675, - 5518, - 0, - 4852, - 0, - "VIDEO" - ], - [ - 13772, - 5548, - 4, - 5518, - 4, - "FLOAT" - ], - [ - 13811, - 9307, - 0, - 5516, - 11, - "VAE" - ], [ 13841, 5004, @@ -1877,14 +2087,6 @@ 0, "MODEL" ], - [ - 13845, - 9307, - 0, - 9019, - 11, - "VAE" - ], [ 13851, 9019, @@ -1941,14 +2143,6 @@ 7, "COMBO" ], - [ - 13867, - 5548, - 4, - 5014, - 8, - "FLOAT" - ], [ 13868, 5014, @@ -1973,14 +2167,6 @@ 1, "CONDITIONING" ], - [ - 13871, - 9307, - 0, - 9002, - 2, - "VAE" - ], [ 13872, 5004, @@ -2181,14 +2367,6 @@ 2, "CONDITIONING" ], - [ - 13912, - 9307, - 0, - 9018, - 3, - "VAE" - ], [ 13913, 5004, @@ -2269,14 +2447,6 @@ 14, "BOOLEAN" ], - [ - 13924, - 5004, - 1, - 9307, - 0, - "VAE" - ], [ 13938, 5548, @@ -2308,6 +2478,86 @@ 5548, 2, "FLOAT" + ], + [ + 13944, + 5004, + 1, + 5518, + 0, + "VAE" + ], + [ + 13945, + 5004, + 1, + 5516, + 11, + "VAE" + ], + [ + 13946, + 5004, + 1, + 9019, + 11, + "VAE" + ], + [ + 13947, + 5004, + 1, + 9002, + 2, + "VAE" + ], + [ + 13948, + 5004, + 1, + 9018, + 3, + "VAE" + ], + [ + 13953, + 5518, + 0, + 9313, + 0, + "IMAGE" + ], + [ + 13954, + 5518, + 1, + 9314, + 0, + "IMAGE" + ], + [ + 13955, + 5518, + 2, + 9314, + 1, + "AUDIO" + ], + [ + 13956, + 5548, + 4, + 9314, + 2, + "FLOAT" + ], + [ + 13957, + 9314, + 0, + 9315, + 0, + "VIDEO" ] ], "groups": [ @@ -2316,7 +2566,7 @@ "title": "Inputs", "bounding": [ -3592.6, - 3164.0, + 3164, 863.8, 1293.6641123477584 ], @@ -2328,9 +2578,21 @@ "title": "Generate", "bounding": [ -2193.2, - 3164.0, - 1272.0, - 579.0 + 3164, + 1277.4954458259322, + 491.55378583966603 + ], + "color": "#3f789e", + "flags": {} + }, + { + "id": 164, + "title": "Export", + "bounding": [ + -338.52117968749985, + 3212.9521406249996, + 750, + 578.7643567662408 ], "color": "#3f789e", "flags": {} @@ -2342,10 +2604,10 @@ "id": "b7c1e94a-3f52-4d08-9a61-2e7c5d4f8a13", "version": 1, "state": { - "lastGroupId": 158, - "lastNodeId": 9008, - "lastLinkId": 13802, - "lastRerouteId": 9024 + "lastGroupId": 164, + "lastNodeId": 9328, + "lastLinkId": 14044, + "lastRerouteId": 9185 }, "revision": 0, "config": {}, @@ -2353,19 +2615,19 @@ "inputNode": { "id": -10, "bounding": [ - 40.0, - 80.0, - 210.0, - 270.0 + 40, + 80, + 210, + 270 ] }, "outputNode": { "id": -20, "bounding": [ 1259.3153547427391, - 80.0, - 190.0, - 248.0 + 80, + 190, + 248 ] }, "inputs": [ @@ -2378,8 +2640,8 @@ ], "label": "audio_vae", "pos": [ - 250.0, - 108.0 + 250, + 108 ] }, { @@ -2391,8 +2653,8 @@ ], "label": "video_vae", "pos": [ - 250.0, - 130.0 + 250, + 130 ] }, { @@ -2405,8 +2667,8 @@ ], "label": "ltx_2.5_model_checkpoint", "pos": [ - 250.0, - 152.0 + 250, + 152 ] }, { @@ -2418,8 +2680,8 @@ ], "label": "gemma4_e2b_enhancer", "pos": [ - 250.0, - 174.0 + 250, + 174 ] }, { @@ -2431,8 +2693,8 @@ ], "label": "gemma4_12b_encoder", "pos": [ - 250.0, - 196.0 + 250, + 196 ] }, { @@ -2444,8 +2706,8 @@ ], "label": "ic_lora", "pos": [ - 250.0, - 218.0 + 250, + 218 ] }, { @@ -2457,8 +2719,8 @@ ], "label": "lora strength", "pos": [ - 250.0, - 240.0 + 250, + 240 ] }, { @@ -2470,8 +2732,8 @@ ], "label": "ic_lora_stage2", "pos": [ - 250.0, - 262.0 + 250, + 262 ] }, { @@ -2483,8 +2745,8 @@ ], "label": "stage2 lora strength", "pos": [ - 250.0, - 284.0 + 250, + 284 ] }, { @@ -2496,8 +2758,8 @@ ], "label": "spatial_upscaler", "pos": [ - 250.0, - 306.0 + 250, + 306 ] } ], @@ -2512,7 +2774,7 @@ "localized_name": "Audio VAE", "pos": [ 1259.3153547427391, - 108.0 + 108 ] }, { @@ -2520,12 +2782,12 @@ "name": "VAE", "type": "VAE", "linkIds": [ - 11 + 13943 ], "localized_name": "VAE", "pos": [ 1259.3153547427391, - 130.0 + 130 ] }, { @@ -2538,7 +2800,7 @@ "localized_name": "MODEL", "pos": [ 1259.3153547427391, - 152.0 + 152 ] }, { @@ -2552,7 +2814,7 @@ "label": "text enhancer", "pos": [ 1259.3153547427391, - 174.0 + 174 ] }, { @@ -2566,7 +2828,7 @@ "label": "text_encoder", "pos": [ 1259.3153547427391, - 196.0 + 196 ] }, { @@ -2579,7 +2841,7 @@ "label": "ltx_2.5_model_checkpoint_path", "pos": [ 1259.3153547427391, - 218.0 + 218 ] }, { @@ -2591,7 +2853,7 @@ ], "pos": [ 1259.3153547427391, - 240.0 + 240 ] }, { @@ -2601,11 +2863,11 @@ "linkIds": [ 20 ], - "label": "MODEL_stage2", "localized_name": "MODEL_stage2", + "label": "MODEL_stage2", "pos": [ 1259.3153547427391, - 262.0 + 262 ] }, { @@ -2615,11 +2877,11 @@ "linkIds": [ 22 ], - "label": "LATENT_UPSCALE_MODEL", "localized_name": "LATENT_UPSCALE_MODEL", + "label": "LATENT_UPSCALE_MODEL", "pos": [ 1259.3153547427391, - 284.0 + 284 ] } ], @@ -2629,8 +2891,8 @@ "id": 5600, "type": "VAELoader", "pos": [ - 330.0, - 80.0 + 330, + 80 ], "size": [ 376.83334885736076, @@ -2673,13 +2935,16 @@ }, "widgets_values": [ "ltx-2.5-audio-vae-bf16.safetensors" - ] + ], + "widgets_values_named": { + "vae_name": "ltx-2.5-audio-vae-bf16.safetensors" + } }, { "id": 5601, "type": "VAELoader", "pos": [ - 330.0, + 330, 179.59521275015277 ], "size": [ @@ -2706,7 +2971,7 @@ "name": "VAE", "type": "VAE", "links": [ - 11 + 13942 ] } ], @@ -2723,18 +2988,21 @@ }, "widgets_values": [ "ltx-2.5-video-vae-bf16.safetensors" - ] + ], + "widgets_values_named": { + "vae_name": "ltx-2.5-video-vae-bf16.safetensors" + } }, { "id": 5602, "type": "UNETLoader", "pos": [ - 330.0, + 330, 279.19042550030554 ], "size": [ 374.74465302622593, - 82.0 + 82 ], "flags": {}, "order": 2, @@ -2774,18 +3042,22 @@ "widgets_values": [ "ltx-2.5-22b-distilled-transformer-bf16.safetensors", "default" - ] + ], + "widgets_values_named": { + "unet_name": "ltx-2.5-22b-distilled-transformer-bf16.safetensors", + "weight_dtype": "default" + } }, { "id": 5603, "type": "Reroute", "pos": [ - 330.0, + 330, 401.19042550030554 ], "size": [ 365.46643673647395, - 26.0 + 26 ], "flags": {}, "order": 3, @@ -2815,12 +3087,12 @@ "id": 5604, "type": "CLIPLoader", "pos": [ - 330.0, + 330, 467.19042550030554 ], "size": [ 384.6576773713696, - 106.0 + 106 ], "flags": {}, "order": 4, @@ -2861,18 +3133,23 @@ "gemma4_e2b_it_bf16.safetensors", "ltxv", "default" - ] + ], + "widgets_values_named": { + "clip_name": "gemma4_e2b_it_bf16.safetensors", + "type": "ltxv", + "device": "default" + } }, { "id": 5605, "type": "CLIPLoader", "pos": [ - 330.0, + 330, 613.1904255003055 ], "size": [ 384.6576773713696, - 106.0 + 106 ], "flags": {}, "order": 5, @@ -2913,14 +3190,19 @@ "gemma4-12b-with-proj-ltx-2.5-bf16.safetensors", "ltxv", "default" - ] + ], + "widgets_values_named": { + "clip_name": "gemma4-12b-with-proj-ltx-2.5-bf16.safetensors", + "type": "ltxv", + "device": "default" + } }, { "id": 5606, "type": "LTXICLoRALoaderModelOnly", "pos": [ 794.6576773713696, - 80.0 + 80 ], "size": [ 384.6576773713696, @@ -2986,7 +3268,11 @@ "widgets_values": [ "ltx25_general_refine.safetensors", 1 - ] + ], + "widgets_values_named": { + "lora_name": "ltx25_general_refine.safetensors", + "strength_model": 1 + } }, { "id": 5607, @@ -3000,7 +3286,7 @@ 130.8845841562129 ], "flags": {}, - "order": 6, + "order": 7, "mode": 0, "inputs": [ { @@ -3057,24 +3343,29 @@ "widgets_values": [ "ltx25_general_refine.safetensors", 1 - ] + ], + "widgets_values_named": { + "lora_name": "ltx25_general_refine.safetensors", + "strength_model": 1 + } }, { "id": 5608, "type": "LatentUpscaleModelLoader", "pos": [ - 330.0, + 330, 759.1904255003055 ], "size": [ - 340.0, - 60.0 + 340, + 60 ], "flags": {}, "order": 8, "mode": 0, "inputs": [ { + "localized_name": "model_name", "name": "model_name", "type": "COMBO", "widget": { @@ -3085,6 +3376,7 @@ ], "outputs": [ { + "localized_name": "LATENT_UPSCALE_MODEL", "name": "LATENT_UPSCALE_MODEL", "type": "LATENT_UPSCALE_MODEL", "links": [ @@ -3104,16 +3396,58 @@ }, "widgets_values": [ "ltx-2.5-latent-spatial-upscaler-x2-bf16-1.0.safetensors" - ] + ], + "widgets_values_named": { + "model_name": "ltx-2.5-latent-spatial-upscaler-x2-bf16-1.0.safetensors" + } + }, + { + "id": 9311, + "type": "LTXVVAEForceFloat32", + "pos": [ + 670, + 179.59521275015277 + ], + "size": [ + 300, + 70 + ], + "flags": {}, + "order": 9, + "mode": 0, + "inputs": [ + { + "localized_name": "vae", + "name": "vae", + "type": "VAE", + "link": 13942 + } + ], + "outputs": [ + { + "localized_name": "VAE", + "name": "VAE", + "type": "VAE", + "links": [ + 13943 + ] + } + ], + "title": "VAE float32 (HDR)", + "properties": { + "Node name for S&R": "LTXVVAEForceFloat32" + }, + "color": "#233", + "bgcolor": "#355" } ], "groups": [ { - "id": 1, + "id": 3, "title": "Load Models - one file per output", "bounding": [ - 306.0, - 36.0, + 306, + 36, 897.3153547427391, 807.1904255003055 ], @@ -3206,15 +3540,6 @@ "type": "VAE", "parentId": 9007 }, - { - "id": 11, - "origin_id": 5601, - "origin_slot": 0, - "target_id": -20, - "target_slot": 1, - "type": "VAE", - "parentId": 9009 - }, { "id": 12, "origin_id": 5606, @@ -3309,14 +3634,29 @@ "target_slot": 8, "type": "LATENT_UPSCALE_MODEL", "parentId": 9023 + }, + { + "id": 13942, + "origin_id": 5601, + "origin_slot": 0, + "target_id": 9311, + "target_slot": 0, + "type": "VAE" + }, + { + "id": 13943, + "origin_id": 9311, + "origin_slot": 0, + "target_id": -20, + "target_slot": 1, + "type": "VAE" } ], - "extra": {}, "reroutes": [ { "id": 9000, "pos": [ - 268.0, + 268, 859.1904255003055 ], "linkIds": [ @@ -3337,7 +3677,7 @@ { "id": 9002, "pos": [ - 268.0, + 268, 877.1904255003055 ], "linkIds": [ @@ -3397,27 +3737,6 @@ 10 ] }, - { - "id": 9008, - "pos": [ - 724.8333488573608, - 931.1904255003055 - ], - "linkIds": [ - 11 - ] - }, - { - "id": 9009, - "parentId": 9008, - "pos": [ - 1241.3153547427391, - 931.1904255003055 - ], - "linkIds": [ - 11 - ] - }, { "id": 9010, "pos": [ @@ -3505,7 +3824,7 @@ { "id": 9018, "pos": [ - 268.0, + 268, 1021.1904255003055 ], "linkIds": [ @@ -3526,7 +3845,7 @@ { "id": 9020, "pos": [ - 268.0, + 268, 1039.1904255003055 ], "linkIds": [ @@ -3547,7 +3866,7 @@ { "id": 9022, "pos": [ - 688.0, + 688, 1057.1904255003055 ], "linkIds": [ @@ -3565,16 +3884,17 @@ 22 ] } - ] + ], + "extra": {} }, { "id": "c28230e9-b195-4ec2-9679-39e1e920f733", "version": 1, "state": { - "lastGroupId": 158, - "lastNodeId": 9008, - "lastLinkId": 13793, - "lastRerouteId": 9022 + "lastGroupId": 164, + "lastNodeId": 9328, + "lastLinkId": 14044, + "lastRerouteId": 9185 }, "revision": 0, "config": {}, @@ -3582,19 +3902,19 @@ "inputNode": { "id": -10, "bounding": [ - 40.0, - 80.0, - 210.0, - 248.0 + 40, + 80, + 210, + 248 ] }, "outputNode": { "id": -20, "bounding": [ 2255.6277343750003, - 80.0, - 190.0, - 116.0 + 80, + 190, + 116 ] }, "inputs": [ @@ -3609,8 +3929,8 @@ "localized_name": "clip", "label": "text encoder clip", "pos": [ - 250.0, - 108.0 + 250, + 108 ] }, { @@ -3623,8 +3943,8 @@ "localized_name": "clip_1", "label": "text enhancer clip", "pos": [ - 250.0, - 130.0 + 250, + 130 ] }, { @@ -3634,12 +3954,12 @@ "linkIds": [ 13619, 13755, - 2 + 13960 ], "label": "Positive prompt", "pos": [ - 250.0, - 152.0 + 250, + 152 ] }, { @@ -3648,12 +3968,12 @@ "type": "BOOLEAN", "linkIds": [ 13621, - 3 + 13961 ], "label": "Enhance positive prompt", "pos": [ - 250.0, - 174.0 + 250, + 174 ] }, { @@ -3666,8 +3986,8 @@ ], "label": "Negative prompt", "pos": [ - 250.0, - 196.0 + 250, + 196 ] }, { @@ -3679,8 +3999,8 @@ ], "label": "enhancer_seed", "pos": [ - 250.0, - 218.0 + 250, + 218 ] }, { @@ -3694,8 +4014,8 @@ ], "label": "LTX API key", "pos": [ - 250.0, - 240.0 + 250, + 240 ] }, { @@ -3708,21 +4028,8 @@ ], "label": "ltx model ckpt path", "pos": [ - 250.0, - 262.0 - ] - }, - { - "id": "5f0c1a77-2b64-4d18-9a3e-6c81d2f47b90", - "name": "value", - "type": "FLOAT", - "linkIds": [ - 13793 - ], - "label": "fps", - "pos": [ - 250.0, - 284.0 + 250, + 262 ] } ], @@ -3737,7 +4044,7 @@ "label": "effective_prompt", "pos": [ 2255.6277343750003, - 108.0 + 108 ] }, { @@ -3751,7 +4058,7 @@ "label": "positive_encoded", "pos": [ 2255.6277343750003, - 130.0 + 130 ] }, { @@ -3765,7 +4072,7 @@ "label": "negative_encoded", "pos": [ 2255.6277343750003, - 152.0 + 152 ] } ], @@ -3776,14 +4083,14 @@ "type": "CLIPTextEncode", "pos": [ 1189.2408203125, - 208.0 + 208 ], "size": [ 281.48203125, - 88.0 + 88 ], "flags": {}, - "order": 2, + "order": 1, "mode": 0, "inputs": [ { @@ -3809,7 +4116,7 @@ "type": "CONDITIONING", "slot_index": 0, "links": [ - 7652 + 13959 ] } ], @@ -3822,6 +4129,9 @@ "widgets_values": [ "" ], + "widgets_values_named": { + "text": "" + }, "color": "#322", "bgcolor": "#533" }, @@ -3829,17 +4139,17 @@ "id": 9004, "type": "TextGenerateLTX2Prompt", "pos": [ - 330.0, - 80.0 + 330, + 80 ], "size": [ 429.2408203125, - 412.0 + 456 ], "flags": { "collapsed": false }, - "order": 14, + "order": 8, "mode": 0, "inputs": [ { @@ -3869,6 +4179,13 @@ "type": "AUDIO", "link": null }, + { + "localized_name": "system_prompt", + "name": "system_prompt", + "shape": 7, + "type": "STRING", + "link": null + }, { "localized_name": "prompt", "name": "prompt", @@ -3894,8 +4211,14 @@ "name": "generated_text", "type": "STRING", "links": [ - 4 + 13963 ] + }, + { + "localized_name": "thinking", + "name": "thinking", + "type": "STRING", + "links": null } ], "title": "Positive prompt (t2v) enhancer - TextGenerateLTX2Prompt", @@ -3914,8 +4237,24 @@ 0, 0, false, - true + true, + "auto" ], + "widgets_values_named": { + "prompt": "", + "max_length": 600, + "sampling_mode": "on", + "sampling_mode.temperature": 0.01, + "sampling_mode.top_k": 0, + "sampling_mode.top_p": 1, + "sampling_mode.min_p": 0, + "sampling_mode.repetition_penalty": 1.15, + "sampling_mode.seed": 0, + "sampling_mode.presence_penalty": 0, + "thinking": false, + "use_default_template": true, + "mtp": "auto" + }, "color": "#232", "bgcolor": "#353" }, @@ -3924,14 +4263,14 @@ "type": "CLIPTextEncode", "pos": [ 1189.2408203125, - 80.0 + 80 ], "size": [ 281.48203125, - 88.0 + 88 ], "flags": {}, - "order": 1, + "order": 0, "mode": 0, "inputs": [ { @@ -3957,7 +4296,7 @@ "type": "CONDITIONING", "slot_index": 0, "links": [ - 7065 + 13958 ] } ], @@ -3970,6 +4309,9 @@ "widgets_values": [ "" ], + "widgets_values_named": { + "text": "" + }, "color": "#232", "bgcolor": "#353" }, @@ -3978,14 +4320,14 @@ "type": "StringContains", "pos": [ 1550.7228515625002, - 198.0 + 198 ], "size": [ - 210.0, - 166.0 + 210, + 166 ], "flags": {}, - "order": 11, + "order": 5, "mode": 0, "inputs": [ { @@ -4004,8 +4346,8 @@ "name": "contains", "type": "BOOLEAN", "links": [ - 5, - 13787 + 13787, + 13962 ] } ], @@ -4017,98 +4359,39 @@ "", "ltxv_", true - ] - }, - { - "id": 1241, - "type": "LTXVConditioning", - "pos": [ - 1550.7228515625002, - 80.0 ], - "size": [ - 210.0, - 78.0 - ], - "flags": {}, - "order": 0, - "mode": 0, - "inputs": [ - { - "localized_name": "positive", - "name": "positive", - "type": "CONDITIONING", - "link": 7065 - }, - { - "localized_name": "negative", - "name": "negative", - "type": "CONDITIONING", - "link": 7652 - }, - { - "localized_name": "frame_rate", - "name": "frame_rate", - "type": "FLOAT", - "widget": { - "name": "frame_rate" - }, - "link": 13793 - } - ], - "outputs": [ - { - "localized_name": "positive", - "name": "positive", - "type": "CONDITIONING", - "slot_index": 0, - "links": [ - 13786 - ] - }, - { - "localized_name": "negative", - "name": "negative", - "type": "CONDITIONING", - "slot_index": 1, - "links": [ - 13789 - ] - } - ], - "properties": { - "Node name for S&R": "LTXVConditioning", - "cnr_id": "comfy-core", - "ver": "0.3.28" - }, - "widgets_values": [ - 24 - ] + "widgets_values_named": { + "string": "", + "substring": "ltxv_", + "case_sensitive": true + } }, { "id": 5560, "type": "ComfySwitchNode", "pos": [ 1840.7228515625002, - 198.0 + 198 ], "size": [ 334.9048828125, - 78.0 + 78 ], "flags": {}, - "order": 13, + "order": 7, "mode": 0, "inputs": [ { "localized_name": "on_false", "name": "on_false", + "shape": 7, "type": "CONDITIONING", - "link": 13789 + "link": 13959 }, { "localized_name": "on_true", "name": "on_true", + "shape": 7, "type": "CONDITIONING", "link": 13788 }, @@ -4138,32 +4421,37 @@ }, "widgets_values": [ false - ] + ], + "widgets_values_named": { + "switch": false + } }, { "id": 5558, "type": "ComfySwitchNode", "pos": [ 1840.7228515625002, - 80.0 + 80 ], "size": [ 329.77109375, - 78.0 + 78 ], "flags": {}, - "order": 12, + "order": 6, "mode": 0, "inputs": [ { "localized_name": "on_false", "name": "on_false", + "shape": 7, "type": "CONDITIONING", - "link": 13786 + "link": 13958 }, { "localized_name": "on_true", "name": "on_true", + "shape": 7, "type": "CONDITIONING", "link": 13785 }, @@ -4174,7 +4462,7 @@ "widget": { "name": "switch" }, - "link": 5 + "link": 13962 } ], "outputs": [ @@ -4193,34 +4481,39 @@ }, "widgets_values": [ false - ] + ], + "widgets_values_named": { + "switch": false + } }, { "id": 5556, "type": "ComfySwitchNode", "pos": [ 839.2408203125, - 80.0 + 80 ], "size": [ - 270.0, - 78.0 + 270, + 78 ], "flags": {}, - "order": 10, + "order": 4, "mode": 0, "inputs": [ { "localized_name": "on_false", "name": "on_false", + "shape": 7, "type": "STRING", - "link": 2 + "link": 13960 }, { "localized_name": "on_true", "name": "on_true", + "shape": 7, "type": "STRING", - "link": 4 + "link": 13963 }, { "localized_name": "switch", @@ -4229,7 +4522,7 @@ "widget": { "name": "switch" }, - "link": 3 + "link": 13961 } ], "outputs": [ @@ -4248,21 +4541,24 @@ }, "widgets_values": [ false - ] + ], + "widgets_values_named": { + "switch": false + } }, { "id": 5504, "type": "GemmaAPITextEncode", "pos": [ - 330.0, - 532.0 + 330, + 532 ], "size": [ 373.6919921875, - 160.0 + 160 ], "flags": {}, - "order": 5, + "order": 2, "mode": 0, "inputs": [ { @@ -4312,7 +4608,7 @@ ] } ], - "title": "\ud83c\udd5b\ud83c\udd63\ud83c\udd67 Gemma API Text Encode - POSITIVE", + "title": "🅛🅣🅧 Gemma API Text Encode - POSITIVE", "properties": { "Node name for S&R": "GemmaAPITextEncode" }, @@ -4321,21 +4617,27 @@ "", "ltx-2.3-22b-dev.safetensors", "ltx-2.3-22b-dev.safetensors" - ] + ], + "widgets_values_named": { + "api_key": "", + "prompt": "", + "enhance_prompt": "ltx-2.3-22b-dev.safetensors", + "ckpt_name": "ltx-2.3-22b-dev.safetensors" + } }, { "id": 5505, "type": "GemmaAPITextEncode", "pos": [ - 330.0, - 732.0 + 330, + 732 ], "size": [ 373.6919921875, 162.18575427239557 ], "flags": {}, - "order": 6, + "order": 3, "mode": 0, "inputs": [ { @@ -4376,7 +4678,7 @@ ] } ], - "title": "\ud83c\udd5b\ud83c\udd63\ud83c\udd67 Gemma API Text Encode - NEGATIVE", + "title": "🅛🅣🅧 Gemma API Text Encode - NEGATIVE", "properties": { "Node name for S&R": "GemmaAPITextEncode" }, @@ -4385,7 +4687,13 @@ "", false, "ltx-2.3-22b-dev.safetensors" - ] + ], + "widgets_values_named": { + "api_key": "", + "prompt": "", + "enhance_prompt": false, + "ckpt_name": "ltx-2.3-22b-dev.safetensors" + } } ], "groups": [ @@ -4393,10 +4701,10 @@ "id": 155, "title": "Prompt enhancement only if enhance_positive_prompt", "bounding": [ - 306.0, - 36.0, + 306, + 36, 477.2408203125, - 480.0 + 480 ], "color": "#3f789e", "flags": {} @@ -4405,8 +4713,8 @@ "id": 157, "title": "Prompt Text Encode via API for more memory efficient run", "bounding": [ - 306.0, - 488.0, + 306, + 488, 421.6919921875, 430.18575427239557 ], @@ -4418,31 +4726,15 @@ "title": "Text encoding", "bounding": [ 815.2408203125, - 36.0, + 36, 1384.3869140625002, - 352.0 + 352 ], "color": "#3f789e", "flags": {} } ], "links": [ - { - "id": 7065, - "origin_id": 2483, - "origin_slot": 0, - "target_id": 1241, - "target_slot": 0, - "type": "CONDITIONING" - }, - { - "id": 7652, - "origin_id": 2612, - "origin_slot": 0, - "target_id": 1241, - "target_slot": 1, - "type": "CONDITIONING" - }, { "id": 13439, "origin_id": -10, @@ -4450,7 +4742,7 @@ "target_id": 2612, "target_slot": 0, "type": "CLIP", - "parentId": 9001 + "parentId": 9025 }, { "id": 13438, @@ -4459,7 +4751,7 @@ "target_id": 2483, "target_slot": 0, "type": "CLIP", - "parentId": 9003 + "parentId": 9027 }, { "id": 13487, @@ -4468,7 +4760,7 @@ "target_id": 2612, "target_slot": 1, "type": "STRING", - "parentId": 9005 + "parentId": 9029 }, { "id": 13615, @@ -4478,14 +4770,6 @@ "target_slot": 3, "type": "COMBO" }, - { - "id": 13616, - "origin_id": -10, - "origin_slot": 7, - "target_id": 5505, - "target_slot": 2, - "type": "COMBO" - }, { "id": 13617, "origin_id": -10, @@ -4527,46 +4811,22 @@ "type": "BOOLEAN" }, { - "id": 13746, - "origin_id": -10, - "origin_slot": 5, - "target_id": 9004, - "target_slot": 5, - "type": "INT" - }, - { - "id": 13754, - "origin_id": -10, - "origin_slot": 1, - "target_id": 9004, - "target_slot": 0, - "type": "CLIP" - }, - { - "id": 13755, - "origin_id": -10, - "origin_slot": 2, - "target_id": 9004, - "target_slot": 4, - "type": "STRING" - }, - { - "id": 2, + "id": 13960, "origin_id": -10, "origin_slot": 2, "target_id": 5556, "target_slot": 0, "type": "STRING", - "parentId": 9007 + "parentId": 9031 }, { - "id": 3, + "id": 13961, "origin_id": -10, "origin_slot": 3, "target_id": 5556, "target_slot": 2, "type": "BOOLEAN", - "parentId": 9009 + "parentId": 9033 }, { "id": 13782, @@ -4583,10 +4843,10 @@ "target_id": 5557, "target_slot": 0, "type": "STRING", - "parentId": 9011 + "parentId": 9035 }, { - "id": 5, + "id": 13962, "origin_id": 5557, "origin_slot": 0, "target_id": 5558, @@ -4600,15 +4860,7 @@ "target_id": 5558, "target_slot": 1, "type": "CONDITIONING", - "parentId": 9013 - }, - { - "id": 13786, - "origin_id": 1241, - "origin_slot": 0, - "target_id": 5558, - "target_slot": 0, - "type": "CONDITIONING" + "parentId": 9037 }, { "id": 13787, @@ -4625,15 +4877,7 @@ "target_id": 5560, "target_slot": 1, "type": "CONDITIONING", - "parentId": 9015 - }, - { - "id": 13789, - "origin_id": 1241, - "origin_slot": 1, - "target_id": 5560, - "target_slot": 0, - "type": "CONDITIONING" + "parentId": 9039 }, { "id": 13790, @@ -4642,7 +4886,7 @@ "target_id": -20, "target_slot": 1, "type": "CONDITIONING", - "parentId": 9017 + "parentId": 9041 }, { "id": 13791, @@ -4659,31 +4903,70 @@ "target_id": -20, "target_slot": 0, "type": "STRING", - "parentId": 9019 + "parentId": 9043 }, { - "id": 13793, - "origin_id": -10, - "origin_slot": 8, - "target_id": 1241, - "target_slot": 2, - "type": "FLOAT", - "parentId": 9021 - }, - { - "id": 4, + "id": 13963, "origin_id": 9004, "origin_slot": 0, "target_id": 5556, "target_slot": 1, "type": "STRING" + }, + { + "id": 13958, + "origin_id": 2483, + "origin_slot": 0, + "target_id": 5558, + "target_slot": 0, + "type": "CONDITIONING" + }, + { + "id": 13959, + "origin_id": 2612, + "origin_slot": 0, + "target_id": 5560, + "target_slot": 0, + "type": "CONDITIONING" + }, + { + "id": 13616, + "origin_id": -10, + "origin_slot": 7, + "target_id": 5505, + "target_slot": 2, + "type": "COMBO" + }, + { + "id": 13754, + "origin_id": -10, + "origin_slot": 1, + "target_id": 9004, + "target_slot": 0, + "type": "CLIP" + }, + { + "id": 13755, + "origin_id": -10, + "origin_slot": 2, + "target_id": 9004, + "target_slot": 5, + "type": "STRING" + }, + { + "id": 13746, + "origin_id": -10, + "origin_slot": 5, + "target_id": 9004, + "target_slot": 6, + "type": "INT" } ], "reroutes": [ { - "id": 9000, + "id": 9024, "pos": [ - 268.0, + 268, 934.1857542723956 ], "linkIds": [ @@ -4691,8 +4974,8 @@ ] }, { - "id": 9001, - "parentId": 9000, + "id": 9025, + "parentId": 9024, "pos": [ 1171.2408203125, 934.1857542723956 @@ -4702,9 +4985,9 @@ ] }, { - "id": 9002, + "id": 9026, "pos": [ - 268.0, + 268, 952.1857542723956 ], "linkIds": [ @@ -4712,8 +4995,8 @@ ] }, { - "id": 9003, - "parentId": 9002, + "id": 9027, + "parentId": 9026, "pos": [ 1171.2408203125, 952.1857542723956 @@ -4723,9 +5006,9 @@ ] }, { - "id": 9004, + "id": 9028, "pos": [ - 268.0, + 268, 970.1857542723956 ], "linkIds": [ @@ -4733,8 +5016,8 @@ ] }, { - "id": 9005, - "parentId": 9004, + "id": 9029, + "parentId": 9028, "pos": [ 1171.2408203125, 970.1857542723956 @@ -4744,51 +5027,51 @@ ] }, { - "id": 9006, + "id": 9030, "pos": [ - 268.0, + 268, 988.1857542723956 ], "linkIds": [ - 2 + 13960 ] }, { - "id": 9007, - "parentId": 9006, + "id": 9031, + "parentId": 9030, "pos": [ 821.2408203125, 988.1857542723956 ], "linkIds": [ - 2 + 13960 ] }, { - "id": 9008, + "id": 9032, "pos": [ - 268.0, + 268, 1006.1857542723956 ], "linkIds": [ - 3 + 13961 ] }, { - "id": 9009, - "parentId": 9008, + "id": 9033, + "parentId": 9032, "pos": [ 821.2408203125, 1006.1857542723956 ], "linkIds": [ - 3 + 13961 ] }, { - "id": 9010, + "id": 9034, "pos": [ - 268.0, + 268, 1024.1857542723956 ], "linkIds": [ @@ -4796,8 +5079,8 @@ ] }, { - "id": 9011, - "parentId": 9010, + "id": 9035, + "parentId": 9034, "pos": [ 1532.7228515625002, 1024.1857542723956 @@ -4807,7 +5090,7 @@ ] }, { - "id": 9012, + "id": 9036, "pos": [ 721.6919921875, 1042.1857542723956 @@ -4817,8 +5100,8 @@ ] }, { - "id": 9013, - "parentId": 9012, + "id": 9037, + "parentId": 9036, "pos": [ 1822.7228515625002, 1042.1857542723956 @@ -4828,7 +5111,7 @@ ] }, { - "id": 9014, + "id": 9038, "pos": [ 721.6919921875, 1060.1857542723956 @@ -4838,8 +5121,8 @@ ] }, { - "id": 9015, - "parentId": 9014, + "id": 9039, + "parentId": 9038, "pos": [ 1822.7228515625002, 1060.1857542723956 @@ -4849,7 +5132,7 @@ ] }, { - "id": 9016, + "id": 9040, "pos": [ 2188.4939453125003, 1078.1857542723956 @@ -4859,8 +5142,8 @@ ] }, { - "id": 9017, - "parentId": 9016, + "id": 9041, + "parentId": 9040, "pos": [ 2237.6277343750003, 1078.1857542723956 @@ -4870,7 +5153,7 @@ ] }, { - "id": 9018, + "id": 9042, "pos": [ 1127.2408203125, 1096.1857542723956 @@ -4880,8 +5163,8 @@ ] }, { - "id": 9019, - "parentId": 9018, + "id": 9043, + "parentId": 9042, "pos": [ 2237.6277343750003, 1096.1857542723956 @@ -4889,27 +5172,6 @@ "linkIds": [ 13792 ] - }, - { - "id": 9020, - "pos": [ - 268.0, - 1114.1857542723956 - ], - "linkIds": [ - 13793 - ] - }, - { - "id": 9021, - "parentId": 9020, - "pos": [ - 1532.7228515625002, - 1114.1857542723956 - ], - "linkIds": [ - 13793 - ] } ], "extra": {} @@ -4918,10 +5180,10 @@ "id": "f9337bd7-ca7a-4a59-99f1-65b664bed7e7", "version": 1, "state": { - "lastGroupId": 158, - "lastNodeId": 9008, - "lastLinkId": 13808, - "lastRerouteId": 9026 + "lastGroupId": 164, + "lastNodeId": 9328, + "lastLinkId": 14044, + "lastRerouteId": 9185 }, "revision": 0, "config": {}, @@ -4929,19 +5191,19 @@ "inputNode": { "id": -10, "bounding": [ - 40.0, - 184.0, - 210.0, - 336.0 + 40, + 184, + 210, + 336 ] }, "outputNode": { "id": -20, "bounding": [ 1619.9463328320699, - 184.0, - 190.0, - 94.0 + 184, + 190, + 94 ] }, "inputs": [ @@ -4950,12 +5212,12 @@ "name": "model", "type": "MODEL", "linkIds": [ - 1 + 13964 ], "localized_name": "model", "pos": [ - 250.0, - 212.0 + 250, + 212 ] }, { @@ -4963,12 +5225,12 @@ "name": "positive", "type": "CONDITIONING", "linkIds": [ - 2 + 13965 ], "localized_name": "positive", "pos": [ - 250.0, - 234.0 + 250, + 234 ] }, { @@ -4976,12 +5238,12 @@ "name": "negative", "type": "CONDITIONING", "linkIds": [ - 3 + 13966 ], "localized_name": "negative", "pos": [ - 250.0, - 256.0 + 250, + 256 ] }, { @@ -4989,12 +5251,12 @@ "name": "latent_image", "type": "LATENT", "linkIds": [ - 10 + 13967 ], "localized_name": "latent_image", "pos": [ - 250.0, - 278.0 + 250, + 278 ] }, { @@ -5002,12 +5264,12 @@ "name": "noise_seed", "type": "INT", "linkIds": [ - 4 + 13969 ], "label": "noise seed", "pos": [ - 250.0, - 300.0 + 250, + 300 ] }, { @@ -5015,12 +5277,12 @@ "name": "cfg", "type": "FLOAT", "linkIds": [ - 13 + 13970 ], "label": "guider cfg", "pos": [ - 250.0, - 322.0 + 250, + 322 ] }, { @@ -5028,11 +5290,11 @@ "name": "sampler_name", "type": "COMBO", "linkIds": [ - 7 + 13976 ], "pos": [ - 250.0, - 344.0 + 250, + 344 ] }, { @@ -5040,12 +5302,12 @@ "name": "tile_width", "type": "INT", "linkIds": [ - 14 + 13971 ], "label": "tile_width", "pos": [ - 250.0, - 366.0 + 250, + 366 ] }, { @@ -5053,12 +5315,12 @@ "name": "tile_height", "type": "INT", "linkIds": [ - 5 + 13972 ], "label": "tile_height", "pos": [ - 250.0, - 388.0 + 250, + 388 ] }, { @@ -5066,12 +5328,12 @@ "name": "overlap_frac", "type": "FLOAT", "linkIds": [ - 15 + 13973 ], "label": "overlap_frac", "pos": [ - 250.0, - 410.0 + 250, + 410 ] }, { @@ -5079,12 +5341,12 @@ "name": "tile_frames", "type": "INT", "linkIds": [ - 16 + 13974 ], "label": "tile_frames", "pos": [ - 250.0, - 432.0 + 250, + 432 ] }, { @@ -5092,12 +5354,12 @@ "name": "vae", "type": "VAE", "linkIds": [ - 6 + 13975 ], "label": "vae", "pos": [ - 250.0, - 454.0 + 250, + 454 ] }, { @@ -5105,12 +5367,12 @@ "name": "audio_latent", "type": "LATENT", "linkIds": [ - 9 + 13978 ], "label": "audio_latent", "pos": [ - 250.0, - 476.0 + 250, + 476 ] } ], @@ -5120,11 +5382,11 @@ "name": "video_latent", "type": "LATENT", "linkIds": [ - 8 + 13977 ], "pos": [ 1619.9463328320699, - 212.0 + 212 ] }, { @@ -5132,11 +5394,11 @@ "name": "audio_latent", "type": "LATENT", "linkIds": [ - 17 + 13979 ], "pos": [ 1619.9463328320699, - 234.0 + 234 ] } ], @@ -5146,15 +5408,15 @@ "id": 4831, "type": "KSamplerSelect", "pos": [ - 330.0, - 184.0 + 330, + 184 ], "size": [ 499.94633283206986, - 74.0 + 74 ], "flags": {}, - "order": 4, + "order": 2, "mode": 0, "inputs": [ { @@ -5164,7 +5426,7 @@ "widget": { "name": "sampler_name" }, - "link": 7 + "link": 13976 } ], "outputs": [ @@ -5173,7 +5435,7 @@ "name": "SAMPLER", "type": "SAMPLER", "links": [ - 12 + 13968 ] } ], @@ -5184,14 +5446,17 @@ }, "widgets_values": [ "euler" - ] + ], + "widgets_values_named": { + "sampler_name": "euler" + } }, { "id": 4984, "type": "ManualSigmas", "pos": [ - 330.0, - 298.0 + 330, + 298 ], "size": [ 499.94633283206986, @@ -5218,18 +5483,21 @@ }, "widgets_values": [ "1.0, 0.99375, 0.9875, 0.98125, 0.975, 0.909375, 0.725, 0.421875, 0.0" - ] + ], + "widgets_values_named": { + "sigmas": "1.0, 0.99375, 0.9875, 0.98125, 0.975, 0.909375, 0.725, 0.421875, 0.0" + } }, { "id": 4999, "type": "Note", "pos": [ - 330.0, - 80.0 + 330, + 80 ], "size": [ 222.81278386605618, - 88.0 + 88 ], "flags": {}, "order": 1, @@ -5240,6 +5508,9 @@ "widgets_values": [ "Tiled fusion owns the sigma loop. Use euler / heun / dpm_2. Leave overlap_frac at 0.5. tile_frames must match the guide node." ], + "widgets_values_named": { + "text": "Tiled fusion owns the sigma loop. Use euler / heun / dpm_2. Leave overlap_frac at 0.5. tile_frames must match the guide node." + }, "color": "#432", "bgcolor": "#653" }, @@ -5248,122 +5519,121 @@ "type": "LTXVTiledFusionSampler", "pos": [ 909.9463328320699, - 184.0 + 184 ], "size": [ - 340.0, - 430.0 + 340, + 430 ], "flags": {}, "order": 3, "mode": 0, "inputs": [ { + "localized_name": "model", "name": "model", "type": "MODEL", - "link": 1 + "link": 13964 }, { + "localized_name": "positive", "name": "positive", "type": "CONDITIONING", - "link": 2 + "link": 13965 }, { + "localized_name": "negative", "name": "negative", "type": "CONDITIONING", - "link": 3 + "link": 13966 }, { + "localized_name": "latents", "name": "latents", "type": "LATENT", - "link": 10 + "link": 13967 }, { + "localized_name": "sigmas", "name": "sigmas", "type": "SIGMAS", "link": 11 }, { + "localized_name": "sampler", "name": "sampler", "type": "SAMPLER", - "link": 12 + "link": 13968 }, { + "localized_name": "vae", + "name": "vae", + "shape": 7, + "type": "VAE", + "link": 13975 + }, + { + "localized_name": "seed", "name": "seed", "type": "INT", - "link": 4, "widget": { "name": "seed" - } + }, + "link": 13969 }, { + "localized_name": "cfg", "name": "cfg", "type": "FLOAT", - "link": 13, "widget": { "name": "cfg" - } + }, + "link": 13970 }, { + "localized_name": "tile_width", "name": "tile_width", "type": "INT", - "link": 14, "widget": { "name": "tile_width" - } + }, + "link": 13971 }, { + "localized_name": "tile_height", "name": "tile_height", "type": "INT", - "link": 5, "widget": { "name": "tile_height" - } + }, + "link": 13972 }, { + "localized_name": "overlap_frac", "name": "overlap_frac", "type": "FLOAT", - "link": 15, "widget": { "name": "overlap_frac" - } - }, - { - "name": "blend_var", - "type": "FLOAT", - "link": null, - "widget": { - "name": "blend_var" - } - }, - { - "name": "grid_cycle", - "type": "INT", - "link": null, - "widget": { - "name": "grid_cycle" - } + }, + "link": 13973 }, { + "localized_name": "tile_frames", "name": "tile_frames", "type": "INT", - "link": 16, "widget": { "name": "tile_frames" - } - }, - { - "name": "vae", - "type": "VAE", - "link": 6 + }, + "link": 13974 } ], "outputs": [ { + "localized_name": "output", "name": "output", "type": "LATENT", "links": [ - 8 + 13977 ] } ], @@ -5373,7 +5643,7 @@ "widgets_values": [ 42, "fixed", - 1.0, + 1, 1024, 576, 0.5, @@ -5381,46 +5651,53 @@ 1, 97, "auto" - ] + ], + "widgets_values_named": { + "seed": 42, + "control_after_generate": "fixed", + "cfg": 1, + "tile_width": 1024, + "tile_height": 576, + "overlap_frac": 0.5, + "blend_var": 0.05, + "grid_cycle": 1, + "tile_frames": 97, + "canvas_device": "auto" + } }, { - "id": 9101, + "id": 9316, "type": "RepeatLatentBatch", "pos": [ 1329.9463328320699, - 184.0 + 184 ], "size": [ - 210.0, - 60.0 + 210, + 60 ], "flags": {}, - "order": 10, + "order": 4, "mode": 0, "inputs": [ { + "localized_name": "samples", "name": "samples", "type": "LATENT", - "link": 9 - }, - { - "name": "amount", - "type": "INT", - "widget": { - "name": "amount" - }, - "link": null + "link": 13978 } ], "outputs": [ { + "localized_name": "LATENT", "name": "LATENT", "type": "LATENT", "links": [ - 17 + 13979 ] } ], + "title": "Pass audio latent", "properties": { "Node name for S&R": "RepeatLatentBatch", "cnr_id": "comfy-core" @@ -5428,7 +5705,9 @@ "widgets_values": [ 1 ], - "title": "Pass audio latent" + "widgets_values_named": { + "amount": 1 + } } ], "groups": [ @@ -5436,10 +5715,10 @@ "id": 147, "title": "Generate", "bounding": [ - 306.0, - 36.0, + 306, + 36, 1257.9463328320699, - 602.0 + 602 ], "color": "#b58b2a", "flags": {} @@ -5447,40 +5726,40 @@ ], "links": [ { - "id": 1, + "id": 13964, "origin_id": -10, "origin_slot": 0, "target_id": 9100, "target_slot": 0, "type": "MODEL", - "parentId": 9001 + "parentId": 9047 }, { - "id": 2, + "id": 13965, "origin_id": -10, "origin_slot": 1, "target_id": 9100, "target_slot": 1, "type": "CONDITIONING", - "parentId": 9003 + "parentId": 9049 }, { - "id": 3, + "id": 13966, "origin_id": -10, "origin_slot": 2, "target_id": 9100, "target_slot": 2, "type": "CONDITIONING", - "parentId": 9005 + "parentId": 9051 }, { - "id": 10, + "id": 13967, "origin_id": -10, "origin_slot": 3, "target_id": 9100, "target_slot": 3, "type": "LATENT", - "parentId": 9007 + "parentId": 9053 }, { "id": 11, @@ -5491,7 +5770,7 @@ "type": "SIGMAS" }, { - "id": 12, + "id": 13968, "origin_id": 4831, "origin_slot": 0, "target_id": 9100, @@ -5499,70 +5778,7 @@ "type": "SAMPLER" }, { - "id": 4, - "origin_id": -10, - "origin_slot": 4, - "target_id": 9100, - "target_slot": 6, - "type": "INT", - "parentId": 9009 - }, - { - "id": 13, - "origin_id": -10, - "origin_slot": 5, - "target_id": 9100, - "target_slot": 7, - "type": "FLOAT", - "parentId": 9011 - }, - { - "id": 14, - "origin_id": -10, - "origin_slot": 7, - "target_id": 9100, - "target_slot": 8, - "type": "INT", - "parentId": 9013 - }, - { - "id": 5, - "origin_id": -10, - "origin_slot": 8, - "target_id": 9100, - "target_slot": 9, - "type": "INT", - "parentId": 9015 - }, - { - "id": 15, - "origin_id": -10, - "origin_slot": 9, - "target_id": 9100, - "target_slot": 10, - "type": "FLOAT", - "parentId": 9017 - }, - { - "id": 16, - "origin_id": -10, - "origin_slot": 10, - "target_id": 9100, - "target_slot": 13, - "type": "INT", - "parentId": 9019 - }, - { - "id": 6, - "origin_id": -10, - "origin_slot": 11, - "target_id": 9100, - "target_slot": 14, - "type": "VAE", - "parentId": 9021 - }, - { - "id": 7, + "id": 13976, "origin_id": -10, "origin_slot": 6, "target_id": 4831, @@ -5570,846 +5786,367 @@ "type": "COMBO" }, { - "id": 8, + "id": 13977, "origin_id": 9100, "origin_slot": 0, "target_id": -20, "target_slot": 0, "type": "LATENT", - "parentId": 9023 + "parentId": 9069 }, { - "id": 9, + "id": 13978, "origin_id": -10, "origin_slot": 12, - "target_id": 9101, + "target_id": 9316, "target_slot": 0, "type": "LATENT", - "parentId": 9025 + "parentId": 9071 }, { - "id": 17, - "origin_id": 9101, + "id": 13979, + "origin_id": 9316, "origin_slot": 0, "target_id": -20, "target_slot": 1, "type": "LATENT" - } - ], - "reroutes": [ - { - "id": 9000, - "pos": [ - 268.0, - 654.0 - ], - "linkIds": [ - 1 - ] }, { - "id": 9001, - "parentId": 9000, - "pos": [ - 891.9463328320699, - 654.0 - ], - "linkIds": [ - 1 - ] - }, - { - "id": 9002, - "pos": [ - 268.0, - 672.0 - ], - "linkIds": [ - 2 - ] - }, - { - "id": 9003, - "parentId": 9002, - "pos": [ - 891.9463328320699, - 672.0 - ], - "linkIds": [ - 2 - ] - }, - { - "id": 9004, - "pos": [ - 268.0, - 690.0 - ], - "linkIds": [ - 3 - ] - }, - { - "id": 9005, - "parentId": 9004, - "pos": [ - 891.9463328320699, - 690.0 - ], - "linkIds": [ - 3 - ] - }, - { - "id": 9006, - "pos": [ - 268.0, - 708.0 - ], - "linkIds": [ - 10 - ] - }, - { - "id": 9007, - "parentId": 9006, - "pos": [ - 891.9463328320699, - 708.0 - ], - "linkIds": [ - 10 - ] - }, - { - "id": 9008, - "pos": [ - 268.0, - 726.0 - ], - "linkIds": [ - 4 - ] - }, - { - "id": 9009, - "parentId": 9008, - "pos": [ - 891.9463328320699, - 726.0 - ], - "linkIds": [ - 4 - ] - }, - { - "id": 9010, - "pos": [ - 268.0, - 744.0 - ], - "linkIds": [ - 13 - ] - }, - { - "id": 9011, - "parentId": 9010, - "pos": [ - 891.9463328320699, - 744.0 - ], - "linkIds": [ - 13 - ] - }, - { - "id": 9012, - "pos": [ - 268.0, - 762.0 - ], - "linkIds": [ - 14 - ] - }, - { - "id": 9013, - "parentId": 9012, - "pos": [ - 891.9463328320699, - 762.0 - ], - "linkIds": [ - 14 - ] - }, - { - "id": 9014, - "pos": [ - 268.0, - 780.0 - ], - "linkIds": [ - 5 - ] - }, - { - "id": 9015, - "parentId": 9014, - "pos": [ - 891.9463328320699, - 780.0 - ], - "linkIds": [ - 5 - ] - }, - { - "id": 9016, - "pos": [ - 268.0, - 798.0 - ], - "linkIds": [ - 15 - ] - }, - { - "id": 9017, - "parentId": 9016, - "pos": [ - 891.9463328320699, - 798.0 - ], - "linkIds": [ - 15 - ] - }, - { - "id": 9018, - "pos": [ - 268.0, - 816.0 - ], - "linkIds": [ - 16 - ] - }, - { - "id": 9019, - "parentId": 9018, - "pos": [ - 891.9463328320699, - 816.0 - ], - "linkIds": [ - 16 - ] - }, - { - "id": 9020, - "pos": [ - 268.0, - 834.0 - ], - "linkIds": [ - 6 - ] - }, - { - "id": 9021, - "parentId": 9020, - "pos": [ - 891.9463328320699, - 834.0 - ], - "linkIds": [ - 6 - ] - }, - { - "id": 9022, - "pos": [ - 1267.9463328320699, - 852.0 - ], - "linkIds": [ - 8 - ] - }, - { - "id": 9023, - "parentId": 9022, - "pos": [ - 1601.9463328320699, - 852.0 - ], - "linkIds": [ - 8 - ] - }, - { - "id": 9024, - "pos": [ - 268.0, - 870.0 - ], - "linkIds": [ - 9 - ] - }, - { - "id": 9025, - "parentId": 9024, - "pos": [ - 1311.9463328320699, - 870.0 - ], - "linkIds": [ - 9 - ] - } - ], - "extra": {} - }, - { - "id": "bee43e38-9234-4e41-86ff-63874164f482", - "version": 1, - "state": { - "lastGroupId": 158, - "lastNodeId": 9008, - "lastLinkId": 13739, - "lastRerouteId": 9004 - }, - "revision": 0, - "config": {}, - "name": "Decode", - "inputNode": { - "id": -10, - "bounding": [ - 40.0, - 80.0, - 210.0, - 270.0 - ] - }, - "outputNode": { - "id": -20, - "bounding": [ - 1030.0, - 80.0, - 190.0, - 72.0 - ] - }, - "inputs": [ - { - "id": "423bde19-2ce0-4154-ad35-5ea07a466994", - "name": "vae", - "type": "VAE", - "linkIds": [ - 13710 - ], - "localized_name": "vae", - "pos": [ - 250.0, - 108.0 - ] - }, - { - "id": "0f5c908f-a20b-4bde-b4aa-7964626668ca", - "name": "latents", - "type": "LATENT", - "linkIds": [ - 13711 - ], - "localized_name": "latents", - "label": "video_latent", - "pos": [ - 250.0, - 130.0 - ] - }, - { - "id": "3a7f5609-1830-4ac6-a4ed-b1ed95661dea", - "name": "samples", - "type": "LATENT", - "linkIds": [ - 13669 - ], - "localized_name": "samples", - "label": "audio_latent", - "pos": [ - 250.0, - 152.0 - ] - }, - { - "id": "d7417024-88ba-4d63-ab40-2bdd6789ac59", - "name": "audio_vae", - "type": "VAE", - "linkIds": [ - 13429 - ], - "localized_name": "audio_vae", - "pos": [ - 250.0, - 174.0 - ] - }, - { - "id": "135318cf-13a1-46df-9dc6-10c814fe4a3b", - "name": "fps", - "type": "FLOAT", - "linkIds": [ - 13475 - ], - "localized_name": "fps", - "pos": [ - 250.0, - 196.0 - ] - }, - { - "id": "baced759-c6b8-45b2-a6cd-d606cbd5bc4b", - "name": "bit_depth", - "type": "INT", - "linkIds": [ - 13699 - ], - "pos": [ - 250.0, - 218.0 - ] - }, - { - "id": "425f98fa-15bb-4a5a-82d3-81beb7e73a19", - "name": "tile_size", - "type": "INT", - "linkIds": [ - 13736 - ], - "pos": [ - 250.0, - 240.0 - ] - }, - { - "id": "6d49eb2c-deaa-4163-b4dc-230e2bcd51aa", - "name": "overlap", - "type": "INT", - "linkIds": [ - 13737 - ], - "pos": [ - 250.0, - 262.0 - ] - }, - { - "id": "f4fb2fb3-137b-4274-b5f3-5d08cb1f82fc", - "name": "temporal_size", - "type": "INT", - "linkIds": [ - 13738 - ], - "pos": [ - 250.0, - 284.0 - ] - }, - { - "id": "702f5a10-9a13-4e8a-9cc8-244b5f8ba7aa", - "name": "temporal_overlap", - "type": "INT", - "linkIds": [ - 13739 - ], - "pos": [ - 250.0, - 306.0 - ] - } - ], - "outputs": [ - { - "id": "dc6707aa-e87d-4616-a4e6-84471c015b6b", - "name": "VIDEO", - "type": "VIDEO", - "linkIds": [ - 13112 - ], - "localized_name": "VIDEO", - "pos": [ - 1030.0, - 108.0 - ] - } - ], - "widgets": [], - "nodes": [ - { - "id": 4848, - "type": "LTXVAudioVAEDecode", - "pos": [ - 330.0, - 80.0 - ], - "size": [ - 270.0, - 46.0 - ], - "flags": {}, - "order": 0, - "mode": 0, - "inputs": [ - { - "localized_name": "samples", - "name": "samples", - "type": "LATENT", - "link": 13669 - }, - { - "localized_name": "audio_vae", - "name": "audio_vae", - "type": "VAE", - "link": 13429 - } - ], - "outputs": [ - { - "localized_name": "Audio", - "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": [ - 680.0, - 80.0 - ], - "size": [ - 270.0, - 102.0 - ], - "flags": {}, - "order": 1, - "mode": 0, - "inputs": [ - { - "localized_name": "images", - "name": "images", - "type": "IMAGE", - "link": 13712 - }, - { - "localized_name": "audio", - "name": "audio", - "shape": 7, - "type": "AUDIO", - "link": 13108 - }, - { - "localized_name": "fps", - "name": "fps", - "type": "FLOAT", - "widget": { - "name": "fps" - }, - "link": 13475 - }, - { - "localized_name": "bit_depth", - "name": "bit_depth", - "shape": 7, - "type": "INT", - "widget": { - "name": "bit_depth" - }, - "link": 13699 - } - ], - "outputs": [ - { - "localized_name": "VIDEO", - "name": "VIDEO", - "type": "VIDEO", - "links": [ - 13112 - ] - } - ], - "properties": { - "Node name for S&R": "CreateVideo", - "cnr_id": "comfy-core", - "ver": "0.14.1" - }, - "widgets_values": [ - 30, - 8 - ] - }, - { - "id": 5538, - "type": "VAEDecodeTiled", - "pos": [ - 330.0, - 166.0 - ], - "size": [ - 270.0, - 150.0 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [ - { - "localized_name": "samples", - "name": "samples", - "type": "LATENT", - "link": 13711 - }, - { - "localized_name": "vae", - "name": "vae", - "type": "VAE", - "link": 13710 - }, - { - "localized_name": "tile_size", - "name": "tile_size", - "type": "INT", - "widget": { - "name": "tile_size" - }, - "link": 13736 - }, - { - "localized_name": "overlap", - "name": "overlap", - "type": "INT", - "widget": { - "name": "overlap" - }, - "link": 13737 - }, - { - "localized_name": "temporal_size", - "name": "temporal_size", - "type": "INT", - "widget": { - "name": "temporal_size" - }, - "link": 13738 - }, - { - "localized_name": "temporal_overlap", - "name": "temporal_overlap", - "type": "INT", - "widget": { - "name": "temporal_overlap" - }, - "link": 13739 - } - ], - "outputs": [ - { - "localized_name": "IMAGE", - "name": "IMAGE", - "type": "IMAGE", - "links": [ - 13712 - ] - } - ], - "properties": { - "Node name for S&R": "VAEDecodeTiled" - }, - "widgets_values": [ - 512, - 64, - 128, - 32 - ] - } - ], - "groups": [ - { - "id": 150, - "title": "Decode", - "bounding": [ - 306.0, - 36.0, - 668.0, - 304.0 - ], - "color": "#b58b2a", - "flags": {} - } - ], - "links": [ - { - "id": 13108, - "origin_id": 4848, - "origin_slot": 0, - "target_id": 4849, - "target_slot": 1, - "type": "AUDIO" - }, - { - "id": 13669, - "origin_id": -10, - "origin_slot": 2, - "target_id": 4848, - "target_slot": 0, - "type": "LATENT" - }, - { - "id": 13429, - "origin_id": -10, - "origin_slot": 3, - "target_id": 4848, - "target_slot": 1, - "type": "VAE" - }, - { - "id": 13475, + "id": 13969, "origin_id": -10, "origin_slot": 4, - "target_id": 4849, - "target_slot": 2, - "type": "FLOAT", - "parentId": 9001 + "target_id": 9100, + "target_slot": 7, + "type": "INT", + "parentId": 9055 }, { - "id": 13112, - "origin_id": 4849, - "origin_slot": 0, - "target_id": -20, - "target_slot": 0, - "type": "VIDEO" - }, - { - "id": 13699, + "id": 13970, "origin_id": -10, "origin_slot": 5, - "target_id": 4849, - "target_slot": 3, - "type": "INT", - "parentId": 9003 + "target_id": 9100, + "target_slot": 8, + "type": "FLOAT", + "parentId": 9057 }, { - "id": 13710, - "origin_id": -10, - "origin_slot": 0, - "target_id": 5538, - "target_slot": 1, - "type": "VAE" - }, - { - "id": 13711, - "origin_id": -10, - "origin_slot": 1, - "target_id": 5538, - "target_slot": 0, - "type": "LATENT" - }, - { - "id": 13712, - "origin_id": 5538, - "origin_slot": 0, - "target_id": 4849, - "target_slot": 0, - "type": "IMAGE" - }, - { - "id": 13736, - "origin_id": -10, - "origin_slot": 6, - "target_id": 5538, - "target_slot": 2, - "type": "INT" - }, - { - "id": 13737, + "id": 13971, "origin_id": -10, "origin_slot": 7, - "target_id": 5538, - "target_slot": 3, - "type": "INT" + "target_id": 9100, + "target_slot": 9, + "type": "INT", + "parentId": 9059 }, { - "id": 13738, + "id": 13972, "origin_id": -10, "origin_slot": 8, - "target_id": 5538, - "target_slot": 4, - "type": "INT" + "target_id": 9100, + "target_slot": 10, + "type": "INT", + "parentId": 9061 }, { - "id": 13739, + "id": 13973, "origin_id": -10, "origin_slot": 9, - "target_id": 5538, - "target_slot": 5, - "type": "INT" + "target_id": 9100, + "target_slot": 11, + "type": "FLOAT", + "parentId": 9063 + }, + { + "id": 13975, + "origin_id": -10, + "origin_slot": 11, + "target_id": 9100, + "target_slot": 6, + "type": "VAE", + "parentId": 9067 + }, + { + "id": 13974, + "origin_id": -10, + "origin_slot": 10, + "target_id": 9100, + "target_slot": 12, + "type": "INT", + "parentId": 9065 } ], "reroutes": [ { - "id": 9000, + "id": 9046, "pos": [ - 268.0, - 390.0 + 268, + 654 ], "linkIds": [ - 13475 + 13964 ] }, { - "id": 9001, - "parentId": 9000, + "id": 9047, + "parentId": 9046, "pos": [ - 662.0, - 390.0 + 891.9463328320699, + 654 ], "linkIds": [ - 13475 + 13964 ] }, { - "id": 9002, + "id": 9048, "pos": [ - 268.0, - 408.0 + 268, + 672 ], "linkIds": [ - 13699 + 13965 ] }, { - "id": 9003, - "parentId": 9002, + "id": 9049, + "parentId": 9048, "pos": [ - 662.0, - 408.0 + 891.9463328320699, + 672 ], "linkIds": [ - 13699 + 13965 + ] + }, + { + "id": 9050, + "pos": [ + 268, + 690 + ], + "linkIds": [ + 13966 + ] + }, + { + "id": 9051, + "parentId": 9050, + "pos": [ + 891.9463328320699, + 690 + ], + "linkIds": [ + 13966 + ] + }, + { + "id": 9052, + "pos": [ + 268, + 708 + ], + "linkIds": [ + 13967 + ] + }, + { + "id": 9053, + "parentId": 9052, + "pos": [ + 891.9463328320699, + 708 + ], + "linkIds": [ + 13967 + ] + }, + { + "id": 9054, + "pos": [ + 268, + 726 + ], + "linkIds": [ + 13969 + ] + }, + { + "id": 9055, + "parentId": 9054, + "pos": [ + 891.9463328320699, + 726 + ], + "linkIds": [ + 13969 + ] + }, + { + "id": 9056, + "pos": [ + 268, + 744 + ], + "linkIds": [ + 13970 + ] + }, + { + "id": 9057, + "parentId": 9056, + "pos": [ + 891.9463328320699, + 744 + ], + "linkIds": [ + 13970 + ] + }, + { + "id": 9058, + "pos": [ + 268, + 762 + ], + "linkIds": [ + 13971 + ] + }, + { + "id": 9059, + "parentId": 9058, + "pos": [ + 891.9463328320699, + 762 + ], + "linkIds": [ + 13971 + ] + }, + { + "id": 9060, + "pos": [ + 268, + 780 + ], + "linkIds": [ + 13972 + ] + }, + { + "id": 9061, + "parentId": 9060, + "pos": [ + 891.9463328320699, + 780 + ], + "linkIds": [ + 13972 + ] + }, + { + "id": 9062, + "pos": [ + 268, + 798 + ], + "linkIds": [ + 13973 + ] + }, + { + "id": 9063, + "parentId": 9062, + "pos": [ + 891.9463328320699, + 798 + ], + "linkIds": [ + 13973 + ] + }, + { + "id": 9064, + "pos": [ + 268, + 816 + ], + "linkIds": [ + 13974 + ] + }, + { + "id": 9065, + "parentId": 9064, + "pos": [ + 891.9463328320699, + 816 + ], + "linkIds": [ + 13974 + ] + }, + { + "id": 9066, + "pos": [ + 268, + 834 + ], + "linkIds": [ + 13975 + ] + }, + { + "id": 9067, + "parentId": 9066, + "pos": [ + 891.9463328320699, + 834 + ], + "linkIds": [ + 13975 + ] + }, + { + "id": 9068, + "pos": [ + 1267.9463328320699, + 852 + ], + "linkIds": [ + 13977 + ] + }, + { + "id": 9069, + "parentId": 9068, + "pos": [ + 1601.9463328320699, + 852 + ], + "linkIds": [ + 13977 + ] + }, + { + "id": 9070, + "pos": [ + 268, + 870 + ], + "linkIds": [ + 13978 + ] + }, + { + "id": 9071, + "parentId": 9070, + "pos": [ + 1311.9463328320699, + 870 + ], + "linkIds": [ + 13978 ] } ], @@ -6419,10 +6156,10 @@ "id": "c4a8f261-5b93-4e17-8d2a-6f01b3e97c45", "version": 1, "state": { - "lastGroupId": 158, - "lastNodeId": 9015, - "lastLinkId": 21, - "lastRerouteId": 9008 + "lastGroupId": 164, + "lastNodeId": 9328, + "lastLinkId": 14044, + "lastRerouteId": 9185 }, "revision": 0, "config": {}, @@ -6430,19 +6167,19 @@ "inputNode": { "id": -10, "bounding": [ - 20.0, - 206.0, - 220.0, - 120.0 + 20, + 206, + 128, + 108 ] }, "outputNode": { "id": -20, "bounding": [ - 900.0, - 206.0, - 190.0, - 180.0 + 1162.061214319691, + 230.10377271278438, + 128, + 147.99999999999997 ] }, "inputs": [ @@ -6451,11 +6188,11 @@ "name": "image", "type": "IMAGE", "linkIds": [ - 1 + 13980 ], "pos": [ - 240.0, - 234.0 + 124, + 230 ] }, { @@ -6463,13 +6200,13 @@ "name": "fps", "type": "FLOAT", "linkIds": [ - 16, - 19 + 13985, + 13988 ], "label": "fps", "pos": [ - 240.0, - 256.0 + 124, + 250 ] }, { @@ -6477,12 +6214,12 @@ "name": "duration", "type": "FLOAT", "linkIds": [ - 20 + 13989 ], "label": "duration", "pos": [ - 240.0, - 278.0 + 124, + 270 ] } ], @@ -6492,11 +6229,11 @@ "name": "image", "type": "IMAGE", "linkIds": [ - 17 + 13986 ], "pos": [ - 900.0, - 234.0 + 1186.061214319691, + 254.10377271278438 ] }, { @@ -6504,11 +6241,11 @@ "name": "width", "type": "INT", "linkIds": [ - 13 + 13982 ], "pos": [ - 900.0, - 256.0 + 1186.061214319691, + 274.10377271278435 ] }, { @@ -6516,11 +6253,11 @@ "name": "height", "type": "INT", "linkIds": [ - 14 + 13983 ], "pos": [ - 900.0, - 278.0 + 1186.061214319691, + 294.10377271278435 ] }, { @@ -6528,11 +6265,11 @@ "name": "length", "type": "INT", "linkIds": [ - 15 + 13984 ], "pos": [ - 900.0, - 300.0 + 1186.061214319691, + 314.10377271278435 ] }, { @@ -6540,11 +6277,11 @@ "name": "fps", "type": "FLOAT", "linkIds": [ - 18 + 13987 ], "pos": [ - 900.0, - 322.0 + 1186.061214319691, + 334.10377271278435 ] } ], @@ -6554,22 +6291,22 @@ "id": 5029, "type": "GetImageSize", "pos": [ - 620.0, - 206.0 + 767.8321645467729, + 130.84534138078226 ], "size": [ - 210.0, - 136.0 + 210, + 136 ], "flags": {}, - "order": 2, + "order": 1, "mode": 0, "inputs": [ { "localized_name": "image", "name": "image", "type": "IMAGE", - "link": 2 + "link": 13981 } ], "outputs": [ @@ -6578,7 +6315,7 @@ "name": "width", "type": "INT", "links": [ - 13 + 13982 ] }, { @@ -6586,7 +6323,7 @@ "name": "height", "type": "INT", "links": [ - 14 + 13983 ] }, { @@ -6594,7 +6331,7 @@ "name": "batch_size", "type": "INT", "links": [ - 15 + 13984 ] } ], @@ -6602,30 +6339,32 @@ "Node name for S&R": "GetImageSize", "cnr_id": "comfy-core", "ver": "0.16.0" - }, - "widgets_values": [] + } }, { "id": 9001, "type": "MarkdownNote", "pos": [ - 330.0, - 80.0 + 420.60634729300733, + -73.99991574137597 ], "size": [ - 396.0, - 110.0 + 396, + 110 ], "flags": {}, "order": 0, "mode": 0, "inputs": [], "outputs": [], - "title": "Source HDR \u2192 guide frames", + "title": "Source HDR → guide frames", "properties": {}, "widgets_values": [ - "## Source HDR\n\nEXR still (ACEScct) is repeated to `1 + floor(fps \u00d7 duration / 8) \u00d7 8` frames. Size and frame count go into **Preprocess**.\n" + "## Source HDR\n\nEXR still (ACEScct) is repeated to `1 + floor(fps × duration / 8) × 8` frames. Size and frame count go into **Preprocess**.\n" ], + "widgets_values_named": { + "text": "## Source HDR\n\nEXR still (ACEScct) is repeated to `1 + floor(fps × duration / 8) × 8` frames. Size and frame count go into **Preprocess**.\n" + }, "color": "#432", "bgcolor": "#653" }, @@ -6633,21 +6372,21 @@ "id": 9013, "type": "Reroute", "pos": [ - 620.0, - 360.0 + 732.7571184633797, + 393.58875446839596 ], "size": [ - 75.0, - 26.0 + 75, + 26 ], "flags": {}, - "order": 5, + "order": 2, "mode": 0, "inputs": [ { "name": "", "type": "FLOAT", - "link": 16 + "link": 13985 } ], "outputs": [ @@ -6655,7 +6394,7 @@ "name": "", "type": "FLOAT", "links": [ - 18 + 13987 ] } ], @@ -6668,30 +6407,33 @@ "id": 9014, "type": "ComfyMathExpression", "pos": [ - 320.0, - 206.0 + 322.3981710116385, + 113.64169544100528 ], "size": [ - 260.0, - 120.0 + 283.4986328125, + 148 ], "flags": {}, - "order": 6, + "order": 3, "mode": 0, "inputs": [ { "label": "a", + "localized_name": "a", "name": "values.a", "type": "FLOAT,INT,BOOLEAN", - "link": 19 + "link": 13988 }, { + "localized_name": "b", "name": "values.b", "shape": 7, "type": "FLOAT,INT,BOOLEAN", - "link": 20 + "link": 13989 }, { + "localized_name": "c", "name": "values.c", "shape": 7, "type": "FLOAT,INT,BOOLEAN", @@ -6700,67 +6442,76 @@ ], "outputs": [ { + "localized_name": "FLOAT", "name": "FLOAT", "type": "FLOAT", "links": [] }, { + "localized_name": "INT", "name": "INT", "type": "INT", "links": [ - 21 + 13990 ] }, { + "localized_name": "BOOL", "name": "BOOL", "type": "BOOLEAN", "links": [] } ], - "title": "frames = 1 + floor(fps\u00d7duration/8)\u00d78", + "title": "frames = 1 + floor(fps×duration/8)×8", "properties": { "Node name for S&R": "ComfyMathExpression" }, "widgets_values": [ "1 + floor(a*b/8)*8" - ] + ], + "widgets_values_named": { + "expression": "1 + floor(a*b/8)*8" + } }, { "id": 9015, "type": "RepeatImageBatch", "pos": [ - 320.0, - 350.0 + 320, + 350 ], "size": [ - 260.0, - 78.0 + 260, + 78 ], "flags": {}, - "order": 7, + "order": 4, "mode": 0, "inputs": [ { + "localized_name": "image", "name": "image", "type": "IMAGE", - "link": 1 + "link": 13980 }, { + "localized_name": "amount", "name": "amount", "type": "INT", "widget": { "name": "amount" }, - "link": 21 + "link": 13990 } ], "outputs": [ { + "localized_name": "IMAGE", "name": "IMAGE", "type": "IMAGE", "links": [ - 2, - 17 + 13981, + 13986 ] } ], @@ -6770,26 +6521,16 @@ }, "widgets_values": [ 1 - ] - } - ], - "groups": [ - { - "id": 1, - "title": "Source HDR", - "bounding": [ - 280.0, - 36.0, - 780.0, - 430.0 ], - "color": "#3f789e", - "flags": {} + "widgets_values_named": { + "amount": 1 + } } ], + "groups": [], "links": [ { - "id": 1, + "id": 13980, "origin_id": -10, "origin_slot": 0, "target_id": 9015, @@ -6797,7 +6538,7 @@ "type": "IMAGE" }, { - "id": 2, + "id": 13981, "origin_id": 9015, "origin_slot": 0, "target_id": 5029, @@ -6805,7 +6546,7 @@ "type": "IMAGE" }, { - "id": 13, + "id": 13982, "origin_id": 5029, "origin_slot": 0, "target_id": -20, @@ -6813,7 +6554,7 @@ "type": "INT" }, { - "id": 14, + "id": 13983, "origin_id": 5029, "origin_slot": 1, "target_id": -20, @@ -6821,7 +6562,7 @@ "type": "INT" }, { - "id": 15, + "id": 13984, "origin_id": 5029, "origin_slot": 2, "target_id": -20, @@ -6829,7 +6570,7 @@ "type": "INT" }, { - "id": 16, + "id": 13985, "origin_id": -10, "origin_slot": 1, "target_id": 9013, @@ -6837,7 +6578,7 @@ "type": "FLOAT" }, { - "id": 17, + "id": 13986, "origin_id": 9015, "origin_slot": 0, "target_id": -20, @@ -6845,7 +6586,7 @@ "type": "IMAGE" }, { - "id": 18, + "id": 13987, "origin_id": 9013, "origin_slot": 0, "target_id": -20, @@ -6853,7 +6594,15 @@ "type": "FLOAT" }, { - "id": 19, + "id": 13990, + "origin_id": 9014, + "origin_slot": 1, + "target_id": 9015, + "target_slot": 1, + "type": "INT" + }, + { + "id": 13988, "origin_id": -10, "origin_slot": 1, "target_id": 9014, @@ -6861,33 +6610,24 @@ "type": "FLOAT,INT,BOOLEAN" }, { - "id": 20, + "id": 13989, "origin_id": -10, "origin_slot": 2, "target_id": 9014, "target_slot": 1, "type": "FLOAT,INT,BOOLEAN" - }, - { - "id": 21, - "origin_id": 9014, - "origin_slot": 1, - "target_id": 9015, - "target_slot": 1, - "type": "INT" } ], - "reroutes": [], "extra": {} }, { "id": "d92e6f38-7a14-4c85-b3e0-9f52a1d68b74", "version": 1, "state": { - "lastGroupId": 158, - "lastNodeId": 9210, - "lastLinkId": 80, - "lastRerouteId": 9032 + "lastGroupId": 164, + "lastNodeId": 9328, + "lastLinkId": 14044, + "lastRerouteId": 9185 }, "revision": 0, "config": {}, @@ -6895,19 +6635,19 @@ "inputNode": { "id": -10, "bounding": [ - 40.0, - 80.0, - 210.0, - 314.0 + 40, + 80, + 210, + 314 ] }, "outputNode": { "id": -20, "bounding": [ 1470.3296239903766, - 80.0, - 190.0, - 314.0 + 80, + 190, + 314 ] }, "inputs": [ @@ -6916,12 +6656,12 @@ "name": "positive", "type": "CONDITIONING", "linkIds": [ - 8 + 13993 ], "label": "positive", "pos": [ - 250.0, - 108.0 + 250, + 108 ] }, { @@ -6929,12 +6669,12 @@ "name": "negative", "type": "CONDITIONING", "linkIds": [ - 9 + 13994 ], "label": "negative", "pos": [ - 250.0, - 130.0 + 250, + 130 ] }, { @@ -6942,12 +6682,12 @@ "name": "vae", "type": "VAE", "linkIds": [ - 11 + 13995 ], "label": "vae", "pos": [ - 250.0, - 152.0 + 250, + 152 ] }, { @@ -6959,8 +6699,8 @@ ], "label": "audio_vae", "pos": [ - 250.0, - 174.0 + 250, + 174 ] }, { @@ -6968,12 +6708,12 @@ "name": "latent_downscale_factor", "type": "FLOAT", "linkIds": [ - 15 + 13996 ], "label": "latent_downscale_factor", "pos": [ - 250.0, - 196.0 + 250, + 196 ] }, { @@ -6986,8 +6726,8 @@ ], "label": "source_image", "pos": [ - 250.0, - 218.0 + 250, + 218 ] }, { @@ -6996,12 +6736,13 @@ "type": "INT", "linkIds": [ 61, - 19 + 14002, + 79 ], "label": "length", "pos": [ - 250.0, - 240.0 + 250, + 240 ] }, { @@ -7009,12 +6750,13 @@ "name": "fps", "type": "FLOAT", "linkIds": [ - 21 + 13997, + 80 ], "label": "fps", "pos": [ - 250.0, - 262.0 + 250, + 262 ] }, { @@ -7023,11 +6765,11 @@ "type": "AUDIO", "linkIds": [], "label": "audio", + "shape": 7, "pos": [ - 250.0, - 284.0 - ], - "shape": 7 + 250, + 284 + ] }, { "id": "d92e6f38-in-tile_size-70917bdf", @@ -7038,8 +6780,8 @@ ], "label": "tile_size", "pos": [ - 250.0, - 306.0 + 250, + 306 ] }, { @@ -7051,8 +6793,8 @@ ], "label": "initial_canvas_size", "pos": [ - 250.0, - 328.0 + 250, + 328 ] }, { @@ -7064,8 +6806,8 @@ ], "label": "output_size", "pos": [ - 250.0, - 350.0 + 250, + 350 ] } ], @@ -7080,7 +6822,7 @@ "label": "positive", "pos": [ 1470.3296239903766, - 108.0 + 108 ] }, { @@ -7093,7 +6835,7 @@ "label": "negative", "pos": [ 1470.3296239903766, - 130.0 + 130 ] }, { @@ -7106,7 +6848,7 @@ "label": "latent", "pos": [ 1470.3296239903766, - 152.0 + 152 ] }, { @@ -7114,12 +6856,12 @@ "name": "frozen_audio", "type": "LATENT", "linkIds": [ - 2 + 13998 ], "label": "frozen_audio", "pos": [ 1470.3296239903766, - 174.0 + 174 ] }, { @@ -7132,7 +6874,7 @@ "label": "tile_width", "pos": [ 1470.3296239903766, - 196.0 + 196 ] }, { @@ -7145,7 +6887,7 @@ "label": "tile_height", "pos": [ 1470.3296239903766, - 218.0 + 218 ] }, { @@ -7158,7 +6900,7 @@ "label": "overlap_frac", "pos": [ 1470.3296239903766, - 240.0 + 240 ] }, { @@ -7171,7 +6913,7 @@ "label": "tile_frames", "pos": [ 1470.3296239903766, - 262.0 + 262 ] }, { @@ -7184,7 +6926,7 @@ "label": "output_width", "pos": [ 1470.3296239903766, - 284.0 + 284 ] }, { @@ -7197,7 +6939,7 @@ "label": "output_height", "pos": [ 1470.3296239903766, - 306.0 + 306 ] }, { @@ -7210,7 +6952,7 @@ "label": "is_8k", "pos": [ 1470.3296239903766, - 328.0 + 328 ] }, { @@ -7223,7 +6965,7 @@ "label": "summary", "pos": [ 1470.3296239903766, - 350.0 + 350 ] } ], @@ -7233,35 +6975,26 @@ "id": 9200, "type": "LTXVGetTilingSizes", "pos": [ - 330.0, - 80.0 + 330, + 80 ], "size": [ - 270.0, - 400.0 + 270, + 450 ], "flags": {}, - "order": 0, + "order": 4, "mode": 0, - "title": "Get Tiling Sizes", "inputs": [ { - "name": "width", - "type": "INT", - "widget": { - "name": "width" - }, - "link": null - }, - { - "name": "height", - "type": "INT", - "widget": { - "name": "height" - }, - "link": null + "localized_name": "image", + "name": "image", + "shape": 7, + "type": "IMAGE", + "link": 53 }, { + "localized_name": "frame_count", "name": "frame_count", "type": "INT", "widget": { @@ -7270,6 +7003,7 @@ "link": 61 }, { + "localized_name": "tile_size", "name": "tile_size", "type": "COMBO", "widget": { @@ -7278,6 +7012,7 @@ "link": 50 }, { + "localized_name": "initial_canvas_size", "name": "initial_canvas_size", "type": "COMBO", "widget": { @@ -7286,22 +7021,18 @@ "link": 51 }, { + "localized_name": "output_size", "name": "output_size", "type": "COMBO", "widget": { "name": "output_size" }, "link": 52 - }, - { - "name": "image", - "type": "IMAGE", - "shape": 7, - "link": 53 } ], "outputs": [ { + "localized_name": "initial_canvas_width", "name": "initial_canvas_width", "type": "INT", "links": [ @@ -7310,6 +7041,7 @@ ] }, { + "localized_name": "initial_canvas_height", "name": "initial_canvas_height", "type": "INT", "links": [ @@ -7318,6 +7050,7 @@ ] }, { + "localized_name": "tile_width", "name": "tile_width", "type": "INT", "links": [ @@ -7325,6 +7058,7 @@ ] }, { + "localized_name": "tile_height", "name": "tile_height", "type": "INT", "links": [ @@ -7332,6 +7066,7 @@ ] }, { + "localized_name": "output_width", "name": "output_width", "type": "INT", "links": [ @@ -7339,6 +7074,7 @@ ] }, { + "localized_name": "output_height", "name": "output_height", "type": "INT", "links": [ @@ -7346,6 +7082,7 @@ ] }, { + "localized_name": "overlap_frac", "name": "overlap_frac", "type": "FLOAT", "links": [ @@ -7353,14 +7090,16 @@ ] }, { + "localized_name": "tile_frames", "name": "tile_frames", "type": "INT", "links": [ - 7, - 75 + 75, + 14001 ] }, { + "localized_name": "is_8k", "name": "is_8k", "type": "BOOLEAN", "links": [ @@ -7368,6 +7107,7 @@ ] }, { + "localized_name": "summary", "name": "summary", "type": "STRING", "links": [ @@ -7375,6 +7115,7 @@ ] } ], + "title": "Get Tiling Sizes", "properties": { "Node name for S&R": "LTXVGetTilingSizes" }, @@ -7384,8 +7125,18 @@ 97, "FullHD", "FullHD", - "4K" + "4K", + "Queue prompt to preview tiling sizes." ], + "widgets_values_named": { + "width": 1920, + "height": 1080, + "frame_count": 97, + "tile_size": "FullHD", + "initial_canvas_size": "FullHD", + "output_size": "4K", + "tiling_preview": "Queue prompt to preview tiling sizes." + }, "color": "#232", "bgcolor": "#353" }, @@ -7393,28 +7144,28 @@ "id": 9005, "type": "LTXVConditioning", "pos": [ - 330.0, - 520.0 + 330, + 520 ], "size": [ 270.1809911778764, - 78.0 + 78 ], "flags": {}, - "order": 4, + "order": 2, "mode": 0, "inputs": [ { "localized_name": "positive", "name": "positive", "type": "CONDITIONING", - "link": 8 + "link": 13993 }, { "localized_name": "negative", "name": "negative", "type": "CONDITIONING", - "link": 9 + "link": 13994 }, { "localized_name": "frame_rate", @@ -7423,7 +7174,7 @@ "widget": { "name": "frame_rate" }, - "link": 21 + "link": 13997 } ], "outputs": [ @@ -7433,8 +7184,7 @@ "type": "CONDITIONING", "slot_index": 0, "links": [ - 4, - 29 + 13991 ] }, { @@ -7443,8 +7193,7 @@ "type": "CONDITIONING", "slot_index": 1, "links": [ - 5, - 30 + 13992 ] } ], @@ -7455,18 +7204,21 @@ }, "widgets_values": [ 24 - ] + ], + "widgets_values_named": { + "frame_rate": 24 + } }, { "id": 3059, "type": "EmptyLTXVLatentVideo", "pos": [ - 330.0, - 638.0 + 330, + 638 ], "size": [ 270.1809911778764, - 194.0 + 194 ], "flags": {}, "order": 0, @@ -7497,7 +7249,7 @@ "widget": { "name": "length" }, - "link": 19 + "link": 14002 } ], "outputs": [ @@ -7506,7 +7258,7 @@ "name": "LATENT", "type": "LATENT", "links": [ - 1 + 13999 ] } ], @@ -7520,38 +7272,37 @@ 544, 121, 1 - ] + ], + "widgets_values_named": { + "width": 960, + "height": 544, + "length": 121, + "batch_size": 1 + } }, { "id": 9201, "type": "ImageScale", "pos": [ 680.1809911778764, - 80.0 + 80 ], "size": [ - 313.0, - 200.0 + 313, + 200 ], "flags": {}, - "order": 1, + "order": 5, "mode": 0, - "title": "Resize guide to canvas", "inputs": [ { + "localized_name": "image", "name": "image", "type": "IMAGE", "link": 58 }, { - "name": "upscale_method", - "type": "COMBO", - "widget": { - "name": "upscale_method" - }, - "link": null - }, - { + "localized_name": "width", "name": "width", "type": "INT", "widget": { @@ -7560,24 +7311,18 @@ "link": 56 }, { + "localized_name": "height", "name": "height", "type": "INT", "widget": { "name": "height" }, "link": 57 - }, - { - "name": "crop", - "type": "COMBO", - "widget": { - "name": "crop" - }, - "link": null } ], "outputs": [ { + "localized_name": "IMAGE", "name": "IMAGE", "type": "IMAGE", "links": [ @@ -7585,61 +7330,68 @@ ] } ], + "title": "Resize guide to canvas", "properties": { "Node name for S&R": "ImageScale", "cnr_id": "comfy-core" }, "widgets_values": [ - "lanczos", + "bilinear", 1920, 1088, "disabled" - ] + ], + "widgets_values_named": { + "upscale_method": "bilinear", + "width": 1920, + "height": 1088, + "crop": "disabled" + } }, { "id": 5012, "type": "LTXAddVideoICLoRAGuide", "pos": [ 1073.4432958653765, - 80.0 + 80 ], "size": [ 316.886328125, - 282.0 + 330 ], "flags": {}, - "order": 3, + "order": 1, "mode": 0, "inputs": [ { "localized_name": "positive", "name": "positive", "type": "CONDITIONING", - "link": 4 + "link": 13991 }, { "localized_name": "negative", "name": "negative", "type": "CONDITIONING", - "link": 5 + "link": 13992 }, { "localized_name": "vae", "name": "vae", "type": "VAE", - "link": 11 + "link": 13995 }, { "localized_name": "latent", "name": "latent", "type": "LATENT", - "link": 1 + "link": 13999 }, { "localized_name": "image", "name": "image", "type": "IMAGE", - "link": 16 + "link": 14000 }, { "localized_name": "latent_downscale_factor", @@ -7648,23 +7400,17 @@ "widget": { "name": "latent_downscale_factor" }, - "link": 15 - }, - { - "name": "use_streaming", - "type": "BOOLEAN", - "widget": { - "name": "use_streaming" - }, - "link": null + "link": 13996 }, { + "localized_name": "tile_frames", "name": "tile_frames", + "shape": 7, "type": "INT", "widget": { "name": "tile_frames" }, - "link": 7 + "link": 14001 } ], "outputs": [ @@ -7706,21 +7452,32 @@ 64, true, 97 - ] + ], + "widgets_values_named": { + "frame_idx": 0, + "strength": 1, + "latent_downscale_factor": 1, + "crop": "disabled", + "use_tiled_encode": false, + "tile_size": 256, + "tile_overlap": 64, + "use_streaming": true, + "tile_frames": 97 + } }, { "id": 9007, "type": "LTXVEmptyLatentAudio", "pos": [ - 330.0, - 872.0 + 330, + 872 ], "size": [ 313.25, 118 ], "flags": {}, - "order": 5, + "order": 3, "mode": 0, "inputs": [ { @@ -7754,10 +7511,11 @@ "name": "Latent", "type": "LATENT", "links": [ - 2 + 13998 ] } ], + "title": "empty audio latent (native HDR)", "properties": { "Node name for S&R": "LTXVEmptyLatentAudio", "cnr_id": "comfy-core", @@ -7768,21 +7526,25 @@ 24, 1 ], - "title": "empty audio latent (native HDR)" + "widgets_values_named": { + "frames_number": 121, + "frame_rate": 24, + "batch_size": 1 + } }, { "id": 9210, "type": "LTXVPreprocess", "pos": [ 680.1809911778764, - 240.0 + 240 ], "size": [ 270, 74 ], "flags": {}, - "order": 8, + "order": 6, "mode": 0, "inputs": [ { @@ -7790,15 +7552,6 @@ "name": "image", "type": "IMAGE", "link": 78 - }, - { - "localized_name": "img_compression", - "name": "img_compression", - "type": "INT", - "widget": { - "name": "img_compression" - }, - "link": null } ], "outputs": [ @@ -7807,7 +7560,7 @@ "name": "output_image", "type": "IMAGE", "links": [ - 16 + 14000 ] } ], @@ -7818,18 +7571,21 @@ }, "widgets_values": [ 0 - ] + ], + "widgets_values_named": { + "img_compression": 0 + } } ], "groups": [ { - "id": 1, + "id": 160, "title": "Preprocess", "bounding": [ - 306.0, - 36.0, + 306, + 36, 1108.3296239903766, - 906.0 + 906 ], "color": "#3f789e", "flags": {} @@ -7837,25 +7593,25 @@ ], "links": [ { - "id": 4, + "id": 13991, "origin_id": 9005, "origin_slot": 0, "target_id": 5012, "target_slot": 0, "type": "CONDITIONING", - "parentId": 9001 + "parentId": 9077 }, { - "id": 5, + "id": 13992, "origin_id": 9005, "origin_slot": 1, "target_id": 5012, "target_slot": 1, "type": "CONDITIONING", - "parentId": 9003 + "parentId": 9079 }, { - "id": 8, + "id": 13993, "origin_id": -10, "origin_slot": 0, "target_id": 9005, @@ -7863,7 +7619,7 @@ "type": "CONDITIONING" }, { - "id": 9, + "id": 13994, "origin_id": -10, "origin_slot": 1, "target_id": 9005, @@ -7871,25 +7627,16 @@ "type": "CONDITIONING" }, { - "id": 11, + "id": 13995, "origin_id": -10, "origin_slot": 2, "target_id": 5012, "target_slot": 2, "type": "VAE", - "parentId": 9005 + "parentId": 9081 }, { - "id": 15, - "origin_id": -10, - "origin_slot": 4, - "target_id": 5012, - "target_slot": 5, - "type": "FLOAT", - "parentId": 9007 - }, - { - "id": 21, + "id": 13997, "origin_id": -10, "origin_slot": 7, "target_id": 9005, @@ -7929,62 +7676,22 @@ "type": "VAE" }, { - "id": 2, + "id": 13998, "origin_id": 9007, "origin_slot": 0, "target_id": -20, "target_slot": 3, "type": "LATENT", - "parentId": 9009 + "parentId": 9085 }, { - "id": 1, + "id": 13999, "origin_id": 3059, "origin_slot": 0, "target_id": 5012, "target_slot": 3, "type": "LATENT", - "parentId": 9011 - }, - { - "id": 50, - "origin_id": -10, - "origin_slot": 9, - "target_id": 9200, - "target_slot": 3, - "type": "COMBO" - }, - { - "id": 51, - "origin_id": -10, - "origin_slot": 10, - "target_id": 9200, - "target_slot": 4, - "type": "COMBO" - }, - { - "id": 52, - "origin_id": -10, - "origin_slot": 11, - "target_id": 9200, - "target_slot": 5, - "type": "COMBO" - }, - { - "id": 53, - "origin_id": -10, - "origin_slot": 5, - "target_id": 9200, - "target_slot": 6, - "type": "IMAGE" - }, - { - "id": 61, - "origin_id": -10, - "origin_slot": 6, - "target_id": 9200, - "target_slot": 2, - "type": "INT" + "parentId": 9087 }, { "id": 54, @@ -8002,22 +7709,6 @@ "target_slot": 1, "type": "INT" }, - { - "id": 56, - "origin_id": 9200, - "origin_slot": 0, - "target_id": 9201, - "target_slot": 2, - "type": "INT" - }, - { - "id": 57, - "origin_id": 9200, - "origin_slot": 1, - "target_id": 9201, - "target_slot": 3, - "type": "INT" - }, { "id": 58, "origin_id": -10, @@ -8025,10 +7716,10 @@ "target_id": 9201, "target_slot": 0, "type": "IMAGE", - "parentId": 9013 + "parentId": 9089 }, { - "id": 16, + "id": 14000, "origin_id": 9210, "origin_slot": 0, "target_id": 5012, @@ -8036,16 +7727,7 @@ "type": "IMAGE" }, { - "id": 7, - "origin_id": 9200, - "origin_slot": 7, - "target_id": 5012, - "target_slot": 7, - "type": "INT", - "parentId": 9015 - }, - { - "id": 19, + "id": 14002, "origin_id": -10, "origin_slot": 6, "target_id": 3059, @@ -8059,7 +7741,7 @@ "target_id": -20, "target_slot": 4, "type": "INT", - "parentId": 9017 + "parentId": 9093 }, { "id": 71, @@ -8068,7 +7750,7 @@ "target_id": -20, "target_slot": 5, "type": "INT", - "parentId": 9019 + "parentId": 9095 }, { "id": 74, @@ -8077,7 +7759,7 @@ "target_id": -20, "target_slot": 6, "type": "FLOAT", - "parentId": 9021 + "parentId": 9097 }, { "id": 75, @@ -8086,7 +7768,7 @@ "target_id": -20, "target_slot": 7, "type": "INT", - "parentId": 9023 + "parentId": 9099 }, { "id": 72, @@ -8095,7 +7777,7 @@ "target_id": -20, "target_slot": 8, "type": "INT", - "parentId": 9025 + "parentId": 9101 }, { "id": 73, @@ -8104,7 +7786,7 @@ "target_id": -20, "target_slot": 9, "type": "INT", - "parentId": 9027 + "parentId": 9103 }, { "id": 76, @@ -8113,7 +7795,7 @@ "target_id": -20, "target_slot": 10, "type": "BOOLEAN", - "parentId": 9029 + "parentId": 9105 }, { "id": 77, @@ -8122,7 +7804,7 @@ "target_id": -20, "target_slot": 11, "type": "STRING", - "parentId": 9031 + "parentId": 9107 }, { "id": 78, @@ -8147,358 +7829,430 @@ "target_id": 9007, "target_slot": 2, "type": "FLOAT" + }, + { + "id": 53, + "origin_id": -10, + "origin_slot": 5, + "target_id": 9200, + "target_slot": 0, + "type": "IMAGE" + }, + { + "id": 61, + "origin_id": -10, + "origin_slot": 6, + "target_id": 9200, + "target_slot": 1, + "type": "INT" + }, + { + "id": 50, + "origin_id": -10, + "origin_slot": 9, + "target_id": 9200, + "target_slot": 2, + "type": "COMBO" + }, + { + "id": 51, + "origin_id": -10, + "origin_slot": 10, + "target_id": 9200, + "target_slot": 3, + "type": "COMBO" + }, + { + "id": 52, + "origin_id": -10, + "origin_slot": 11, + "target_id": 9200, + "target_slot": 4, + "type": "COMBO" + }, + { + "id": 56, + "origin_id": 9200, + "origin_slot": 0, + "target_id": 9201, + "target_slot": 1, + "type": "INT" + }, + { + "id": 57, + "origin_id": 9200, + "origin_slot": 1, + "target_id": 9201, + "target_slot": 2, + "type": "INT" + }, + { + "id": 13996, + "origin_id": -10, + "origin_slot": 4, + "target_id": 5012, + "target_slot": 5, + "type": "FLOAT", + "parentId": 9083 + }, + { + "id": 14001, + "origin_id": 9200, + "origin_slot": 7, + "target_id": 5012, + "target_slot": 6, + "type": "INT", + "parentId": 9091 } ], "reroutes": [ { - "id": 9000, + "id": 9076, "pos": [ 618.1809911778764, - 958.0 + 958 ], "linkIds": [ - 4 + 13991 ] }, { - "id": 9001, - "parentId": 9000, + "id": 9077, + "parentId": 9076, "pos": [ 1055.4432958653765, - 958.0 + 958 ], "linkIds": [ - 4 + 13991 ] }, { - "id": 9002, + "id": 9078, "pos": [ 618.1809911778764, - 976.0 + 976 ], "linkIds": [ - 5 + 13992 ] }, { - "id": 9003, - "parentId": 9002, + "id": 9079, + "parentId": 9078, "pos": [ 1055.4432958653765, - 976.0 + 976 ], "linkIds": [ - 5 + 13992 ] }, { - "id": 9004, + "id": 9080, "pos": [ - 268.0, - 994.0 + 268, + 994 ], "linkIds": [ - 11 + 13995 ] }, { - "id": 9005, - "parentId": 9004, + "id": 9081, + "parentId": 9080, "pos": [ 1055.4432958653765, - 994.0 + 994 ], "linkIds": [ - 11 + 13995 ] }, { - "id": 9006, + "id": 9082, "pos": [ - 268.0, - 1012.0 + 268, + 1012 ], "linkIds": [ - 15 + 13996 ] }, { - "id": 9007, - "parentId": 9006, + "id": 9083, + "parentId": 9082, "pos": [ 1055.4432958653765, - 1012.0 + 1012 ], "linkIds": [ - 15 + 13996 ] }, { - "id": 9008, + "id": 9084, "pos": [ 1011.4432958653764, - 1030.0 + 1030 ], "linkIds": [ - 2 + 13998 ] }, { - "id": 9009, - "parentId": 9008, + "id": 9085, + "parentId": 9084, "pos": [ 1452.3296239903766, - 1030.0 + 1030 ], "linkIds": [ - 2 + 13998 ] }, { - "id": 9010, + "id": 9086, "pos": [ 618.1809911778764, - 1048.0 + 1048 ], "linkIds": [ - 1 + 13999 ] }, { - "id": 9011, - "parentId": 9010, + "id": 9087, + "parentId": 9086, "pos": [ 1055.4432958653765, - 1048.0 + 1048 ], "linkIds": [ - 1 + 13999 ] }, { - "id": 9012, + "id": 9088, "pos": [ - 268.0, - 1066.0 + 268, + 1066 ], "linkIds": [ 58 ] }, { - "id": 9013, - "parentId": 9012, + "id": 9089, + "parentId": 9088, "pos": [ 662.1809911778764, - 1066.0 + 1066 ], "linkIds": [ 58 ] }, { - "id": 9014, + "id": 9090, "pos": [ - 618.0, - 1084.0 + 618, + 1084 ], "linkIds": [ - 7 + 14001 ] }, { - "id": 9015, - "parentId": 9014, + "id": 9091, + "parentId": 9090, "pos": [ 1055.4432958653765, - 1084.0 + 1084 ], "linkIds": [ - 7 + 14001 ] }, { - "id": 9016, + "id": 9092, "pos": [ - 618.0, - 1102.0 + 618, + 1102 ], "linkIds": [ 70 ] }, { - "id": 9017, - "parentId": 9016, + "id": 9093, + "parentId": 9092, "pos": [ 1452.3296239903766, - 1102.0 + 1102 ], "linkIds": [ 70 ] }, { - "id": 9018, + "id": 9094, "pos": [ - 618.0, - 1120.0 + 618, + 1120 ], "linkIds": [ 71 ] }, { - "id": 9019, - "parentId": 9018, + "id": 9095, + "parentId": 9094, "pos": [ 1452.3296239903766, - 1120.0 + 1120 ], "linkIds": [ 71 ] }, { - "id": 9020, + "id": 9096, "pos": [ - 618.0, - 1138.0 + 618, + 1138 ], "linkIds": [ 74 ] }, { - "id": 9021, - "parentId": 9020, + "id": 9097, + "parentId": 9096, "pos": [ 1452.3296239903766, - 1138.0 + 1138 ], "linkIds": [ 74 ] }, { - "id": 9022, + "id": 9098, "pos": [ - 618.0, - 1156.0 + 618, + 1156 ], "linkIds": [ 75 ] }, { - "id": 9023, - "parentId": 9022, + "id": 9099, + "parentId": 9098, "pos": [ 1452.3296239903766, - 1156.0 + 1156 ], "linkIds": [ 75 ] }, { - "id": 9024, + "id": 9100, "pos": [ - 618.0, - 1174.0 + 618, + 1174 ], "linkIds": [ 72 ] }, { - "id": 9025, - "parentId": 9024, + "id": 9101, + "parentId": 9100, "pos": [ 1452.3296239903766, - 1174.0 + 1174 ], "linkIds": [ 72 ] }, { - "id": 9026, + "id": 9102, "pos": [ - 618.0, - 1192.0 + 618, + 1192 ], "linkIds": [ 73 ] }, { - "id": 9027, - "parentId": 9026, + "id": 9103, + "parentId": 9102, "pos": [ 1452.3296239903766, - 1192.0 + 1192 ], "linkIds": [ 73 ] }, { - "id": 9028, + "id": 9104, "pos": [ - 618.0, - 1210.0 + 618, + 1210 ], "linkIds": [ 76 ] }, { - "id": 9029, - "parentId": 9028, + "id": 9105, + "parentId": 9104, "pos": [ 1452.3296239903766, - 1210.0 + 1210 ], "linkIds": [ 76 ] }, { - "id": 9030, + "id": 9106, "pos": [ - 618.0, - 1228.0 + 618, + 1228 ], "linkIds": [ 77 ] }, { - "id": 9031, - "parentId": 9030, + "id": 9107, + "parentId": 9106, "pos": [ 1452.3296239903766, - 1228.0 + 1228 ], "linkIds": [ 77 ] } ], - "extra": {}, - "last_link_id": 77, - "last_node_id": 9201 + "extra": {} }, { "id": "2449b2d3-ef34-45f8-833d-a4ebca19b39e", "version": 1, "state": { - "lastGroupId": 158, - "lastNodeId": 9210, - "lastLinkId": 95, - "lastRerouteId": 9038 + "lastGroupId": 164, + "lastNodeId": 9328, + "lastLinkId": 14044, + "lastRerouteId": 9185 }, "revision": 0, "config": {}, @@ -8506,19 +8260,19 @@ "inputNode": { "id": -10, "bounding": [ - 40.0, - 80.0, - 210.0, - 380.0 + 40, + 80, + 210, + 380 ] }, "outputNode": { "id": -20, "bounding": [ 1820.3296239903766, - 80.0, - 190.0, - 138.0 + 80, + 190, + 138 ] }, "inputs": [ @@ -8527,12 +8281,12 @@ "name": "clip", "type": "CLIP", "linkIds": [ - 80 + 14019 ], "label": "text encoder clip", "pos": [ - 250.0, - 108.0 + 250, + 108 ] }, { @@ -8544,8 +8298,8 @@ ], "label": "Stage 2 prompt", "pos": [ - 250.0, - 130.0 + 250, + 130 ] }, { @@ -8553,12 +8307,12 @@ "name": "negative", "type": "CONDITIONING", "linkIds": [ - 9 + 14005 ], "label": "negative", "pos": [ - 250.0, - 152.0 + 250, + 152 ] }, { @@ -8566,14 +8320,14 @@ "name": "vae", "type": "VAE", "linkIds": [ - 11, + 14006, 85, 88 ], "label": "vae", "pos": [ - 250.0, - 174.0 + 250, + 174 ] }, { @@ -8581,12 +8335,12 @@ "name": "audio_vae", "type": "VAE", "linkIds": [ - 27 + 14012 ], "label": "audio_vae", "pos": [ - 250.0, - 196.0 + 250, + 196 ] }, { @@ -8594,12 +8348,12 @@ "name": "latent_downscale_factor", "type": "FLOAT", "linkIds": [ - 15 + 14007 ], "label": "latent_downscale_factor", "pos": [ - 250.0, - 218.0 + 250, + 218 ] }, { @@ -8607,12 +8361,12 @@ "name": "source_image", "type": "IMAGE", "linkIds": [ - 58 + 14015 ], "label": "source_image", "pos": [ - 250.0, - 240.0 + 250, + 240 ] }, { @@ -8620,12 +8374,13 @@ "name": "fps", "type": "FLOAT", "linkIds": [ - 21 + 14008, + 95 ], "label": "fps", "pos": [ - 250.0, - 262.0 + 250, + 262 ] }, { @@ -8634,23 +8389,23 @@ "type": "AUDIO", "linkIds": [], "label": "audio", + "shape": 7, "pos": [ - 250.0, - 284.0 - ], - "shape": 7 + 250, + 284 + ] }, { "id": "stg2-in-tile_frames-3a63a08e", "name": "tile_frames", "type": "INT", "linkIds": [ - 2 + 14014 ], "label": "tile_frames", "pos": [ - 250.0, - 306.0 + 250, + 306 ] }, { @@ -8662,8 +8417,8 @@ ], "label": "latent", "pos": [ - 250.0, - 328.0 + 250, + 328 ] }, { @@ -8671,12 +8426,12 @@ "name": "output_width", "type": "INT", "linkIds": [ - 56 + 14016 ], "label": "output_width", "pos": [ - 250.0, - 350.0 + 250, + 350 ] }, { @@ -8684,12 +8439,12 @@ "name": "output_height", "type": "INT", "linkIds": [ - 57 + 14017 ], "label": "output_height", "pos": [ - 250.0, - 372.0 + 250, + 372 ] }, { @@ -8702,8 +8457,8 @@ ], "label": "upscale model", "pos": [ - 250.0, - 394.0 + 250, + 394 ] }, { @@ -8715,8 +8470,8 @@ ], "label": "is_8k", "pos": [ - 250.0, - 416.0 + 250, + 416 ] }, { @@ -8728,8 +8483,8 @@ ], "label": "length", "pos": [ - 250.0, - 420.0 + 250, + 420 ] } ], @@ -8739,12 +8494,12 @@ "name": "positive", "type": "CONDITIONING", "linkIds": [ - 23 + 14009 ], "label": "positive", "pos": [ 1820.3296239903766, - 108.0 + 108 ] }, { @@ -8752,12 +8507,12 @@ "name": "negative", "type": "CONDITIONING", "linkIds": [ - 24 + 14010 ], "label": "negative", "pos": [ 1820.3296239903766, - 130.0 + 130 ] }, { @@ -8765,12 +8520,12 @@ "name": "latent", "type": "LATENT", "linkIds": [ - 25 + 14011 ], "label": "latent", "pos": [ 1820.3296239903766, - 152.0 + 152 ] }, { @@ -8778,12 +8533,12 @@ "name": "frozen_audio", "type": "LATENT", "linkIds": [ - 1 + 14013 ], "label": "frozen_audio", "pos": [ 1820.3296239903766, - 174.0 + 174 ] } ], @@ -8793,24 +8548,25 @@ "id": 9303, "type": "CLIPTextEncode", "pos": [ - 330.0, - 80.0 + 330, + 80 ], "size": [ - 270.0, - 200.0 + 270, + 200 ], "flags": {}, - "order": 0, + "order": 3, "mode": 0, - "title": "Stage 2 prompt encode", "inputs": [ { + "localized_name": "clip", "name": "clip", "type": "CLIP", - "link": 80 + "link": 14019 }, { + "localized_name": "text", "name": "text", "type": "STRING", "widget": { @@ -8821,6 +8577,7 @@ ], "outputs": [ { + "localized_name": "CONDITIONING", "name": "CONDITIONING", "type": "CONDITIONING", "links": [ @@ -8828,24 +8585,28 @@ ] } ], + "title": "Stage 2 prompt encode", "properties": { "Node name for S&R": "CLIPTextEncode", "cnr_id": "comfy-core" }, "widgets_values": [ "" - ] + ], + "widgets_values_named": { + "text": "" + } }, { - "id": 9005, + "id": 9317, "type": "LTXVConditioning", "pos": [ - 330.0, - 320.0 + 330, + 320 ], "size": [ 270.1809911778764, - 78.0 + 78 ], "flags": {}, "order": 4, @@ -8861,7 +8622,7 @@ "localized_name": "negative", "name": "negative", "type": "CONDITIONING", - "link": 9 + "link": 14005 }, { "localized_name": "frame_rate", @@ -8870,7 +8631,7 @@ "widget": { "name": "frame_rate" }, - "link": 21 + "link": 14008 } ], "outputs": [ @@ -8880,8 +8641,7 @@ "type": "CONDITIONING", "slot_index": 0, "links": [ - 4, - 29 + 14003 ] }, { @@ -8890,8 +8650,7 @@ "type": "CONDITIONING", "slot_index": 1, "links": [ - 5, - 30 + 14004 ] } ], @@ -8902,35 +8661,40 @@ }, "widgets_values": [ 24 - ] + ], + "widgets_values_named": { + "frame_rate": 24 + } }, { "id": 9300, "type": "LTXVLatentUpsampler", "pos": [ 680.1809911778764, - 80.0 + 80 ], "size": [ - 270.0, - 130.0 + 270, + 130 ], "flags": {}, - "order": 1, + "order": 0, "mode": 0, - "title": "Latent upscale \u00d72", "inputs": [ { + "localized_name": "samples", "name": "samples", "type": "LATENT", "link": 83 }, { + "localized_name": "upscale_model", "name": "upscale_model", "type": "LATENT_UPSCALE_MODEL", "link": 84 }, { + "localized_name": "vae", "name": "vae", "type": "VAE", "link": 85 @@ -8938,6 +8702,7 @@ ], "outputs": [ { + "localized_name": "LATENT", "name": "LATENT", "type": "LATENT", "links": [ @@ -8946,39 +8711,41 @@ ] } ], + "title": "Latent upscale ×2", "properties": { "Node name for S&R": "LTXVLatentUpsampler", "cnr_id": "comfy-core" - }, - "widgets_values": [] + } }, { "id": 9301, "type": "LTXVLatentUpsampler", "pos": [ 680.1809911778764, - 250.0 + 250 ], "size": [ - 270.0, - 130.0 + 270, + 130 ], "flags": {}, - "order": 2, + "order": 1, "mode": 0, - "title": "Latent upscale \u00d72 (8K)", "inputs": [ { + "localized_name": "samples", "name": "samples", "type": "LATENT", "link": 86 }, { + "localized_name": "upscale_model", "name": "upscale_model", "type": "LATENT_UPSCALE_MODEL", "link": 87 }, { + "localized_name": "vae", "name": "vae", "type": "VAE", "link": 88 @@ -8986,6 +8753,7 @@ ], "outputs": [ { + "localized_name": "LATENT", "name": "LATENT", "type": "LATENT", "links": [ @@ -8993,39 +8761,43 @@ ] } ], + "title": "Latent upscale ×2 (8K)", "properties": { "Node name for S&R": "LTXVLatentUpsampler", "cnr_id": "comfy-core" - }, - "widgets_values": [] + } }, { "id": 9302, "type": "ComfySwitchNode", "pos": [ 680.1809911778764, - 420.0 + 420 ], "size": [ - 270.0, - 120.0 + 270, + 120 ], "flags": {}, - "order": 3, + "order": 2, "mode": 0, - "title": "4K or 8K latent", "inputs": [ { + "localized_name": "on_false", "name": "on_false", + "shape": 7, "type": "LATENT", "link": 89 }, { + "localized_name": "on_true", "name": "on_true", + "shape": 7, "type": "LATENT", "link": 90 }, { + "localized_name": "switch", "name": "switch", "type": "BOOLEAN", "widget": { @@ -9036,6 +8808,7 @@ ], "outputs": [ { + "localized_name": "output", "name": "output", "type": "LATENT", "links": [ @@ -9043,69 +8816,60 @@ ] } ], + "title": "4K or 8K latent", "properties": { "Node name for S&R": "ComfySwitchNode" }, "widgets_values": [ false - ] + ], + "widgets_values_named": { + "switch": false + } }, { - "id": 9201, + "id": 9318, "type": "ImageScale", "pos": [ 1030.1809911778764, - 80.0 + 80 ], "size": [ - 313.0, - 200.0 + 313, + 200 ], "flags": {}, - "order": 1, + "order": 5, "mode": 0, - "title": "Resize original to stage 2", "inputs": [ { + "localized_name": "image", "name": "image", "type": "IMAGE", - "link": 58 - }, - { - "name": "upscale_method", - "type": "COMBO", - "widget": { - "name": "upscale_method" - }, - "link": null + "link": 14015 }, { + "localized_name": "width", "name": "width", "type": "INT", "widget": { "name": "width" }, - "link": 56 + "link": 14016 }, { + "localized_name": "height", "name": "height", "type": "INT", "widget": { "name": "height" }, - "link": 57 - }, - { - "name": "crop", - "type": "COMBO", - "widget": { - "name": "crop" - }, - "link": null + "link": 14017 } ], "outputs": [ { + "localized_name": "IMAGE", "name": "IMAGE", "type": "IMAGE", "links": [ @@ -9113,49 +8877,56 @@ ] } ], + "title": "Resize original to stage 2", "properties": { "Node name for S&R": "ImageScale", "cnr_id": "comfy-core" }, "widgets_values": [ - "lanczos", + "bilinear", 3840, 2176, "disabled" - ] + ], + "widgets_values_named": { + "upscale_method": "bilinear", + "width": 3840, + "height": 2176, + "crop": "disabled" + } }, { - "id": 5012, + "id": 9319, "type": "LTXAddVideoICLoRAGuide", "pos": [ 1423.4432958653765, - 80.0 + 80 ], "size": [ 316.886328125, - 282.0 + 330 ], "flags": {}, - "order": 3, + "order": 6, "mode": 0, "inputs": [ { "localized_name": "positive", "name": "positive", "type": "CONDITIONING", - "link": 4 + "link": 14003 }, { "localized_name": "negative", "name": "negative", "type": "CONDITIONING", - "link": 5 + "link": 14004 }, { "localized_name": "vae", "name": "vae", "type": "VAE", - "link": 11 + "link": 14006 }, { "localized_name": "latent", @@ -9167,7 +8938,7 @@ "localized_name": "image", "name": "image", "type": "IMAGE", - "link": 16 + "link": 14018 }, { "localized_name": "latent_downscale_factor", @@ -9176,23 +8947,17 @@ "widget": { "name": "latent_downscale_factor" }, - "link": 15 - }, - { - "name": "use_streaming", - "type": "BOOLEAN", - "widget": { - "name": "use_streaming" - }, - "link": null + "link": 14007 }, { + "localized_name": "tile_frames", "name": "tile_frames", + "shape": 7, "type": "INT", "widget": { "name": "tile_frames" }, - "link": 2 + "link": 14014 } ], "outputs": [ @@ -9201,7 +8966,7 @@ "name": "positive", "type": "CONDITIONING", "links": [ - 23 + 14009 ] }, { @@ -9209,7 +8974,7 @@ "name": "negative", "type": "CONDITIONING", "links": [ - 24 + 14010 ] }, { @@ -9217,7 +8982,7 @@ "name": "latent", "type": "LATENT", "links": [ - 25 + 14011 ] } ], @@ -9234,28 +8999,39 @@ 64, true, 97 - ] + ], + "widgets_values_named": { + "frame_idx": 0, + "strength": 1, + "latent_downscale_factor": 1, + "crop": "disabled", + "use_tiled_encode": false, + "tile_size": 256, + "tile_overlap": 64, + "use_streaming": true, + "tile_frames": 97 + } }, { - "id": 9007, + "id": 9320, "type": "LTXVEmptyLatentAudio", "pos": [ - 330.0, - 438.0 + 330, + 438 ], "size": [ 313.25, 118 ], "flags": {}, - "order": 5, + "order": 7, "mode": 0, "inputs": [ { "localized_name": "Audio VAE", "name": "audio_vae", "type": "VAE", - "link": 27 + "link": 14012 }, { "localized_name": "frames_number", @@ -9282,10 +9058,11 @@ "name": "Latent", "type": "LATENT", "links": [ - 1 + 14013 ] } ], + "title": "empty audio latent (native HDR)", "properties": { "Node name for S&R": "LTXVEmptyLatentAudio", "cnr_id": "comfy-core", @@ -9296,14 +9073,18 @@ 24, 1 ], - "title": "empty audio latent (native HDR)" + "widgets_values_named": { + "frames_number": 121, + "frame_rate": 24, + "batch_size": 1 + } }, { - "id": 9210, + "id": 9321, "type": "LTXVPreprocess", "pos": [ 1030.1809911778764, - 240.0 + 240 ], "size": [ 270, @@ -9318,15 +9099,6 @@ "name": "image", "type": "IMAGE", "link": 93 - }, - { - "localized_name": "img_compression", - "name": "img_compression", - "type": "INT", - "widget": { - "name": "img_compression" - }, - "link": null } ], "outputs": [ @@ -9335,7 +9107,7 @@ "name": "output_image", "type": "IMAGE", "links": [ - 16 + 14018 ] } ], @@ -9346,18 +9118,21 @@ }, "widgets_values": [ 0 - ] + ], + "widgets_values_named": { + "img_compression": 0 + } } ], "groups": [ { - "id": 1, + "id": 161, "title": "Preprocess - stage 2", "bounding": [ - 306.0, - 36.0, + 306, + 36, 1458.3296239903766, - 528.0 + 528 ], "color": "#3f789e", "flags": {} @@ -9365,144 +9140,108 @@ ], "links": [ { - "id": 4, - "origin_id": 9005, + "id": 14003, + "origin_id": 9317, "origin_slot": 0, - "target_id": 5012, + "target_id": 9319, "target_slot": 0, "type": "CONDITIONING", - "parentId": 9001 + "parentId": 9109 }, { - "id": 5, - "origin_id": 9005, + "id": 14004, + "origin_id": 9317, "origin_slot": 1, - "target_id": 5012, + "target_id": 9319, "target_slot": 1, "type": "CONDITIONING", - "parentId": 9003 + "parentId": 9111 }, { - "id": 9, + "id": 14005, "origin_id": -10, "origin_slot": 2, - "target_id": 9005, + "target_id": 9317, "target_slot": 1, "type": "CONDITIONING" }, { - "id": 11, + "id": 14006, "origin_id": -10, "origin_slot": 3, - "target_id": 5012, + "target_id": 9319, "target_slot": 2, "type": "VAE", - "parentId": 9005 + "parentId": 9113 }, { - "id": 15, - "origin_id": -10, - "origin_slot": 5, - "target_id": 5012, - "target_slot": 5, - "type": "FLOAT", - "parentId": 9007 - }, - { - "id": 21, + "id": 14008, "origin_id": -10, "origin_slot": 7, - "target_id": 9005, + "target_id": 9317, "target_slot": 2, "type": "FLOAT" }, { - "id": 23, - "origin_id": 5012, + "id": 14009, + "origin_id": 9319, "origin_slot": 0, "target_id": -20, "target_slot": 0, "type": "CONDITIONING" }, { - "id": 24, - "origin_id": 5012, + "id": 14010, + "origin_id": 9319, "origin_slot": 1, "target_id": -20, "target_slot": 1, "type": "CONDITIONING" }, { - "id": 25, - "origin_id": 5012, + "id": 14011, + "origin_id": 9319, "origin_slot": 2, "target_id": -20, "target_slot": 2, "type": "LATENT" }, { - "id": 27, + "id": 14012, "origin_id": -10, "origin_slot": 4, - "target_id": 9007, + "target_id": 9320, "target_slot": 0, "type": "VAE" }, { - "id": 1, - "origin_id": 9007, + "id": 14013, + "origin_id": 9320, "origin_slot": 0, "target_id": -20, "target_slot": 3, "type": "LATENT", - "parentId": 9015 + "parentId": 9123 }, { - "id": 2, - "origin_id": -10, - "origin_slot": 9, - "target_id": 5012, - "target_slot": 7, - "type": "INT", - "parentId": 9017 - }, - { - "id": 58, + "id": 14015, "origin_id": -10, "origin_slot": 6, - "target_id": 9201, + "target_id": 9318, "target_slot": 0, "type": "IMAGE", - "parentId": 9019 + "parentId": 9127 }, { - "id": 56, - "origin_id": -10, - "origin_slot": 11, - "target_id": 9201, - "target_slot": 2, - "type": "INT", - "parentId": 9021 - }, - { - "id": 57, - "origin_id": -10, - "origin_slot": 12, - "target_id": 9201, - "target_slot": 3, - "type": "INT", - "parentId": 9023 - }, - { - "id": 16, - "origin_id": 9210, + "id": 14018, + "origin_id": 9321, "origin_slot": 0, - "target_id": 5012, + "target_id": 9319, "target_slot": 4, "type": "IMAGE" }, { - "id": 80, + "id": 14019, "origin_id": -10, "origin_slot": 0, "target_id": 9303, @@ -9521,7 +9260,7 @@ "id": 82, "origin_id": 9303, "origin_slot": 0, - "target_id": 9005, + "target_id": 9317, "target_slot": 0, "type": "CONDITIONING" }, @@ -9532,7 +9271,7 @@ "target_id": 9300, "target_slot": 0, "type": "LATENT", - "parentId": 9025 + "parentId": 9133 }, { "id": 84, @@ -9541,7 +9280,7 @@ "target_id": 9300, "target_slot": 1, "type": "LATENT_UPSCALE_MODEL", - "parentId": 9027 + "parentId": 9135 }, { "id": 85, @@ -9550,7 +9289,7 @@ "target_id": 9300, "target_slot": 2, "type": "VAE", - "parentId": 9029 + "parentId": 9137 }, { "id": 86, @@ -9567,7 +9306,7 @@ "target_id": 9301, "target_slot": 1, "type": "LATENT_UPSCALE_MODEL", - "parentId": 9031 + "parentId": 9139 }, { "id": 88, @@ -9576,7 +9315,7 @@ "target_id": 9301, "target_slot": 2, "type": "VAE", - "parentId": 9033 + "parentId": 9141 }, { "id": 89, @@ -9601,22 +9340,22 @@ "target_id": 9302, "target_slot": 2, "type": "BOOLEAN", - "parentId": 9035 + "parentId": 9143 }, { "id": 92, "origin_id": 9302, "origin_slot": 0, - "target_id": 5012, + "target_id": 9319, "target_slot": 3, "type": "LATENT", - "parentId": 9037 + "parentId": 9145 }, { "id": 93, - "origin_id": 9201, + "origin_id": 9318, "origin_slot": 0, - "target_id": 9210, + "target_id": 9321, "target_slot": 0, "type": "IMAGE" }, @@ -9624,7 +9363,7 @@ "id": 94, "origin_id": -10, "origin_slot": 15, - "target_id": 9007, + "target_id": 9320, "target_slot": 1, "type": "INT" }, @@ -9632,424 +9371,395 @@ "id": 95, "origin_id": -10, "origin_slot": 7, - "target_id": 9007, + "target_id": 9320, "target_slot": 2, "type": "FLOAT" + }, + { + "id": 14016, + "origin_id": -10, + "origin_slot": 11, + "target_id": 9318, + "target_slot": 1, + "type": "INT", + "parentId": 9129 + }, + { + "id": 14017, + "origin_id": -10, + "origin_slot": 12, + "target_id": 9318, + "target_slot": 2, + "type": "INT", + "parentId": 9131 + }, + { + "id": 14007, + "origin_id": -10, + "origin_slot": 5, + "target_id": 9319, + "target_slot": 5, + "type": "FLOAT", + "parentId": 9115 + }, + { + "id": 14014, + "origin_id": -10, + "origin_slot": 9, + "target_id": 9319, + "target_slot": 6, + "type": "INT", + "parentId": 9125 } ], "reroutes": [ { - "id": 9000, + "id": 9108, "pos": [ 618.1809911778764, - 580.0 + 580 ], "linkIds": [ - 4 + 14003 ] }, { - "id": 9001, - "parentId": 9000, + "id": 9109, + "parentId": 9108, "pos": [ 1405.4432958653765, - 580.0 + 580 ], "linkIds": [ - 4 + 14003 ] }, { - "id": 9002, + "id": 9110, "pos": [ 618.1809911778764, - 598.0 + 598 ], "linkIds": [ - 5 + 14004 ] }, { - "id": 9003, - "parentId": 9002, + "id": 9111, + "parentId": 9110, "pos": [ 1405.4432958653765, - 598.0 + 598 ], "linkIds": [ - 5 + 14004 ] }, { - "id": 9004, + "id": 9112, "pos": [ - 268.0, - 616.0 + 268, + 616 ], "linkIds": [ - 11 + 14006 ] }, { - "id": 9005, - "parentId": 9004, + "id": 9113, + "parentId": 9112, "pos": [ 1405.4432958653765, - 616.0 + 616 ], "linkIds": [ - 11 + 14006 ] }, { - "id": 9006, + "id": 9114, "pos": [ - 268.0, - 634.0 + 268, + 634 ], "linkIds": [ - 15 + 14007 ] }, { - "id": 9007, - "parentId": 9006, + "id": 9115, + "parentId": 9114, "pos": [ 1405.4432958653765, - 634.0 + 634 ], "linkIds": [ - 15 + 14007 ] }, { - "id": 9008, - "pos": [ - 618.1809911778764, - 652.0 - ], - "linkIds": [ - 28 - ] - }, - { - "id": 9009, - "parentId": 9008, - "pos": [ - 1012.1809911778764, - 652.0 - ], - "linkIds": [ - 28 - ] - }, - { - "id": 9010, - "pos": [ - 618.1809911778764, - 670.0 - ], - "linkIds": [ - 29 - ] - }, - { - "id": 9011, - "parentId": 9010, - "pos": [ - 1012.1809911778764, - 670.0 - ], - "linkIds": [ - 29 - ] - }, - { - "id": 9012, - "pos": [ - 618.1809911778764, - 688.0 - ], - "linkIds": [ - 30 - ] - }, - { - "id": 9013, - "parentId": 9012, - "pos": [ - 1012.1809911778764, - 688.0 - ], - "linkIds": [ - 30 - ] - }, - { - "id": 9014, + "id": 9122, "pos": [ 1361.4432958653765, - 706.0 + 706 ], "linkIds": [ - 1 + 14013 ] }, { - "id": 9015, - "parentId": 9014, + "id": 9123, + "parentId": 9122, "pos": [ 1802.3296239903766, - 706.0 + 706 ], "linkIds": [ - 1 + 14013 ] }, { - "id": 9016, + "id": 9124, "pos": [ - 268.0, - 724.0 + 268, + 724 ], "linkIds": [ - 2 + 14014 ] }, { - "id": 9017, - "parentId": 9016, + "id": 9125, + "parentId": 9124, "pos": [ 1405.4432958653765, - 724.0 + 724 ], "linkIds": [ - 2 + 14014 ] }, { - "id": 9018, + "id": 9126, "pos": [ - 268.0, - 742.0 + 268, + 742 ], "linkIds": [ - 58 + 14015 ] }, { - "id": 9019, - "parentId": 9018, + "id": 9127, + "parentId": 9126, "pos": [ 1012.1809911778764, - 742.0 + 742 ], "linkIds": [ - 58 + 14015 ] }, { - "id": 9020, + "id": 9128, "pos": [ - 268.0, - 760.0 + 268, + 760 ], "linkIds": [ - 56 + 14016 ] }, { - "id": 9021, - "parentId": 9020, + "id": 9129, + "parentId": 9128, "pos": [ 1012.1809911778764, - 760.0 + 760 ], "linkIds": [ - 56 + 14016 ] }, { - "id": 9022, + "id": 9130, "pos": [ - 268.0, - 778.0 + 268, + 778 ], "linkIds": [ - 57 + 14017 ] }, { - "id": 9023, - "parentId": 9022, + "id": 9131, + "parentId": 9130, "pos": [ 1012.1809911778764, - 778.0 + 778 ], "linkIds": [ - 57 + 14017 ] }, { - "id": 9024, + "id": 9132, "pos": [ - 268.0, - 796.0 + 268, + 796 ], "linkIds": [ 83 ] }, { - "id": 9025, - "parentId": 9024, + "id": 9133, + "parentId": 9132, "pos": [ 662.1809911778764, - 796.0 + 796 ], "linkIds": [ 83 ] }, { - "id": 9026, + "id": 9134, "pos": [ - 268.0, - 814.0 + 268, + 814 ], "linkIds": [ 84 ] }, { - "id": 9027, - "parentId": 9026, + "id": 9135, + "parentId": 9134, "pos": [ 662.1809911778764, - 814.0 + 814 ], "linkIds": [ 84 ] }, { - "id": 9028, + "id": 9136, "pos": [ - 268.0, - 832.0 + 268, + 832 ], "linkIds": [ 85 ] }, { - "id": 9029, - "parentId": 9028, + "id": 9137, + "parentId": 9136, "pos": [ 662.1809911778764, - 832.0 + 832 ], "linkIds": [ 85 ] }, { - "id": 9030, + "id": 9138, "pos": [ - 268.0, - 850.0 + 268, + 850 ], "linkIds": [ 87 ] }, { - "id": 9031, - "parentId": 9030, + "id": 9139, + "parentId": 9138, "pos": [ 662.1809911778764, - 850.0 + 850 ], "linkIds": [ 87 ] }, { - "id": 9032, + "id": 9140, "pos": [ - 268.0, - 868.0 + 268, + 868 ], "linkIds": [ 88 ] }, { - "id": 9033, - "parentId": 9032, + "id": 9141, + "parentId": 9140, "pos": [ 662.1809911778764, - 868.0 + 868 ], "linkIds": [ 88 ] }, { - "id": 9034, + "id": 9142, "pos": [ - 268.0, - 886.0 + 268, + 886 ], "linkIds": [ 91 ] }, { - "id": 9035, - "parentId": 9034, + "id": 9143, + "parentId": 9142, "pos": [ 662.1809911778764, - 886.0 + 886 ], "linkIds": [ 91 ] }, { - "id": 9036, + "id": 9144, "pos": [ 968.1809911778764, - 904.0 + 904 ], "linkIds": [ 92 ] }, { - "id": 9037, - "parentId": 9036, + "id": 9145, + "parentId": 9144, "pos": [ 1405.4432958653765, - 904.0 + 904 ], "linkIds": [ 92 ] } ], - "extra": {}, - "last_link_id": 92, - "last_node_id": 9303 + "extra": {} }, { "id": "8deebd57-c969-4460-8f46-12a98501e2c3", "version": 1, "state": { - "lastGroupId": 158, - "lastNodeId": 9008, - "lastLinkId": 13808, - "lastRerouteId": 9026 + "lastGroupId": 164, + "lastNodeId": 9328, + "lastLinkId": 14044, + "lastRerouteId": 9185 }, "revision": 0, "config": {}, @@ -10057,19 +9767,19 @@ "inputNode": { "id": -10, "bounding": [ - 40.0, - 184.0, - 210.0, - 336.0 + 40, + 184, + 210, + 336 ] }, "outputNode": { "id": -20, "bounding": [ 1619.9463328320699, - 184.0, - 190.0, - 94.0 + 184, + 190, + 94 ] }, "inputs": [ @@ -10078,12 +9788,12 @@ "name": "model", "type": "MODEL", "linkIds": [ - 1 + 14020 ], "localized_name": "model", "pos": [ - 250.0, - 212.0 + 250, + 212 ] }, { @@ -10091,12 +9801,12 @@ "name": "positive", "type": "CONDITIONING", "linkIds": [ - 2 + 14021 ], "localized_name": "positive", "pos": [ - 250.0, - 234.0 + 250, + 234 ] }, { @@ -10104,12 +9814,12 @@ "name": "negative", "type": "CONDITIONING", "linkIds": [ - 3 + 14022 ], "localized_name": "negative", "pos": [ - 250.0, - 256.0 + 250, + 256 ] }, { @@ -10117,12 +9827,12 @@ "name": "latent_image", "type": "LATENT", "linkIds": [ - 10 + 14023 ], "localized_name": "latent_image", "pos": [ - 250.0, - 278.0 + 250, + 278 ] }, { @@ -10130,12 +9840,12 @@ "name": "noise_seed", "type": "INT", "linkIds": [ - 4 + 14026 ], "label": "noise seed", "pos": [ - 250.0, - 300.0 + 250, + 300 ] }, { @@ -10143,12 +9853,12 @@ "name": "cfg", "type": "FLOAT", "linkIds": [ - 13 + 14027 ], "label": "guider cfg", "pos": [ - 250.0, - 322.0 + 250, + 322 ] }, { @@ -10156,11 +9866,11 @@ "name": "sampler_name", "type": "COMBO", "linkIds": [ - 7 + 14033 ], "pos": [ - 250.0, - 344.0 + 250, + 344 ] }, { @@ -10168,12 +9878,12 @@ "name": "tile_width", "type": "INT", "linkIds": [ - 14 + 14028 ], "label": "tile_width", "pos": [ - 250.0, - 366.0 + 250, + 366 ] }, { @@ -10181,12 +9891,12 @@ "name": "tile_height", "type": "INT", "linkIds": [ - 5 + 14029 ], "label": "tile_height", "pos": [ - 250.0, - 388.0 + 250, + 388 ] }, { @@ -10194,12 +9904,12 @@ "name": "overlap_frac", "type": "FLOAT", "linkIds": [ - 15 + 14030 ], "label": "overlap_frac", "pos": [ - 250.0, - 410.0 + 250, + 410 ] }, { @@ -10207,12 +9917,12 @@ "name": "tile_frames", "type": "INT", "linkIds": [ - 16 + 14031 ], "label": "tile_frames", "pos": [ - 250.0, - 432.0 + 250, + 432 ] }, { @@ -10220,12 +9930,12 @@ "name": "vae", "type": "VAE", "linkIds": [ - 6 + 14032 ], "label": "vae", "pos": [ - 250.0, - 454.0 + 250, + 454 ] }, { @@ -10233,12 +9943,12 @@ "name": "audio_latent", "type": "LATENT", "linkIds": [ - 9 + 14035 ], "label": "audio_latent", "pos": [ - 250.0, - 476.0 + 250, + 476 ] } ], @@ -10248,11 +9958,11 @@ "name": "video_latent", "type": "LATENT", "linkIds": [ - 8 + 14034 ], "pos": [ 1619.9463328320699, - 212.0 + 212 ] }, { @@ -10260,29 +9970,29 @@ "name": "audio_latent", "type": "LATENT", "linkIds": [ - 17 + 14036 ], "pos": [ 1619.9463328320699, - 234.0 + 234 ] } ], "widgets": [], "nodes": [ { - "id": 4831, + "id": 9322, "type": "KSamplerSelect", "pos": [ - 330.0, - 184.0 + 330, + 184 ], "size": [ 499.94633283206986, - 74.0 + 74 ], "flags": {}, - "order": 4, + "order": 2, "mode": 0, "inputs": [ { @@ -10292,7 +10002,7 @@ "widget": { "name": "sampler_name" }, - "link": 7 + "link": 14033 } ], "outputs": [ @@ -10301,7 +10011,7 @@ "name": "SAMPLER", "type": "SAMPLER", "links": [ - 12 + 14025 ] } ], @@ -10312,14 +10022,17 @@ }, "widgets_values": [ "euler" - ] + ], + "widgets_values_named": { + "sampler_name": "euler" + } }, { - "id": 4984, + "id": 9323, "type": "ManualSigmas", "pos": [ - 330.0, - 298.0 + 330, + 298 ], "size": [ 499.94633283206986, @@ -10335,7 +10048,7 @@ "name": "SIGMAS", "type": "SIGMAS", "links": [ - 11 + 14024 ] } ], @@ -10346,18 +10059,21 @@ }, "widgets_values": [ "0.909375, 0.725, 0.421875, 0.0" - ] + ], + "widgets_values_named": { + "sigmas": "0.909375, 0.725, 0.421875, 0.0" + } }, { - "id": 4999, + "id": 9324, "type": "Note", "pos": [ - 330.0, - 80.0 + 330, + 80 ], "size": [ 222.81278386605618, - 88.0 + 88 ], "flags": {}, "order": 1, @@ -10368,130 +10084,132 @@ "widgets_values": [ "Tiled fusion owns the sigma loop. Use euler / heun / dpm_2. Leave overlap_frac at 0.5. tile_frames must match the guide node." ], + "widgets_values_named": { + "text": "Tiled fusion owns the sigma loop. Use euler / heun / dpm_2. Leave overlap_frac at 0.5. tile_frames must match the guide node." + }, "color": "#432", "bgcolor": "#653" }, { - "id": 9100, + "id": 9325, "type": "LTXVTiledFusionSampler", "pos": [ 909.9463328320699, - 184.0 + 184 ], "size": [ - 340.0, - 430.0 + 340, + 430 ], "flags": {}, "order": 3, "mode": 0, "inputs": [ { + "localized_name": "model", "name": "model", "type": "MODEL", - "link": 1 + "link": 14020 }, { + "localized_name": "positive", "name": "positive", "type": "CONDITIONING", - "link": 2 + "link": 14021 }, { + "localized_name": "negative", "name": "negative", "type": "CONDITIONING", - "link": 3 + "link": 14022 }, { + "localized_name": "latents", "name": "latents", "type": "LATENT", - "link": 10 + "link": 14023 }, { + "localized_name": "sigmas", "name": "sigmas", "type": "SIGMAS", - "link": 11 + "link": 14024 }, { + "localized_name": "sampler", "name": "sampler", "type": "SAMPLER", - "link": 12 + "link": 14025 }, { + "localized_name": "vae", + "name": "vae", + "shape": 7, + "type": "VAE", + "link": 14032 + }, + { + "localized_name": "seed", "name": "seed", "type": "INT", - "link": 4, "widget": { "name": "seed" - } + }, + "link": 14026 }, { + "localized_name": "cfg", "name": "cfg", "type": "FLOAT", - "link": 13, "widget": { "name": "cfg" - } + }, + "link": 14027 }, { + "localized_name": "tile_width", "name": "tile_width", "type": "INT", - "link": 14, "widget": { "name": "tile_width" - } + }, + "link": 14028 }, { + "localized_name": "tile_height", "name": "tile_height", "type": "INT", - "link": 5, "widget": { "name": "tile_height" - } + }, + "link": 14029 }, { + "localized_name": "overlap_frac", "name": "overlap_frac", "type": "FLOAT", - "link": 15, "widget": { "name": "overlap_frac" - } - }, - { - "name": "blend_var", - "type": "FLOAT", - "link": null, - "widget": { - "name": "blend_var" - } - }, - { - "name": "grid_cycle", - "type": "INT", - "link": null, - "widget": { - "name": "grid_cycle" - } + }, + "link": 14030 }, { + "localized_name": "tile_frames", "name": "tile_frames", "type": "INT", - "link": 16, "widget": { "name": "tile_frames" - } - }, - { - "name": "vae", - "type": "VAE", - "link": 6 + }, + "link": 14031 } ], "outputs": [ { + "localized_name": "output", "name": "output", "type": "LATENT", "links": [ - 8 + 14034 ] } ], @@ -10501,7 +10219,7 @@ "widgets_values": [ 42, "fixed", - 1.0, + 1, 1024, 576, 0.5, @@ -10509,46 +10227,53 @@ 1, 97, "auto" - ] + ], + "widgets_values_named": { + "seed": 42, + "control_after_generate": "fixed", + "cfg": 1, + "tile_width": 1024, + "tile_height": 576, + "overlap_frac": 0.5, + "blend_var": 0.05, + "grid_cycle": 1, + "tile_frames": 97, + "canvas_device": "auto" + } }, { - "id": 9101, + "id": 9326, "type": "RepeatLatentBatch", "pos": [ 1329.9463328320699, - 184.0 + 184 ], "size": [ - 210.0, - 60.0 + 210, + 60 ], "flags": {}, - "order": 10, + "order": 4, "mode": 0, "inputs": [ { + "localized_name": "samples", "name": "samples", "type": "LATENT", - "link": 9 - }, - { - "name": "amount", - "type": "INT", - "widget": { - "name": "amount" - }, - "link": null + "link": 14035 } ], "outputs": [ { + "localized_name": "LATENT", "name": "LATENT", "type": "LATENT", "links": [ - 17 + 14036 ] } ], + "title": "Pass audio latent", "properties": { "Node name for S&R": "RepeatLatentBatch", "cnr_id": "comfy-core" @@ -10556,18 +10281,20 @@ "widgets_values": [ 1 ], - "title": "Pass audio latent" + "widgets_values_named": { + "amount": 1 + } } ], "groups": [ { - "id": 147, + "id": 162, "title": "Generate", "bounding": [ - 306.0, - 36.0, + 306, + 36, 1257.9463328320699, - 602.0 + 602 ], "color": "#b58b2a", "flags": {} @@ -10575,427 +10302,427 @@ ], "links": [ { - "id": 1, + "id": 14020, "origin_id": -10, "origin_slot": 0, - "target_id": 9100, + "target_id": 9325, "target_slot": 0, "type": "MODEL", - "parentId": 9001 + "parentId": 9147 }, { - "id": 2, + "id": 14021, "origin_id": -10, "origin_slot": 1, - "target_id": 9100, + "target_id": 9325, "target_slot": 1, "type": "CONDITIONING", - "parentId": 9003 + "parentId": 9149 }, { - "id": 3, + "id": 14022, "origin_id": -10, "origin_slot": 2, - "target_id": 9100, + "target_id": 9325, "target_slot": 2, "type": "CONDITIONING", - "parentId": 9005 + "parentId": 9151 }, { - "id": 10, + "id": 14023, "origin_id": -10, "origin_slot": 3, - "target_id": 9100, + "target_id": 9325, "target_slot": 3, "type": "LATENT", - "parentId": 9007 + "parentId": 9153 }, { - "id": 11, - "origin_id": 4984, + "id": 14024, + "origin_id": 9323, "origin_slot": 0, - "target_id": 9100, + "target_id": 9325, "target_slot": 4, "type": "SIGMAS" }, { - "id": 12, - "origin_id": 4831, + "id": 14025, + "origin_id": 9322, "origin_slot": 0, - "target_id": 9100, + "target_id": 9325, "target_slot": 5, "type": "SAMPLER" }, { - "id": 4, - "origin_id": -10, - "origin_slot": 4, - "target_id": 9100, - "target_slot": 6, - "type": "INT", - "parentId": 9009 - }, - { - "id": 13, - "origin_id": -10, - "origin_slot": 5, - "target_id": 9100, - "target_slot": 7, - "type": "FLOAT", - "parentId": 9011 - }, - { - "id": 14, - "origin_id": -10, - "origin_slot": 7, - "target_id": 9100, - "target_slot": 8, - "type": "INT", - "parentId": 9013 - }, - { - "id": 5, - "origin_id": -10, - "origin_slot": 8, - "target_id": 9100, - "target_slot": 9, - "type": "INT", - "parentId": 9015 - }, - { - "id": 15, - "origin_id": -10, - "origin_slot": 9, - "target_id": 9100, - "target_slot": 10, - "type": "FLOAT", - "parentId": 9017 - }, - { - "id": 16, - "origin_id": -10, - "origin_slot": 10, - "target_id": 9100, - "target_slot": 13, - "type": "INT", - "parentId": 9019 - }, - { - "id": 6, - "origin_id": -10, - "origin_slot": 11, - "target_id": 9100, - "target_slot": 14, - "type": "VAE", - "parentId": 9021 - }, - { - "id": 7, + "id": 14033, "origin_id": -10, "origin_slot": 6, - "target_id": 4831, + "target_id": 9322, "target_slot": 0, "type": "COMBO" }, { - "id": 8, - "origin_id": 9100, + "id": 14034, + "origin_id": 9325, "origin_slot": 0, "target_id": -20, "target_slot": 0, "type": "LATENT", - "parentId": 9023 + "parentId": 9169 }, { - "id": 9, + "id": 14035, "origin_id": -10, "origin_slot": 12, - "target_id": 9101, + "target_id": 9326, "target_slot": 0, "type": "LATENT", - "parentId": 9025 + "parentId": 9171 }, { - "id": 17, - "origin_id": 9101, + "id": 14036, + "origin_id": 9326, "origin_slot": 0, "target_id": -20, "target_slot": 1, "type": "LATENT" + }, + { + "id": 14026, + "origin_id": -10, + "origin_slot": 4, + "target_id": 9325, + "target_slot": 7, + "type": "INT", + "parentId": 9155 + }, + { + "id": 14027, + "origin_id": -10, + "origin_slot": 5, + "target_id": 9325, + "target_slot": 8, + "type": "FLOAT", + "parentId": 9157 + }, + { + "id": 14028, + "origin_id": -10, + "origin_slot": 7, + "target_id": 9325, + "target_slot": 9, + "type": "INT", + "parentId": 9159 + }, + { + "id": 14029, + "origin_id": -10, + "origin_slot": 8, + "target_id": 9325, + "target_slot": 10, + "type": "INT", + "parentId": 9161 + }, + { + "id": 14030, + "origin_id": -10, + "origin_slot": 9, + "target_id": 9325, + "target_slot": 11, + "type": "FLOAT", + "parentId": 9163 + }, + { + "id": 14032, + "origin_id": -10, + "origin_slot": 11, + "target_id": 9325, + "target_slot": 6, + "type": "VAE", + "parentId": 9167 + }, + { + "id": 14031, + "origin_id": -10, + "origin_slot": 10, + "target_id": 9325, + "target_slot": 12, + "type": "INT", + "parentId": 9165 } ], "reroutes": [ { - "id": 9000, + "id": 9146, "pos": [ - 268.0, - 654.0 + 268, + 654 ], "linkIds": [ - 1 + 14020 ] }, { - "id": 9001, - "parentId": 9000, + "id": 9147, + "parentId": 9146, "pos": [ 891.9463328320699, - 654.0 + 654 ], "linkIds": [ - 1 + 14020 ] }, { - "id": 9002, + "id": 9148, "pos": [ - 268.0, - 672.0 + 268, + 672 ], "linkIds": [ - 2 + 14021 ] }, { - "id": 9003, - "parentId": 9002, + "id": 9149, + "parentId": 9148, "pos": [ 891.9463328320699, - 672.0 + 672 ], "linkIds": [ - 2 + 14021 ] }, { - "id": 9004, + "id": 9150, "pos": [ - 268.0, - 690.0 + 268, + 690 ], "linkIds": [ - 3 + 14022 ] }, { - "id": 9005, - "parentId": 9004, + "id": 9151, + "parentId": 9150, "pos": [ 891.9463328320699, - 690.0 + 690 ], "linkIds": [ - 3 + 14022 ] }, { - "id": 9006, + "id": 9152, "pos": [ - 268.0, - 708.0 + 268, + 708 ], "linkIds": [ - 10 + 14023 ] }, { - "id": 9007, - "parentId": 9006, + "id": 9153, + "parentId": 9152, "pos": [ 891.9463328320699, - 708.0 + 708 ], "linkIds": [ - 10 + 14023 ] }, { - "id": 9008, + "id": 9154, "pos": [ - 268.0, - 726.0 + 268, + 726 ], "linkIds": [ - 4 + 14026 ] }, { - "id": 9009, - "parentId": 9008, + "id": 9155, + "parentId": 9154, "pos": [ 891.9463328320699, - 726.0 + 726 ], "linkIds": [ - 4 + 14026 ] }, { - "id": 9010, + "id": 9156, "pos": [ - 268.0, - 744.0 + 268, + 744 ], "linkIds": [ - 13 + 14027 ] }, { - "id": 9011, - "parentId": 9010, + "id": 9157, + "parentId": 9156, "pos": [ 891.9463328320699, - 744.0 + 744 ], "linkIds": [ - 13 + 14027 ] }, { - "id": 9012, + "id": 9158, "pos": [ - 268.0, - 762.0 + 268, + 762 ], "linkIds": [ - 14 + 14028 ] }, { - "id": 9013, - "parentId": 9012, + "id": 9159, + "parentId": 9158, "pos": [ 891.9463328320699, - 762.0 + 762 ], "linkIds": [ - 14 + 14028 ] }, { - "id": 9014, + "id": 9160, "pos": [ - 268.0, - 780.0 + 268, + 780 ], "linkIds": [ - 5 + 14029 ] }, { - "id": 9015, - "parentId": 9014, + "id": 9161, + "parentId": 9160, "pos": [ 891.9463328320699, - 780.0 + 780 ], "linkIds": [ - 5 + 14029 ] }, { - "id": 9016, + "id": 9162, "pos": [ - 268.0, - 798.0 + 268, + 798 ], "linkIds": [ - 15 + 14030 ] }, { - "id": 9017, - "parentId": 9016, + "id": 9163, + "parentId": 9162, "pos": [ 891.9463328320699, - 798.0 + 798 ], "linkIds": [ - 15 + 14030 ] }, { - "id": 9018, + "id": 9164, "pos": [ - 268.0, - 816.0 + 268, + 816 ], "linkIds": [ - 16 + 14031 ] }, { - "id": 9019, - "parentId": 9018, + "id": 9165, + "parentId": 9164, "pos": [ 891.9463328320699, - 816.0 + 816 ], "linkIds": [ - 16 + 14031 ] }, { - "id": 9020, + "id": 9166, "pos": [ - 268.0, - 834.0 + 268, + 834 ], "linkIds": [ - 6 + 14032 ] }, { - "id": 9021, - "parentId": 9020, + "id": 9167, + "parentId": 9166, "pos": [ 891.9463328320699, - 834.0 + 834 ], "linkIds": [ - 6 + 14032 ] }, { - "id": 9022, + "id": 9168, "pos": [ 1267.9463328320699, - 852.0 + 852 ], "linkIds": [ - 8 + 14034 ] }, { - "id": 9023, - "parentId": 9022, + "id": 9169, + "parentId": 9168, "pos": [ 1601.9463328320699, - 852.0 + 852 ], "linkIds": [ - 8 + 14034 ] }, { - "id": 9024, + "id": 9170, "pos": [ - 268.0, - 870.0 + 268, + 870 ], "linkIds": [ - 9 + 14035 ] }, { - "id": 9025, - "parentId": 9024, + "id": 9171, + "parentId": 9170, "pos": [ 1311.9463328320699, - 870.0 + 870 ], "linkIds": [ - 9 + 14035 ] } ], @@ -11005,10 +10732,10 @@ "id": "6dccac65-c5c2-4f24-8e81-ef9145cb3927", "version": 1, "state": { - "lastGroupId": 158, - "lastNodeId": 9008, - "lastLinkId": 13739, - "lastRerouteId": 9010 + "lastGroupId": 164, + "lastNodeId": 9328, + "lastLinkId": 14044, + "lastRerouteId": 9185 }, "revision": 0, "config": {}, @@ -11016,19 +10743,19 @@ "inputNode": { "id": -10, "bounding": [ - 40.0, - 80.0, - 210.0, - 270.0 + 40, + 80, + 210, + 270 ] }, "outputNode": { "id": -20, "bounding": [ - 1520.0, - 80.0, - 190.0, - 72.0 + 1520, + 80, + 190, + 72 ] }, "inputs": [ @@ -11037,12 +10764,12 @@ "name": "vae", "type": "VAE", "linkIds": [ - 13710 + 14039 ], "localized_name": "vae", "pos": [ - 250.0, - 108.0 + 250, + 108 ] }, { @@ -11050,13 +10777,13 @@ "name": "latents", "type": "LATENT", "linkIds": [ - 13711 + 14040 ], "localized_name": "latents", "label": "video_latent", "pos": [ - 250.0, - 130.0 + 250, + 130 ] }, { @@ -11064,13 +10791,13 @@ "name": "samples", "type": "LATENT", "linkIds": [ - 13669 + 14037 ], "localized_name": "samples", "label": "audio_latent", "pos": [ - 250.0, - 152.0 + 250, + 152 ] }, { @@ -11078,38 +10805,12 @@ "name": "audio_vae", "type": "VAE", "linkIds": [ - 13429 + 14038 ], "localized_name": "audio_vae", "pos": [ - 250.0, - 174.0 - ] - }, - { - "id": "135318cf-13a1-46df-9dc6-10c814fe4a3b", - "name": "fps", - "type": "FLOAT", - "linkIds": [ - 13475, - 3 - ], - "localized_name": "fps", - "pos": [ - 250.0, - 196.0 - ] - }, - { - "id": "baced759-c6b8-45b2-a6cd-d606cbd5bc4b", - "name": "bit_depth", - "type": "INT", - "linkIds": [ - 13699 - ], - "pos": [ - 250.0, - 218.0 + 250, + 174 ] }, { @@ -11117,11 +10818,11 @@ "name": "tile_size", "type": "INT", "linkIds": [ - 13736 + 14041 ], "pos": [ - 250.0, - 240.0 + 250, + 240 ] }, { @@ -11129,11 +10830,11 @@ "name": "overlap", "type": "INT", "linkIds": [ - 13737 + 14042 ], "pos": [ - 250.0, - 262.0 + 250, + 262 ] }, { @@ -11141,11 +10842,11 @@ "name": "temporal_size", "type": "INT", "linkIds": [ - 13738 + 14043 ], "pos": [ - 250.0, - 284.0 + 250, + 284 ] }, { @@ -11153,57 +10854,83 @@ "name": "temporal_overlap", "type": "INT", "linkIds": [ - 13739 + 14044 ], "pos": [ - 250.0, - 306.0 + 250, + 306 ] } ], "outputs": [ { - "id": "dc6707aa-e87d-4616-a4e6-84471c015b6b", - "name": "VIDEO", - "type": "VIDEO", + "id": "b2572cdd-80a0-410c-bcaa-dfd7ba8b1e2b", + "name": "IMAGE", + "type": "IMAGE", "linkIds": [ - 13112 + 13949 ], - "localized_name": "VIDEO", + "label": "ACEScct_image", "pos": [ - 1520.0, - 108.0 + 1544, + 124 + ] + }, + { + "id": "9f1723a3-0e1b-41eb-9366-3bad9c83f4d3", + "name": "IMAGE_1", + "type": "IMAGE", + "linkIds": [ + 13951 + ], + "label": "HDR_HLG_image", + "pos": [ + 1544, + 144 + ] + }, + { + "id": "3423fc1b-141a-4b35-8c5c-1783e9e58f64", + "name": "AUDIO", + "type": "AUDIO", + "linkIds": [ + 13952 + ], + "label": "audio", + "pos": [ + 1544, + 164 ] } ], "widgets": [], "nodes": [ { - "id": 4848, + "id": 9327, "type": "LTXVAudioVAEDecode", "pos": [ - 330.0, - 80.0 + 330, + 80 ], "size": [ - 270.0, - 46.0 + 270, + 46 ], "flags": {}, - "order": 0, + "order": 1, "mode": 0, "inputs": [ { "localized_name": "samples", "name": "samples", "type": "LATENT", - "link": 13669 + "link": 14037 }, { - "localized_name": "audio_vae", + "localized_name": "Audio VAE", "name": "audio_vae", "type": "VAE", - "link": 13429 + "link": 14038 } ], "outputs": [ @@ -11212,7 +10939,7 @@ "name": "Audio", "type": "AUDIO", "links": [ - 13108 + 13952 ] } ], @@ -11220,87 +10947,18 @@ "Node name for S&R": "LTXVAudioVAEDecode", "cnr_id": "comfy-core", "ver": "0.3.64" - }, - "widgets_values": [] + } }, { - "id": 4849, - "type": "CreateVideo", - "pos": [ - 1100.0, - 80.0 - ], - "size": [ - 270.0, - 102.0 - ], - "flags": {}, - "order": 1, - "mode": 0, - "inputs": [ - { - "localized_name": "images", - "name": "images", - "type": "IMAGE", - "link": 13712 - }, - { - "localized_name": "audio", - "name": "audio", - "shape": 7, - "type": "AUDIO", - "link": 13108 - }, - { - "localized_name": "fps", - "name": "fps", - "type": "FLOAT", - "widget": { - "name": "fps" - }, - "link": 13475 - }, - { - "localized_name": "bit_depth", - "name": "bit_depth", - "shape": 7, - "type": "INT", - "widget": { - "name": "bit_depth" - }, - "link": 13699 - } - ], - "outputs": [ - { - "localized_name": "VIDEO", - "name": "VIDEO", - "type": "VIDEO", - "links": [ - 13112 - ] - } - ], - "properties": { - "Node name for S&R": "CreateVideo", - "cnr_id": "comfy-core", - "ver": "0.14.1" - }, - "widgets_values": [ - 30, - 8 - ] - }, - { - "id": 5538, + "id": 9328, "type": "VAEDecodeTiled", "pos": [ - 330.0, - 166.0 + 330, + 166 ], "size": [ - 270.0, - 150.0 + 270, + 150 ], "flags": {}, "order": 2, @@ -11310,13 +10968,13 @@ "localized_name": "samples", "name": "samples", "type": "LATENT", - "link": 13711 + "link": 14040 }, { "localized_name": "vae", "name": "vae", "type": "VAE", - "link": 13710 + "link": 14039 }, { "localized_name": "tile_size", @@ -11325,7 +10983,7 @@ "widget": { "name": "tile_size" }, - "link": 13736 + "link": 14041 }, { "localized_name": "overlap", @@ -11334,7 +10992,7 @@ "widget": { "name": "overlap" }, - "link": 13737 + "link": 14042 }, { "localized_name": "temporal_size", @@ -11343,7 +11001,7 @@ "widget": { "name": "temporal_size" }, - "link": 13738 + "link": 14043 }, { "localized_name": "temporal_overlap", @@ -11352,7 +11010,7 @@ "widget": { "name": "temporal_overlap" }, - "link": 13739 + "link": 14044 } ], "outputs": [ @@ -11361,7 +11019,8 @@ "name": "IMAGE", "type": "IMAGE", "links": [ - 1 + 13949, + 13950 ] } ], @@ -11373,123 +11032,72 @@ 64, 128, 32 - ] + ], + "widgets_values_named": { + "tile_size": 512, + "overlap": 64, + "temporal_size": 128, + "temporal_overlap": 32 + } }, { - "id": 5590, - "type": "LTXVHDRDecodePostprocess", + "id": 9312, + "type": "ImageColorSpace", "pos": [ - 680.0, - 80.0 + 690, + 286 ], "size": [ - 340.0, - 200.0 + 315, + 106 ], "flags": {}, - "order": 4, + "order": 0, "mode": 0, "inputs": [ { + "localized_name": "image", "name": "image", "type": "IMAGE", - "link": 1 - }, - { - "name": "transfer", - "type": "COMBO", - "widget": { - "name": "transfer" - }, - "link": null + "link": 13950 } ], "outputs": [ { - "name": "tonemapped", + "localized_name": "IMAGE", + "name": "IMAGE", "type": "IMAGE", "links": [ - 13712 - ] - }, - { - "name": "hdr_linear", - "type": "IMAGE", - "links": [ - 2 + 13951 ] } ], + "title": "ACEScct → HDR (HLG)", "properties": { - "Node name for S&R": "LTXVHDRDecodePostprocess" + "Node name for S&R": "ImageColorSpace", + "cnr_id": "comfy-core" }, "widgets_values": [ - "acescct", - 0.0, - true, - "acescg", - "output/hdr_exr", - "frame", - true - ] - }, - { - "id": 5591, - "type": "LTXVSaveHLG", - "pos": [ - 1100.0, - 222.0 + "HDR ACEScct", + "HDR" ], - "size": [ - 340.0, - 120.0 - ], - "flags": {}, - "order": 5, - "mode": 0, - "inputs": [ - { - "name": "hdr_linear", - "type": "IMAGE", - "link": 2 - }, - { - "name": "frame_rate", - "type": "FLOAT", - "widget": { - "name": "frame_rate" - }, - "link": 3 - }, - { - "name": "filename_prefix", - "type": "STRING", - "widget": { - "name": "filename_prefix" - }, - "link": null - } - ], - "outputs": [], - "properties": { - "Node name for S&R": "LTXVSaveHLG" + "widgets_values_named": { + "source": "HDR ACEScct", + "destination": "HDR" }, - "widgets_values": [ - 24.0, - "hdr/ltxv_hlg", - "acescg" - ] + "color": "#233", + "bgcolor": "#355" } ], "groups": [ { - "id": 150, + "id": 163, "title": "Decode", "bounding": [ - 306.0, - 36.0, - 1158.0, - 330.0 + 306, + 36, + 1158, + 330 ], "color": "#b58b2a", "flags": {} @@ -11497,244 +11105,100 @@ ], "links": [ { - "id": 13108, - "origin_id": 4848, - "origin_slot": 0, - "target_id": 4849, - "target_slot": 1, - "type": "AUDIO", - "parentId": 9001 - }, - { - "id": 13669, + "id": 14037, "origin_id": -10, "origin_slot": 2, - "target_id": 4848, + "target_id": 9327, "target_slot": 0, "type": "LATENT" }, { - "id": 13429, + "id": 14038, "origin_id": -10, "origin_slot": 3, - "target_id": 4848, + "target_id": 9327, "target_slot": 1, "type": "VAE" }, { - "id": 13475, - "origin_id": -10, - "origin_slot": 4, - "target_id": 4849, - "target_slot": 2, - "type": "FLOAT", - "parentId": 9003 - }, - { - "id": 13112, - "origin_id": 4849, - "origin_slot": 0, - "target_id": -20, - "target_slot": 0, - "type": "VIDEO", - "parentId": 9005 - }, - { - "id": 13699, - "origin_id": -10, - "origin_slot": 5, - "target_id": 4849, - "target_slot": 3, - "type": "INT", - "parentId": 9007 - }, - { - "id": 13710, + "id": 14039, "origin_id": -10, "origin_slot": 0, - "target_id": 5538, + "target_id": 9328, "target_slot": 1, "type": "VAE" }, { - "id": 13711, + "id": 14040, "origin_id": -10, "origin_slot": 1, - "target_id": 5538, + "target_id": 9328, "target_slot": 0, "type": "LATENT" }, { - "id": 13712, - "origin_id": 5590, - "origin_slot": 0, - "target_id": 4849, - "target_slot": 0, - "type": "IMAGE" - }, - { - "id": 13736, + "id": 14041, "origin_id": -10, - "origin_slot": 6, - "target_id": 5538, + "origin_slot": 4, + "target_id": 9328, "target_slot": 2, "type": "INT" }, { - "id": 13737, + "id": 14042, "origin_id": -10, - "origin_slot": 7, - "target_id": 5538, + "origin_slot": 5, + "target_id": 9328, "target_slot": 3, "type": "INT" }, { - "id": 13738, + "id": 14043, "origin_id": -10, - "origin_slot": 8, - "target_id": 5538, + "origin_slot": 6, + "target_id": 9328, "target_slot": 4, "type": "INT" }, { - "id": 13739, + "id": 14044, "origin_id": -10, - "origin_slot": 9, - "target_id": 5538, + "origin_slot": 7, + "target_id": 9328, "target_slot": 5, "type": "INT" }, { - "id": 1, - "origin_id": 5538, + "id": 13949, + "origin_id": 9328, "origin_slot": 0, - "target_id": 5590, + "target_id": -20, "target_slot": 0, "type": "IMAGE" }, { - "id": 2, - "origin_id": 5590, - "origin_slot": 1, - "target_id": 5591, + "id": 13950, + "origin_id": 9328, + "origin_slot": 0, + "target_id": 9312, "target_slot": 0, "type": "IMAGE" }, { - "id": 3, - "origin_id": -10, - "origin_slot": 4, - "target_id": 5591, + "id": 13951, + "origin_id": 9312, + "origin_slot": 0, + "target_id": -20, "target_slot": 1, - "type": "FLOAT", - "parentId": 9009 - } - ], - "reroutes": [ - { - "id": 9000, - "pos": [ - 618.0, - 390.0 - ], - "linkIds": [ - 13108 - ] + "type": "IMAGE" }, { - "id": 9001, - "parentId": 9000, - "pos": [ - 1082.0, - 390.0 - ], - "linkIds": [ - 13108 - ] - }, - { - "id": 9002, - "pos": [ - 268.0, - 408.0 - ], - "linkIds": [ - 13475 - ] - }, - { - "id": 9003, - "parentId": 9002, - "pos": [ - 1082.0, - 408.0 - ], - "linkIds": [ - 13475 - ] - }, - { - "id": 9004, - "pos": [ - 1388.0, - 426.0 - ], - "linkIds": [ - 13112 - ] - }, - { - "id": 9005, - "parentId": 9004, - "pos": [ - 1502.0, - 426.0 - ], - "linkIds": [ - 13112 - ] - }, - { - "id": 9006, - "pos": [ - 268.0, - 444.0 - ], - "linkIds": [ - 13699 - ] - }, - { - "id": 9007, - "parentId": 9006, - "pos": [ - 1082.0, - 444.0 - ], - "linkIds": [ - 13699 - ] - }, - { - "id": 9008, - "pos": [ - 268.0, - 462.0 - ], - "linkIds": [ - 3 - ] - }, - { - "id": 9009, - "parentId": 9008, - "pos": [ - 1082.0, - 462.0 - ], - "linkIds": [ - 3 - ] + "id": 13952, + "origin_id": 9327, + "origin_slot": 0, + "target_id": -20, + "target_slot": 2, + "type": "AUDIO" } ], "extra": {} @@ -11743,7 +11207,7 @@ }, "config": {}, "extra": { - "frontendVersion": "1.48.7", + "frontendVersion": "1.55.14", "VHS_latentpreview": false, "VHS_latentpreviewrate": 0, "VHS_MetadataImage": true, @@ -11760,7 +11224,7 @@ { "id": 8001, "pos": [ - -3664.0, + -3664, 4481.664112347758 ], "linkIds": [ @@ -11778,31 +11242,10 @@ 13653 ] }, - { - "id": 8003, - "pos": [ - -3664.0, - 4509.664112347758 - ], - "linkIds": [ - 13670 - ] - }, - { - "id": 8004, - "parentId": 8003, - "pos": [ - -843.1999999999998, - 4509.664112347758 - ], - "linkIds": [ - 13670 - ] - }, { "id": 8005, "pos": [ - -3664.0, + -3664, 4537.664112347758 ], "linkIds": [ @@ -11820,52 +11263,10 @@ 13673 ] }, - { - "id": 8007, - "pos": [ - -2718.8, - 4565.664112347758 - ], - "linkIds": [ - 13772 - ] - }, - { - "id": 8008, - "parentId": 8007, - "pos": [ - -843.1999999999998, - 4565.664112347758 - ], - "linkIds": [ - 13772 - ] - }, - { - "id": 8009, - "pos": [ - -3664.0, - 4593.664112347758 - ], - "linkIds": [ - 13811 - ] - }, - { - "id": 8010, - "parentId": 8009, - "pos": [ - -2203.2, - 4593.664112347758 - ], - "linkIds": [ - 13811 - ] - }, { "id": 8011, "pos": [ - -3664.0, + -3664, 4621.664112347758 ], "linkIds": [ @@ -11883,31 +11284,10 @@ 13841 ] }, - { - "id": 8013, - "pos": [ - -3664.0, - 4649.664112347758 - ], - "linkIds": [ - 13845 - ] - }, - { - "id": 8014, - "parentId": 8013, - "pos": [ - -1303.1999999999998, - 4649.664112347758 - ], - "linkIds": [ - 13845 - ] - }, { "id": 8015, "pos": [ - -3664.0, + -3664, 4677.664112347758 ], "linkIds": [ @@ -11928,7 +11308,7 @@ { "id": 8017, "pos": [ - -3664.0, + -3664, 4705.664112347758 ], "linkIds": [ @@ -11949,7 +11329,7 @@ { "id": 8019, "pos": [ - -3664.0, + -3664, 4733.664112347758 ], "linkIds": [ @@ -11967,31 +11347,10 @@ 13866 ] }, - { - "id": 8021, - "pos": [ - -3664.0, - 4761.664112347758 - ], - "linkIds": [ - 13871 - ] - }, - { - "id": 8022, - "parentId": 8021, - "pos": [ - -2656.0, - 4761.664112347758 - ], - "linkIds": [ - 13871 - ] - }, { "id": 8023, "pos": [ - -3664.0, + -3664, 4789.664112347758 ], "linkIds": [ @@ -12002,7 +11361,7 @@ "id": 8024, "parentId": 8023, "pos": [ - -2656.0, + -2656, 4789.664112347758 ], "linkIds": [ @@ -12012,7 +11371,7 @@ { "id": 8025, "pos": [ - -3664.0, + -3664, 4817.664112347758 ], "linkIds": [ @@ -12023,7 +11382,7 @@ "id": 8026, "parentId": 8025, "pos": [ - -2656.0, + -2656, 4817.664112347758 ], "linkIds": [ @@ -12033,8 +11392,8 @@ { "id": 8027, "pos": [ - -2244.0, - 4845.664112347758 + -2249.4564847361003, + 3829.7240911670488 ], "linkIds": [ 13904 @@ -12044,8 +11403,8 @@ "id": 8028, "parentId": 8027, "pos": [ - -1303.1999999999998, - 4845.664112347758 + -1308.6564847361017, + 3829.7240911670488 ], "linkIds": [ 13904 @@ -12054,8 +11413,8 @@ { "id": 8029, "pos": [ - -2244.0, - 4873.664112347758 + -2249.4564847361003, + 3857.7240911670488 ], "linkIds": [ 13905 @@ -12065,8 +11424,8 @@ "id": 8030, "parentId": 8029, "pos": [ - -1303.1999999999998, - 4873.664112347758 + -1308.6564847361017, + 3857.7240911670488 ], "linkIds": [ 13905 @@ -12075,8 +11434,8 @@ { "id": 8031, "pos": [ - -2244.0, - 4901.664112347758 + -2249.4564847361003, + 3885.7240911670483 ], "linkIds": [ 13906 @@ -12086,8 +11445,8 @@ "id": 8032, "parentId": 8031, "pos": [ - -1303.1999999999998, - 4901.664112347758 + -1308.6564847361017, + 3885.7240911670483 ], "linkIds": [ 13906 @@ -12096,8 +11455,8 @@ { "id": 8033, "pos": [ - -2244.0, - 4929.664112347758 + -2249.4564847361003, + 3913.7240911670483 ], "linkIds": [ 13907 @@ -12107,8 +11466,8 @@ "id": 8034, "parentId": 8033, "pos": [ - -1303.1999999999998, - 4929.664112347758 + -1308.6564847361017, + 3913.7240911670483 ], "linkIds": [ 13907 @@ -12117,8 +11476,8 @@ { "id": 8035, "pos": [ - -3664.0, - 4957.664112347758 + -3664.3159017478797, + 4857.216929302292 ], "linkIds": [ 13909 @@ -12128,8 +11487,8 @@ "id": 8036, "parentId": 8035, "pos": [ - -1763.1999999999998, - 4957.664112347758 + -1763.51590174788, + 4857.216929302292 ], "linkIds": [ 13909 @@ -12138,8 +11497,8 @@ { "id": 8037, "pos": [ - -3187.0, - 4985.664112347758 + -3200.7177940821634, + 4584.717784826903 ], "linkIds": [ 13910 @@ -12149,8 +11508,8 @@ "id": 8038, "parentId": 8037, "pos": [ - -1763.1999999999998, - 4985.664112347758 + -1751.9998471206325, + 4596.4348678391725 ], "linkIds": [ 13910 @@ -12159,8 +11518,8 @@ { "id": 8039, "pos": [ - -2718.8, - 5013.664112347758 + -2687.937356510189, + 4048.747009839716 ], "linkIds": [ 13911 @@ -12170,39 +11529,18 @@ "id": 8040, "parentId": 8039, "pos": [ - -1763.1999999999998, - 5013.664112347758 + -1766.0909796321098, + 4051.5805527903995 ], "linkIds": [ 13911 ] }, - { - "id": 8041, - "pos": [ - -3664.0, - 5041.664112347758 - ], - "linkIds": [ - 13912 - ] - }, - { - "id": 8042, - "parentId": 8041, - "pos": [ - -1763.1999999999998, - 5041.664112347758 - ], - "linkIds": [ - 13912 - ] - }, { "id": 8043, "pos": [ - -3664.0, - 5069.664112347758 + -3660.984574224786, + 4889.379942110908 ], "linkIds": [ 13913 @@ -12212,8 +11550,8 @@ "id": 8044, "parentId": 8043, "pos": [ - -1763.1999999999998, - 5069.664112347758 + -1760.184574224787, + 4889.379942110908 ], "linkIds": [ 13913 @@ -12222,8 +11560,8 @@ { "id": 8045, "pos": [ - -3664.0, - 5097.664112347758 + -3660.984574224786, + 4917.379942110908 ], "linkIds": [ 13914 @@ -12233,8 +11571,8 @@ "id": 8046, "parentId": 8045, "pos": [ - -1763.1999999999998, - 5097.664112347758 + -1760.184574224787, + 4917.379942110908 ], "linkIds": [ 13914 @@ -12243,8 +11581,8 @@ { "id": 8047, "pos": [ - -2244.0, - 5125.664112347758 + -2249.857197454626, + 3676.2128006165453 ], "linkIds": [ 13915 @@ -12254,8 +11592,8 @@ "id": 8048, "parentId": 8047, "pos": [ - -1763.1999999999998, - 5125.664112347758 + -1769.0571974546299, + 3676.2128006165453 ], "linkIds": [ 13915 @@ -12264,8 +11602,8 @@ { "id": 8049, "pos": [ - -2718.8, - 5153.664112347758 + -2695.729599624551, + 4076.8029177274843 ], "linkIds": [ 13916 @@ -12275,8 +11613,8 @@ "id": 8050, "parentId": 8049, "pos": [ - -1763.1999999999998, - 5153.664112347758 + -1764.5203735783336, + 4083.5431122936047 ], "linkIds": [ 13916 @@ -12285,8 +11623,8 @@ { "id": 8053, "pos": [ - -2244.0, - 5209.664112347758 + -2249.295224626803, + 3702.8969757633863 ], "linkIds": [ 13918 @@ -12296,8 +11634,8 @@ "id": 8054, "parentId": 8053, "pos": [ - -1763.1999999999998, - 5209.664112347758 + -1768.4952246268058, + 3702.8969757633863 ], "linkIds": [ 13918 @@ -12306,8 +11644,8 @@ { "id": 8055, "pos": [ - -2244.0, - 5237.664112347758 + -2249.295224626803, + 3730.8969757633863 ], "linkIds": [ 13920 @@ -12317,8 +11655,8 @@ "id": 8056, "parentId": 8055, "pos": [ - -1763.1999999999998, - 5237.664112347758 + -1768.4952246268058, + 3730.8969757633863 ], "linkIds": [ 13920 @@ -12327,8 +11665,8 @@ { "id": 8057, "pos": [ - -2244.0, - 5265.664112347758 + -2249.295224626803, + 3758.8969757633863 ], "linkIds": [ 13921 @@ -12338,8 +11676,8 @@ "id": 8058, "parentId": 8057, "pos": [ - -1763.1999999999998, - 5265.664112347758 + -1768.4952246268058, + 3758.8969757633863 ], "linkIds": [ 13921 @@ -12348,8 +11686,8 @@ { "id": 8059, "pos": [ - -3664.0, - 5293.664112347758 + -3659.62523943088, + 4947.722980078905 ], "linkIds": [ 13922 @@ -12359,8 +11697,8 @@ "id": 8060, "parentId": 8059, "pos": [ - -1763.1999999999998, - 5293.664112347758 + -1760.7508041759118, + 4951.0185054039075 ], "linkIds": [ 13922 @@ -12369,8 +11707,8 @@ { "id": 8061, "pos": [ - -2244.0, - 5321.664112347758 + -2248.1982968955695, + 3789.348826436928 ], "linkIds": [ 13923 @@ -12380,19 +11718,61 @@ "id": 8062, "parentId": 8061, "pos": [ - -1763.1999999999998, - 5321.664112347758 + -1767.398296895573, + 3789.348826436928 ], "linkIds": [ 13923 ] + }, + { + "id": 9182, + "pos": [ + -2680.2559450894014, + 4021.8391643413197 + ], + "linkIds": [ + 13956 + ] + }, + { + "id": 9183, + "parentId": 9182, + "pos": [ + -452.8864648799535, + 4011.6924719527688 + ], + "linkIds": [ + 13956 + ] + }, + { + "id": 9184, + "pos": [ + -2664.103125, + 3994.7230468749985 + ], + "linkIds": [ + 13938 + ] + }, + { + "id": 9185, + "parentId": 9184, + "pos": [ + -1761.7888710664938, + 4004.6139471421384 + ], + "linkIds": [ + 13938 + ] } ], "ds": { - "scale": 0.42, + "scale": 0.408058046102172, "offset": [ - 1909.31, - -797.48 + 4369.80870517027, + -2711.734128933116 ] }, "linkExtensions": [ @@ -12400,30 +11780,14 @@ "id": 13653, "parentId": 8002 }, - { - "id": 13670, - "parentId": 8004 - }, { "id": 13673, "parentId": 8006 }, - { - "id": 13772, - "parentId": 8008 - }, - { - "id": 13811, - "parentId": 8010 - }, { "id": 13841, "parentId": 8012 }, - { - "id": 13845, - "parentId": 8014 - }, { "id": 13862, "parentId": 8016 @@ -12436,10 +11800,6 @@ "id": 13866, "parentId": 8020 }, - { - "id": 13871, - "parentId": 8022 - }, { "id": 13872, "parentId": 8024 @@ -12476,10 +11836,6 @@ "id": 13911, "parentId": 8040 }, - { - "id": 13912, - "parentId": 8042 - }, { "id": 13913, "parentId": 8044 @@ -12496,10 +11852,6 @@ "id": 13916, "parentId": 8050 }, - { - "id": 13917, - "parentId": 8052 - }, { "id": 13918, "parentId": 8054 @@ -12519,6 +11871,14 @@ { "id": 13923, "parentId": 8062 + }, + { + "id": 13938, + "parentId": 9185 + }, + { + "id": 13956, + "parentId": 9183 } ] }, diff --git a/example_workflows/2.5/HDR_workflows/LTX-2.5_V2V_TiledFusion_SDR_to_HDR.json b/example_workflows/2.5/HDR_workflows/LTX-2.5_V2V_TiledFusion_SDR_to_HDR.json index 79f8cc4..f55b911 100644 --- a/example_workflows/2.5/HDR_workflows/LTX-2.5_V2V_TiledFusion_SDR_to_HDR.json +++ b/example_workflows/2.5/HDR_workflows/LTX-2.5_V2V_TiledFusion_SDR_to_HDR.json @@ -1,19 +1,19 @@ { "id": "33e706ef-880f-4592-821d-8ff287d28c0e", "revision": 0, - "last_node_id": 9324, - "last_link_id": 14032, + "last_node_id": 9331, + "last_link_id": 14059, "nodes": [ { "id": 5531, "type": "MarkdownNote", "pos": [ -807.1999999999998, - 2840 + 2829 ], "size": [ 406.8, - 300 + 311 ], "flags": { "collapsed": false @@ -25,10 +25,10 @@ "title": "Decode", "properties": {}, "widgets_values": [ - "## Decode\n\nMake 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).\n\n### Recommended settings\n\n| node settings (pixels) | resolved latent geometry |\n| ------------------------------------------ | ------------------------------- |\n| `512 / 64 / 128 / 32` | 16x16, ov 2 - 16f ov 4 |\n| `768 / 192 / 128 / 32` | 24x24, ov 6 - 16f ov 4 |\n| `1024 / 256 / 128 / 48` | 32x32, ov 8 - 16f, ov 6 |\n| `1536 / 384 / 192 / 48` | 48x48, ov 12 - 24f, ov 6 |\n| `768 / 192 / spatial-only` | 24x24, ov 6 - no temporal split |\n" + "## Decode\n\nMake 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).\n\n### Recommended settings\n\n| node settings (pixels) | resolved latent geometry |\n| ------------------------------------------ | ------------------------------- |\n| `512 / 64 / 128 / 32` | 16x16, ov 2 - 16f ov 4 |\n| `768 / 192 / 128 / 32` | 24x24, ov 6 - 16f ov 4 |\n| `1024 / 256 / 128 / 48` | 32x32, ov 8 - 16f, ov 6 |\n| `1536 / 384 / 192 / 48` | 48x48, ov 12 - 24f, ov 6 |\n| `768 / 192 / spatial-only` | 24x24, ov 6 - no temporal split |\n\n**Convert Image Color Space** ACEScct → `HDR` (Rec.2020 HLG) feeds the video; the ACEScct image goes to the EXR save.\n" ], "widgets_values_named": { - "text": "## Decode\n\nMake 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).\n\n### Recommended settings\n\n| node settings (pixels) | resolved latent geometry |\n| ------------------------------------------ | ------------------------------- |\n| `512 / 64 / 128 / 32` | 16x16, ov 2 - 16f ov 4 |\n| `768 / 192 / 128 / 32` | 24x24, ov 6 - 16f ov 4 |\n| `1024 / 256 / 128 / 48` | 32x32, ov 8 - 16f, ov 6 |\n| `1536 / 384 / 192 / 48` | 48x48, ov 12 - 24f, ov 6 |\n| `768 / 192 / spatial-only` | 24x24, ov 6 - no temporal split |\n" + "text": "## Decode\n\nMake 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).\n\n### Recommended settings\n\n| node settings (pixels) | resolved latent geometry |\n| ------------------------------------------ | ------------------------------- |\n| `512 / 64 / 128 / 32` | 16x16, ov 2 - 16f ov 4 |\n| `768 / 192 / 128 / 32` | 24x24, ov 6 - 16f ov 4 |\n| `1024 / 256 / 128 / 48` | 32x32, ov 8 - 16f, ov 6 |\n| `1536 / 384 / 192 / 48` | 48x48, ov 12 - 24f, ov 6 |\n| `768 / 192 / spatial-only` | 24x24, ov 6 - no temporal split |\n\n**Convert Image Color Space** ACEScct → `HDR` (Rec.2020 HLG) feeds the video; the ACEScct image goes to the EXR save.\n" }, "color": "#432", "bgcolor": "#653" @@ -37,12 +37,12 @@ "id": 5532, "type": "MarkdownNote", "pos": [ - -320.3999999999998, - 3052 + -316.4284617846492, + 3012.480121164019 ], "size": [ 523, - 88 + 123 ], "flags": { "collapsed": false @@ -54,10 +54,10 @@ "title": "Save video", "properties": {}, "widgets_values": [ - "## Save video\n\nWrites the muxed VIDEO. The original soundtrack is muxed on save (preview + HLG) when present; silent input gives a video-only file. Change the prefix on SaveVideo.\n" + "## Save HDR\n\n1. **Save EXR (ACEScg)** — `LTXVHDRDecodePostprocess` with `save_exr` on and `exr_color_space` = `acescg`; writes the ACEScg EXR sequence to `output/hdr_exr`. Its image outputs are not used.\n2. **HLG video**: Create Video (`HDR`, source audio) → Save Video (10-bit; auto = H.264, AV1 also available). Core HLG uses 1.0 = 203 nits and clips above 1000 nits.\n" ], "widgets_values_named": { - "text": "## Save video\n\nWrites the muxed VIDEO. The original soundtrack is muxed on save (preview + HLG) when present; silent input gives a video-only file. Change the prefix on SaveVideo.\n" + "text": "## Save HDR\n\n1. **Save EXR (ACEScg)** — `LTXVHDRDecodePostprocess` with `save_exr` on and `exr_color_space` = `acescg`; writes the ACEScg EXR sequence to `output/hdr_exr`. Its image outputs are not used.\n2. **HLG video**: Create Video (`HDR`, source audio) → Save Video (10-bit; auto = H.264, AV1 also available). Core HLG uses 1.0 = 203 nits and clips above 1000 nits.\n" }, "color": "#432", "bgcolor": "#653" @@ -112,10 +112,10 @@ "title": "Model Links", "properties": {}, "widgets_values": [ - "## Model Links\n\n**LTX-2.5 Model Weights**\n\nMake sure to click the \"Agree and Access\" button the first time you download.\n\n- [ Distilled model - ltx-2.5-22b-distilled-transformer-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/diffusion_models/ltx-2.5-22b-distilled-transformer-bf16.safetensors)\n\n- [ Audio VAE - ltx-2.5-audio-vae-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/vae/ltx-2.5-audio-vae-bf16.safetensors)\n\n- [ Video VAE - ltx-2.5-video-vae-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/vae/ltx-2.5-video-vae-bf16.safetensors)\n\n- [ Spatial upscaler x2 - ltx-2.5-latent-spatial-upscaler-x2-bf16-1.0.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/latent_upscale_models/ltx-2.5-latent-spatial-upscaler-x2-bf16-1.0.safetensors)\n\n- [ IC-LoRA SDR to HDR - ltx-2.5-22b-ic-lora-sdr-to-hdr-1.0.safetensors ](https://huggingface.co/Lightricks/LTX-2.5-22b-IC-LoRA-SDR-To-HDR/blob/main/ltx-2.5-22b-ic-lora-sdr-to-hdr-1.0.safetensors)\n\n- [ Scene embeddings - ltx-2.5-22b-ic-lora-sdr-to-hdr-scene-emb.safetensors ](https://huggingface.co/Lightricks/LTX-2.5-22b-IC-LoRA-SDR-To-HDR/blob/main/ltx-2.5-22b-ic-lora-sdr-to-hdr-scene-emb.safetensors)\n\nThis workflow uses fixed scene embeddings (no Gemma text encoder).\n\nSame two-stage recipe as Dynamic 4K/8K, with the SDR-to-HDR IC-LoRA (`ltx-2.5-22b-ic-lora-sdr-to-hdr-1.0.safetensors`). SDR MP4 is mapped to ACEScct before the guide resize. After decode: tonemapped preview, optional EXR, HLG.\n\nPut LoRAs in `ComfyUI/models/loras/` and the scene embeddings in `ComfyUI/models/embeddings/`.\n" + "## Model Links\n\n**LTX-2.5 Model Weights**\n\nMake sure to click the \"Agree and Access\" button the first time you download.\n\n- [ Distilled model - ltx-2.5-22b-distilled-transformer-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/diffusion_models/ltx-2.5-22b-distilled-transformer-bf16.safetensors)\n\n- [ Audio VAE - ltx-2.5-audio-vae-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/vae/ltx-2.5-audio-vae-bf16.safetensors)\n\n- [ Video VAE - ltx-2.5-video-vae-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/vae/ltx-2.5-video-vae-bf16.safetensors)\n\n- [ Spatial upscaler x2 - ltx-2.5-latent-spatial-upscaler-x2-bf16-1.0.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/latent_upscale_models/ltx-2.5-latent-spatial-upscaler-x2-bf16-1.0.safetensors)\n\n- [ IC-LoRA SDR to HDR - ltx-2.5-22b-ic-lora-sdr-to-hdr-1.0.safetensors ](https://huggingface.co/Lightricks/LTX-2.5-22b-IC-LoRA-SDR-To-HDR/blob/main/ltx-2.5-22b-ic-lora-sdr-to-hdr-1.0.safetensors)\n\n- [ Scene embeddings - ltx-2.5-22b-ic-lora-sdr-to-hdr-scene-emb.safetensors ](https://huggingface.co/Lightricks/LTX-2.5-22b-IC-LoRA-SDR-To-HDR/blob/main/ltx-2.5-22b-ic-lora-sdr-to-hdr-scene-emb.safetensors)\n\nThis workflow uses fixed scene embeddings (no Gemma text encoder).\n\nSame two-stage recipe as Dynamic 4K/8K, with the SDR-to-HDR IC-LoRA (`ltx-2.5-22b-ic-lora-sdr-to-hdr-1.0.safetensors`). SDR MP4 is mapped to ACEScct before the guide resize. After decode: EXR + HLG.\n\nPut LoRAs in `ComfyUI/models/loras/` and the scene embeddings in `ComfyUI/models/embeddings/`.\n" ], "widgets_values_named": { - "text": "## Model Links\n\n**LTX-2.5 Model Weights**\n\nMake sure to click the \"Agree and Access\" button the first time you download.\n\n- [ Distilled model - ltx-2.5-22b-distilled-transformer-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/diffusion_models/ltx-2.5-22b-distilled-transformer-bf16.safetensors)\n\n- [ Audio VAE - ltx-2.5-audio-vae-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/vae/ltx-2.5-audio-vae-bf16.safetensors)\n\n- [ Video VAE - ltx-2.5-video-vae-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/vae/ltx-2.5-video-vae-bf16.safetensors)\n\n- [ Spatial upscaler x2 - ltx-2.5-latent-spatial-upscaler-x2-bf16-1.0.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/latent_upscale_models/ltx-2.5-latent-spatial-upscaler-x2-bf16-1.0.safetensors)\n\n- [ IC-LoRA SDR to HDR - ltx-2.5-22b-ic-lora-sdr-to-hdr-1.0.safetensors ](https://huggingface.co/Lightricks/LTX-2.5-22b-IC-LoRA-SDR-To-HDR/blob/main/ltx-2.5-22b-ic-lora-sdr-to-hdr-1.0.safetensors)\n\n- [ Scene embeddings - ltx-2.5-22b-ic-lora-sdr-to-hdr-scene-emb.safetensors ](https://huggingface.co/Lightricks/LTX-2.5-22b-IC-LoRA-SDR-To-HDR/blob/main/ltx-2.5-22b-ic-lora-sdr-to-hdr-scene-emb.safetensors)\n\nThis workflow uses fixed scene embeddings (no Gemma text encoder).\n\nSame two-stage recipe as Dynamic 4K/8K, with the SDR-to-HDR IC-LoRA (`ltx-2.5-22b-ic-lora-sdr-to-hdr-1.0.safetensors`). SDR MP4 is mapped to ACEScct before the guide resize. After decode: tonemapped preview, optional EXR, HLG.\n\nPut LoRAs in `ComfyUI/models/loras/` and the scene embeddings in `ComfyUI/models/embeddings/`.\n" + "text": "## Model Links\n\n**LTX-2.5 Model Weights**\n\nMake sure to click the \"Agree and Access\" button the first time you download.\n\n- [ Distilled model - ltx-2.5-22b-distilled-transformer-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/diffusion_models/ltx-2.5-22b-distilled-transformer-bf16.safetensors)\n\n- [ Audio VAE - ltx-2.5-audio-vae-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/vae/ltx-2.5-audio-vae-bf16.safetensors)\n\n- [ Video VAE - ltx-2.5-video-vae-bf16.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/vae/ltx-2.5-video-vae-bf16.safetensors)\n\n- [ Spatial upscaler x2 - ltx-2.5-latent-spatial-upscaler-x2-bf16-1.0.safetensors ](https://huggingface.co/Lightricks/LTX-2.5/blob/main/latent_upscale_models/ltx-2.5-latent-spatial-upscaler-x2-bf16-1.0.safetensors)\n\n- [ IC-LoRA SDR to HDR - ltx-2.5-22b-ic-lora-sdr-to-hdr-1.0.safetensors ](https://huggingface.co/Lightricks/LTX-2.5-22b-IC-LoRA-SDR-To-HDR/blob/main/ltx-2.5-22b-ic-lora-sdr-to-hdr-1.0.safetensors)\n\n- [ Scene embeddings - ltx-2.5-22b-ic-lora-sdr-to-hdr-scene-emb.safetensors ](https://huggingface.co/Lightricks/LTX-2.5-22b-IC-LoRA-SDR-To-HDR/blob/main/ltx-2.5-22b-ic-lora-sdr-to-hdr-scene-emb.safetensors)\n\nThis workflow uses fixed scene embeddings (no Gemma text encoder).\n\nSame two-stage recipe as Dynamic 4K/8K, with the SDR-to-HDR IC-LoRA (`ltx-2.5-22b-ic-lora-sdr-to-hdr-1.0.safetensors`). SDR MP4 is mapped to ACEScct before the guide resize. After decode: EXR + HLG.\n\nPut LoRAs in `ComfyUI/models/loras/` and the scene embeddings in `ComfyUI/models/embeddings/`.\n" }, "color": "#432", "bgcolor": "#653" @@ -161,7 +161,7 @@ 513 ], "flags": {}, - "order": 17, + "order": 13, "mode": 0, "inputs": [ { @@ -306,57 +306,12 @@ "tile_frames": 97 } }, - { - "id": 4852, - "type": "SaveVideo", - "pos": [ - -320.3999999999998, - 3230 - ], - "size": [ - 523, - 394.3666666666667 - ], - "flags": {}, - "order": 22, - "mode": 0, - "inputs": [ - { - "name": "video", - "type": "VIDEO", - "link": 13675 - } - ], - "outputs": [ - { - "name": "video", - "type": "VIDEO", - "links": null - } - ], - "properties": { - "cnr_id": "comfy-core", - "ver": "0.14.1" - }, - "widgets_values": [ - "hdr/preview", - "auto", - "auto", - "auto" - ], - "widgets_values_named": { - "filename_prefix": "hdr/preview", - "format": "auto", - "format.codec": "auto", - "codec": "auto" - } - }, { "id": 5001, "type": "LoadVideo", "pos": [ - -3567.6249804585154, - 3396.637677165265 + -3548.7186839551955, + 3262.298018982684 ], "size": [ 343.6, @@ -403,20 +358,20 @@ 560 ], "flags": {}, - "order": 16, + "order": 12, "mode": 0, "inputs": [ { "label": "positive", "name": "positive", "type": "CONDITIONING", - "link": 13869 + "link": 14057 }, { "label": "negative", "name": "negative", "type": "CONDITIONING", - "link": 13870 + "link": 14050 }, { "label": "vae", @@ -443,7 +398,7 @@ "label": "source_image", "name": "source_image", "type": "IMAGE", - "link": 13874 + "link": 14036 }, { "label": "length", @@ -461,7 +416,7 @@ "widget": { "name": "fps" }, - "link": 13876 + "link": 14055 }, { "label": "tile_size", @@ -650,10 +605,10 @@ ], "size": [ 380, - 150 + 178 ], "flags": {}, - "order": 12, + "order": 11, "mode": 0, "inputs": [ { @@ -669,7 +624,8 @@ "name": "image", "type": "IMAGE", "links": [ - 13861 + 14036, + 14037 ] }, { @@ -698,8 +654,7 @@ "name": "fps", "type": "FLOAT", "links": [ - 13772, - 14020 + 14044 ] }, { @@ -707,12 +662,27 @@ "name": "audio", "type": "AUDIO", "links": [ - 13852 + 14043 + ] + }, + { + "label": "conditioning_fps", + "name": "FLOAT", + "type": "FLOAT", + "links": [ + 14055, + 14056 ] } ], "properties": { "previewExposures": [] + }, + "widgets_values": [ + "sRGB" + ], + "widgets_values_named": { + "source": "sRGB" } }, { @@ -727,7 +697,7 @@ 380 ], "flags": {}, - "order": 21, + "order": 17, "mode": 0, "showAdvanced": true, "inputs": [ @@ -741,30 +711,23 @@ "name": "latents", "type": "LATENT", "link": 13851 - }, - { - "label": "audio", - "name": "audio", - "shape": 7, - "type": "AUDIO", - "link": 13852 - }, - { - "name": "fps", - "type": "FLOAT", - "widget": { - "name": "fps" - }, - "link": 13772 } ], "outputs": [ { - "label": "VIDEO", - "name": "VIDEO", - "type": "VIDEO", + "label": "ACEScct_image", + "name": "IMAGE", + "type": "IMAGE", "links": [ - 13675 + 14041 + ] + }, + { + "label": "HDR_HLG_image", + "name": "IMAGE_1", + "type": "IMAGE", + "links": [ + 14042 ] } ], @@ -774,16 +737,12 @@ "previewExposures": [] }, "widgets_values": [ - 30, - 8, 512, 64, 128, 32 ], "widgets_values_named": { - "fps": 30, - "bit_depth": 8, "tile_size": 512, "overlap": 64, "temporal_size": 128, @@ -934,6 +893,16 @@ "links": [ 13922 ] + }, + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [ + 14050, + 14057, + 14058, + 14059 + ] } ], "properties": { @@ -1006,20 +975,20 @@ 480 ], "flags": {}, - "order": 19, + "order": 15, "mode": 0, "inputs": [ { "label": "positive", "name": "positive", "type": "CONDITIONING", - "link": 13909 + "link": 14058 }, { "label": "negative", "name": "negative", "type": "CONDITIONING", - "link": 13911 + "link": 14059 }, { "label": "vae", @@ -1046,7 +1015,7 @@ "label": "source_image", "name": "source_image", "type": "IMAGE", - "link": 13915 + "link": 14037 }, { "label": "fps", @@ -1055,7 +1024,7 @@ "widget": { "name": "fps" }, - "link": 13916 + "link": 14056 }, { "label": "length", @@ -1185,7 +1154,7 @@ 513 ], "flags": {}, - "order": 20, + "order": 16, "mode": 0, "inputs": [ { @@ -1329,61 +1298,19 @@ "tile_frames": 97 } }, - { - "id": 9020, - "type": "LTXVSDRToHDRWorkingSpace", - "pos": [ - -2620, - 2840 - ], - "size": [ - 340, - 110 - ], - "flags": {}, - "order": 13, - "mode": 0, - "inputs": [ - { - "name": "image", - "type": "IMAGE", - "link": 13861 - } - ], - "outputs": [ - { - "name": "acescct", - "type": "IMAGE", - "links": [ - 13874, - 13915 - ] - } - ], - "title": "SDR → ACEScct", - "properties": { - "Node name for S&R": "LTXVSDRToHDRWorkingSpace" - }, - "widgets_values": [ - "srgb_gamma" - ], - "widgets_values_named": { - "color_space": "srgb_gamma" - } - }, { "id": 9101, "type": "PreviewAny", "pos": [ - -2619.766160820712, - 3858.0035227026256 + -2627.981008626665, + 3840.0601053235805 ], "size": [ 340, 160 ], "flags": {}, - "order": 18, + "order": 14, "mode": 0, "inputs": [ { @@ -1466,193 +1393,19 @@ "color": "#432", "bgcolor": "#653" }, - { - "id": 9317, - "type": "LTXVLoadConditioning", - "pos": [ - -3566.6, - 3230 - ], - "size": [ - 343.6, - 110 - ], - "flags": {}, - "order": 10, - "mode": 0, - "inputs": [], - "outputs": [ - { - "name": "CONDITIONING", - "type": "CONDITIONING", - "links": [ - 14018, - 14019 - ] - } - ], - "title": "Load scene embeddings", - "properties": { - "Node name for S&R": "LTXVLoadConditioning", - "models": [ - { - "name": "ltx-2.5-22b-ic-lora-sdr-to-hdr-scene-emb.safetensors", - "url": "https://huggingface.co/Lightricks/LTX-2.5-22b-IC-LoRA-SDR-To-HDR/resolve/main/ltx-2.5-22b-ic-lora-sdr-to-hdr-scene-emb.safetensors", - "directory": "embeddings" - } - ] - }, - "widgets_values": [ - "ltx-2.5-22b-ic-lora-sdr-to-hdr-scene-emb.safetensors", - "cpu" - ], - "widgets_values_named": { - "file_name": "ltx-2.5-22b-ic-lora-sdr-to-hdr-scene-emb.safetensors", - "device": "cpu" - }, - "color": "#233", - "bgcolor": "#355" - }, - { - "id": 9319, - "type": "ComfyMathExpression", - "pos": [ - -3134.8, - 3428 - ], - "size": [ - 380, - 128 - ], - "flags": { - "collapsed": false - }, - "order": 14, - "mode": 0, - "inputs": [ - { - "label": "a", - "name": "values.a", - "type": "FLOAT,INT,BOOLEAN", - "link": 14020 - }, - { - "name": "values.b", - "shape": 7, - "type": "FLOAT,INT,BOOLEAN", - "link": null - } - ], - "outputs": [ - { - "name": "FLOAT", - "type": "FLOAT", - "links": [ - 13876, - 13916, - 14021 - ] - }, - { - "name": "INT", - "type": "INT", - "links": [] - }, - { - "name": "BOOL", - "type": "BOOLEAN", - "links": [] - } - ], - "title": "Conditioning FPS (≤30 keep, >30 → 30)", - "properties": { - "Node name for S&R": "ComfyMathExpression", - "cnr_id": "comfy-core" - }, - "widgets_values": [ - "a if a <= 30 else 30" - ], - "widgets_values_named": { - "expression": "a if a <= 30 else 30" - } - }, - { - "id": 9320, - "type": "LTXVConditioning", - "pos": [ - -3134.8, - 3590 - ], - "size": [ - 380, - 90 - ], - "flags": {}, - "order": 15, - "mode": 0, - "inputs": [ - { - "name": "positive", - "type": "CONDITIONING", - "link": 14018 - }, - { - "name": "negative", - "type": "CONDITIONING", - "link": 14019 - }, - { - "name": "frame_rate", - "type": "FLOAT", - "widget": { - "name": "frame_rate" - }, - "link": 14021 - } - ], - "outputs": [ - { - "name": "positive", - "type": "CONDITIONING", - "links": [ - 13869, - 13909 - ] - }, - { - "name": "negative", - "type": "CONDITIONING", - "links": [ - 13870, - 13911 - ] - } - ], - "title": "LTXV Conditioning", - "properties": { - "Node name for S&R": "LTXVConditioning", - "cnr_id": "comfy-core" - }, - "widgets_values": [ - 24 - ], - "widgets_values_named": { - "frame_rate": 24 - } - }, { "id": 9321, "type": "MarkdownNote", "pos": [ - -3134.8, - 3720 + -3155.1304054589746, + 3466.9587038861423 ], "size": [ 380, 100 ], "flags": {}, - "order": 11, + "order": 10, "mode": 0, "inputs": [], "outputs": [], @@ -1666,6 +1419,172 @@ }, "color": "#432", "bgcolor": "#653" + }, + { + "id": 9327, + "type": "LTXVHDRDecodePostprocess", + "pos": [ + -297.60682415537855, + 3234.001957621128 + ], + "size": [ + 340, + 295 + ], + "flags": {}, + "order": 18, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": 14041 + } + ], + "outputs": [ + { + "name": "tonemapped", + "type": "IMAGE", + "links": [] + }, + { + "name": "hdr_linear", + "type": "IMAGE", + "links": [] + } + ], + "title": "Save EXR (ACEScg)", + "properties": { + "Node name for S&R": "LTXVHDRDecodePostprocess" + }, + "widgets_values": [ + "acescct", + 0, + true, + "acescg", + "output/hdr_exr", + "frame", + true + ], + "widgets_values_named": { + "transfer": "acescct", + "exposure": 0, + "save_exr": true, + "exr_color_space": "acescg", + "output_dir": "output/hdr_exr", + "filename_prefix": "frame", + "half_precision": true + }, + "color": "#233", + "bgcolor": "#355" + }, + { + "id": 9328, + "type": "CreateVideo", + "pos": [ + -264.89128657172387, + 3572.8494901091694 + ], + "size": [ + 280, + 150 + ], + "flags": {}, + "order": 19, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 14042 + }, + { + "name": "audio", + "shape": 7, + "type": "AUDIO", + "link": 14043 + }, + { + "name": "fps", + "type": "FLOAT", + "widget": { + "name": "fps" + }, + "link": 14044 + } + ], + "outputs": [ + { + "name": "VIDEO", + "type": "VIDEO", + "links": [ + 14045 + ] + } + ], + "title": "CreateVideo (HLG)", + "properties": { + "Node name for S&R": "CreateVideo", + "cnr_id": "comfy-core" + }, + "widgets_values": [ + 24, + "auto", + "HDR", + "none" + ], + "widgets_values_named": { + "fps": 24, + "bit_depth": "auto", + "color_space": "HDR", + "codec": "none" + } + }, + { + "id": 9329, + "type": "SaveVideo", + "pos": [ + 72.39317584462137, + 3234.001957621128 + ], + "size": [ + 360, + 296 + ], + "flags": {}, + "order": 20, + "mode": 0, + "inputs": [ + { + "name": "video", + "type": "VIDEO", + "link": 14045 + } + ], + "outputs": [ + { + "name": "video", + "type": "VIDEO", + "links": [] + } + ], + "title": "Save video (HLG)", + "properties": { + "Node name for S&R": "SaveVideo", + "cnr_id": "comfy-core" + }, + "widgets_values": [ + "hdr/hlg", + "auto", + "auto", + "auto" + ], + "widgets_values_named": { + "filename_prefix": "hdr/hlg", + "format": "auto", + "format.codec": "auto", + "codec": "auto" + } } ], "links": [ @@ -1693,14 +1612,6 @@ 0, "VIDEO" ], - [ - 13772, - 5548, - 4, - 5518, - 3, - "FLOAT" - ], [ 13811, 5004, @@ -1733,38 +1644,6 @@ 1, "LATENT" ], - [ - 13852, - 5548, - 5, - 5518, - 2, - "AUDIO" - ], - [ - 13861, - 5548, - 0, - 9020, - 0, - "IMAGE" - ], - [ - 13869, - 9320, - 0, - 9002, - 0, - "CONDITIONING" - ], - [ - 13870, - 9320, - 1, - 9002, - 1, - "CONDITIONING" - ], [ 13871, 5004, @@ -1789,14 +1668,6 @@ 4, "FLOAT" ], - [ - 13874, - 9020, - 0, - 9002, - 5, - "IMAGE" - ], [ 13875, 5548, @@ -1805,14 +1676,6 @@ 6, "INT" ], - [ - 13876, - 9319, - 0, - 9002, - 7, - "FLOAT" - ], [ 13878, 9002, @@ -1949,22 +1812,6 @@ 0, "*" ], - [ - 13909, - 9320, - 0, - 9018, - 0, - "CONDITIONING" - ], - [ - 13911, - 9320, - 1, - 9018, - 1, - "CONDITIONING" - ], [ 13912, 5004, @@ -1989,22 +1836,6 @@ 4, "FLOAT" ], - [ - 13915, - 9020, - 0, - 9018, - 5, - "IMAGE" - ], - [ - 13916, - 9319, - 0, - 9018, - 6, - "FLOAT" - ], [ 13917, 5548, @@ -2062,44 +1893,108 @@ "BOOLEAN" ], [ - 14018, - 9317, + 14036, + 5548, 0, - 9320, - 0, - "CONDITIONING" + 9002, + 5, + "IMAGE" ], [ - 14019, - 9317, + 14037, + 5548, 0, - 9320, + 9018, + 5, + "IMAGE" + ], + [ + 14041, + 5518, + 0, + 9327, + 0, + "IMAGE" + ], + [ + 14042, + 5518, 1, - "CONDITIONING" + 9328, + 0, + "IMAGE" ], [ - 14021, - 9319, - 0, - 9320, + 14043, + 5548, + 5, + 9328, + 1, + "AUDIO" + ], + [ + 14044, + 5548, + 4, + 9328, 2, "FLOAT" ], [ - 13675, - 5518, + 14050, + 5004, + 6, + 9002, + 1, + "CONDITIONING" + ], + [ + 14055, + 5548, + 6, + 9002, + 7, + "FLOAT" + ], + [ + 14056, + 5548, + 6, + 9018, + 6, + "FLOAT" + ], + [ + 14045, + 9328, 0, - 4852, + 9329, 0, "VIDEO" ], [ - 14020, - 5548, - 4, - 9319, + 14057, + 5004, + 6, + 9002, 0, - "FLOAT" + "CONDITIONING" + ], + [ + 14058, + 5004, + 6, + 9018, + 0, + "CONDITIONING" + ], + [ + 14059, + 5004, + 6, + 9018, + 1, + "CONDITIONING" ] ], "groups": [ @@ -2109,8 +2004,8 @@ "bounding": [ -3592.6, 3164, - 863.7999999999997, - 1172.2261854221688 + 852.6675473408718, + 435.91897462118504 ], "color": "#3f789e", "flags": {} @@ -2126,6 +2021,18 @@ ], "color": "#3f789e", "flags": {} + }, + { + "id": 164, + "title": "Export", + "bounding": [ + -330.3999999999998, + 3150, + 800.8174058603565, + 590.8936917697933 + ], + "color": "#3f789e", + "flags": {} } ], "definitions": { @@ -2134,10 +2041,10 @@ "id": "b7c1e94a-3f52-4d08-9a61-2e7c5d4f8a13", "version": 1, "state": { - "lastGroupId": 163, - "lastNodeId": 9324, - "lastLinkId": 14032, - "lastRerouteId": 9191 + "lastGroupId": 164, + "lastNodeId": 9331, + "lastLinkId": 14059, + "lastRerouteId": 9198 }, "revision": 0, "config": {}, @@ -2157,7 +2064,7 @@ 1846.1615289027789, 44.90340416991706, 201.76171875, - 168 + 188 ] }, "inputs": [ @@ -2345,6 +2252,18 @@ 1870.1615289027789, 168.90340416991705 ] + }, + { + "id": "722a188d-bd2e-47dd-8ba5-89ee3f1341b5", + "name": "CONDITIONING", + "type": "CONDITIONING", + "linkIds": [ + 14046 + ], + "pos": [ + 1870.1615289027789, + 188.90340416991705 + ] } ], "widgets": [], @@ -2353,15 +2272,15 @@ "id": 5600, "type": "VAELoader", "pos": [ - 325.66122358889555, - 100.43762919159208 + 338.79948901808143, + 19.942735452997102 ], "size": [ 376.83334885736076, 59.59521275015277 ], "flags": {}, - "order": 0, + "order": 1, "mode": 0, "inputs": [ { @@ -2406,15 +2325,15 @@ "id": 5601, "type": "VAELoader", "pos": [ - 326.067149935833, - 194.3200298293643 + 339.2054153650189, + 113.82513609076932 ], "size": [ 376.83334885736076, 59.59521275015277 ], "flags": {}, - "order": 1, + "order": 2, "mode": 0, "inputs": [ { @@ -2459,15 +2378,15 @@ "id": 5602, "type": "UNETLoader", "pos": [ - 325.74205482741013, - 295.8168273375426 + 338.880320256596, + 215.3219335989475 ], "size": [ 374.74465302622593, 82 ], "flags": {}, - "order": 2, + "order": 3, "mode": 0, "inputs": [ { @@ -2514,15 +2433,15 @@ "id": 5606, "type": "LTXICLoRALoaderModelOnly", "pos": [ - 1101.7176735435985, - 115.45883133750365 + 1114.8559389727839, + 34.96393759890864 ], "size": [ 384.6576773713696, 130.8845841562129 ], "flags": {}, - "order": 3, + "order": 4, "mode": 0, "inputs": [ { @@ -2591,15 +2510,15 @@ "id": 5607, "type": "LTXICLoRALoaderModelOnly", "pos": [ - 1106.9851815473387, - 306.3820825222746 + 1120.123446976524, + 225.88718878367945 ], "size": [ 384.6576773713696, 130.8845841562129 ], "flags": {}, - "order": 4, + "order": 5, "mode": 0, "inputs": [ { @@ -2666,15 +2585,15 @@ "id": 5608, "type": "LatentUpscaleModelLoader", "pos": [ - 326.6191352640746, - 422.14839762082596 + 339.7574006932605, + 341.653503882231 ], "size": [ 340, 60 ], "flags": {}, - "order": 5, + "order": 6, "mode": 0, "inputs": [ { @@ -2718,15 +2637,15 @@ "id": 9324, "type": "LTXVVAEForceFloat32", "pos": [ - 729.2767501136102, - 189.16024256554232 + 742.415015542796, + 108.66534882694734 ], "size": [ 300, 70 ], "flags": {}, - "order": 6, + "order": 7, "mode": 0, "inputs": [ { @@ -2752,6 +2671,53 @@ }, "color": "#233", "bgcolor": "#355" + }, + { + "id": 9330, + "type": "LTXVLoadConditioning", + "pos": [ + 1139.7500128367305, + 408.7305170488749 + ], + "size": [ + 343.6, + 110 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "localized_name": "CONDITIONING", + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [ + 14046 + ] + } + ], + "title": "Load scene embeddings", + "properties": { + "Node name for S&R": "LTXVLoadConditioning", + "models": [ + { + "name": "ltx-2.5-22b-ic-lora-sdr-to-hdr-scene-emb.safetensors", + "url": "https://huggingface.co/Lightricks/LTX-2.5-22b-IC-LoRA-SDR-To-HDR/resolve/main/ltx-2.5-22b-ic-lora-sdr-to-hdr-scene-emb.safetensors", + "directory": "embeddings" + } + ] + }, + "widgets_values": [ + "ltx-2.5-22b-ic-lora-sdr-to-hdr-scene-emb.safetensors", + "cpu" + ], + "widgets_values_named": { + "file_name": "ltx-2.5-22b-ic-lora-sdr-to-hdr-scene-emb.safetensors", + "device": "cpu" + }, + "color": "#233", + "bgcolor": "#355" } ], "groups": [ @@ -2759,10 +2725,10 @@ "id": 3, "title": "Load Models - one file per output", "bounding": [ - 306, - 36, - 1372.653868306682, - 459.1022270639843 + 319.1382654291859, + -44.494893738595, + 1365.8245322852952, + 590.8771878799316 ], "color": "#3f789e", "flags": {} @@ -2913,6 +2879,14 @@ "target_slot": 1, "type": "VAE", "parentId": 9191 + }, + { + "id": 14046, + "origin_id": 9330, + "origin_slot": 0, + "target_id": -20, + "target_slot": 6, + "type": "CONDITIONING" } ], "reroutes": [ @@ -3077,8 +3051,8 @@ "id": 9023, "parentId": 9022, "pos": [ - 1253.418950303296, - 737.8088030282786 + 1765.0907390381155, + 742.6766064292198 ], "linkIds": [ 22 @@ -3112,10 +3086,10 @@ "id": "f9337bd7-ca7a-4a59-99f1-65b664bed7e7", "version": 1, "state": { - "lastGroupId": 163, - "lastNodeId": 9324, - "lastLinkId": 14032, - "lastRerouteId": 9191 + "lastGroupId": 164, + "lastNodeId": 9331, + "lastLinkId": 14059, + "lastRerouteId": 9198 }, "revision": 0, "config": {}, @@ -4088,10 +4062,10 @@ "id": "c4a8f261-5b93-4e17-8d2a-6f01b3e97c45", "version": 1, "state": { - "lastGroupId": 163, - "lastNodeId": 9324, - "lastLinkId": 14032, - "lastRerouteId": 9191 + "lastGroupId": 164, + "lastNodeId": 9331, + "lastLinkId": 14059, + "lastRerouteId": 9198 }, "revision": 0, "config": {}, @@ -4101,17 +4075,17 @@ "bounding": [ 40, 206, - 210, - 72 + 128, + 88 ] }, "outputNode": { "id": -20, "bounding": [ - 1096, - 206, - 190, - 182 + 1522.6075212266412, + 269.6100618072533, + 141.462890625, + 188 ] }, "inputs": [ @@ -4123,8 +4097,20 @@ 13945 ], "pos": [ - 250, - 234 + 144, + 230 + ] + }, + { + "id": "11ca178c-14e7-4c79-8d15-6832a99b83ec", + "name": "source", + "type": "COMBO", + "linkIds": [ + 14035 + ], + "pos": [ + 144, + 250 ] } ], @@ -4134,11 +4120,11 @@ "name": "image", "type": "IMAGE", "linkIds": [ - 13952 + 14034 ], "pos": [ - 1096, - 234 + 1546.6075212266412, + 293.6100618072533 ] }, { @@ -4149,8 +4135,8 @@ 13946 ], "pos": [ - 1096, - 256 + 1546.6075212266412, + 313.6100618072533 ] }, { @@ -4161,8 +4147,8 @@ 13947 ], "pos": [ - 1096, - 278 + 1546.6075212266412, + 333.6100618072533 ] }, { @@ -4173,8 +4159,8 @@ 13948 ], "pos": [ - 1096, - 300 + 1546.6075212266412, + 353.6100618072533 ] }, { @@ -4185,8 +4171,8 @@ 13949 ], "pos": [ - 1096, - 322 + 1546.6075212266412, + 373.6100618072533 ] }, { @@ -4198,8 +4184,21 @@ ], "label": "audio", "pos": [ - 1096, - 344 + 1546.6075212266412, + 393.6100618072533 + ] + }, + { + "id": "258213f7-f4c5-4773-bef2-54d5fe6651f0", + "name": "FLOAT", + "type": "FLOAT", + "linkIds": [ + 14054 + ], + "label": "conditioning_fps", + "pos": [ + 1546.6075212266412, + 413.6100618072533 ] } ], @@ -4209,8 +4208,8 @@ "id": 5029, "type": "GetImageSize", "pos": [ - 806, - 206 + 1058.4681698088605, + 91.16737819501984 ], "size": [ 210, @@ -4263,8 +4262,8 @@ "id": 9006, "type": "GetVideoComponents", "pos": [ - 330, - 206 + 326.6899199707197, + 119.60739026328676 ], "size": [ 374.163671875, @@ -4288,7 +4287,7 @@ "type": "IMAGE", "links": [ 13951, - 13952 + 14033 ] }, { @@ -4304,7 +4303,8 @@ "name": "fps", "type": "FLOAT", "links": [ - 13949 + 13949, + 14053 ] }, { @@ -4330,12 +4330,12 @@ "id": 9001, "type": "MarkdownNote", "pos": [ - 330, - 80 + 555.5783637437693, + -114.45302382744315 ], "size": [ 396, - 110 + 146 ], "flags": {}, "order": 0, @@ -4345,29 +4345,139 @@ "title": "Source video → guide frames", "properties": {}, "widgets_values": [ - "## Source video\n\nFrames, size, and frame count go into **Preprocess**, where Get Tiling Sizes picks a model-legal canvas (multiple of 32, `tile_frames` = 8n+1) and resizes the guide to it.\n" + "## Source video\n\nFrames, size, and frame count go into **Preprocess**, where Get Tiling Sizes picks a model-legal canvas (multiple of 32, `tile_frames` = 8n+1) and resizes the guide to it.\n\n**Convert Image Color Space** (`sRGB` → `HDR ACEScct`) maps the frames to the IC-LoRA working space; `source` is exposed on the node.\n" ], "widgets_values_named": { - "text": "## Source video\n\nFrames, size, and frame count go into **Preprocess**, where Get Tiling Sizes picks a model-legal canvas (multiple of 32, `tile_frames` = 8n+1) and resizes the guide to it.\n" + "text": "## Source video\n\nFrames, size, and frame count go into **Preprocess**, where Get Tiling Sizes picks a model-legal canvas (multiple of 32, `tile_frames` = 8n+1) and resizes the guide to it.\n\n**Convert Image Color Space** (`sRGB` → `HDR ACEScct`) maps the frames to the IC-LoRA working space; `source` is exposed on the node.\n" }, "color": "#432", "bgcolor": "#653" - } - ], - "groups": [ + }, { - "id": 159, - "title": "Source Video", - "bounding": [ - 306, - 36, - 734, - 330 + "id": 9325, + "type": "ImageColorSpace", + "pos": [ + 785.5980581341432, + 333.11143170482904 ], - "color": "#3f789e", - "flags": {} + "size": [ + 315, + 106 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [ + { + "localized_name": "image", + "name": "image", + "type": "IMAGE", + "link": 14033 + }, + { + "localized_name": "source", + "name": "source", + "type": "COMBO", + "widget": { + "name": "source" + }, + "link": 14035 + } + ], + "outputs": [ + { + "localized_name": "IMAGE", + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 14034 + ] + } + ], + "title": "SDR → ACEScct", + "properties": { + "Node name for S&R": "ImageColorSpace", + "cnr_id": "comfy-core" + }, + "widgets_values": [ + "sRGB", + "HDR ACEScct" + ], + "widgets_values_named": { + "source": "sRGB", + "destination": "HDR ACEScct" + }, + "color": "#233", + "bgcolor": "#355" + }, + { + "id": 9331, + "type": "ComfyMathExpression", + "pos": [ + 781.219870079515, + 494.10092475768226 + ], + "size": [ + 380, + 128 + ], + "flags": { + "collapsed": false + }, + "order": 4, + "mode": 0, + "inputs": [ + { + "label": "a", + "localized_name": "a", + "name": "values.a", + "type": "FLOAT,INT,BOOLEAN", + "link": 14053 + }, + { + "localized_name": "b", + "name": "values.b", + "shape": 7, + "type": "FLOAT,INT,BOOLEAN", + "link": null + } + ], + "outputs": [ + { + "localized_name": "FLOAT", + "name": "FLOAT", + "type": "FLOAT", + "links": [ + 14054 + ] + }, + { + "localized_name": "INT", + "name": "INT", + "type": "INT", + "links": [] + }, + { + "localized_name": "BOOL", + "name": "BOOL", + "type": "BOOLEAN", + "links": [] + } + ], + "title": "Conditioning FPS (≤30 keep, >30 → 30)", + "properties": { + "Node name for S&R": "ComfyMathExpression", + "cnr_id": "comfy-core" + }, + "widgets_values": [ + "a if a <= 30 else 30" + ], + "widgets_values_named": { + "expression": "a if a <= 30 else 30" + } } ], + "groups": [], "links": [ { "id": 13945, @@ -4407,8 +4517,7 @@ "origin_slot": 2, "target_id": -20, "target_slot": 4, - "type": "FLOAT", - "parentId": 9077 + "type": "FLOAT" }, { "id": 13950, @@ -4416,8 +4525,7 @@ "origin_slot": 1, "target_id": -20, "target_slot": 5, - "type": "AUDIO", - "parentId": 9079 + "type": "AUDIO" }, { "id": 13951, @@ -4425,103 +4533,47 @@ "origin_slot": 0, "target_id": 5029, "target_slot": 0, - "type": "IMAGE", - "parentId": 9081 + "type": "IMAGE" }, { - "id": 13952, + "id": 14033, "origin_id": 9006, "origin_slot": 0, + "target_id": 9325, + "target_slot": 0, + "type": "IMAGE" + }, + { + "id": 14034, + "origin_id": 9325, + "origin_slot": 0, "target_id": -20, "target_slot": 0, - "type": "IMAGE", - "parentId": 9083 - } - ], - "reroutes": [ - { - "id": 9076, - "pos": [ - 722.163671875, - 428 - ], - "linkIds": [ - 13949 - ] + "type": "IMAGE" }, { - "id": 9077, - "parentId": 9076, - "pos": [ - 1078, - 428 - ], - "linkIds": [ - 13949 - ] + "id": 14035, + "origin_id": -10, + "origin_slot": 1, + "target_id": 9325, + "target_slot": 1, + "type": "COMBO" }, { - "id": 9078, - "pos": [ - 722.163671875, - 446 - ], - "linkIds": [ - 13950 - ] + "id": 14054, + "origin_id": 9331, + "origin_slot": 0, + "target_id": -20, + "target_slot": 6, + "type": "FLOAT" }, { - "id": 9079, - "parentId": 9078, - "pos": [ - 1078, - 446 - ], - "linkIds": [ - 13950 - ] - }, - { - "id": 9080, - "pos": [ - 722.163671875, - 464 - ], - "linkIds": [ - 13951 - ] - }, - { - "id": 9081, - "parentId": 9080, - "pos": [ - 788, - 464 - ], - "linkIds": [ - 13951 - ] - }, - { - "id": 9082, - "pos": [ - 722.163671875, - 482 - ], - "linkIds": [ - 13952 - ] - }, - { - "id": 9083, - "parentId": 9082, - "pos": [ - 1078, - 482 - ], - "linkIds": [ - 13952 - ] + "id": 14053, + "origin_id": 9006, + "origin_slot": 2, + "target_id": 9331, + "target_slot": 0, + "type": "FLOAT" } ], "extra": {} @@ -4530,10 +4582,10 @@ "id": "d92e6f38-7a14-4c85-b3e0-9f52a1d68b74", "version": 1, "state": { - "lastGroupId": 163, - "lastNodeId": 9324, - "lastLinkId": 14032, - "lastRerouteId": 9191 + "lastGroupId": 164, + "lastNodeId": 9331, + "lastLinkId": 14059, + "lastRerouteId": 9198 }, "revision": 0, "config": {}, @@ -4544,7 +4596,7 @@ 40, 80, 184.962890625, - 288 + 268 ] }, "outputNode": { @@ -4675,7 +4727,7 @@ "label": "tile_size", "pos": [ 200.962890625, - 284 + 264 ] }, { @@ -4688,7 +4740,7 @@ "label": "initial_canvas_size", "pos": [ 200.962890625, - 304 + 284 ] }, { @@ -4701,7 +4753,7 @@ "label": "output_size", "pos": [ 200.962890625, - 324 + 304 ] } ], @@ -5038,8 +5090,8 @@ "id": 9005, "type": "LTXVConditioning", "pos": [ - 330, - 520 + 683.2746281315234, + 349.01382002435656 ], "size": [ 270.1809911778764, @@ -5107,8 +5159,8 @@ "id": 3059, "type": "EmptyLTXVLatentVideo", "pos": [ - 330, - 638 + 340.33060412317303, + 664.2456071677105 ], "size": [ 270.1809911778764, @@ -5230,13 +5282,13 @@ "cnr_id": "comfy-core" }, "widgets_values": [ - "lanczos", + "bilinear", 1920, 1088, "disabled" ], "widgets_values_named": { - "upscale_method": "lanczos", + "upscale_method": "bilinear", "width": 1920, "height": 1088, "crop": "disabled" @@ -5363,8 +5415,8 @@ "id": 9322, "type": "LTXVEmptyLatentAudio", "pos": [ - 330, - 872 + 923.7454658141962, + 546.4605080027832 ], "size": [ 327.9458984375, @@ -6067,10 +6119,10 @@ "id": "2449b2d3-ef34-45f8-833d-a4ebca19b39e", "version": 1, "state": { - "lastGroupId": 163, - "lastNodeId": 9324, - "lastLinkId": 14032, - "lastRerouteId": 9191 + "lastGroupId": 164, + "lastNodeId": 9331, + "lastLinkId": 14059, + "lastRerouteId": 9198 }, "revision": 0, "config": {}, @@ -6081,7 +6133,7 @@ 40, 80, 184.962890625, - 348 + 328 ] }, "outputNode": { @@ -6117,7 +6169,7 @@ "label": "negative", "pos": [ 200.962890625, - 144 + 124 ] }, { @@ -6132,7 +6184,7 @@ "label": "vae", "pos": [ 200.962890625, - 164 + 144 ] }, { @@ -6145,7 +6197,7 @@ "label": "audio_vae", "pos": [ 200.962890625, - 184 + 164 ] }, { @@ -6158,7 +6210,7 @@ "label": "latent_downscale_factor", "pos": [ 200.962890625, - 204 + 184 ] }, { @@ -6171,7 +6223,7 @@ "label": "source_image", "pos": [ 200.962890625, - 224 + 204 ] }, { @@ -6185,7 +6237,7 @@ "label": "fps", "pos": [ 200.962890625, - 244 + 224 ] }, { @@ -6199,7 +6251,7 @@ "label": "length", "pos": [ 200.962890625, - 264 + 244 ] }, { @@ -6212,7 +6264,7 @@ "label": "tile_frames", "pos": [ 200.962890625, - 284 + 264 ] }, { @@ -6225,7 +6277,7 @@ "label": "latent", "pos": [ 200.962890625, - 304 + 284 ] }, { @@ -6238,7 +6290,7 @@ "label": "output_width", "pos": [ 200.962890625, - 324 + 304 ] }, { @@ -6251,7 +6303,7 @@ "label": "output_height", "pos": [ 200.962890625, - 344 + 324 ] }, { @@ -6265,7 +6317,7 @@ "label": "upscale model", "pos": [ 200.962890625, - 364 + 344 ] }, { @@ -6278,7 +6330,7 @@ "label": "is_8k", "pos": [ 200.962890625, - 384 + 364 ] } ], @@ -6342,8 +6394,8 @@ "id": 9304, "type": "LTXVConditioning", "pos": [ - 330, - 320 + 334.86166183501496, + 188.6808102106274 ], "size": [ 270.1809911778764, @@ -6624,13 +6676,13 @@ "cnr_id": "comfy-core" }, "widgets_values": [ - "lanczos", + "bilinear", 3840, 2176, "disabled" ], "widgets_values_named": { - "upscale_method": "lanczos", + "upscale_method": "bilinear", "width": 3840, "height": 2176, "crop": "disabled" @@ -6757,8 +6809,8 @@ "id": 9323, "type": "LTXVEmptyLatentAudio", "pos": [ - 330, - 438 + 305.4666498142058, + 385.08820235905824 ], "size": [ 327.9458984375, @@ -7405,10 +7457,10 @@ "id": "8deebd57-c969-4460-8f46-12a98501e2c3", "version": 1, "state": { - "lastGroupId": 163, - "lastNodeId": 9324, - "lastLinkId": 14032, - "lastRerouteId": 9191 + "lastGroupId": 164, + "lastNodeId": 9331, + "lastLinkId": 14059, + "lastRerouteId": 9198 }, "revision": 0, "config": {}, @@ -8381,10 +8433,10 @@ "id": "6dccac65-c5c2-4f24-8e81-ef9145cb3927", "version": 1, "state": { - "lastGroupId": 163, - "lastNodeId": 9324, - "lastLinkId": 14032, - "lastRerouteId": 9191 + "lastGroupId": 164, + "lastNodeId": 9331, + "lastLinkId": 14059, + "lastRerouteId": 9198 }, "revision": 0, "config": {}, @@ -8435,47 +8487,6 @@ 124 ] }, - { - "id": "3a7f5609-1830-4ac6-a4ed-b1ed95661dea", - "name": "audio", - "type": "AUDIO", - "linkIds": [ - 14030, - 14031 - ], - "localized_name": "audio", - "label": "audio", - "pos": [ - 161.658203125, - 144 - ] - }, - { - "id": "135318cf-13a1-46df-9dc6-10c814fe4a3b", - "name": "fps", - "type": "FLOAT", - "linkIds": [ - 14005, - 14017 - ], - "localized_name": "fps", - "pos": [ - 161.658203125, - 164 - ] - }, - { - "id": "baced759-c6b8-45b2-a6cd-d606cbd5bc4b", - "name": "bit_depth", - "type": "INT", - "linkIds": [ - 14007 - ], - "pos": [ - 161.658203125, - 184 - ] - }, { "id": "425f98fa-15bb-4a5a-82d3-81beb7e73a19", "name": "tile_size", @@ -8527,97 +8538,34 @@ ], "outputs": [ { - "id": "dc6707aa-e87d-4616-a4e6-84471c015b6b", - "name": "VIDEO", - "type": "VIDEO", + "id": "92896adb-daaa-4843-8241-6754d2977d6a", + "name": "IMAGE", + "type": "IMAGE", "linkIds": [ - 14006 + 14038 ], - "localized_name": "VIDEO", + "label": "ACEScct_image", "pos": [ 1544, - 104 + 124 + ] + }, + { + "id": "06e894dc-b7a5-4587-898a-694a6b1c0e2e", + "name": "IMAGE_1", + "type": "IMAGE", + "linkIds": [ + 14040 + ], + "label": "HDR_HLG_image", + "pos": [ + 1544, + 144 ] } ], "widgets": [], "nodes": [ - { - "id": 9315, - "type": "CreateVideo", - "pos": [ - 1099.3918746351428, - 104.08794877408053 - ], - "size": [ - 270, - 150 - ], - "flags": {}, - "order": 2, - "mode": 0, - "inputs": [ - { - "localized_name": "images", - "name": "images", - "type": "IMAGE", - "link": 14010 - }, - { - "localized_name": "audio", - "name": "audio", - "shape": 7, - "type": "AUDIO", - "link": 14030 - }, - { - "localized_name": "fps", - "name": "fps", - "type": "FLOAT", - "widget": { - "name": "fps" - }, - "link": 14005 - }, - { - "localized_name": "bit_depth", - "name": "bit_depth", - "shape": 7, - "type": "COMBO", - "widget": { - "name": "bit_depth" - }, - "link": 14007 - } - ], - "outputs": [ - { - "localized_name": "VIDEO", - "name": "VIDEO", - "type": "VIDEO", - "links": [ - 14006 - ] - } - ], - "properties": { - "Node name for S&R": "CreateVideo", - "cnr_id": "comfy-core", - "ver": "0.14.1" - }, - "widgets_values": [ - 30, - 8, - "sRGB", - "none" - ], - "widgets_values_named": { - "fps": 30, - "bit_depth": 8, - "color_space": "sRGB", - "codec": "none" - } - }, { "id": 9316, "type": "VAEDecodeTiled", @@ -8630,7 +8578,7 @@ 150 ], "flags": {}, - "order": 3, + "order": 0, "mode": 0, "inputs": [ { @@ -8688,7 +8636,8 @@ "name": "IMAGE", "type": "IMAGE", "links": [ - 14015 + 14038, + 14039 ] } ], @@ -8709,119 +8658,52 @@ } }, { - "id": 5590, - "type": "LTXVHDRDecodePostprocess", + "id": 9326, + "type": "ImageColorSpace", "pos": [ - 679.1960376532398, - 117.7759230881495 + 684.825780793929, + 355.4139028750733 ], "size": [ - 340, - 222 - ], - "flags": {}, - "order": 0, - "mode": 0, - "inputs": [ - { - "localized_name": "image", - "name": "image", - "type": "IMAGE", - "link": 14015 - } - ], - "outputs": [ - { - "localized_name": "tonemapped", - "name": "tonemapped", - "type": "IMAGE", - "links": [ - 14010 - ] - }, - { - "localized_name": "hdr_linear", - "name": "hdr_linear", - "type": "IMAGE", - "links": [ - 14016 - ] - } - ], - "properties": { - "Node name for S&R": "LTXVHDRDecodePostprocess" - }, - "widgets_values": [ - "acescct", - 0, - true, - "acescg", - "output/hdr_exr", - "frame", - true - ], - "widgets_values_named": { - "transfer": "acescct", - "exposure": 0, - "save_exr": true, - "exr_color_space": "acescg", - "output_dir": "output/hdr_exr", - "filename_prefix": "frame", - "half_precision": true - } - }, - { - "id": 5591, - "type": "LTXVSaveHLG", - "pos": [ - 1094.3455313326385, - 312.7241634297796 - ], - "size": [ - 340, - 126 + 315, + 106 ], "flags": {}, "order": 1, "mode": 0, "inputs": [ { - "localized_name": "hdr_linear", - "name": "hdr_linear", + "localized_name": "image", + "name": "image", "type": "IMAGE", - "link": 14016 - }, - { - "localized_name": "audio", - "name": "audio", - "shape": 7, - "type": "AUDIO", - "link": 14031 - }, - { - "localized_name": "frame_rate", - "name": "frame_rate", - "type": "FLOAT", - "widget": { - "name": "frame_rate" - }, - "link": 14017 + "link": 14039 } ], - "outputs": [], + "outputs": [ + { + "localized_name": "IMAGE", + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 14040 + ] + } + ], + "title": "ACEScct → HDR (HLG)", "properties": { - "Node name for S&R": "LTXVSaveHLG" + "Node name for S&R": "ImageColorSpace", + "cnr_id": "comfy-core" }, "widgets_values": [ - 24, - "hdr/ltxv_hlg", - "acescg" + "HDR ACEScct", + "HDR" ], "widgets_values_named": { - "frame_rate": 24, - "filename_prefix": "hdr/ltxv_hlg", - "linear_primaries": "acescg" - } + "source": "HDR ACEScct", + "destination": "HDR" + }, + "color": "#233", + "bgcolor": "#355" } ], "groups": [ @@ -8839,33 +8721,6 @@ } ], "links": [ - { - "id": 14005, - "origin_id": -10, - "origin_slot": 3, - "target_id": 9315, - "target_slot": 2, - "type": "FLOAT", - "parentId": 9183 - }, - { - "id": 14006, - "origin_id": 9315, - "origin_slot": 0, - "target_id": -20, - "target_slot": 0, - "type": "VIDEO", - "parentId": 9185 - }, - { - "id": 14007, - "origin_id": -10, - "origin_slot": 4, - "target_id": 9315, - "target_slot": 3, - "type": "INT", - "parentId": 9187 - }, { "id": 14008, "origin_id": -10, @@ -8882,18 +8737,10 @@ "target_slot": 0, "type": "LATENT" }, - { - "id": 14010, - "origin_id": 5590, - "origin_slot": 0, - "target_id": 9315, - "target_slot": 0, - "type": "IMAGE" - }, { "id": 14011, "origin_id": -10, - "origin_slot": 5, + "origin_slot": 2, "target_id": 9316, "target_slot": 2, "type": "INT" @@ -8901,7 +8748,7 @@ { "id": 14012, "origin_id": -10, - "origin_slot": 6, + "origin_slot": 3, "target_id": 9316, "target_slot": 3, "type": "INT" @@ -8909,7 +8756,7 @@ { "id": 14013, "origin_id": -10, - "origin_slot": 7, + "origin_slot": 4, "target_id": 9316, "target_slot": 4, "type": "INT" @@ -8917,137 +8764,34 @@ { "id": 14014, "origin_id": -10, - "origin_slot": 8, + "origin_slot": 5, "target_id": 9316, "target_slot": 5, "type": "INT" }, { - "id": 14015, + "id": 14038, "origin_id": 9316, "origin_slot": 0, - "target_id": 5590, + "target_id": -20, "target_slot": 0, "type": "IMAGE" }, { - "id": 14016, - "origin_id": 5590, - "origin_slot": 1, - "target_id": 5591, + "id": 14039, + "origin_id": 9316, + "origin_slot": 0, + "target_id": 9326, "target_slot": 0, "type": "IMAGE" }, { - "id": 14017, - "origin_id": -10, - "origin_slot": 3, - "target_id": 5591, - "target_slot": 2, - "type": "FLOAT", - "parentId": 9189 - }, - { - "id": 14030, - "origin_id": -10, - "origin_slot": 2, - "target_id": 9315, + "id": 14040, + "origin_id": 9326, + "origin_slot": 0, + "target_id": -20, "target_slot": 1, - "type": "AUDIO" - }, - { - "id": 14031, - "origin_id": -10, - "origin_slot": 2, - "target_id": 5591, - "target_slot": 1, - "type": "AUDIO" - } - ], - "reroutes": [ - { - "id": 9182, - "pos": [ - 268, - 408 - ], - "linkIds": [ - 14005 - ] - }, - { - "id": 9183, - "parentId": 9182, - "pos": [ - 1082, - 408 - ], - "linkIds": [ - 14005 - ] - }, - { - "id": 9184, - "pos": [ - 1388, - 426 - ], - "linkIds": [ - 14006 - ] - }, - { - "id": 9185, - "parentId": 9184, - "pos": [ - 1502, - 426 - ], - "linkIds": [ - 14006 - ] - }, - { - "id": 9186, - "pos": [ - 268, - 444 - ], - "linkIds": [ - 14007 - ] - }, - { - "id": 9187, - "parentId": 9186, - "pos": [ - 1082, - 444 - ], - "linkIds": [ - 14007 - ] - }, - { - "id": 9188, - "pos": [ - 268, - 462 - ], - "linkIds": [ - 14017 - ] - }, - { - "id": 9189, - "parentId": 9188, - "pos": [ - 1082, - 462 - ], - "linkIds": [ - 14017 - ] + "type": "IMAGE" } ], "extra": {} @@ -9056,7 +8800,7 @@ }, "config": {}, "extra": { - "frontendVersion": "1.53.6", + "frontendVersion": "1.55.14", "VHS_latentpreview": false, "VHS_latentpreviewrate": 0, "VHS_MetadataImage": true, @@ -9073,8 +8817,8 @@ { "id": 8001, "pos": [ - -3664, - 4360.226185422169 + -3667.9334887085356, + 4043.398398571342 ], "linkIds": [ 13653 @@ -9084,8 +8828,8 @@ "id": 8002, "parentId": 8001, "pos": [ - -2203.2, - 4360.226185422169 + -2207.1334887085354, + 4043.398398571342 ], "linkIds": [ 13653 @@ -9094,8 +8838,8 @@ { "id": 8003, "pos": [ - -3664, - 4388.226185422169 + -3667.9334887085356, + 4071.3983985713417 ], "linkIds": [ 13670 @@ -9105,39 +8849,18 @@ "id": 8004, "parentId": 8003, "pos": [ - -843.1999999999998, - 4388.226185422169 + -847.1334887085333, + 4071.3983985713417 ], "linkIds": [ 13670 ] }, - { - "id": 8007, - "pos": [ - -2718.8, - 4444.226185422169 - ], - "linkIds": [ - 13772 - ] - }, - { - "id": 8008, - "parentId": 8007, - "pos": [ - -843.1999999999998, - 4444.226185422169 - ], - "linkIds": [ - 13772 - ] - }, { "id": 8009, "pos": [ - -3664, - 4472.226185422169 + -3667.9334887085356, + 4155.398398571344 ], "linkIds": [ 13811 @@ -9147,8 +8870,8 @@ "id": 8010, "parentId": 8009, "pos": [ - -2203.2, - 4472.226185422169 + -2207.1334887085354, + 4155.398398571344 ], "linkIds": [ 13811 @@ -9157,8 +8880,8 @@ { "id": 8011, "pos": [ - -3664, - 4500.226185422169 + -3667.9334887085356, + 4183.398398571344 ], "linkIds": [ 13841 @@ -9168,8 +8891,8 @@ "id": 8012, "parentId": 8011, "pos": [ - -1303.1999999999998, - 4500.226185422169 + -1307.1334887085332, + 4183.398398571344 ], "linkIds": [ 13841 @@ -9178,8 +8901,8 @@ { "id": 8013, "pos": [ - -3664, - 4528.226185422169 + -3667.9334887085356, + 4211.398398571344 ], "linkIds": [ 13845 @@ -9189,8 +8912,8 @@ "id": 8014, "parentId": 8013, "pos": [ - -1303.1999999999998, - 4528.226185422169 + -1307.1334887085332, + 4211.398398571344 ], "linkIds": [ 13845 @@ -9199,8 +8922,8 @@ { "id": 8021, "pos": [ - -3664, - 4640.226185422169 + -3667.9334887085356, + 4323.398398571344 ], "linkIds": [ 13871 @@ -9210,8 +8933,8 @@ "id": 8022, "parentId": 8021, "pos": [ - -2656, - 4640.226185422169 + -2659.9334887085356, + 4323.398398571344 ], "linkIds": [ 13871 @@ -9220,8 +8943,8 @@ { "id": 8023, "pos": [ - -3664, - 4668.226185422169 + -3667.9334887085356, + 4351.398398571344 ], "linkIds": [ 13872 @@ -9231,8 +8954,8 @@ "id": 8024, "parentId": 8023, "pos": [ - -2656, - 4668.226185422169 + -2659.9334887085356, + 4351.398398571344 ], "linkIds": [ 13872 @@ -9241,8 +8964,8 @@ { "id": 8025, "pos": [ - -3664, - 4696.226185422169 + -3667.9334887085356, + 4379.398398571344 ], "linkIds": [ 13873 @@ -9252,8 +8975,8 @@ "id": 8026, "parentId": 8025, "pos": [ - -2656, - 4696.226185422169 + -2659.9334887085356, + 4379.398398571344 ], "linkIds": [ 13873 @@ -9262,8 +8985,8 @@ { "id": 8027, "pos": [ - -2244, - 4724.226185422169 + -2247.9334887085356, + 4407.398398571344 ], "linkIds": [ 13904 @@ -9273,8 +8996,8 @@ "id": 8028, "parentId": 8027, "pos": [ - -1303.1999999999998, - 4724.226185422169 + -1307.1334887085332, + 4407.398398571344 ], "linkIds": [ 13904 @@ -9283,8 +9006,8 @@ { "id": 8029, "pos": [ - -2244, - 4752.226185422169 + -2247.9334887085356, + 4435.398398571344 ], "linkIds": [ 13905 @@ -9294,8 +9017,8 @@ "id": 8030, "parentId": 8029, "pos": [ - -1303.1999999999998, - 4752.226185422169 + -1307.1334887085332, + 4435.398398571344 ], "linkIds": [ 13905 @@ -9304,8 +9027,8 @@ { "id": 8031, "pos": [ - -2244, - 4780.226185422169 + -2247.9334887085356, + 4463.398398571344 ], "linkIds": [ 13906 @@ -9315,8 +9038,8 @@ "id": 8032, "parentId": 8031, "pos": [ - -1303.1999999999998, - 4780.226185422169 + -1307.1334887085332, + 4463.398398571344 ], "linkIds": [ 13906 @@ -9325,8 +9048,8 @@ { "id": 8033, "pos": [ - -2244, - 4808.226185422169 + -2247.9334887085356, + 4491.398398571344 ], "linkIds": [ 13907 @@ -9336,8 +9059,8 @@ "id": 8034, "parentId": 8033, "pos": [ - -1303.1999999999998, - 4808.226185422169 + -1307.1334887085332, + 4491.398398571344 ], "linkIds": [ 13907 @@ -9346,8 +9069,8 @@ { "id": 8041, "pos": [ - -3664, - 4920.226185422169 + -3667.9334887085356, + 4603.398398571344 ], "linkIds": [ 13912 @@ -9357,8 +9080,8 @@ "id": 8042, "parentId": 8041, "pos": [ - -1763.1999999999998, - 4920.226185422169 + -1767.1334887085332, + 4603.398398571344 ], "linkIds": [ 13912 @@ -9367,8 +9090,8 @@ { "id": 8043, "pos": [ - -3664, - 4948.226185422169 + -3667.9334887085356, + 4631.398398571344 ], "linkIds": [ 13913 @@ -9378,8 +9101,8 @@ "id": 8044, "parentId": 8043, "pos": [ - -1763.1999999999998, - 4948.226185422169 + -1767.1334887085332, + 4631.398398571344 ], "linkIds": [ 13913 @@ -9388,8 +9111,8 @@ { "id": 8045, "pos": [ - -3664, - 4976.226185422169 + -3667.9334887085356, + 4659.398398571344 ], "linkIds": [ 13914 @@ -9399,39 +9122,18 @@ "id": 8046, "parentId": 8045, "pos": [ - -1763.1999999999998, - 4976.226185422169 + -1767.1334887085332, + 4659.398398571344 ], "linkIds": [ 13914 ] }, - { - "id": 8047, - "pos": [ - -2244, - 5004.226185422169 - ], - "linkIds": [ - 13915 - ] - }, - { - "id": 8048, - "parentId": 8047, - "pos": [ - -1763.1999999999998, - 5004.226185422169 - ], - "linkIds": [ - 13915 - ] - }, { "id": 8053, "pos": [ - -2244, - 5088.226185422169 + -2247.9334887085356, + 4771.398398571344 ], "linkIds": [ 13918 @@ -9441,8 +9143,8 @@ "id": 8054, "parentId": 8053, "pos": [ - -1763.1999999999998, - 5088.226185422169 + -1767.1334887085332, + 4771.398398571344 ], "linkIds": [ 13918 @@ -9451,8 +9153,8 @@ { "id": 8055, "pos": [ - -2244, - 5116.226185422169 + -2247.9334887085356, + 4799.398398571344 ], "linkIds": [ 13920 @@ -9462,8 +9164,8 @@ "id": 8056, "parentId": 8055, "pos": [ - -1763.1999999999998, - 5116.226185422169 + -1767.1334887085332, + 4799.398398571344 ], "linkIds": [ 13920 @@ -9472,8 +9174,8 @@ { "id": 8057, "pos": [ - -2244, - 5144.226185422169 + -2247.9334887085356, + 4827.398398571344 ], "linkIds": [ 13921 @@ -9483,8 +9185,8 @@ "id": 8058, "parentId": 8057, "pos": [ - -1763.1999999999998, - 5144.226185422169 + -1767.1334887085332, + 4827.398398571344 ], "linkIds": [ 13921 @@ -9493,8 +9195,8 @@ { "id": 8059, "pos": [ - -3664, - 5172.226185422169 + -3667.9334887085356, + 4855.398398571344 ], "linkIds": [ 13922 @@ -9504,8 +9206,8 @@ "id": 8060, "parentId": 8059, "pos": [ - -1763.1999999999998, - 5172.226185422169 + -1767.1334887085332, + 4855.398398571344 ], "linkIds": [ 13922 @@ -9514,8 +9216,8 @@ { "id": 8061, "pos": [ - -2244, - 5200.226185422169 + -2247.9334887085356, + 4883.398398571344 ], "linkIds": [ 13923 @@ -9525,14 +9227,102 @@ "id": 8062, "parentId": 8061, "pos": [ - -1763.1999999999998, - 5200.226185422169 + -1767.1334887085332, + 4883.398398571344 ], "linkIds": [ 13923 ] + }, + { + "id": 9192, + "pos": [ + -3692.3916441009387, + 4018.40779059812 + ], + "linkIds": [ + 14050, + 14057, + 14058, + 14059 + ] + }, + { + "id": 9193, + "parentId": 9192, + "pos": [ + -2740.6411952147823, + 4020.896731932659 + ], + "linkIds": [ + 14050, + 14057, + 14058, + 14059 + ] + }, + { + "id": 9194, + "parentId": 9193, + "pos": [ + -1778.2388420383174, + 4043.5132899855007 + ], + "linkIds": [ + 14058, + 14059 + ] + }, + { + "id": 9195, + "pos": [ + -2786.766250856041, + 4543.728965127554 + ], + "linkIds": [ + 14043 + ] + }, + { + "id": 9196, + "pos": [ + -2769.598636902798, + 4512.109022248648 + ], + "linkIds": [ + 14044 + ] + }, + { + "id": 9197, + "parentId": 9195, + "pos": [ + -541.7629613406829, + 4545.864537038766 + ], + "linkIds": [ + 14043 + ] + }, + { + "id": 9198, + "parentId": 9196, + "pos": [ + -520.8729184501337, + 4529.182388744947 + ], + "linkIds": [ + 14044 + ] } ], + "ds": { + "scale": 0.4172165436095774, + "offset": [ + 4329.6578547713825, + -2573.8128193506245 + ] + }, "linkExtensions": [ { "id": 13653, @@ -9542,10 +9332,6 @@ "id": 13670, "parentId": 8004 }, - { - "id": 13772, - "parentId": 8008 - }, { "id": 13811, "parentId": 8010 @@ -9598,10 +9384,6 @@ "id": 13914, "parentId": 8046 }, - { - "id": 13915, - "parentId": 8048 - }, { "id": 13918, "parentId": 8054 @@ -9621,15 +9403,32 @@ { "id": 13923, "parentId": 8062 + }, + { + "id": 14043, + "parentId": 9197 + }, + { + "id": 14044, + "parentId": 9198 + }, + { + "id": 14050, + "parentId": 9193 + }, + { + "id": 14057, + "parentId": 9193 + }, + { + "id": 14058, + "parentId": 9194 + }, + { + "id": 14059, + "parentId": 9194 } - ], - "ds": { - "scale": 0.954380998637577, - "offset": [ - -514.374297342215, - 242.30765603657582 - ] - } + ] }, "version": 0.4 } diff --git a/example_workflows/2.5/README.md b/example_workflows/2.5/README.md index de9bd51..7c80249 100644 --- a/example_workflows/2.5/README.md +++ b/example_workflows/2.5/README.md @@ -60,7 +60,7 @@ Upscale prompts should describe **look and style** (lighting, palette, film stoc | -------- | ------------ | | [LTX-2.5_V2V_TiledFusion_Upscale.json](./LTX-2.5_V2V_TiledFusion_Upscale.json) | **V2V upscale.** Preprocess resizes the guide to `output_size` (FullHD / 4K / 8K), then 8 fused steps with the detail refiner. Tiles come from `tile_size` (HD). | | [LTX-2.5_V2V_TiledFusion_Native_4K_8K.json](./LTX-2.5_V2V_TiledFusion_Native_4K_8K.json) | **V2V native / dynamic 4K/8K.** Stage 1 at `initial_canvas_size` FullHD (8 steps, Day-To-Night IC-LoRA). Latent ×2 (×4 when `output_size` is 8K), then 3 fused steps with a fresh prompt and the original clip resized to output. Optional second IC-LoRA on stage 2. | -| [LTX-2.5_V2V_TiledFusion_SDR_to_HDR.json](./LTX-2.5_V2V_TiledFusion_SDR_to_HDR.json) | Same recipe as Native, with the HDR IC-LoRA. SDR MP4 → ACEScct, then `LTXVHDRDecodePostprocess` (EXR + HLG). | +| [LTX-2.5_V2V_TiledFusion_SDR_to_HDR.json](./LTX-2.5_V2V_TiledFusion_SDR_to_HDR.json) | Same recipe as Native, with the HDR IC-LoRA. SDR MP4 → ACEScct; EXR via `LTXVHDRDecodePostprocess`, HLG via core Create Video / Save Video. | | [LTX-2.5_V2V_TiledFusion_HDR_to_HDR.json](./LTX-2.5_V2V_TiledFusion_HDR_to_HDR.json) | **Native HDR→HDR refine.** EXR still (ACEScct, float32 VAE, `img_compression` 0) with the detail refiner instead of the HDR IC-LoRA. Same 4K/8K tiled ladder; EXR + HLG out. | ## Which workflow should I use? @@ -137,17 +137,17 @@ Two-stage is the better default when you care about spatial detail. Single-stage | Tiled Fusion SDR→HDR | 2 | 2× or 4× latent | Same as native, HDR IC-LoRA | SDR→ACEScct 4K/8K; EXR + HLG | | Tiled Fusion HDR→HDR | 2 | 2× or 4× latent | HDR EXR still + refine IC-LoRA | Native ACEScct refine; EXR + HLG | -Native HDR I/O: [LTX-2.5_V2V_TiledFusion_HDR_to_HDR.json](./LTX-2.5_V2V_TiledFusion_HDR_to_HDR.json) — `LTXVLoadEXRSequence` → ACEScct → `LTXVVAEForceFloat32` → refine IC-LoRA tiled fusion → `LTXVHDRDecodePostprocess` (`transfer=acescct`, optional EXR) → `LTXVSaveHLG` from `hdr_linear`. `img_compression = 0`. Same idea as pipelines `--hdr` on Distilled / IC-LoRA. +Native HDR I/O: [LTX-2.5_V2V_TiledFusion_HDR_to_HDR.json](./LTX-2.5_V2V_TiledFusion_HDR_to_HDR.json) — `LTXVLoadEXRSequence` → ACEScct → `LTXVVAEForceFloat32` → refine IC-LoRA tiled fusion → EXR via `LTXVHDRDecodePostprocess` (`transfer=acescct`, EXR=`acescg`); HLG via Convert Image Color Space (`HDR ACEScct` → `HDR`) → Create Video (`HDR`) → Save Video. `img_compression = 0`. Same idea as pipelines `--hdr` on Distilled / IC-LoRA. -SDR→HDR IC-LoRA (separate from native EXR HDR): [LTX-2.3_ICLoRA_HDR_Distilled.json](../2.3/LTX-2.3_ICLoRA_HDR_Distilled.json) for a single-stage pass, or [LTX-2.5_V2V_TiledFusion_SDR_to_HDR.json](./LTX-2.5_V2V_TiledFusion_SDR_to_HDR.json) for the tiled 4K/8K ladder. `LoadVideo` → `LTXVSDRToHDRWorkingSpace` (`srgb_gamma`) → HDR IC-LoRA guide → float32 VAE decode → `LTXVHDRDecodePostprocess` (`transfer=acescct`, EXR=`acescct`) → HLG. Sampler **euler**; original audio frozen/muxed. Same idea as pipelines `hdr_ic_lora --text-embeddings`. +SDR→HDR IC-LoRA (separate from native EXR HDR): [LTX-2.5_V2V_TiledFusion_SDR_to_HDR.json](./LTX-2.5_V2V_TiledFusion_SDR_to_HDR.json) (tiled 4K/8K ladder): `LoadVideo` → Convert Image Color Space (`sRGB` → `HDR ACEScct`) → HDR IC-LoRA guide → float32 VAE decode → EXR via `LTXVHDRDecodePostprocess` (`transfer=acescct`, EXR=`acescg`); HLG via Convert Image Color Space (`HDR ACEScct` → `HDR`) → Create Video (`HDR`) → Save Video. Sampler **euler**; original audio frozen/muxed. Same idea as pipelines `hdr_ic_lora --text-embeddings`. For a single-stage pass, [LTX-2.3_ICLoRA_HDR_Distilled.json](../2.3/LTX-2.3_ICLoRA_HDR_Distilled.json) is the older LogC3 graph: `LTXVHDRDecodePostprocess` (`transfer=logc3`) writes a linear EXR, without the core HDR nodes. For native HDR, set **`img_compression = 0`** (Python `--hdr` EXR conditioning skips JPEG/CRF; CRF on ACEScct darkens highlights). Turn **prompt enhancer off** when matching goldens. I2V stage-2 distilled sigmas should be `0.909375, 0.725, 0.421875, 0.0` (not `0.85, …`). Inpaint keeps its own 2-step stage-2 schedule. -HDR graphs live under [`HDR_workflows/`](./HDR_workflows/). +HDR graphs live under [`HDR_workflows/`](./HDR_workflows/). They use core Convert Image Color Space and HDR Create Video / Save Video, so they need ComfyUI v0.38.0 or newer. -Native HDR I/O: `LTXVLoadEXRSequence` → float32 VAE → `LTXVHDRDecodePostprocess` (`transfer=acescct`, optional EXR) → `LTXVSaveHLG` from `hdr_linear`. Same idea as pipelines `--hdr` on Distilled / IC-LoRA. +Native HDR I/O: `LTXVLoadEXRSequence` → float32 VAE → EXR via `LTXVHDRDecodePostprocess` (`transfer=acescct`, EXR=`acescg`); HLG via Convert Image Color Space (`HDR ACEScct` → `HDR`) → Create Video (`HDR`) → Save Video. Same idea as pipelines `--hdr` on Distilled / IC-LoRA. -SDR→HDR IC-LoRA (separate from native EXR HDR): [LTX-2.5_ICLoRA_SDR_to_HDR_Distilled.json](./HDR_workflows/LTX-2.5_ICLoRA_SDR_to_HDR_Distilled.json) — `LoadVideo` → `LTXVSDRToHDRWorkingSpace` (`srgb_gamma`) → `Resize Image/Mask` (scale to multiple 32) → **fixed scene embeddings** (`LTXVLoadConditioning`, not a free-text prompt) → HDR IC-LoRA guide → float32 VAE decode → `LTXVHDRDecodePostprocess` (`transfer=acescct`, EXR=`acescg`) → HLG. Sampler **euler**; original audio frozen/muxed. Same idea as pipelines `hdr_ic_lora --text-embeddings`. Conditioning fps snaps to 60 when source fps is above 30 (playback fps unchanged for decode/export). +SDR→HDR IC-LoRA (separate from native EXR HDR): [LTX-2.5_ICLoRA_SDR_to_HDR_Distilled.json](./HDR_workflows/LTX-2.5_ICLoRA_SDR_to_HDR_Distilled.json) — `LoadVideo` → Convert Image Color Space (`sRGB` → `HDR ACEScct`) → `Resize Image/Mask` (scale to multiple 32) → **fixed scene embeddings** (`LTXVLoadConditioning`, not a free-text prompt) → HDR IC-LoRA guide → float32 VAE decode → EXR via `LTXVHDRDecodePostprocess` (`transfer=acescct`, EXR=`acescg`); HLG via Convert Image Color Space (`HDR ACEScct` → `HDR`) → Create Video (`HDR`) → Save Video. Sampler **euler**; original audio frozen/muxed. Same idea as pipelines `hdr_ic_lora --text-embeddings`. Conditioning fps snaps to 60 when source fps is above 30 (playback fps unchanged for decode/export). For native HDR, set **`img_compression = 0`** (Python `--hdr` EXR conditioning skips JPEG/CRF; CRF on ACEScct darkens highlights). Turn **prompt enhancer off** when matching goldens. I2V stage-2 distilled sigmas should be `0.909375, 0.725, 0.421875, 0.0` (not `0.85, …`). Inpaint keeps its own 2-step stage-2 schedule. diff --git a/hdr_color.py b/hdr_color.py index aa1a93d..0c6e049 100644 --- a/hdr_color.py +++ b/hdr_color.py @@ -7,8 +7,8 @@ matrices / EXR chromaticities come from ``colour-science`` with Bradford CAT ``colour-science`` is required (same as ``ltx_core.color.primaries``). -Used by HDR Comfy nodes in ``hdr_nodes`` (EXR ↔ VAE, SDR→HDR IC-LoRA ingest -via ``SDRColorSpace`` / sRGB EOTF → ACEScct). File I/O helpers live in ``hdr_io``. +Used by HDR Comfy nodes in ``hdr_nodes`` (EXR ↔ VAE ACEScct). SDR→ACEScct ingest +uses Comfy Convert Image Color Space. File I/O helpers live in ``hdr_io``. """ from __future__ import annotations @@ -33,7 +33,6 @@ _ACESCCT_LOG_B = 9.72 _CAT = "Bradford" _CS_ACESCG = colour.RGB_COLOURSPACES["ACEScg"] _CS_REC709 = colour.RGB_COLOURSPACES["ITU-R BT.709"] -_CS_REC2020 = colour.RGB_COLOURSPACES["ITU-R BT.2020"] def _rgb_to_rgb(src: colour.RGB_Colourspace, dst: colour.RGB_Colourspace) -> Tensor: @@ -62,8 +61,6 @@ def _exr_chroma(cs: colour.RGB_Colourspace) -> tuple[float, ...]: _ACESCG_TO_SRGB = _rgb_to_rgb(_CS_ACESCG, _CS_REC709) _SRGB_TO_ACESCG = torch.linalg.inv(_ACESCG_TO_SRGB.double()).to(torch.float32) -_REC709_TO_2020 = _rgb_to_rgb(_CS_REC709, _CS_REC2020) -_ACESCG_TO_2020 = _rgb_to_rgb(_CS_ACESCG, _CS_REC2020) _CHROMA_REC709 = _exr_chroma(_CS_REC709) _CHROMA_ACESCG = _exr_chroma(_CS_ACESCG) _MATRICES_SOURCE = "colour-science" @@ -71,8 +68,6 @@ _MATRICES_SOURCE = "colour-science" # Public aliases (parity with ``ltx_core.color.primaries`` exports). ACESCG_TO_SRGB = _ACESCG_TO_SRGB SRGB_TO_ACESCG = _SRGB_TO_ACESCG -REC709_TO_2020 = _REC709_TO_2020 -ACESCG_TO_2020 = _ACESCG_TO_2020 _CHROMATICITIES = { "rec709": _CHROMA_REC709, @@ -91,11 +86,6 @@ class Primaries(enum.Enum): """EXR ``chromaticities`` header (R/G/B/W x,y).""" return _CHROMATICITIES[self.value] - @property - def matrix_to_rec2020(self) -> Tensor: - """3x3 linear map from this basis to Rec.2020 (for HLG).""" - return _REC709_TO_2020 if self is Primaries.REC709 else _ACESCG_TO_2020 - def to(self, target: Primaries, video: Tensor) -> Tensor: """Convert linear light from this basis into ``target``. Identity when same.""" if self is target: @@ -106,10 +96,6 @@ class Primaries(enum.Enum): return _apply_matrix(video, _ACESCG_TO_SRGB) raise ValueError(f"No primaries conversion from {self!r} to {target!r}.") - def to_rec2020(self, video: Tensor) -> Tensor: - """Linear light in this basis → Rec.2020 (HLG master space).""" - return _apply_matrix(video, self.matrix_to_rec2020) - class HDRColorSpace(enum.Enum): """Source / EXR authoring colour space (matches pipelines ``--hdr``).""" @@ -150,13 +136,6 @@ def _apply_matrix(video: Tensor, mat: Tensor) -> Tensor: raise ValueError(f"Expected RGB in last or -3 dim; got shape {tuple(video.shape)}") -# sRGB EOTF (IEC 61966-2-1) — same constants as ``ltx_core.hdr``. -_SRGB_A = 0.055 -_SRGB_LINEAR_THRESHOLD = 0.04045 -_SRGB_LINEAR_SLOPE = 12.92 -_SRGB_GAMMA = 2.4 - - def compress_acescct(hdr: Tensor) -> Tensor: """Linear HDR [0, ∞) → ACEScct [0, 1].""" x = torch.clamp(hdr, min=0.0) @@ -173,16 +152,6 @@ def decompress_acescct(ct: Tensor) -> Tensor: return torch.where(ct > _ACESCCT_Y_BRK, lin_from_log, lin_from_lin) -def srgb_eotf_to_linear(srgb_01: Tensor) -> Tensor: - """sRGB-encoded [0, 1] → display-linear Rec.709/sRGB (IEC 61966-2-1 EOTF).""" - x = torch.clamp(srgb_01.float(), 0.0, 1.0) - return torch.where( - x <= _SRGB_LINEAR_THRESHOLD, - x / _SRGB_LINEAR_SLOPE, - torch.pow((x + _SRGB_A) / (1.0 + _SRGB_A), _SRGB_GAMMA), - ) - - def to_acescct_working_space(linear_rgb: Tensor, source_primaries: Primaries) -> Tensor: """Scene-linear RGB → ACEScct [0, 1] (channel-last or channel-first).""" native = source_primaries.to(Primaries.ACESCG, linear_rgb.float()) @@ -197,55 +166,9 @@ def acescct_to_linear( return Primaries.ACESCG.to(out_primaries, linear_acescg).clamp(min=0.0) -class SDRColorSpace(enum.Enum): - """SDR ingest colour space for mapping float RGB into ACEScct. - - Matches pipelines ``SDRColorSpace`` / ``hdr_ic_lora`` IDT: - - * ``srgb_gamma`` — display-referred sRGB (apply EOTF, then ACEScct). - * ``srgb`` — scene-linear Rec.709 / sRGB primaries (no EOTF). - * ``acescg`` — scene-linear ACEScg → ACEScct. - * ``acescct`` — already ACEScct log codes; clamp passthrough. - """ - - SRGB = "srgb" - SRGB_GAMMA = "srgb_gamma" - ACESCG = "acescg" - ACESCCT = "acescct" - - def to_working_space(self, video: Tensor) -> Tensor: - """Map SDR float RGB into ACEScct ``[0, 1]`` (channel-last or channel-first).""" - if not video.is_floating_point(): - raise ValueError( - f"SDRColorSpace.to_working_space expects float RGB; got dtype={video.dtype}. " - "Normalize integer pixels before calling." - ) - video = video.float() - if self is SDRColorSpace.ACESCCT: - return video.clamp(0.0, 1.0) - if self is SDRColorSpace.SRGB_GAMMA: - return to_acescct_working_space( - srgb_eotf_to_linear(video), Primaries.REC709 - ) - if self is SDRColorSpace.SRGB: - return to_acescct_working_space(video, Primaries.REC709) - if self is SDRColorSpace.ACESCG: - return to_acescct_working_space(video, Primaries.ACESCG) - raise ValueError(f"Unsupported SDR color space: {self!r}") - - def images_to_acescct(images: Tensor, color_space: HDRColorSpace) -> Tensor: """Convert loaded EXR frames ``[F,H,W,3]`` into ACEScct ``[0,1]`` for the VAE.""" images = images.float() if color_space.is_log_working: return images.clamp(0.0, 1.0) return to_acescct_working_space(images, color_space.source_primaries) - - -def sdr_images_to_acescct(images: Tensor, color_space: SDRColorSpace) -> Tensor: - """Convert SDR frames ``[F,H,W,C]`` into ACEScct ``[0,1]`` for HDR IC-LoRA.""" - rgb = images[..., :3] - working = color_space.to_working_space(rgb) - if images.shape[-1] > 3: - return torch.cat([working, images[..., 3:].float()], dim=-1) - return working diff --git a/hdr_io.py b/hdr_io.py index 173e32f..18930b6 100644 --- a/hdr_io.py +++ b/hdr_io.py @@ -1,6 +1,6 @@ -"""HDR file I/O helpers: EXR read/write, HLG encode, path utilities. +"""HDR file I/O helpers: EXR read/write, path utilities. -Shared by Comfy HDR nodes (ingest + delivery). Color math lives in ``hdr_color``; +Shared by Comfy HDR nodes (ingest + EXR delivery). Color math lives in ``hdr_color``; node classes live in ``hdr_nodes``. """ @@ -8,7 +8,6 @@ from __future__ import annotations import logging import math -import os import re from pathlib import Path @@ -21,22 +20,6 @@ from .hdr_color import Primaries logger = logging.getLogger("LTXVideo.hdr_io") -# BT.2020 / HLG (ARIB STD-B67) encode constants — from ltx_core.color.hlg -_HLG_A, _HLG_B, _HLG_C = 0.17883277, 0.28466892, 0.55991073 -_AV_COLOR_PRIMARIES_BT2020 = 9 -_AV_COLOR_TRC_ARIB_STD_B67 = 18 -_AV_COLORSPACE_BT2020_NCL = 9 -_AV_COLOR_RANGE_MPEG = 1 -_KR_2020, _KG_2020, _KB_2020 = 0.2627, 0.6780, 0.0593 -_BT2020_RGB_TO_YUV = torch.tensor( - [ - [_KR_2020, _KG_2020, _KB_2020], - [-_KR_2020 / 1.8814, -_KG_2020 / 1.8814, 0.5], - [0.5, -_KG_2020 / 1.4746, -_KB_2020 / 1.4746], - ], - dtype=torch.float32, -) - def _resolve_path(path: str) -> Path: p = Path(path).expanduser() @@ -176,211 +159,6 @@ def _save_exr_frame( out.close() -def _hlg_inverse_oetf_scalar(v: float) -> float: - return ( - (v * v) / 3.0 if v <= 0.5 else (math.exp((v - _HLG_C) / _HLG_A) + _HLG_B) / 12.0 - ) - - -def _linear_to_hlg_signal( - rgb_fhwc: Tensor, - primaries: Primaries = Primaries.REC709, - white_signal: float = 0.75, -) -> Tensor: - """Scene-linear RGB ``[F,H,W,3]`` in ``primaries`` → HLG signal in BT.2020. - - Maps with ``primaries.matrix_to_rec2020`` then clamps (same as - ``ltx_core.color.hlg.HlgGpuConverter``). Prefer ACEScg→Rec.2020 directly - over ACEScg→Rec.709→Rec.2020 so OOG negatives are not crushed early. - """ - white_x = _hlg_inverse_oetf_scalar(white_signal) - roll_k = white_x / (1.0 - white_x) - mat = primaries.matrix_to_rec2020.to(device=rgb_fhwc.device, dtype=rgb_fhwc.dtype) - lin = torch.nan_to_num((rgb_fhwc @ mat.T).clamp(min=0.0), nan=0.0, neginf=0.0) - x = torch.where( - lin <= 1.0, - lin * white_x, - 1.0 - (1.0 - white_x) * torch.exp(-roll_k * (lin - 1.0)), - ) - sig = torch.where( - x <= 1.0 / 12.0, - torch.sqrt((3.0 * x).clamp(min=0.0)), - _HLG_A * torch.log((12.0 * x - _HLG_B).clamp(min=1e-12)) + _HLG_C, - ) - return sig.clamp(0.0, 1.0) - - -def _rgb_hlg_to_yuv420p10( - rgb_fhwc: Tensor, -) -> tuple[np.ndarray, np.ndarray, np.ndarray]: - """HLG RGB ``[F,H,W,3]`` → planar uint16 Y,U,V (limited / BT.2020).""" - if rgb_fhwc.shape[-2] % 2 or rgb_fhwc.shape[-3] % 2: - raise ValueError(f"HLG encode needs even H and W; got {tuple(rgb_fhwc.shape)}") - rgb = rgb_fhwc.movedim(-1, -3).contiguous() # F,3,H,W - mat = _BT2020_RGB_TO_YUV.to(device=rgb.device, dtype=rgb.dtype) - pixels = rgb.movedim(-3, -1) - yuv = pixels.flatten(-3, -2) @ mat.T - yuv = yuv.unflatten(-2, rgb.shape[-2:]).movedim(-1, -3) - y = yuv[:, :1] - uv = torch.nn.functional.avg_pool2d( - yuv[:, 1:3].contiguous(), kernel_size=2, stride=2 - ) - # MPEG limited 10-bit - y = y.mul(219 * 4).add_(16 * 4) - uv = uv.mul(224 * 4).add_(128 * 4) - y16 = y[:, 0].round_().clamp_(0, 1023).to(torch.uint16).cpu().numpy() - u16 = uv[:, 0].round_().clamp_(0, 1023).to(torch.uint16).cpu().numpy() - v16 = uv[:, 1].round_().clamp_(0, 1023).to(torch.uint16).cpu().numpy() - return y16, u16, v16 - - -def _encode_hlg_mp4( - frames_linear: Tensor, - out_path: Path, - fps: float, - audio: dict | None = None, - *, - primaries: Primaries = Primaries.REC709, -) -> None: - """Encode scene-linear ``[F,H,W,3]`` (in ``primaries``) to BT.2020/HLG/10-bit HEVC. - - Optional Comfy ``AUDIO`` dict ``{waveform, sample_rate}`` is muxed as AAC. - The AAC stream is registered *before* video packets (PyAV requires this). - """ - from fractions import Fraction - - import av - - hlg = _linear_to_hlg_signal(frames_linear.float(), primaries=primaries) - y, u, v = _rgb_hlg_to_yuv420p10(hlg) - f, height, width = int(y.shape[0]), int(y.shape[1]), int(y.shape[2]) - out_path.parent.mkdir(parents=True, exist_ok=True) - - container = av.open(str(out_path), mode="w", options={"movflags": "+faststart"}) - audio_stream = None - try: - stream = container.add_stream( - "libx265", rate=Fraction(fps).limit_denominator(1000) - ) - stream.width = width - stream.height = height - stream.pix_fmt = "yuv420p10le" - stream.codec_tag = "hvc1" - threads = max(1, min(os.cpu_count() or 8, 16)) - stream.options = { - "crf": "12", - "preset": "medium", - "x265-params": ( - "colorprim=bt2020:transfer=arib-std-b67:colormatrix=bt2020nc:range=limited:" - f"repeat-headers=1:info=0:pools={threads}:frame-threads=4" - ), - } - ctx = stream.codec_context - ctx.thread_count = threads - ctx.color_primaries = _AV_COLOR_PRIMARIES_BT2020 - ctx.color_trc = _AV_COLOR_TRC_ARIB_STD_B67 - ctx.colorspace = _AV_COLORSPACE_BT2020_NCL - ctx.color_range = _AV_COLOR_RANGE_MPEG - - if audio is not None: - audio_stream = _prepare_aac_stream(container, audio) - - for i in range(f): - frame = av.VideoFrame(width, height, "yuv420p10le") - for plane, src in zip(frame.planes, (y[i], u[i], v[i]), strict=True): - dest = np.frombuffer(plane, dtype=np.uint16).reshape( - plane.height, plane.line_size // 2 - ) - dest[:, : src.shape[1]] = src - frame.colorspace = _AV_COLORSPACE_BT2020_NCL - frame.color_range = _AV_COLOR_RANGE_MPEG - for packet in stream.encode(frame): - container.mux(packet) - for packet in stream.encode(): - container.mux(packet) - - if audio is not None and audio_stream is not None: - _mux_comfy_audio_aac(container, audio_stream, audio) - finally: - container.close() - - -def _comfy_audio_stereo_n2(audio: dict) -> tuple[Tensor, int]: - """Return stereo int16-ready float samples ``[N, 2]`` and sample rate.""" - waveform = audio.get("waveform") - sample_rate = int(audio.get("sample_rate", 0) or 0) - if waveform is None or sample_rate <= 0: - raise ValueError("AUDIO must include waveform and sample_rate") - - samples = waveform.detach().float().cpu() - if samples.ndim == 3: - samples = samples[0] - if samples.ndim != 2: - raise ValueError( - f"Expected AUDIO waveform [C,N] or [B,C,N]; got {tuple(waveform.shape)}" - ) - if samples.shape[0] == 2: - samples_cn = samples - elif samples.shape[1] == 2: - samples_cn = samples.T - elif samples.shape[0] == 1: - samples_cn = samples.repeat(2, 1) - else: - raise ValueError( - f"AUDIO must be mono or stereo; got shape {tuple(samples.shape)}" - ) - return samples_cn.T.contiguous(), sample_rate - - -def _prepare_aac_stream(container, audio: dict): - """Register a stereo AAC stream before any packets are muxed.""" - from fractions import Fraction - - _, sample_rate = _comfy_audio_stereo_n2(audio) - audio_stream = container.add_stream("aac", rate=sample_rate) - audio_stream.codec_context.sample_rate = sample_rate - audio_stream.codec_context.layout = "stereo" - audio_stream.codec_context.time_base = Fraction(1, sample_rate) - return audio_stream - - -def _mux_comfy_audio_aac(container, audio_stream, audio: dict) -> None: - """Mux Comfy AUDIO onto an already-added AAC stream (after video flush).""" - import av - - samples_n2, sample_rate = _comfy_audio_stereo_n2(audio) - samples_i16 = (samples_n2.clamp(-1.0, 1.0) * 32767.0).to(torch.int16) - - frame_in = av.AudioFrame.from_ndarray( - samples_i16.reshape(1, -1).numpy(), - format="s16", - layout="stereo", - ) - frame_in.sample_rate = sample_rate - - cc = audio_stream.codec_context - resampler = av.audio.resampler.AudioResampler( - format=cc.format or "fltp", - layout=cc.layout or "stereo", - rate=cc.sample_rate or sample_rate, - ) - next_pts = 0 - for rframe in resampler.resample(frame_in): - if rframe.pts is None: - rframe.pts = next_pts - next_pts += rframe.samples - for packet in audio_stream.encode(rframe): - container.mux(packet) - for rframe in resampler.resample(None): - if rframe.pts is None: - rframe.pts = next_pts - next_pts += rframe.samples - for packet in audio_stream.encode(rframe): - container.mux(packet) - for packet in audio_stream.encode(None): - container.mux(packet) - - def _trim_to_8k1(images: Tensor) -> Tensor: """Keep longest legal ``8k+1`` prefix (VAE temporal scale 8).""" n = images.shape[0] diff --git a/hdr_nodes.py b/hdr_nodes.py index 808c14c..2f33dc6 100644 --- a/hdr_nodes.py +++ b/hdr_nodes.py @@ -2,9 +2,9 @@ Stage-oriented layout (shared ACEScct working space): -- Ingest: ``LTXVSDRToHDRWorkingSpace``, ``LTXVLoadEXRSequence`` +- Ingest: ``LTXVLoadEXRSequence`` (SDR→ACEScct uses Comfy Convert Image Color Space) - Runtime: ``LTXVVAEForceFloat32`` -- Delivery: ``LTXVHDRDecodePostprocess``, ``LTXVSaveHLG`` +- Delivery: ``LTXVHDRDecodePostprocess`` (HLG video uses Comfy Create Video / Save Video) Color math: ``hdr_color``. File I/O helpers: ``hdr_io``. """ @@ -15,20 +15,11 @@ import logging import os from pathlib import Path -import folder_paths import torch from torch import Tensor -from .hdr_color import ( - HDRColorSpace, - Primaries, - SDRColorSpace, - compress_acescct, - images_to_acescct, - sdr_images_to_acescct, -) +from .hdr_color import HDRColorSpace, Primaries, compress_acescct, images_to_acescct from .hdr_io import ( - _encode_hlg_mp4, _list_exr_files, _read_exr, _resolve_path, @@ -41,7 +32,6 @@ from .nodes_registry import comfy_node logger = logging.getLogger("LTXVideo.hdr_nodes") _EXR_COLOR_SPACE_CHOICES = ["linear", "acescct", "srgb_linear", "acescg"] -_SDR_COLOR_SPACE_CHOICES = [c.value for c in SDRColorSpace] _COLOR_SPACE_CHOICES = [c.value for c in HDRColorSpace] @@ -119,48 +109,6 @@ def _linear_to_srgb(x: Tensor) -> Tensor: # --------------------------------------------------------------------------- -@comfy_node(name="LTXVSDRToHDRWorkingSpace") -class LTXVSDRToHDRWorkingSpace: - """Map SDR float RGB into ACEScct ``[0, 1]`` for HDR IC-LoRA conditioning. - Place **before** resize when the source is display sRGB so - the EOTF is not applied to bilinear-filtered codes. - - Default ``srgb_gamma`` matches typical ``LoadVideo`` / MP4 decode. - """ - - @classmethod - def INPUT_TYPES(s): - return { - "required": { - "image": ("IMAGE",), - "color_space": ( - _SDR_COLOR_SPACE_CHOICES, - { - "default": "srgb_gamma", - "tooltip": ( - "SDR ingest IDT. srgb_gamma = display sRGB (EOTF then " - "ACEScct); srgb = scene-linear Rec.709; acescg / acescct " - "for float EXR-style plates." - ), - }, - ), - }, - } - - RETURN_TYPES = ("IMAGE",) - RETURN_NAMES = ("acescct",) - FUNCTION = "convert" - CATEGORY = "Lightricks/HDR" - DESCRIPTION = ( - "SDR → ACEScct working space for HDR IC-LoRA (pipelines SDRColorSpace). " - "Wire LoadVideo images through this before resize / IC-LoRA guide." - ) - - def convert(self, image: torch.Tensor, color_space: str = "srgb_gamma") -> tuple: - space = SDRColorSpace(color_space) - return (sdr_images_to_acescct(image, space),) - - def _exr_payload_for_color_space( image: Tensor, hdr_linear: Tensor, @@ -219,8 +167,6 @@ class LTXVHDRDecodePostprocess: sequence (legacy ``linear``, or tagged ``acescct`` / ``srgb_linear`` / ``acescg``). - For BT.2020/HLG masters, wire ``hdr_linear`` into ``LTXVSaveHLG``. - Outputs: tonemapped: SDR preview [0, 1] after Reinhard tonemap + sRGB gamma. hdr_linear: Raw linear HDR values [0, inf) for further processing. @@ -241,8 +187,8 @@ class LTXVHDRDecodePostprocess: "default": "acescct", "tooltip": ( "Working-space curve of the VAE decode. " - "Use acescct for SDR→HDR IC-LoRA (after " - "LTXVSDRToHDRWorkingSpace) and for native HDR EXR; " + "Use acescct for SDR→HDR IC-LoRA (after Convert " + "Image Color Space sRGB→HDR ACEScct) and for native HDR EXR; " "logc3 only for legacy LogC3 HDR LoRA checkpoints." ), }, @@ -317,7 +263,7 @@ class LTXVHDRDecodePostprocess: DESCRIPTION = ( "Decompresses VAE-decoded HDR (ACEScct or legacy LogC3), tonemaps for " "preview, and optionally writes EXR (linear / ACEScct / sRGB linear / " - "ACEScg). Wire hdr_linear into LTXVSaveHLG for a BT.2020/HLG master." + "ACEScg)." ) def postprocess( @@ -558,118 +504,3 @@ class LTXVVAEForceFloat32: ) from exc logger.info("VAE dtype forced to float32 for native HDR") return (vae,) - - -@comfy_node(name="LTXVSaveHLG") -class LTXVSaveHLG: - """Encode scene-linear ``hdr_linear`` frames to a BT.2020 / HLG 10-bit HEVC master. - - Wire the ``hdr_linear`` output of ``LTXVHDRDecodePostprocess`` here (not the - tonemapped preview). Matches pipelines ``encode_video`` HLG delivery. - """ - - @classmethod - def INPUT_TYPES(cls): - return { - "required": { - "hdr_linear": ( - "IMAGE", - { - "tooltip": ( - "Scene-linear HDR from LTXVHDRDecodePostprocess. " - "With transfer=acescct this is ACEScg linear — leave " - "linear_primaries=acescg. For logc3, use rec709." - ), - }, - ), - "frame_rate": ( - "FLOAT", - {"default": 24.0, "min": 1.0, "max": 120.0, "step": 0.001}, - ), - "filename_prefix": ("STRING", {"default": "hdr/ltxv_hlg"}), - }, - "optional": { - "linear_primaries": ( - ["acescg", "rec709"], - { - "default": "acescg", - "tooltip": ( - "Primaries of hdr_linear. ACEScct decode " - "(SDR→HDR IC-LoRA or native HDR) → acescg. " - "Legacy LogC3 → rec709." - ), - }, - ), - "audio": ( - "AUDIO", - { - "tooltip": ( - "Optional track to mux into the HLG MP4 (e.g. Decode AUDIO). " - "Omit for video-only." - ), - }, - ), - }, - } - - RETURN_TYPES = () - OUTPUT_NODE = True - FUNCTION = "save" - CATEGORY = "Lightricks/HDR" - DESCRIPTION = ( - "Writes a BT.2020/HLG 10-bit HEVC master from scene-linear hdr_linear " - "(from LTXVHDRDecodePostprocess). Maps linear_primaries → Rec.2020 " - "directly (no Rec.709 hop), then HLG. Optional AUDIO is muxed as AAC." - ) - - def save( - self, - hdr_linear: Tensor, - frame_rate: float, - filename_prefix: str, - linear_primaries: str = "acescg", - audio: dict | None = None, - ): - if hdr_linear.ndim != 4 or hdr_linear.shape[-1] < 3: - raise ValueError(f"Expected IMAGE [F,H,W,C]; got {tuple(hdr_linear.shape)}") - - # ACEScg/Rec.709 → Rec.2020 inside HLG encode (Primaries.to_rec2020 / - # matrix_to_rec2020). No Rec.709 intermediate that would crush OOG early. - linear = hdr_linear[..., :3].float() - prim = (linear_primaries or "acescg").lower() - if prim == "acescg": - src_primaries = Primaries.ACESCG - elif prim == "rec709": - src_primaries = Primaries.REC709 - else: - raise ValueError( - f"Unsupported linear_primaries {linear_primaries!r}; use acescg or rec709." - ) - - # Even dims for 4:2:0 - h, w = linear.shape[1], linear.shape[2] - if h % 2 or w % 2: - linear = linear[:, : h - (h % 2), : w - (w % 2), :] - - full_output_folder, filename, counter, _subfolder, _ = ( - folder_paths.get_save_image_path( - filename_prefix, - folder_paths.get_output_directory(), - linear.shape[2], - linear.shape[1], - ) - ) - hlg_path = Path(full_output_folder) / f"{filename}_{counter:05d}_hlg.mp4" - _encode_hlg_mp4( - linear, - hlg_path, - fps=float(frame_rate), - audio=audio, - primaries=src_primaries, - ) - logger.info( - "Wrote HLG 10-bit master to %s%s", - hlg_path, - " (with audio)" if audio is not None else "", - ) - return {} diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..42fefe2 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,24 @@ +[project] +name = "ComfyUI-LTXVideo" +version = "1.1.0" +description = "Custom nodes for LTX-Video support in ComfyUI" +requires-python = ">=3.10" +license = {file = "LICENSE"} +dependencies = [ + "colour-science>=0.4.4", + "diffusers", + "einops", + "huggingface_hub>=0.25.2", + "kornia", + "ninja~=1.11.1.4", + "openimageio", + "transformers>=4.50.0", +] + +[project.urls] +Repository = "https://github.com/Lightricks/ComfyUI-LTXVideo" + +[tool.comfy] +PublisherId = "ltx-io" +DisplayName = "ComfyUI-LTXVideo" +requires-comfyui = ">=0.35.0" diff --git a/stg.py b/stg.py index da51b0d..799a866 100644 --- a/stg.py +++ b/stg.py @@ -109,6 +109,14 @@ class STGFlag: skip_layers: List[int] = None +def _unwrap_attention_tensor(v): + # ComfyUI wraps q/k/v in AttentionTensorContainer before calling attention. + # The skip path returns v as the attention output, so it must be a plain tensor. + if isinstance(v, comfy.ldm.modules.attention.AttentionTensorContainer): + return v.take() + return v + + # context manager that replaces the attention function in a transformer block class PatchAttention(contextlib.AbstractContextManager): def __init__(self, attn_idx: Optional[Union[int, List[int]]] = None): @@ -144,14 +152,14 @@ class PatchAttention(contextlib.AbstractContextManager): def stg_attention(self, q, k, v, heads, *args, **kwargs): self.current_idx += 1 if self.current_idx in self.attn_idx: - return v + return _unwrap_attention_tensor(v) else: return self.original_attention(q, k, v, heads, *args, **kwargs) def stg_attention_masked(self, q, k, v, heads, *args, **kwargs): self.current_idx += 1 if self.current_idx in self.attn_idx: - return v + return _unwrap_attention_tensor(v) else: return self.original_attention_masked(q, k, v, heads, *args, **kwargs)