diff --git a/README.md b/README.md
index 0f1c335..3d952a2 100644
--- a/README.md
+++ b/README.md
@@ -12,6 +12,29 @@ ComfyUI-LTXVideo is a collection of custom nodes for ComfyUI, designed to provid
The model itself is supported in the core ComfyUI [code](https://github.com/comfyanonymous/ComfyUI/tree/master/comfy/ldm/lightricks).
The main LTXVideo repository can be found [here](https://github.com/Lightricks/LTX-Video).
+
+
+# β 16.07.2025 - LTXV 0.9.8 Release β
+
+### π What's New
+1. **LTXV 0.9.8 Model**
+ The new model and its distilled variants offer improved prompt understanding and detail generation
+ π [13B Distilled model](https://huggingface.co/Lightricks/LTX-Video/blob/main/ltxv-13b-0.9.8-distilled.safetensors)
+ π [13B Distilled model 8-bit](https://huggingface.co/Lightricks/LTX-Video/blob/main/ltxv-13b-0.9.8-distilled-fp8.safetensors)
+ π [2B from 13B Distilled model](https://huggingface.co/Lightricks/LTX-Video/blob/main/ltxv-2b-0.9.8-distilled.safetensors)
+ π [2B from 13B Distilled model 8-bit](https://huggingface.co/Lightricks/LTX-Video/blob/main/ltxv-2b-0.9.8-distilled-fp8.safetensors)
+ π [IC Lora Detailer](https://huggingface.co/Lightricks/LTX-Video-ICLoRA-detailer-13b-0.9.8/resolve/main/ltxv-098-ic-lora-detailer-comfyui.safetensors)
+
+
+2. **Autoregressive Generation**
+ Introducing new ComfyUI nodes that enable virtually infinite video generation. The new **LTXV Looping Sampler** node allows generation of videos with arbitrary length and consistent motion. **ICLoRAs** are supported as wellβby providing guidance from existing videos (e.g., depth, pose, or Canny edges), you can generate long videos in a video-to-video manner.
+ π [Long Img2Video Generation Flow](#long-video-generation)
+ π [Long Video2Video Generation Flow](#long-video-generation)
+
+3. **Detailer ICLoRA**
+ Introducing the **Detailer ICLoRA**, which enhances generated latents with fine details by applying a few additional diffusion steps. This results in significantly more detailed generations.
+ π [Detailer ICLoRA Flow](#video-upscaling)
+
# β 8.07.2025 - LTXVideo ICLora Release β
### π What's New in LTXVideo ICLoRA
@@ -165,6 +188,13 @@ For portable ComfyUI installations, run
Note that to run the example workflows, you need to have some additional custom nodes, like [ComfyUI-VideoHelperSuite](https://github.com/kosinkadink/ComfyUI-VideoHelperSuite) and others, installed. You can do it by pressing "Install Missing Custom Nodes" button in ComfyUI Manager.
+### Long Video Generation
+π§© [Image to Video Long Video](example_workflows/ltxv-13b-i2v-long-multi-prompt.json): Long video generation with support for multiple prompts along the video duration.
+π§© [Video to Video Long Video](example_workflows/ltxv-13b-v2v-long-depth.json): Long video-to-video generation. Given a guiding videoβsuch as depth, pose, or edgesβthe flow generates a new video.
+
+### Video Upscaling
+π§© [Video Upscaling](example_workflows/ltxv-13b-upscale.json): Upscales and adds fine details to any given video, increasing its spatial resolution by 2Γ.
+
### Easy to use multi scale generation workflows
π§© [Image to video mixed](example_workflows/ltxv13b-i2v-mixed-multiscale.json): mixed flow with full and distilled model for best quality and speed trade-off.
diff --git a/__init__.py b/__init__.py
index 940067c..d77e324 100644
--- a/__init__.py
+++ b/__init__.py
@@ -10,6 +10,7 @@ from .guide import LTXVAddGuideAdvanced
from .latent_adain import LTXVAdainLatent
from .latent_upsampler import LTXVLatentUpsampler
from .latents import LTXVSelectLatents, LTXVSetVideoLatentNoiseMasks
+from .looping_sampler import LTXVLoopingSampler, MultiPromptProvider
from .masks import LTXVPreprocessMasks
from .nodes_registry import NODE_CLASS_MAPPINGS as RUNTIME_NODE_CLASS_MAPPINGS
from .nodes_registry import (
@@ -24,7 +25,8 @@ from .stg import (
STGGuiderAdvancedNode,
STGGuiderNode,
)
-from .tiled_sampler import LTXVLoopingSampler, LTXVTiledSampler, MultiPromptProvider
+from .tiled_sampler import LTXVTiledSampler
+from .tiled_vae_decode import LTXVTiledVAEDecode
from .tricks import NODE_CLASS_MAPPINGS as TRICKS_NODE_CLASS_MAPPINGS
from .tricks import NODE_DISPLAY_NAME_MAPPINGS as TRICKS_NODE_DISPLAY_NAME_MAPPINGS
from .utiltily_nodes import ImageToCPU
@@ -52,6 +54,7 @@ NODE_CLASS_MAPPINGS = {
"LTXVSetVideoLatentNoiseMasks": LTXVSetVideoLatentNoiseMasks,
"LTXVTiledSampler": LTXVTiledSampler,
"LTXVLoopingSampler": LTXVLoopingSampler,
+ "LTXVTiledVAEDecode": LTXVTiledVAEDecode,
"STGAdvancedPresets": STGAdvancedPresetsNode,
"STGGuiderAdvanced": STGGuiderAdvancedNode,
"STGGuiderNode": STGGuiderNode,
diff --git a/easy_samplers.py b/easy_samplers.py
index 0a4f50a..b42e905 100644
--- a/easy_samplers.py
+++ b/easy_samplers.py
@@ -5,12 +5,7 @@ import comfy_extras
import nodes
import torch
from comfy_extras.nodes_custom_sampler import SamplerCustomAdvanced
-from comfy_extras.nodes_lt import (
- EmptyLTXVLatentVideo,
- LTXVAddGuide,
- LTXVCropGuides,
- LTXVImgToVideo,
-)
+from comfy_extras.nodes_lt import EmptyLTXVLatentVideo, LTXVAddGuide, LTXVCropGuides
from nodes import VAEEncode
from .guide import blur_internal
@@ -130,6 +125,10 @@ class LTXVBaseSampler:
crop="disabled",
crf=35,
blur=0,
+ optional_negative_index_latents=None,
+ optional_negative_index=-1,
+ optional_negative_index_strength=1.0,
+ optional_initialization_latents=None,
):
if optional_cond_images is not None:
@@ -167,26 +166,36 @@ class LTXVBaseSampler:
"Please use STGGuiderAdvanced."
)
- if optional_cond_images is None:
+ if optional_initialization_latents is None:
(latents,) = EmptyLTXVLatentVideo().generate(width, height, num_frames, 1)
- elif optional_cond_images.shape[0] == 1 and optional_cond_indices[0] == 0:
- (
- positive,
- negative,
- latents,
- ) = LTXVImgToVideo().generate(
- positive=positive,
- negative=negative,
- vae=vae,
- image=optional_cond_images[0].unsqueeze(0),
- width=width,
- height=height,
- length=num_frames,
- batch_size=1,
- strength=strength,
- )
else:
- (latents,) = EmptyLTXVLatentVideo().generate(width, height, num_frames, 1)
+ latents = optional_initialization_latents
+
+ if (
+ optional_cond_images is not None
+ and optional_cond_images.shape[0] == 1
+ and optional_cond_indices[0] == 0
+ ):
+ pixels = comfy.utils.common_upscale(
+ optional_cond_images[0].unsqueeze(0).movedim(-1, 1),
+ width,
+ height,
+ "bilinear",
+ "center",
+ ).movedim(1, -1)
+ encode_pixels = pixels[:, :, :, :3]
+ t = vae.encode(encode_pixels)
+ latents["samples"][:, :, : t.shape[2]] = t
+
+ conditioning_latent_frames_mask = torch.ones(
+ (1, 1, latents["samples"].shape[2], 1, 1),
+ dtype=torch.float32,
+ device=latents["samples"].device,
+ )
+ conditioning_latent_frames_mask[:, :, : t.shape[2]] = 1.0 - strength
+ latents["noise_mask"] = conditioning_latent_frames_mask
+
+ elif optional_cond_images is not None:
for cond_image, cond_idx in zip(
optional_cond_images, optional_cond_indices
):
@@ -204,6 +213,21 @@ class LTXVBaseSampler:
strength=strength,
)
+ if optional_negative_index_latents is not None:
+ (
+ positive,
+ negative,
+ latents,
+ ) = LTXVAddLatentGuide().generate(
+ vae=vae,
+ positive=positive,
+ negative=negative,
+ latent=latents,
+ guiding_latent=optional_negative_index_latents,
+ latent_idx=optional_negative_index,
+ strength=optional_negative_index_strength,
+ )
+
guider = copy.copy(guider)
guider.set_conds(positive, negative)
@@ -247,7 +271,7 @@ class LTXVExtendSampler:
"default": 80,
"min": -1,
"max": nodes.MAX_RESOLUTION,
- "step": 8,
+ "step": 1,
"tooltip": "If -1, the number of frames will be based on the number of frames in the optional_guiding_latents.",
},
),
@@ -306,6 +330,7 @@ class LTXVExtendSampler:
guiding_strength=1.0,
optional_guiding_latents=None,
optional_reference_latents=None,
+ optional_initialization_latents=None,
adain_factor=0.0,
optional_negative_index_latents=None,
optional_negative_index=-1,
@@ -336,12 +361,19 @@ class LTXVExtendSampler:
latents, -overlap, -1
)
- new_latents = EmptyLTXVLatentVideo().generate(
- width=width * width_scale_factor,
- height=height * height_scale_factor,
- length=overlap * time_scale_factor + num_new_frames,
- batch_size=1,
- )[0]
+ if optional_initialization_latents is None:
+ new_latents = EmptyLTXVLatentVideo().generate(
+ width=width * width_scale_factor,
+ height=height * height_scale_factor,
+ length=overlap * time_scale_factor + num_new_frames,
+ batch_size=1,
+ )[0]
+ else:
+ new_latents = optional_initialization_latents
+
+ last_overlap_latents["samples"] = last_overlap_latents["samples"].to(
+ new_latents["samples"].device
+ )
(
positive,
@@ -486,8 +518,13 @@ class LTXVInContextSampler:
guiding_latents,
optional_cond_image=None,
num_frames=0,
+ optional_initialization_latents=None,
+ optional_negative_index_latents=None,
+ optional_negative_index=-1,
+ optional_negative_index_strength=1.0,
+ optional_cond_strength=1.0,
+ optional_guiding_strength=1.0,
):
-
try:
positive, negative = guider.raw_conds
except AttributeError:
@@ -504,12 +541,15 @@ class LTXVInContextSampler:
if num_frames != -1:
frames = (num_frames - 1) // time_scale_factor + 1
- new_latents = EmptyLTXVLatentVideo().generate(
- width=width * width_scale_factor,
- height=height * height_scale_factor,
- length=(frames - 1) * time_scale_factor + 1,
- batch_size=1,
- )[0]
+ if optional_initialization_latents is not None:
+ new_latents = optional_initialization_latents
+ else:
+ new_latents = EmptyLTXVLatentVideo().generate(
+ width=width * width_scale_factor,
+ height=height * height_scale_factor,
+ length=(frames - 1) * time_scale_factor + 1,
+ batch_size=1,
+ )[0]
if optional_cond_image is not None:
optional_cond_image = (
@@ -535,7 +575,7 @@ class LTXVInContextSampler:
latent=new_latents,
guiding_latent=cond_image_latent,
latent_idx=0,
- strength=1.0,
+ strength=optional_cond_strength,
)
if optional_cond_image is not None:
@@ -553,9 +593,23 @@ class LTXVInContextSampler:
negative=negative,
latent=new_latents,
guiding_latent=guiding_latents,
- latent_idx=0 if optional_cond_image is None else 1,
- strength=1.0,
+ latent_idx=1 if optional_cond_image is not None else 0,
+ strength=optional_guiding_strength,
)
+ if optional_negative_index_latents is not None:
+ (
+ positive,
+ negative,
+ new_latents,
+ ) = LTXVAddLatentGuide().generate(
+ vae=vae,
+ positive=positive,
+ negative=negative,
+ latent=new_latents,
+ guiding_latent=optional_negative_index_latents,
+ latent_idx=optional_negative_index,
+ strength=optional_negative_index_strength,
+ )
guider = copy.copy(guider)
guider.set_conds(positive, negative)
diff --git a/example_workflows/13b-distilled/ltxv-13b-dist-i2v-base-fp8.json b/example_workflows/13b-distilled/ltxv-13b-dist-i2v-base-fp8.json
index e098bda..a1e3754 100644
--- a/example_workflows/13b-distilled/ltxv-13b-dist-i2v-base-fp8.json
+++ b/example_workflows/13b-distilled/ltxv-13b-dist-i2v-base-fp8.json
@@ -182,7 +182,7 @@
"Node name for S&R": "LTXVLatentUpsamplerModelLoader"
},
"widgets_values": [
- "ltxv-spatial-upscaler-0.9.7.safetensors",
+ "ltxv-spatial-upscaler-0.9.8.safetensors",
true,
false
]
@@ -3113,7 +3113,7 @@
},
"1828": {
"inputs": {
- "upscale_model": "ltxv-spatial-upscaler-0.9.7.safetensors",
+ "upscale_model": "ltxv-spatial-upscaler-0.9.8.safetensors",
"spatial_upsample": true,
"temporal_upsample": false
},
diff --git a/example_workflows/13b-distilled/ltxv-13b-dist-i2v-base.json b/example_workflows/13b-distilled/ltxv-13b-dist-i2v-base.json
index 93fc092..3951fd7 100644
--- a/example_workflows/13b-distilled/ltxv-13b-dist-i2v-base.json
+++ b/example_workflows/13b-distilled/ltxv-13b-dist-i2v-base.json
@@ -182,7 +182,7 @@
"Node name for S&R": "LTXVLatentUpsamplerModelLoader"
},
"widgets_values": [
- "ltxv-spatial-upscaler-0.9.7.safetensors",
+ "ltxv-spatial-upscaler-0.9.8.safetensors",
true,
false
]
@@ -3056,7 +3056,7 @@
},
"1828": {
"inputs": {
- "upscale_model": "ltxv-spatial-upscaler-0.9.7.safetensors",
+ "upscale_model": "ltxv-spatial-upscaler-0.9.8.safetensors",
"spatial_upsample": true,
"temporal_upsample": false
},
diff --git a/example_workflows/13b-distilled/ltxv-13b-dist-i2v-extend.json b/example_workflows/13b-distilled/ltxv-13b-dist-i2v-extend.json
index a708227..fd7ac74 100644
--- a/example_workflows/13b-distilled/ltxv-13b-dist-i2v-extend.json
+++ b/example_workflows/13b-distilled/ltxv-13b-dist-i2v-extend.json
@@ -182,7 +182,7 @@
"Node name for S&R": "LTXVLatentUpsamplerModelLoader"
},
"widgets_values": [
- "ltxv-spatial-upscaler-0.9.7.safetensors",
+ "ltxv-spatial-upscaler-0.9.8.safetensors",
true,
false
]
@@ -3501,7 +3501,7 @@
},
"1828": {
"inputs": {
- "upscale_model": "ltxv-spatial-upscaler-0.9.7.safetensors",
+ "upscale_model": "ltxv-spatial-upscaler-0.9.8.safetensors",
"spatial_upsample": true,
"temporal_upsample": false
},
diff --git a/example_workflows/13b-distilled/ltxv-13b-dist-i2v-keyframes.json b/example_workflows/13b-distilled/ltxv-13b-dist-i2v-keyframes.json
index 05c4e9c..07ec106 100644
--- a/example_workflows/13b-distilled/ltxv-13b-dist-i2v-keyframes.json
+++ b/example_workflows/13b-distilled/ltxv-13b-dist-i2v-keyframes.json
@@ -250,7 +250,7 @@
"Node name for S&R": "LTXVLatentUpsamplerModelLoader"
},
"widgets_values": [
- "ltxv-spatial-upscaler-0.9.7.safetensors",
+ "ltxv-spatial-upscaler-0.9.8.safetensors",
true,
false
]
@@ -3275,7 +3275,7 @@
},
"1828": {
"inputs": {
- "upscale_model": "ltxv-spatial-upscaler-0.9.7.safetensors",
+ "upscale_model": "ltxv-spatial-upscaler-0.9.8.safetensors",
"spatial_upsample": true,
"temporal_upsample": false
},
diff --git a/example_workflows/chimpanzee.webp b/example_workflows/chimpanzee.webp
new file mode 100644
index 0000000..6085d15
Binary files /dev/null and b/example_workflows/chimpanzee.webp differ
diff --git a/example_workflows/depth-surfing.mp4 b/example_workflows/depth-surfing.mp4
new file mode 100644
index 0000000..c59e91b
--- /dev/null
+++ b/example_workflows/depth-surfing.mp4
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d177d33a43e5f7b87dfa24726f55a0aa698f06d7dad255b759560d1b23e2e3be
+size 1481235
diff --git a/example_workflows/ic_lora/ic-lora.json b/example_workflows/ic_lora/ic-lora.json
index 142cc7f..d9440e4 100644
--- a/example_workflows/ic_lora/ic-lora.json
+++ b/example_workflows/ic_lora/ic-lora.json
@@ -4272,7 +4272,7 @@
"Node name for S&R": "LTXVLatentUpsamplerModelLoader"
},
"widgets_values": [
- "ltxv-spatial-upscaler-0.9.7.safetensors",
+ "ltxv-spatial-upscaler-0.9.8.safetensors",
true,
false
]
@@ -5749,7 +5749,7 @@
},
"1828": {
"inputs": {
- "upscale_model": "ltxv-spatial-upscaler-0.9.7.safetensors",
+ "upscale_model": "ltxv-spatial-upscaler-0.9.8.safetensors",
"spatial_upsample": true,
"temporal_upsample": false
},
diff --git a/example_workflows/ltxv-13b-i2v-base-fp8.json b/example_workflows/ltxv-13b-i2v-base-fp8.json
index 52f7874..298d6e3 100644
--- a/example_workflows/ltxv-13b-i2v-base-fp8.json
+++ b/example_workflows/ltxv-13b-i2v-base-fp8.json
@@ -214,7 +214,7 @@
"Node name for S&R": "LTXVLatentUpsamplerModelLoader"
},
"widgets_values": [
- "ltxv-spatial-upscaler-0.9.7.safetensors",
+ "ltxv-spatial-upscaler-0.9.8.safetensors",
true,
false
]
@@ -2396,7 +2396,7 @@
},
"1828": {
"inputs": {
- "upscale_model": "ltxv-spatial-upscaler-0.9.7.safetensors",
+ "upscale_model": "ltxv-spatial-upscaler-0.9.8.safetensors",
"spatial_upsample": true,
"temporal_upsample": false
},
diff --git a/example_workflows/ltxv-13b-i2v-base.json b/example_workflows/ltxv-13b-i2v-base.json
index 3e4df62..e96dc78 100644
--- a/example_workflows/ltxv-13b-i2v-base.json
+++ b/example_workflows/ltxv-13b-i2v-base.json
@@ -214,7 +214,7 @@
"Node name for S&R": "LTXVLatentUpsamplerModelLoader"
},
"widgets_values": [
- "ltxv-spatial-upscaler-0.9.7.safetensors",
+ "ltxv-spatial-upscaler-0.9.8.safetensors",
true,
false
]
@@ -2397,7 +2397,7 @@
},
"1828": {
"inputs": {
- "upscale_model": "ltxv-spatial-upscaler-0.9.7.safetensors",
+ "upscale_model": "ltxv-spatial-upscaler-0.9.8.safetensors",
"spatial_upsample": true,
"temporal_upsample": false
},
diff --git a/example_workflows/ltxv-13b-i2v-extend.json b/example_workflows/ltxv-13b-i2v-extend.json
index ce7f717..a79876b 100644
--- a/example_workflows/ltxv-13b-i2v-extend.json
+++ b/example_workflows/ltxv-13b-i2v-extend.json
@@ -243,7 +243,7 @@
"Node name for S&R": "LTXVLatentUpsamplerModelLoader"
},
"widgets_values": [
- "ltxv-spatial-upscaler-0.9.7.safetensors",
+ "ltxv-spatial-upscaler-0.9.8.safetensors",
true,
false
]
@@ -2744,7 +2744,7 @@
},
"1828": {
"inputs": {
- "upscale_model": "ltxv-spatial-upscaler-0.9.7.safetensors",
+ "upscale_model": "ltxv-spatial-upscaler-0.9.8.safetensors",
"spatial_upsample": true,
"temporal_upsample": false
},
diff --git a/example_workflows/ltxv-13b-i2v-keyframes.json b/example_workflows/ltxv-13b-i2v-keyframes.json
index 42a1ca1..c3fc7cb 100644
--- a/example_workflows/ltxv-13b-i2v-keyframes.json
+++ b/example_workflows/ltxv-13b-i2v-keyframes.json
@@ -214,7 +214,7 @@
"Node name for S&R": "LTXVLatentUpsamplerModelLoader"
},
"widgets_values": [
- "ltxv-spatial-upscaler-0.9.7.safetensors",
+ "ltxv-spatial-upscaler-0.9.8.safetensors",
true,
false
]
@@ -2619,7 +2619,7 @@
},
"1828": {
"inputs": {
- "upscale_model": "ltxv-spatial-upscaler-0.9.7.safetensors",
+ "upscale_model": "ltxv-spatial-upscaler-0.9.8.safetensors",
"spatial_upsample": true,
"temporal_upsample": false
},
diff --git a/example_workflows/ltxv-13b-i2v-long-multi-prompt.json b/example_workflows/ltxv-13b-i2v-long-multi-prompt.json
new file mode 100644
index 0000000..8cb0cdc
--- /dev/null
+++ b/example_workflows/ltxv-13b-i2v-long-multi-prompt.json
@@ -0,0 +1,4726 @@
+{
+ "id": "394ed254-7306-42a2-9ae6-aa880ce4456d",
+ "revision": 0,
+ "last_node_id": 2145,
+ "last_link_id": 5985,
+ "nodes": [
+ {
+ "id": 1335,
+ "type": "VAEDecode",
+ "pos": [
+ 4524.71875,
+ 2618.7578125
+ ],
+ "size": [
+ 210,
+ 46
+ ],
+ "flags": {},
+ "order": 48,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "samples",
+ "name": "samples",
+ "type": "LATENT",
+ "link": 5884
+ },
+ {
+ "localized_name": "vae",
+ "name": "vae",
+ "type": "VAE",
+ "link": 5363
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "IMAGE",
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 3578
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.29",
+ "Node name for S&R": "VAEDecode"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 1926,
+ "type": "KSamplerSelect",
+ "pos": [
+ 7169.62451171875,
+ 2627.34912109375
+ ],
+ "size": [
+ 251.94110107421875,
+ 58
+ ],
+ "flags": {},
+ "order": 0,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "sampler_name",
+ "name": "sampler_name",
+ "type": "COMBO",
+ "widget": {
+ "name": "sampler_name"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "SAMPLER",
+ "name": "SAMPLER",
+ "type": "SAMPLER",
+ "links": [
+ 5904
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.28",
+ "Node name for S&R": "KSamplerSelect"
+ },
+ "widgets_values": [
+ "euler_ancestral"
+ ]
+ },
+ {
+ "id": 2038,
+ "type": "Reroute",
+ "pos": [
+ 6695.60791015625,
+ 2234.832763671875
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 42,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5742
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "CONDITIONING",
+ "links": [
+ 5740
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 2037,
+ "type": "Reroute",
+ "pos": [
+ 6693.35400390625,
+ 2192.606689453125
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 41,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5741
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "CONDITIONING",
+ "links": [
+ 5739
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 2073,
+ "type": "FloatToSigmas",
+ "pos": [
+ 7252.814453125,
+ 2838.02490234375
+ ],
+ "size": [
+ 216.59999084472656,
+ 26
+ ],
+ "flags": {},
+ "order": 17,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "float_list",
+ "name": "float_list",
+ "type": "FLOAT",
+ "link": 5782
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "SIGMAS",
+ "name": "SIGMAS",
+ "type": "SIGMAS",
+ "links": [
+ 5905
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "FloatToSigmas",
+ "cnr_id": "comfyui-kjnodes",
+ "ver": "1.0.8"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 1952,
+ "type": "StringToFloatList",
+ "pos": [
+ 3031.37158203125,
+ 2693.744384765625
+ ],
+ "size": [
+ 290,
+ 130
+ ],
+ "flags": {},
+ "order": 1,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "string",
+ "name": "string",
+ "type": "STRING",
+ "widget": {
+ "name": "string"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "FLOAT",
+ "name": "FLOAT",
+ "type": "FLOAT",
+ "links": [
+ 5567
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "StringToFloatList",
+ "cnr_id": "comfyui-kjnodes",
+ "ver": "0addfc6101f7a834c7fb6e0a1b26529360ab5350"
+ },
+ "widgets_values": [
+ "1.0000, 0.9937, 0.9875, 0.9812, 0.9750, 0.9094, 0.7250, 0.4219, 0.0\n"
+ ],
+ "color": "#223",
+ "bgcolor": "#335"
+ },
+ {
+ "id": 1598,
+ "type": "RandomNoise",
+ "pos": [
+ 7239.3369140625,
+ 2308.76806640625
+ ],
+ "size": [
+ 210,
+ 82
+ ],
+ "flags": {},
+ "order": 2,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "noise_seed",
+ "name": "noise_seed",
+ "type": "INT",
+ "widget": {
+ "name": "noise_seed"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "NOISE",
+ "name": "NOISE",
+ "type": "NOISE",
+ "links": [
+ 5903
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.30",
+ "Node name for S&R": "RandomNoise"
+ },
+ "widgets_values": [
+ 1625,
+ "fixed"
+ ]
+ },
+ {
+ "id": 2101,
+ "type": "Reroute",
+ "pos": [
+ 4516.3046875,
+ 2895.996337890625
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 49,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5885
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "LATENT",
+ "links": [
+ 5838
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 1973,
+ "type": "VHS_VideoCombine",
+ "pos": [
+ 8381.2939453125,
+ 2244.07470703125
+ ],
+ "size": [
+ 770.2554931640625,
+ 848.1703491210938
+ ],
+ "flags": {},
+ "order": 57,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "images",
+ "name": "images",
+ "type": "IMAGE",
+ "link": 5920
+ },
+ {
+ "localized_name": "audio",
+ "name": "audio",
+ "shape": 7,
+ "type": "AUDIO",
+ "link": null
+ },
+ {
+ "localized_name": "meta_batch",
+ "name": "meta_batch",
+ "shape": 7,
+ "type": "VHS_BatchManager",
+ "link": null
+ },
+ {
+ "localized_name": "vae",
+ "name": "vae",
+ "shape": 7,
+ "type": "VAE",
+ "link": null
+ },
+ {
+ "localized_name": "frame_rate",
+ "name": "frame_rate",
+ "type": "FLOAT",
+ "widget": {
+ "name": "frame_rate"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "loop_count",
+ "name": "loop_count",
+ "type": "INT",
+ "widget": {
+ "name": "loop_count"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "filename_prefix",
+ "name": "filename_prefix",
+ "type": "STRING",
+ "widget": {
+ "name": "filename_prefix"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "format",
+ "name": "format",
+ "type": "COMBO",
+ "widget": {
+ "name": "format"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "pingpong",
+ "name": "pingpong",
+ "type": "BOOLEAN",
+ "widget": {
+ "name": "pingpong"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "save_output",
+ "name": "save_output",
+ "type": "BOOLEAN",
+ "widget": {
+ "name": "save_output"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "Filenames",
+ "name": "Filenames",
+ "type": "VHS_FILENAMES",
+ "links": null
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VHS_VideoCombine"
+ },
+ "widgets_values": {
+ "frame_rate": 24,
+ "loop_count": 0,
+ "filename_prefix": "ltxv-ic-lora",
+ "format": "video/h264-mp4",
+ "pix_fmt": "yuv420p",
+ "crf": 19,
+ "save_metadata": true,
+ "trim_to_audio": false,
+ "pingpong": false,
+ "save_output": true,
+ "videopreview": {
+ "hidden": false,
+ "paused": false,
+ "params": {
+ "filename": "ltxv-ic-lora_00001.mp4",
+ "subfolder": "",
+ "type": "output",
+ "format": "video/h264-mp4",
+ "frame_rate": 24,
+ "workflow": "ltxv-ic-lora_00001.png",
+ "fullpath": "/opt/ComfyUI/output/ltxv-ic-lora_00001.mp4"
+ }
+ }
+ }
+ },
+ {
+ "id": 2116,
+ "type": "STGAdvancedPresets",
+ "pos": [
+ 6526.765625,
+ 2525.401123046875
+ ],
+ "size": [
+ 292.0787048339844,
+ 58
+ ],
+ "flags": {},
+ "order": 3,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "preset",
+ "name": "preset",
+ "type": "COMBO",
+ "widget": {
+ "name": "preset"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "STG_ADVANCED_PRESET",
+ "name": "STG_ADVANCED_PRESET",
+ "type": "STG_ADVANCED_PRESET",
+ "links": [
+ 5873
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "STGAdvancedPresets"
+ },
+ "widgets_values": [
+ "13b Distilled"
+ ]
+ },
+ {
+ "id": 2117,
+ "type": "Set VAE Decoder Noise",
+ "pos": [
+ 7948.51708984375,
+ 2248.662841796875
+ ],
+ "size": [
+ 294.1568298339844,
+ 130
+ ],
+ "flags": {},
+ "order": 50,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "vae",
+ "name": "vae",
+ "type": "VAE",
+ "link": 5874
+ },
+ {
+ "localized_name": "timestep",
+ "name": "timestep",
+ "type": "FLOAT",
+ "widget": {
+ "name": "timestep"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "scale",
+ "name": "scale",
+ "type": "FLOAT",
+ "widget": {
+ "name": "scale"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "seed",
+ "name": "seed",
+ "type": "INT",
+ "widget": {
+ "name": "seed"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "VAE",
+ "name": "VAE",
+ "type": "VAE",
+ "links": [
+ 5917
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "Set VAE Decoder Noise"
+ },
+ "widgets_values": [
+ 0.05,
+ 0.025,
+ 42,
+ "fixed"
+ ]
+ },
+ {
+ "id": 2096,
+ "type": "Reroute",
+ "pos": [
+ 3950,
+ 2050
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 30,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5829
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "VAE",
+ "links": [
+ 5831,
+ 5876
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 2072,
+ "type": "StringToFloatList",
+ "pos": [
+ 6769.21875,
+ 2838.73681640625
+ ],
+ "size": [
+ 395.74224853515625,
+ 88
+ ],
+ "flags": {},
+ "order": 4,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "string",
+ "name": "string",
+ "type": "STRING",
+ "widget": {
+ "name": "string"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "FLOAT",
+ "name": "FLOAT",
+ "type": "FLOAT",
+ "links": [
+ 5782
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "StringToFloatList",
+ "cnr_id": "comfyui-kjnodes",
+ "ver": "0addfc6101f7a834c7fb6e0a1b26529360ab5350"
+ },
+ "widgets_values": [
+ "0.99, 0.9094, 0.0"
+ ],
+ "color": "#223",
+ "bgcolor": "#335"
+ },
+ {
+ "id": 1871,
+ "type": "STGGuiderAdvanced",
+ "pos": [
+ 6852.89599609375,
+ 2435.40283203125
+ ],
+ "size": [
+ 278.79998779296875,
+ 262
+ ],
+ "flags": {},
+ "order": 46,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "model",
+ "name": "model",
+ "type": "MODEL",
+ "link": 5896
+ },
+ {
+ "localized_name": "positive",
+ "name": "positive",
+ "type": "CONDITIONING",
+ "link": 5739
+ },
+ {
+ "localized_name": "negative",
+ "name": "negative",
+ "type": "CONDITIONING",
+ "link": 5740
+ },
+ {
+ "localized_name": "preset",
+ "name": "preset",
+ "shape": 7,
+ "type": "STG_ADVANCED_PRESET",
+ "link": 5873
+ },
+ {
+ "localized_name": "skip_steps_sigma_threshold",
+ "name": "skip_steps_sigma_threshold",
+ "type": "FLOAT",
+ "widget": {
+ "name": "skip_steps_sigma_threshold"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "cfg_star_rescale",
+ "name": "cfg_star_rescale",
+ "type": "BOOLEAN",
+ "widget": {
+ "name": "cfg_star_rescale"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "sigmas",
+ "name": "sigmas",
+ "type": "STRING",
+ "widget": {
+ "name": "sigmas"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "cfg_values",
+ "name": "cfg_values",
+ "type": "STRING",
+ "widget": {
+ "name": "cfg_values"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "stg_scale_values",
+ "name": "stg_scale_values",
+ "type": "STRING",
+ "widget": {
+ "name": "stg_scale_values"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "stg_rescale_values",
+ "name": "stg_rescale_values",
+ "type": "STRING",
+ "widget": {
+ "name": "stg_rescale_values"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "stg_layers_indices",
+ "name": "stg_layers_indices",
+ "type": "STRING",
+ "widget": {
+ "name": "stg_layers_indices"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "GUIDER",
+ "name": "GUIDER",
+ "type": "GUIDER",
+ "links": [
+ 5906
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "STGGuiderAdvanced"
+ },
+ "widgets_values": [
+ 0.9970000000000002,
+ true,
+ "1",
+ "1",
+ "0",
+ "1",
+ "[42]"
+ ]
+ },
+ {
+ "id": 2124,
+ "type": "LTXVLoopingSampler",
+ "pos": [
+ 7551.111328125,
+ 2227.607177734375
+ ],
+ "size": [
+ 365.21484375,
+ 522
+ ],
+ "flags": {},
+ "order": 55,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "model",
+ "name": "model",
+ "type": "MODEL",
+ "link": 5901
+ },
+ {
+ "localized_name": "vae",
+ "name": "vae",
+ "type": "VAE",
+ "link": 5902
+ },
+ {
+ "localized_name": "noise",
+ "name": "noise",
+ "type": "NOISE",
+ "link": 5903
+ },
+ {
+ "localized_name": "sampler",
+ "name": "sampler",
+ "type": "SAMPLER",
+ "link": 5904
+ },
+ {
+ "localized_name": "sigmas",
+ "name": "sigmas",
+ "type": "SIGMAS",
+ "link": 5905
+ },
+ {
+ "localized_name": "guider",
+ "name": "guider",
+ "type": "GUIDER",
+ "link": 5906
+ },
+ {
+ "localized_name": "latents",
+ "name": "latents",
+ "type": "LATENT",
+ "link": 5961
+ },
+ {
+ "localized_name": "optional_cond_image",
+ "name": "optional_cond_image",
+ "shape": 7,
+ "type": "IMAGE",
+ "link": null
+ },
+ {
+ "localized_name": "optional_guiding_latents",
+ "name": "optional_guiding_latents",
+ "shape": 7,
+ "type": "LATENT",
+ "link": 5912
+ },
+ {
+ "localized_name": "optional_positive_conditionings",
+ "name": "optional_positive_conditionings",
+ "shape": 7,
+ "type": "CONDITIONING",
+ "link": null
+ },
+ {
+ "localized_name": "optional_negative_index_latents",
+ "name": "optional_negative_index_latents",
+ "shape": 7,
+ "type": "LATENT",
+ "link": null
+ },
+ {
+ "localized_name": "guiding_strength",
+ "name": "guiding_strength",
+ "type": "FLOAT",
+ "widget": {
+ "name": "guiding_strength"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "temporal_tile_size",
+ "name": "temporal_tile_size",
+ "type": "INT",
+ "widget": {
+ "name": "temporal_tile_size"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "temporal_overlap",
+ "name": "temporal_overlap",
+ "type": "INT",
+ "widget": {
+ "name": "temporal_overlap"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "temporal_overlap_cond_strength",
+ "name": "temporal_overlap_cond_strength",
+ "type": "FLOAT",
+ "widget": {
+ "name": "temporal_overlap_cond_strength"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "horizontal_tiles",
+ "name": "horizontal_tiles",
+ "type": "INT",
+ "widget": {
+ "name": "horizontal_tiles"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "vertical_tiles",
+ "name": "vertical_tiles",
+ "type": "INT",
+ "widget": {
+ "name": "vertical_tiles"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "spatial_overlap",
+ "name": "spatial_overlap",
+ "type": "INT",
+ "widget": {
+ "name": "spatial_overlap"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "adain_factor",
+ "name": "adain_factor",
+ "shape": 7,
+ "type": "FLOAT",
+ "widget": {
+ "name": "adain_factor"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "optional_negative_index",
+ "name": "optional_negative_index",
+ "shape": 7,
+ "type": "INT",
+ "widget": {
+ "name": "optional_negative_index"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "optional_negative_index_strength",
+ "name": "optional_negative_index_strength",
+ "shape": 7,
+ "type": "FLOAT",
+ "widget": {
+ "name": "optional_negative_index_strength"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "per_tile_seed_offsets",
+ "name": "per_tile_seed_offsets",
+ "shape": 7,
+ "type": "STRING",
+ "widget": {
+ "name": "per_tile_seed_offsets"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "per_tile_use_negative_latents",
+ "name": "per_tile_use_negative_latents",
+ "shape": 7,
+ "type": "STRING",
+ "widget": {
+ "name": "per_tile_use_negative_latents"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "denoised_output",
+ "name": "denoised_output",
+ "type": "LATENT",
+ "links": [
+ 5918
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "LTXVLoopingSampler"
+ },
+ "widgets_values": [
+ 1,
+ 80,
+ 24,
+ 0.5,
+ 1,
+ 1,
+ 1,
+ 0,
+ -1,
+ 1,
+ "0",
+ "1"
+ ]
+ },
+ {
+ "id": 2127,
+ "type": "LTXVTiledVAEDecode",
+ "pos": [
+ 7952.56640625,
+ 2443.8046875
+ ],
+ "size": [
+ 290.6636657714844,
+ 150
+ ],
+ "flags": {},
+ "order": 56,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "vae",
+ "name": "vae",
+ "type": "VAE",
+ "link": 5917
+ },
+ {
+ "localized_name": "latents",
+ "name": "latents",
+ "type": "LATENT",
+ "link": 5918
+ },
+ {
+ "localized_name": "horizontal_tiles",
+ "name": "horizontal_tiles",
+ "type": "INT",
+ "widget": {
+ "name": "horizontal_tiles"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "vertical_tiles",
+ "name": "vertical_tiles",
+ "type": "INT",
+ "widget": {
+ "name": "vertical_tiles"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "overlap",
+ "name": "overlap",
+ "type": "INT",
+ "widget": {
+ "name": "overlap"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "last_frame_fix",
+ "name": "last_frame_fix",
+ "type": "BOOLEAN",
+ "widget": {
+ "name": "last_frame_fix"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "image",
+ "name": "image",
+ "type": "IMAGE",
+ "links": [
+ 5920
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "LTXVTiledVAEDecode"
+ },
+ "widgets_values": [
+ 2,
+ 2,
+ 5,
+ false
+ ]
+ },
+ {
+ "id": 2090,
+ "type": "Reroute",
+ "pos": [
+ 1915.3045654296875,
+ 2041.6649169921875
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 23,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5818
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "VAE",
+ "links": [
+ 5829
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 2088,
+ "type": "Reroute",
+ "pos": [
+ 2018.0771484375,
+ 2067.719970703125
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 29,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5938
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "MODEL",
+ "links": [
+ 5815
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 2129,
+ "type": "Reroute",
+ "pos": [
+ 2004.1419677734375,
+ 2654.619873046875
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 21,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5941
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "MODEL",
+ "links": [
+ 5938
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 2094,
+ "type": "Reroute",
+ "pos": [
+ 2371.384765625,
+ 2891.617919921875
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 24,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5825
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "VAE",
+ "links": [
+ 5826,
+ 5979
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 2122,
+ "type": "LoraLoaderModelOnly",
+ "pos": [
+ 6476.05859375,
+ 2317.96484375
+ ],
+ "size": [
+ 270,
+ 82
+ ],
+ "flags": {},
+ "order": 43,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "model",
+ "name": "model",
+ "type": "MODEL",
+ "link": 5898
+ },
+ {
+ "localized_name": "lora_name",
+ "name": "lora_name",
+ "type": "COMBO",
+ "widget": {
+ "name": "lora_name"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "strength_model",
+ "name": "strength_model",
+ "type": "FLOAT",
+ "widget": {
+ "name": "strength_model"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "MODEL",
+ "name": "MODEL",
+ "type": "MODEL",
+ "links": [
+ 5896,
+ 5901
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.44",
+ "Node name for S&R": "LoraLoaderModelOnly"
+ },
+ "widgets_values": [
+ "ltx-video-ICLoRA-detailer-13B-0.9.8",
+ 1
+ ]
+ },
+ {
+ "id": 2091,
+ "type": "Reroute",
+ "pos": [
+ 5967.08837890625,
+ 2053.210205078125
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 38,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5831
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "VAE",
+ "links": [
+ 5820,
+ 5821
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 2125,
+ "type": "Reroute",
+ "pos": [
+ 7255.9951171875,
+ 2484.927001953125
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 54,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5971
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "LATENT",
+ "links": [
+ 5912,
+ 5961
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 38,
+ "type": "CLIPLoader",
+ "pos": [
+ 1916.6739501953125,
+ 2303.91259765625
+ ],
+ "size": [
+ 245.33026123046875,
+ 106
+ ],
+ "flags": {},
+ "order": 5,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "clip_name",
+ "name": "clip_name",
+ "type": "COMBO",
+ "widget": {
+ "name": "clip_name"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "type",
+ "name": "type",
+ "type": "COMBO",
+ "widget": {
+ "name": "type"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "device",
+ "name": "device",
+ "shape": 7,
+ "type": "COMBO",
+ "widget": {
+ "name": "device"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "CLIP",
+ "name": "CLIP",
+ "type": "CLIP",
+ "slot_index": 0,
+ "links": [
+ 5603,
+ 5964,
+ 5966
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.28",
+ "Node name for S&R": "CLIPLoader"
+ },
+ "widgets_values": [
+ "t5xxl_fp16.safetensors",
+ "ltxv",
+ "default"
+ ]
+ },
+ {
+ "id": 1949,
+ "type": "PrintSigmas",
+ "pos": [
+ 3674.795654296875,
+ 2763.217529296875
+ ],
+ "size": [
+ 210,
+ 26
+ ],
+ "flags": {},
+ "order": 27,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "sigmas",
+ "name": "sigmas",
+ "type": "SIGMAS",
+ "link": 5641
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "SIGMAS",
+ "name": "SIGMAS",
+ "type": "SIGMAS",
+ "links": [
+ 5881
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "PrintSigmas"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 1953,
+ "type": "FloatToSigmas",
+ "pos": [
+ 3391.44384765625,
+ 2769.8349609375
+ ],
+ "size": [
+ 216.59999084472656,
+ 26
+ ],
+ "flags": {},
+ "order": 16,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "float_list",
+ "name": "float_list",
+ "type": "FLOAT",
+ "link": 5567
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "SIGMAS",
+ "name": "SIGMAS",
+ "type": "SIGMAS",
+ "links": [
+ 5641
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "FloatToSigmas",
+ "cnr_id": "comfyui-kjnodes",
+ "ver": "1.0.8"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 2022,
+ "type": "Reroute",
+ "pos": [
+ 3229.825439453125,
+ 1977.3233642578125
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 34,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5715
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "CONDITIONING",
+ "links": [
+ 5741
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 2023,
+ "type": "Reroute",
+ "pos": [
+ 3223.71728515625,
+ 2017.1053466796875
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 36,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5716
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "CONDITIONING",
+ "links": [
+ 5742
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 2097,
+ "type": "Note",
+ "pos": [
+ 2233.589111328125,
+ 2181.5400390625
+ ],
+ "size": [
+ 285.2653503417969,
+ 88
+ ],
+ "flags": {},
+ "order": 6,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [],
+ "properties": {},
+ "widgets_values": [
+ "Leave the positive conditioning text blank. Use multi prompt provider node on the right."
+ ],
+ "color": "#432",
+ "bgcolor": "#653"
+ },
+ {
+ "id": 2095,
+ "type": "Reroute",
+ "pos": [
+ 3925.002197265625,
+ 2883.0654296875
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 31,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5826
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "VAE",
+ "links": [
+ 5828
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 73,
+ "type": "KSamplerSelect",
+ "pos": [
+ 3586.90478515625,
+ 2493.794189453125
+ ],
+ "size": [
+ 251.94110107421875,
+ 58
+ ],
+ "flags": {},
+ "order": 7,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "sampler_name",
+ "name": "sampler_name",
+ "type": "COMBO",
+ "widget": {
+ "name": "sampler_name"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "SAMPLER",
+ "name": "SAMPLER",
+ "type": "SAMPLER",
+ "links": [
+ 5879
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.28",
+ "Node name for S&R": "KSamplerSelect"
+ },
+ "widgets_values": [
+ "euler_ancestral"
+ ]
+ },
+ {
+ "id": 2131,
+ "type": "Reroute",
+ "pos": [
+ 3853.322021484375,
+ 2818.027587890625
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 22,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5970
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "MODEL",
+ "links": [
+ 5952
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 1896,
+ "type": "CheckpointLoaderSimple",
+ "pos": [
+ 1923.9993896484375,
+ 2810.05615234375
+ ],
+ "size": [
+ 315,
+ 98
+ ],
+ "flags": {},
+ "order": 8,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "ckpt_name",
+ "name": "ckpt_name",
+ "type": "COMBO",
+ "widget": {
+ "name": "ckpt_name"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "MODEL",
+ "name": "MODEL",
+ "type": "MODEL",
+ "slot_index": 0,
+ "links": [
+ 5941,
+ 5969,
+ 5970
+ ]
+ },
+ {
+ "localized_name": "CLIP",
+ "name": "CLIP",
+ "type": "CLIP",
+ "links": null
+ },
+ {
+ "localized_name": "VAE",
+ "name": "VAE",
+ "type": "VAE",
+ "slot_index": 2,
+ "links": [
+ 5818,
+ 5825
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.28",
+ "Node name for S&R": "CheckpointLoaderSimple"
+ },
+ "widgets_values": [
+ "ltxv-13b-0.9.8-distilled.safetensors"
+ ],
+ "color": "#322",
+ "bgcolor": "#533"
+ },
+ {
+ "id": 1870,
+ "type": "Set VAE Decoder Noise",
+ "pos": [
+ 4506.759765625,
+ 2418.0849609375
+ ],
+ "size": [
+ 235.1999969482422,
+ 130
+ ],
+ "flags": {},
+ "order": 39,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "vae",
+ "name": "vae",
+ "type": "VAE",
+ "link": 5828
+ },
+ {
+ "localized_name": "timestep",
+ "name": "timestep",
+ "type": "FLOAT",
+ "widget": {
+ "name": "timestep"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "scale",
+ "name": "scale",
+ "type": "FLOAT",
+ "widget": {
+ "name": "scale"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "seed",
+ "name": "seed",
+ "type": "INT",
+ "widget": {
+ "name": "seed"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "VAE",
+ "name": "VAE",
+ "type": "VAE",
+ "links": [
+ 5363
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "Set VAE Decoder Noise"
+ },
+ "widgets_values": [
+ 0.05000000000000001,
+ 0.025000000000000005,
+ 42,
+ "fixed"
+ ]
+ },
+ {
+ "id": 1336,
+ "type": "VHS_VideoCombine",
+ "pos": [
+ 4850.5517578125,
+ 2275.85302734375
+ ],
+ "size": [
+ 430.260498046875,
+ 621.5070190429688
+ ],
+ "flags": {},
+ "order": 51,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "images",
+ "name": "images",
+ "type": "IMAGE",
+ "link": 3578
+ },
+ {
+ "localized_name": "audio",
+ "name": "audio",
+ "shape": 7,
+ "type": "AUDIO",
+ "link": null
+ },
+ {
+ "localized_name": "meta_batch",
+ "name": "meta_batch",
+ "shape": 7,
+ "type": "VHS_BatchManager",
+ "link": null
+ },
+ {
+ "localized_name": "vae",
+ "name": "vae",
+ "shape": 7,
+ "type": "VAE",
+ "link": null
+ },
+ {
+ "localized_name": "frame_rate",
+ "name": "frame_rate",
+ "type": "FLOAT",
+ "widget": {
+ "name": "frame_rate"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "loop_count",
+ "name": "loop_count",
+ "type": "INT",
+ "widget": {
+ "name": "loop_count"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "filename_prefix",
+ "name": "filename_prefix",
+ "type": "STRING",
+ "widget": {
+ "name": "filename_prefix"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "format",
+ "name": "format",
+ "type": "COMBO",
+ "widget": {
+ "name": "format"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "pingpong",
+ "name": "pingpong",
+ "type": "BOOLEAN",
+ "widget": {
+ "name": "pingpong"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "save_output",
+ "name": "save_output",
+ "type": "BOOLEAN",
+ "widget": {
+ "name": "save_output"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "Filenames",
+ "name": "Filenames",
+ "type": "VHS_FILENAMES",
+ "links": null
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VHS_VideoCombine"
+ },
+ "widgets_values": {
+ "frame_rate": 24,
+ "loop_count": 0,
+ "filename_prefix": "ltxv-base",
+ "format": "video/h264-mp4",
+ "pix_fmt": "yuv420p",
+ "crf": 19,
+ "save_metadata": false,
+ "trim_to_audio": false,
+ "pingpong": false,
+ "save_output": false,
+ "videopreview": {
+ "hidden": false,
+ "paused": false,
+ "params": {
+ "filename": "ltxv-base_00001.mp4",
+ "subfolder": "",
+ "type": "temp",
+ "format": "video/h264-mp4",
+ "frame_rate": 24,
+ "workflow": "ltxv-base_00001.png",
+ "fullpath": "/opt/ComfyUI/temp/ltxv-base_00001.mp4"
+ }
+ }
+ }
+ },
+ {
+ "id": 1507,
+ "type": "RandomNoise",
+ "pos": [
+ 3535.158203125,
+ 2604.37841796875
+ ],
+ "size": [
+ 239.2462158203125,
+ 82
+ ],
+ "flags": {},
+ "order": 9,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "noise_seed",
+ "name": "noise_seed",
+ "type": "INT",
+ "widget": {
+ "name": "noise_seed"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "NOISE",
+ "name": "NOISE",
+ "type": "NOISE",
+ "slot_index": 0,
+ "links": [
+ 5880
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.28",
+ "Node name for S&R": "RandomNoise"
+ },
+ "widgets_values": [
+ 0,
+ "fixed"
+ ]
+ },
+ {
+ "id": 2083,
+ "type": "Note",
+ "pos": [
+ 1389.35400390625,
+ 2180.90380859375
+ ],
+ "size": [
+ 301.8587951660156,
+ 88.58767700195312
+ ],
+ "flags": {},
+ "order": 10,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [],
+ "properties": {},
+ "widgets_values": [
+ "If you want to generate in text-to-video mode, simply bypass the conditioning reference image"
+ ],
+ "color": "#432",
+ "bgcolor": "#653"
+ },
+ {
+ "id": 7,
+ "type": "CLIPTextEncode",
+ "pos": [
+ 2199.7548828125,
+ 2475.3994140625
+ ],
+ "size": [
+ 324.2440490722656,
+ 138.9625701904297
+ ],
+ "flags": {},
+ "order": 18,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "clip",
+ "name": "clip",
+ "type": "CLIP",
+ "link": 5603
+ },
+ {
+ "localized_name": "text",
+ "name": "text",
+ "type": "STRING",
+ "widget": {
+ "name": "text"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "CONDITIONING",
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "slot_index": 0,
+ "links": [
+ 3365
+ ]
+ }
+ ],
+ "title": "CLIP Text Encode (Negative Prompt)",
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.28",
+ "Node name for S&R": "CLIPTextEncode"
+ },
+ "widgets_values": [
+ "low quality, worst quality, deformed, distorted, disfigured, motion smear, motion artifacts, fused fingers, bad anatomy, weird hand, ugly"
+ ],
+ "color": "#322",
+ "bgcolor": "#533"
+ },
+ {
+ "id": 2137,
+ "type": "CLIPTextEncode",
+ "pos": [
+ 2207.601806640625,
+ 2326.387451171875
+ ],
+ "size": [
+ 306.794921875,
+ 108.2911605834961
+ ],
+ "flags": {},
+ "order": 20,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "clip",
+ "name": "clip",
+ "type": "CLIP",
+ "link": 5966
+ },
+ {
+ "localized_name": "text",
+ "name": "text",
+ "type": "STRING",
+ "widget": {
+ "name": "text"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "CONDITIONING",
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "links": [
+ 5967
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.44",
+ "Node name for S&R": "CLIPTextEncode"
+ },
+ "widgets_values": [
+ ""
+ ]
+ },
+ {
+ "id": 1241,
+ "type": "LTXVConditioning",
+ "pos": [
+ 2554.75439453125,
+ 2188.283203125
+ ],
+ "size": [
+ 328.21636962890625,
+ 78
+ ],
+ "flags": {},
+ "order": 28,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "positive",
+ "name": "positive",
+ "type": "CONDITIONING",
+ "link": 5967
+ },
+ {
+ "localized_name": "negative",
+ "name": "negative",
+ "type": "CONDITIONING",
+ "link": 3365
+ },
+ {
+ "localized_name": "frame_rate",
+ "name": "frame_rate",
+ "type": "FLOAT",
+ "widget": {
+ "name": "frame_rate"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "positive",
+ "name": "positive",
+ "type": "CONDITIONING",
+ "slot_index": 0,
+ "links": [
+ 5584,
+ 5715
+ ]
+ },
+ {
+ "localized_name": "negative",
+ "name": "negative",
+ "type": "CONDITIONING",
+ "slot_index": 1,
+ "links": [
+ 5585,
+ 5716
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.28",
+ "Node name for S&R": "LTXVConditioning"
+ },
+ "widgets_values": [
+ 24.000000000000004
+ ]
+ },
+ {
+ "id": 1921,
+ "type": "STGGuiderAdvanced",
+ "pos": [
+ 3237.193359375,
+ 2187.70556640625
+ ],
+ "size": [
+ 278.79998779296875,
+ 262
+ ],
+ "flags": {},
+ "order": 35,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "model",
+ "name": "model",
+ "type": "MODEL",
+ "link": 5969
+ },
+ {
+ "localized_name": "positive",
+ "name": "positive",
+ "type": "CONDITIONING",
+ "link": 5584
+ },
+ {
+ "localized_name": "negative",
+ "name": "negative",
+ "type": "CONDITIONING",
+ "link": 5585
+ },
+ {
+ "localized_name": "preset",
+ "name": "preset",
+ "shape": 7,
+ "type": "STG_ADVANCED_PRESET",
+ "link": 5613
+ },
+ {
+ "localized_name": "skip_steps_sigma_threshold",
+ "name": "skip_steps_sigma_threshold",
+ "type": "FLOAT",
+ "widget": {
+ "name": "skip_steps_sigma_threshold"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "cfg_star_rescale",
+ "name": "cfg_star_rescale",
+ "type": "BOOLEAN",
+ "widget": {
+ "name": "cfg_star_rescale"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "sigmas",
+ "name": "sigmas",
+ "type": "STRING",
+ "widget": {
+ "name": "sigmas"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "cfg_values",
+ "name": "cfg_values",
+ "type": "STRING",
+ "widget": {
+ "name": "cfg_values"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "stg_scale_values",
+ "name": "stg_scale_values",
+ "type": "STRING",
+ "widget": {
+ "name": "stg_scale_values"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "stg_rescale_values",
+ "name": "stg_rescale_values",
+ "type": "STRING",
+ "widget": {
+ "name": "stg_rescale_values"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "stg_layers_indices",
+ "name": "stg_layers_indices",
+ "type": "STRING",
+ "widget": {
+ "name": "stg_layers_indices"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "GUIDER",
+ "name": "GUIDER",
+ "type": "GUIDER",
+ "links": [
+ 5878
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "STGGuiderAdvanced"
+ },
+ "widgets_values": [
+ 0.9970000000000002,
+ true,
+ "1",
+ "1",
+ "0,0,0,0,0,0",
+ "1",
+ "[25]"
+ ]
+ },
+ {
+ "id": 2119,
+ "type": "EmptyLTXVLatentVideo",
+ "pos": [
+ 3248.267578125,
+ 2490.9853515625
+ ],
+ "size": [
+ 270,
+ 130
+ ],
+ "flags": {},
+ "order": 25,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "width",
+ "name": "width",
+ "type": "INT",
+ "widget": {
+ "name": "width"
+ },
+ "link": 5973
+ },
+ {
+ "localized_name": "height",
+ "name": "height",
+ "type": "INT",
+ "widget": {
+ "name": "height"
+ },
+ "link": 5974
+ },
+ {
+ "localized_name": "length",
+ "name": "length",
+ "type": "INT",
+ "widget": {
+ "name": "length"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "batch_size",
+ "name": "batch_size",
+ "type": "INT",
+ "widget": {
+ "name": "batch_size"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "LATENT",
+ "name": "LATENT",
+ "type": "LATENT",
+ "links": [
+ 5895
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.44",
+ "Node name for S&R": "EmptyLTXVLatentVideo"
+ },
+ "widgets_values": [
+ 768,
+ 512,
+ 361,
+ 1
+ ]
+ },
+ {
+ "id": 2142,
+ "type": "ImageResizeKJ",
+ "pos": [
+ 2788.995361328125,
+ 2546.055419921875
+ ],
+ "size": [
+ 210,
+ 238
+ ],
+ "flags": {},
+ "order": 32,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "image",
+ "name": "image",
+ "type": "IMAGE",
+ "link": 5982
+ },
+ {
+ "localized_name": "width_input",
+ "name": "width_input",
+ "shape": 7,
+ "type": "INT",
+ "link": 5976
+ },
+ {
+ "localized_name": "height_input",
+ "name": "height_input",
+ "shape": 7,
+ "type": "INT",
+ "link": 5977
+ },
+ {
+ "localized_name": "get_image_size",
+ "name": "get_image_size",
+ "shape": 7,
+ "type": "IMAGE",
+ "link": null
+ },
+ {
+ "localized_name": "width",
+ "name": "width",
+ "type": "INT",
+ "widget": {
+ "name": "width"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "height",
+ "name": "height",
+ "type": "INT",
+ "widget": {
+ "name": "height"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "upscale_method",
+ "name": "upscale_method",
+ "type": "COMBO",
+ "widget": {
+ "name": "upscale_method"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "keep_proportion",
+ "name": "keep_proportion",
+ "type": "BOOLEAN",
+ "widget": {
+ "name": "keep_proportion"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "divisible_by",
+ "name": "divisible_by",
+ "type": "INT",
+ "widget": {
+ "name": "divisible_by"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "crop",
+ "name": "crop",
+ "shape": 7,
+ "type": "COMBO",
+ "widget": {
+ "name": "crop"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "IMAGE",
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 5978
+ ]
+ },
+ {
+ "localized_name": "width",
+ "name": "width",
+ "type": "INT",
+ "links": null
+ },
+ {
+ "localized_name": "height",
+ "name": "height",
+ "type": "INT",
+ "links": null
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ImageResizeKJ",
+ "cnr_id": "comfyui-kjnodes",
+ "ver": "1.0.8"
+ },
+ "widgets_values": [
+ 512,
+ 512,
+ "bilinear",
+ false,
+ 32,
+ "center"
+ ]
+ },
+ {
+ "id": 2143,
+ "type": "VAEEncode",
+ "pos": [
+ 3093.18896484375,
+ 2610.00048828125
+ ],
+ "size": [
+ 140,
+ 46
+ ],
+ "flags": {},
+ "order": 40,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "pixels",
+ "name": "pixels",
+ "type": "IMAGE",
+ "link": 5978
+ },
+ {
+ "localized_name": "vae",
+ "name": "vae",
+ "type": "VAE",
+ "link": 5979
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "LATENT",
+ "name": "LATENT",
+ "type": "LATENT",
+ "links": [
+ 5980
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.43",
+ "Node name for S&R": "VAEEncode"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 2141,
+ "type": "PrimitiveInt",
+ "pos": [
+ 2528.516357421875,
+ 2724.28271484375
+ ],
+ "size": [
+ 210,
+ 82
+ ],
+ "flags": {},
+ "order": 11,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "value",
+ "name": "value",
+ "type": "INT",
+ "widget": {
+ "name": "value"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "INT",
+ "name": "INT",
+ "type": "INT",
+ "links": [
+ 5974,
+ 5977
+ ]
+ }
+ ],
+ "title": "Height",
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.43",
+ "Node name for S&R": "PrimitiveInt"
+ },
+ "widgets_values": [
+ 512,
+ "fixed"
+ ]
+ },
+ {
+ "id": 1828,
+ "type": "LTXVLatentUpsamplerModelLoader",
+ "pos": [
+ 5633.87890625,
+ 2243.88720703125
+ ],
+ "size": [
+ 349.8224792480469,
+ 113.41394805908203
+ ],
+ "flags": {},
+ "order": 12,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "upscale_model",
+ "name": "upscale_model",
+ "type": "COMBO",
+ "widget": {
+ "name": "upscale_model"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "spatial_upsample",
+ "name": "spatial_upsample",
+ "type": "BOOLEAN",
+ "widget": {
+ "name": "spatial_upsample"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "temporal_upsample",
+ "name": "temporal_upsample",
+ "type": "BOOLEAN",
+ "widget": {
+ "name": "temporal_upsample"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "UPSCALE_MODEL",
+ "name": "UPSCALE_MODEL",
+ "type": "UPSCALE_MODEL",
+ "links": [
+ 5303
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "LTXVLatentUpsamplerModelLoader"
+ },
+ "widgets_values": [
+ "ltxv-spatial-upscaler-0.9.8.safetensors",
+ true,
+ false
+ ]
+ },
+ {
+ "id": 1691,
+ "type": "LTXVLatentUpsampler",
+ "pos": [
+ 6005.61767578125,
+ 2431.710205078125
+ ],
+ "size": [
+ 235.1999969482422,
+ 66
+ ],
+ "flags": {},
+ "order": 53,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "samples",
+ "name": "samples",
+ "type": "LATENT",
+ "link": 5839
+ },
+ {
+ "localized_name": "upscale_model",
+ "name": "upscale_model",
+ "type": "UPSCALE_MODEL",
+ "link": 5303
+ },
+ {
+ "localized_name": "vae",
+ "name": "vae",
+ "type": "VAE",
+ "link": 5820
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "LATENT",
+ "name": "LATENT",
+ "type": "LATENT",
+ "links": [
+ 5971
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "LTXVLatentUpsampler"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 2089,
+ "type": "Reroute",
+ "pos": [
+ 6366.45947265625,
+ 2080.94482421875
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 37,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5815
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "MODEL",
+ "links": [
+ 5898
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 2092,
+ "type": "Reroute",
+ "pos": [
+ 7432.23681640625,
+ 2050.378173828125
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 44,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5821
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "VAE",
+ "links": [
+ 5823,
+ 5902
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 2093,
+ "type": "Reroute",
+ "pos": [
+ 7849.55517578125,
+ 2052.93408203125
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 47,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5823
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "VAE",
+ "links": [
+ 5874
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 2102,
+ "type": "Reroute",
+ "pos": [
+ 5431.9970703125,
+ 2652.271240234375
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 52,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5838
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "LATENT",
+ "links": [
+ 5839
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 1967,
+ "type": "STGAdvancedPresets",
+ "pos": [
+ 2984.207275390625,
+ 2431.851318359375
+ ],
+ "size": [
+ 232.07870483398438,
+ 58
+ ],
+ "flags": {},
+ "order": 13,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "preset",
+ "name": "preset",
+ "type": "COMBO",
+ "widget": {
+ "name": "preset"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "STG_ADVANCED_PRESET",
+ "name": "STG_ADVANCED_PRESET",
+ "type": "STG_ADVANCED_PRESET",
+ "links": [
+ 5613
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "STGAdvancedPresets"
+ },
+ "widgets_values": [
+ "13b Distilled"
+ ]
+ },
+ {
+ "id": 2144,
+ "type": "Reroute",
+ "pos": [
+ 1959.7939453125,
+ 2957.10400390625
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 26,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5983
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "IMAGE",
+ "links": [
+ 5982,
+ 5984
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 2145,
+ "type": "Reroute",
+ "pos": [
+ 3833.28857421875,
+ 2968.962646484375
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 33,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5984
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "IMAGE",
+ "links": [
+ 5985
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 2140,
+ "type": "PrimitiveInt",
+ "pos": [
+ 2536.9140625,
+ 2594.824462890625
+ ],
+ "size": [
+ 210,
+ 82
+ ],
+ "flags": {},
+ "order": 14,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "value",
+ "name": "value",
+ "type": "INT",
+ "widget": {
+ "name": "value"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "INT",
+ "name": "INT",
+ "type": "INT",
+ "links": [
+ 5973,
+ 5976
+ ]
+ }
+ ],
+ "title": "Width",
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.43",
+ "Node name for S&R": "PrimitiveInt"
+ },
+ "widgets_values": [
+ 768,
+ "fixed"
+ ]
+ },
+ {
+ "id": 1960,
+ "type": "LoadImage",
+ "pos": [
+ 1113.742919921875,
+ 2334.58203125
+ ],
+ "size": [
+ 741.6028442382812,
+ 428.4986877441406
+ ],
+ "flags": {},
+ "order": 15,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "image",
+ "name": "image",
+ "type": "COMBO",
+ "widget": {
+ "name": "image"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "choose file to upload",
+ "name": "upload",
+ "type": "IMAGEUPLOAD",
+ "widget": {
+ "name": "upload"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "IMAGE",
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 5983
+ ]
+ },
+ {
+ "localized_name": "MASK",
+ "name": "MASK",
+ "type": "MASK",
+ "links": null
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.30",
+ "Node name for S&R": "LoadImage"
+ },
+ "widgets_values": [
+ "chimpanzee.webp",
+ "image"
+ ]
+ },
+ {
+ "id": 2118,
+ "type": "LTXVLoopingSampler",
+ "pos": [
+ 4011.846923828125,
+ 2252.72412109375
+ ],
+ "size": [
+ 365.21484375,
+ 522
+ ],
+ "flags": {},
+ "order": 45,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "model",
+ "name": "model",
+ "type": "MODEL",
+ "link": 5952
+ },
+ {
+ "localized_name": "vae",
+ "name": "vae",
+ "type": "VAE",
+ "link": 5876
+ },
+ {
+ "localized_name": "noise",
+ "name": "noise",
+ "type": "NOISE",
+ "link": 5880
+ },
+ {
+ "localized_name": "sampler",
+ "name": "sampler",
+ "type": "SAMPLER",
+ "link": 5879
+ },
+ {
+ "localized_name": "sigmas",
+ "name": "sigmas",
+ "type": "SIGMAS",
+ "link": 5881
+ },
+ {
+ "localized_name": "guider",
+ "name": "guider",
+ "type": "GUIDER",
+ "link": 5878
+ },
+ {
+ "localized_name": "latents",
+ "name": "latents",
+ "type": "LATENT",
+ "link": 5895
+ },
+ {
+ "localized_name": "optional_cond_image",
+ "name": "optional_cond_image",
+ "shape": 7,
+ "type": "IMAGE",
+ "link": 5985
+ },
+ {
+ "localized_name": "optional_guiding_latents",
+ "name": "optional_guiding_latents",
+ "shape": 7,
+ "type": "LATENT",
+ "link": null
+ },
+ {
+ "localized_name": "optional_positive_conditionings",
+ "name": "optional_positive_conditionings",
+ "shape": 7,
+ "type": "CONDITIONING",
+ "link": 5968
+ },
+ {
+ "localized_name": "optional_negative_index_latents",
+ "name": "optional_negative_index_latents",
+ "shape": 7,
+ "type": "LATENT",
+ "link": 5980
+ },
+ {
+ "localized_name": "guiding_strength",
+ "name": "guiding_strength",
+ "type": "FLOAT",
+ "widget": {
+ "name": "guiding_strength"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "temporal_tile_size",
+ "name": "temporal_tile_size",
+ "type": "INT",
+ "widget": {
+ "name": "temporal_tile_size"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "temporal_overlap",
+ "name": "temporal_overlap",
+ "type": "INT",
+ "widget": {
+ "name": "temporal_overlap"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "temporal_overlap_cond_strength",
+ "name": "temporal_overlap_cond_strength",
+ "type": "FLOAT",
+ "widget": {
+ "name": "temporal_overlap_cond_strength"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "horizontal_tiles",
+ "name": "horizontal_tiles",
+ "type": "INT",
+ "widget": {
+ "name": "horizontal_tiles"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "vertical_tiles",
+ "name": "vertical_tiles",
+ "type": "INT",
+ "widget": {
+ "name": "vertical_tiles"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "spatial_overlap",
+ "name": "spatial_overlap",
+ "type": "INT",
+ "widget": {
+ "name": "spatial_overlap"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "adain_factor",
+ "name": "adain_factor",
+ "shape": 7,
+ "type": "FLOAT",
+ "widget": {
+ "name": "adain_factor"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "optional_negative_index",
+ "name": "optional_negative_index",
+ "shape": 7,
+ "type": "INT",
+ "widget": {
+ "name": "optional_negative_index"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "optional_negative_index_strength",
+ "name": "optional_negative_index_strength",
+ "shape": 7,
+ "type": "FLOAT",
+ "widget": {
+ "name": "optional_negative_index_strength"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "per_tile_seed_offsets",
+ "name": "per_tile_seed_offsets",
+ "shape": 7,
+ "type": "STRING",
+ "widget": {
+ "name": "per_tile_seed_offsets"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "per_tile_use_negative_latents",
+ "name": "per_tile_use_negative_latents",
+ "shape": 7,
+ "type": "STRING",
+ "widget": {
+ "name": "per_tile_use_negative_latents"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "denoised_output",
+ "name": "denoised_output",
+ "type": "LATENT",
+ "links": [
+ 5884,
+ 5885
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "LTXVLoopingSampler"
+ },
+ "widgets_values": [
+ 1,
+ 120,
+ 32,
+ 0.5,
+ 1,
+ 1,
+ 1,
+ 0.25000000000000006,
+ -1,
+ 1,
+ "0",
+ "1"
+ ]
+ },
+ {
+ "id": 2136,
+ "type": "MultiPromptProvider",
+ "pos": [
+ 2547.635009765625,
+ 2312.775390625
+ ],
+ "size": [
+ 314.39056396484375,
+ 151.14501953125
+ ],
+ "flags": {},
+ "order": 19,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "clip",
+ "name": "clip",
+ "type": "CLIP",
+ "link": 5964
+ },
+ {
+ "localized_name": "prompts",
+ "name": "prompts",
+ "type": "STRING",
+ "widget": {
+ "name": "prompts"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "conditionings",
+ "name": "conditionings",
+ "type": "CONDITIONING",
+ "links": [
+ 5968
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "MultiPromptProvider"
+ },
+ "widgets_values": [
+ "a chimpanzee walks in the jungle |\na chimpanzee stops and eats a snack |\na chimpanzee lays on the ground"
+ ]
+ }
+ ],
+ "links": [
+ [
+ 3365,
+ 7,
+ 0,
+ 1241,
+ 1,
+ "CONDITIONING"
+ ],
+ [
+ 3578,
+ 1335,
+ 0,
+ 1336,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 5303,
+ 1828,
+ 0,
+ 1691,
+ 1,
+ "UPSCALE_MODEL"
+ ],
+ [
+ 5363,
+ 1870,
+ 0,
+ 1335,
+ 1,
+ "VAE"
+ ],
+ [
+ 5567,
+ 1952,
+ 0,
+ 1953,
+ 0,
+ "FLOAT"
+ ],
+ [
+ 5584,
+ 1241,
+ 0,
+ 1921,
+ 1,
+ "CONDITIONING"
+ ],
+ [
+ 5585,
+ 1241,
+ 1,
+ 1921,
+ 2,
+ "CONDITIONING"
+ ],
+ [
+ 5603,
+ 38,
+ 0,
+ 7,
+ 0,
+ "CLIP"
+ ],
+ [
+ 5613,
+ 1967,
+ 0,
+ 1921,
+ 3,
+ "STG_ADVANCED_PRESET"
+ ],
+ [
+ 5641,
+ 1953,
+ 0,
+ 1949,
+ 0,
+ "SIGMAS"
+ ],
+ [
+ 5715,
+ 1241,
+ 0,
+ 2022,
+ 0,
+ "*"
+ ],
+ [
+ 5716,
+ 1241,
+ 1,
+ 2023,
+ 0,
+ "*"
+ ],
+ [
+ 5739,
+ 2037,
+ 0,
+ 1871,
+ 1,
+ "CONDITIONING"
+ ],
+ [
+ 5740,
+ 2038,
+ 0,
+ 1871,
+ 2,
+ "CONDITIONING"
+ ],
+ [
+ 5741,
+ 2022,
+ 0,
+ 2037,
+ 0,
+ "*"
+ ],
+ [
+ 5742,
+ 2023,
+ 0,
+ 2038,
+ 0,
+ "*"
+ ],
+ [
+ 5782,
+ 2072,
+ 0,
+ 2073,
+ 0,
+ "FLOAT"
+ ],
+ [
+ 5815,
+ 2088,
+ 0,
+ 2089,
+ 0,
+ "*"
+ ],
+ [
+ 5818,
+ 1896,
+ 2,
+ 2090,
+ 0,
+ "*"
+ ],
+ [
+ 5820,
+ 2091,
+ 0,
+ 1691,
+ 2,
+ "VAE"
+ ],
+ [
+ 5821,
+ 2091,
+ 0,
+ 2092,
+ 0,
+ "*"
+ ],
+ [
+ 5823,
+ 2092,
+ 0,
+ 2093,
+ 0,
+ "*"
+ ],
+ [
+ 5825,
+ 1896,
+ 2,
+ 2094,
+ 0,
+ "*"
+ ],
+ [
+ 5826,
+ 2094,
+ 0,
+ 2095,
+ 0,
+ "*"
+ ],
+ [
+ 5828,
+ 2095,
+ 0,
+ 1870,
+ 0,
+ "VAE"
+ ],
+ [
+ 5829,
+ 2090,
+ 0,
+ 2096,
+ 0,
+ "*"
+ ],
+ [
+ 5831,
+ 2096,
+ 0,
+ 2091,
+ 0,
+ "*"
+ ],
+ [
+ 5838,
+ 2101,
+ 0,
+ 2102,
+ 0,
+ "*"
+ ],
+ [
+ 5839,
+ 2102,
+ 0,
+ 1691,
+ 0,
+ "LATENT"
+ ],
+ [
+ 5873,
+ 2116,
+ 0,
+ 1871,
+ 3,
+ "STG_ADVANCED_PRESET"
+ ],
+ [
+ 5874,
+ 2093,
+ 0,
+ 2117,
+ 0,
+ "VAE"
+ ],
+ [
+ 5876,
+ 2096,
+ 0,
+ 2118,
+ 1,
+ "VAE"
+ ],
+ [
+ 5878,
+ 1921,
+ 0,
+ 2118,
+ 5,
+ "GUIDER"
+ ],
+ [
+ 5879,
+ 73,
+ 0,
+ 2118,
+ 3,
+ "SAMPLER"
+ ],
+ [
+ 5880,
+ 1507,
+ 0,
+ 2118,
+ 2,
+ "NOISE"
+ ],
+ [
+ 5881,
+ 1949,
+ 0,
+ 2118,
+ 4,
+ "SIGMAS"
+ ],
+ [
+ 5884,
+ 2118,
+ 0,
+ 1335,
+ 0,
+ "LATENT"
+ ],
+ [
+ 5885,
+ 2118,
+ 0,
+ 2101,
+ 0,
+ "*"
+ ],
+ [
+ 5895,
+ 2119,
+ 0,
+ 2118,
+ 6,
+ "LATENT"
+ ],
+ [
+ 5896,
+ 2122,
+ 0,
+ 1871,
+ 0,
+ "MODEL"
+ ],
+ [
+ 5898,
+ 2089,
+ 0,
+ 2122,
+ 0,
+ "MODEL"
+ ],
+ [
+ 5901,
+ 2122,
+ 0,
+ 2124,
+ 0,
+ "MODEL"
+ ],
+ [
+ 5902,
+ 2092,
+ 0,
+ 2124,
+ 1,
+ "VAE"
+ ],
+ [
+ 5903,
+ 1598,
+ 0,
+ 2124,
+ 2,
+ "NOISE"
+ ],
+ [
+ 5904,
+ 1926,
+ 0,
+ 2124,
+ 3,
+ "SAMPLER"
+ ],
+ [
+ 5905,
+ 2073,
+ 0,
+ 2124,
+ 4,
+ "SIGMAS"
+ ],
+ [
+ 5906,
+ 1871,
+ 0,
+ 2124,
+ 5,
+ "GUIDER"
+ ],
+ [
+ 5912,
+ 2125,
+ 0,
+ 2124,
+ 8,
+ "LATENT"
+ ],
+ [
+ 5917,
+ 2117,
+ 0,
+ 2127,
+ 0,
+ "VAE"
+ ],
+ [
+ 5918,
+ 2124,
+ 0,
+ 2127,
+ 1,
+ "LATENT"
+ ],
+ [
+ 5920,
+ 2127,
+ 0,
+ 1973,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 5938,
+ 2129,
+ 0,
+ 2088,
+ 0,
+ "*"
+ ],
+ [
+ 5941,
+ 1896,
+ 0,
+ 2129,
+ 0,
+ "*"
+ ],
+ [
+ 5952,
+ 2131,
+ 0,
+ 2118,
+ 0,
+ "MODEL"
+ ],
+ [
+ 5961,
+ 2125,
+ 0,
+ 2124,
+ 6,
+ "LATENT"
+ ],
+ [
+ 5964,
+ 38,
+ 0,
+ 2136,
+ 0,
+ "CLIP"
+ ],
+ [
+ 5966,
+ 38,
+ 0,
+ 2137,
+ 0,
+ "CLIP"
+ ],
+ [
+ 5967,
+ 2137,
+ 0,
+ 1241,
+ 0,
+ "CONDITIONING"
+ ],
+ [
+ 5968,
+ 2136,
+ 0,
+ 2118,
+ 9,
+ "CONDITIONING"
+ ],
+ [
+ 5969,
+ 1896,
+ 0,
+ 1921,
+ 0,
+ "MODEL"
+ ],
+ [
+ 5970,
+ 1896,
+ 0,
+ 2131,
+ 0,
+ "*"
+ ],
+ [
+ 5971,
+ 1691,
+ 0,
+ 2125,
+ 0,
+ "*"
+ ],
+ [
+ 5973,
+ 2140,
+ 0,
+ 2119,
+ 0,
+ "INT"
+ ],
+ [
+ 5974,
+ 2141,
+ 0,
+ 2119,
+ 1,
+ "INT"
+ ],
+ [
+ 5976,
+ 2140,
+ 0,
+ 2142,
+ 1,
+ "INT"
+ ],
+ [
+ 5977,
+ 2141,
+ 0,
+ 2142,
+ 2,
+ "INT"
+ ],
+ [
+ 5978,
+ 2142,
+ 0,
+ 2143,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 5979,
+ 2094,
+ 0,
+ 2143,
+ 1,
+ "VAE"
+ ],
+ [
+ 5980,
+ 2143,
+ 0,
+ 2118,
+ 10,
+ "LATENT"
+ ],
+ [
+ 5982,
+ 2144,
+ 0,
+ 2142,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 5983,
+ 1960,
+ 0,
+ 2144,
+ 0,
+ "*"
+ ],
+ [
+ 5984,
+ 2144,
+ 0,
+ 2145,
+ 0,
+ "*"
+ ],
+ [
+ 5985,
+ 2145,
+ 0,
+ 2118,
+ 7,
+ "IMAGE"
+ ]
+ ],
+ "groups": [
+ {
+ "id": 34,
+ "title": "Latent Upscaler",
+ "bounding": [
+ 5585.8896484375,
+ 2108.431640625,
+ 720.9568481445312,
+ 582.6881103515625
+ ],
+ "color": "#a1309b",
+ "font_size": 24,
+ "flags": {},
+ "nodes": [
+ 1828,
+ 1691
+ ]
+ },
+ {
+ "id": 42,
+ "title": "Add Details",
+ "bounding": [
+ 6335.14013671875,
+ 2116.384521484375,
+ 2866.58203125,
+ 1085.7049560546875
+ ],
+ "color": "#a1309b",
+ "font_size": 24,
+ "flags": {},
+ "nodes": [
+ 1926,
+ 2038,
+ 2037,
+ 2073,
+ 1598,
+ 1973,
+ 2116,
+ 2117,
+ 2072,
+ 1871,
+ 2124,
+ 2127,
+ 2122,
+ 2125
+ ]
+ },
+ {
+ "id": 46,
+ "title": "Reference Image",
+ "bounding": [
+ 1103.742919921875,
+ 2107.3037109375,
+ 778.158203125,
+ 820.155029296875
+ ],
+ "color": "#8A8",
+ "font_size": 24,
+ "flags": {},
+ "nodes": [
+ 2083,
+ 1960
+ ]
+ },
+ {
+ "id": 48,
+ "title": "LTXV Base Video",
+ "bounding": [
+ 1902.1943359375,
+ 2103.927490234375,
+ 3663.2529296875,
+ 825.6270751953125
+ ],
+ "color": "#3f789e",
+ "font_size": 24,
+ "flags": {},
+ "nodes": [
+ 1335,
+ 1952,
+ 2101,
+ 2129,
+ 2094,
+ 38,
+ 1949,
+ 1953,
+ 2097,
+ 2095,
+ 73,
+ 2131,
+ 1896,
+ 1870,
+ 1336,
+ 1507,
+ 7,
+ 2137,
+ 1241,
+ 1921,
+ 2119,
+ 2142,
+ 2143,
+ 2141,
+ 2102,
+ 1967,
+ 2140,
+ 2118,
+ 2136
+ ]
+ }
+ ],
+ "config": {},
+ "extra": {
+ "ds": {
+ "scale": 0.8954302432552395,
+ "offset": [
+ -2265.7314583089683,
+ -2087.6123877936175
+ ]
+ },
+ "frontendVersion": "1.17.11",
+ "VHS_latentpreview": true,
+ "VHS_latentpreviewrate": 0,
+ "VHS_MetadataImage": true,
+ "VHS_KeepIntermediate": true,
+ "prompt": {
+ "7": {
+ "inputs": {
+ "text": "low quality, worst quality, deformed, distorted, disfigured, motion smear, motion artifacts, fused fingers, bad anatomy, weird hand, ugly",
+ "clip": [
+ "38",
+ 0
+ ]
+ },
+ "class_type": "CLIPTextEncode",
+ "_meta": {
+ "title": "CLIP Text Encode (Negative Prompt)"
+ }
+ },
+ "38": {
+ "inputs": {
+ "clip_name": "t5xxl_fp16.safetensors",
+ "type": "ltxv",
+ "device": "default"
+ },
+ "class_type": "CLIPLoader",
+ "_meta": {
+ "title": "Load CLIP"
+ }
+ },
+ "73": {
+ "inputs": {
+ "sampler_name": "euler_ancestral"
+ },
+ "class_type": "KSamplerSelect",
+ "_meta": {
+ "title": "KSamplerSelect"
+ }
+ },
+ "1241": {
+ "inputs": {
+ "frame_rate": 24.000000000000004,
+ "positive": [
+ "2137",
+ 0
+ ],
+ "negative": [
+ "7",
+ 0
+ ]
+ },
+ "class_type": "LTXVConditioning",
+ "_meta": {
+ "title": "LTXVConditioning"
+ }
+ },
+ "1335": {
+ "inputs": {
+ "samples": [
+ "2118",
+ 0
+ ],
+ "vae": [
+ "1870",
+ 0
+ ]
+ },
+ "class_type": "VAEDecode",
+ "_meta": {
+ "title": "VAE Decode"
+ }
+ },
+ "1336": {
+ "inputs": {
+ "frame_rate": 24,
+ "loop_count": 0,
+ "filename_prefix": "ltxv-base",
+ "format": "video/h264-mp4",
+ "pix_fmt": "yuv420p",
+ "crf": 19,
+ "save_metadata": false,
+ "trim_to_audio": false,
+ "pingpong": false,
+ "save_output": false,
+ "images": [
+ "1335",
+ 0
+ ]
+ },
+ "class_type": "VHS_VideoCombine",
+ "_meta": {
+ "title": "Video Combine π₯π
₯π
π
’"
+ }
+ },
+ "1507": {
+ "inputs": {
+ "noise_seed": 0
+ },
+ "class_type": "RandomNoise",
+ "_meta": {
+ "title": "RandomNoise"
+ }
+ },
+ "1598": {
+ "inputs": {
+ "noise_seed": 1625
+ },
+ "class_type": "RandomNoise",
+ "_meta": {
+ "title": "RandomNoise"
+ }
+ },
+ "1691": {
+ "inputs": {
+ "samples": [
+ "2118",
+ 0
+ ],
+ "upscale_model": [
+ "1828",
+ 0
+ ],
+ "vae": [
+ "1896",
+ 2
+ ]
+ },
+ "class_type": "LTXVLatentUpsampler",
+ "_meta": {
+ "title": "π
π
£π
§ LTXV Latent Upsampler"
+ }
+ },
+ "1828": {
+ "inputs": {
+ "upscale_model": "ltxv-spatial-upscaler-0.9.8.safetensors",
+ "spatial_upsample": true,
+ "temporal_upsample": false
+ },
+ "class_type": "LTXVLatentUpsamplerModelLoader",
+ "_meta": {
+ "title": "π
π
£π
§ LTXV Latent Upsampler Model Loader"
+ }
+ },
+ "1870": {
+ "inputs": {
+ "timestep": 0.05000000000000001,
+ "scale": 0.025000000000000005,
+ "seed": 42,
+ "vae": [
+ "1896",
+ 2
+ ]
+ },
+ "class_type": "Set VAE Decoder Noise",
+ "_meta": {
+ "title": "π
π
£π
§ Set VAE Decoder Noise"
+ }
+ },
+ "1871": {
+ "inputs": {
+ "skip_steps_sigma_threshold": 0.9970000000000002,
+ "cfg_star_rescale": true,
+ "sigmas": "1",
+ "cfg_values": "1",
+ "stg_scale_values": "0",
+ "stg_rescale_values": "1",
+ "stg_layers_indices": "[42]",
+ "model": [
+ "2122",
+ 0
+ ],
+ "positive": [
+ "1241",
+ 0
+ ],
+ "negative": [
+ "1241",
+ 1
+ ],
+ "preset": [
+ "2116",
+ 0
+ ]
+ },
+ "class_type": "STGGuiderAdvanced",
+ "_meta": {
+ "title": "π
π
£π
§ STG Guider Advanced"
+ }
+ },
+ "1896": {
+ "inputs": {
+ "ckpt_name": "ltxv-13b-0.9.8-distilled.safetensors"
+ },
+ "class_type": "CheckpointLoaderSimple",
+ "_meta": {
+ "title": "Load Checkpoint"
+ }
+ },
+ "1921": {
+ "inputs": {
+ "skip_steps_sigma_threshold": 0.9970000000000002,
+ "cfg_star_rescale": true,
+ "sigmas": "1",
+ "cfg_values": "1",
+ "stg_scale_values": "0,0,0,0,0,0",
+ "stg_rescale_values": "1",
+ "stg_layers_indices": "[25]",
+ "model": [
+ "1896",
+ 0
+ ],
+ "positive": [
+ "1241",
+ 0
+ ],
+ "negative": [
+ "1241",
+ 1
+ ],
+ "preset": [
+ "1967",
+ 0
+ ]
+ },
+ "class_type": "STGGuiderAdvanced",
+ "_meta": {
+ "title": "π
π
£π
§ STG Guider Advanced"
+ }
+ },
+ "1926": {
+ "inputs": {
+ "sampler_name": "euler_ancestral"
+ },
+ "class_type": "KSamplerSelect",
+ "_meta": {
+ "title": "KSamplerSelect"
+ }
+ },
+ "1949": {
+ "inputs": {
+ "sigmas": [
+ "1953",
+ 0
+ ]
+ },
+ "class_type": "PrintSigmas",
+ "_meta": {
+ "title": "PrintSigmas"
+ }
+ },
+ "1952": {
+ "inputs": {
+ "string": "1.0000, 0.9937, 0.9875, 0.9812, 0.9750, 0.9094, 0.7250, 0.4219, 0.0\n"
+ },
+ "class_type": "StringToFloatList",
+ "_meta": {
+ "title": "String to Float List"
+ }
+ },
+ "1953": {
+ "inputs": {
+ "float_list": [
+ "1952",
+ 0
+ ]
+ },
+ "class_type": "FloatToSigmas",
+ "_meta": {
+ "title": "Float To Sigmas"
+ }
+ },
+ "1960": {
+ "inputs": {
+ "image": "chimpanzee.webp"
+ },
+ "class_type": "LoadImage",
+ "_meta": {
+ "title": "Load Image"
+ }
+ },
+ "1967": {
+ "inputs": {
+ "preset": "13b Distilled"
+ },
+ "class_type": "STGAdvancedPresets",
+ "_meta": {
+ "title": "π
π
£π
§ STG Advanced Presets"
+ }
+ },
+ "1973": {
+ "inputs": {
+ "frame_rate": 24,
+ "loop_count": 0,
+ "filename_prefix": "ltxv-ic-lora",
+ "format": "video/h264-mp4",
+ "pix_fmt": "yuv420p",
+ "crf": 19,
+ "save_metadata": true,
+ "trim_to_audio": false,
+ "pingpong": false,
+ "save_output": true,
+ "images": [
+ "2127",
+ 0
+ ]
+ },
+ "class_type": "VHS_VideoCombine",
+ "_meta": {
+ "title": "Video Combine π₯π
₯π
π
’"
+ }
+ },
+ "2072": {
+ "inputs": {
+ "string": "0.99, 0.9094, 0.0"
+ },
+ "class_type": "StringToFloatList",
+ "_meta": {
+ "title": "String to Float List"
+ }
+ },
+ "2073": {
+ "inputs": {
+ "float_list": [
+ "2072",
+ 0
+ ]
+ },
+ "class_type": "FloatToSigmas",
+ "_meta": {
+ "title": "Float To Sigmas"
+ }
+ },
+ "2116": {
+ "inputs": {
+ "preset": "13b Distilled"
+ },
+ "class_type": "STGAdvancedPresets",
+ "_meta": {
+ "title": "π
π
£π
§ STG Advanced Presets"
+ }
+ },
+ "2117": {
+ "inputs": {
+ "timestep": 0.05,
+ "scale": 0.025,
+ "seed": 42,
+ "vae": [
+ "1896",
+ 2
+ ]
+ },
+ "class_type": "Set VAE Decoder Noise",
+ "_meta": {
+ "title": "π
π
£π
§ Set VAE Decoder Noise"
+ }
+ },
+ "2118": {
+ "inputs": {
+ "guiding_strength": 1,
+ "temporal_tile_size": 120,
+ "temporal_overlap": 32,
+ "temporal_overlap_cond_strength": 0.5,
+ "horizontal_tiles": 1,
+ "vertical_tiles": 1,
+ "spatial_overlap": 1,
+ "adain_factor": 0.25000000000000006,
+ "optional_negative_index": -1,
+ "optional_negative_index_strength": 1,
+ "per_tile_seed_offsets": "0",
+ "per_tile_use_negative_latents": "1",
+ "model": [
+ "1896",
+ 0
+ ],
+ "vae": [
+ "1896",
+ 2
+ ],
+ "noise": [
+ "1507",
+ 0
+ ],
+ "sampler": [
+ "73",
+ 0
+ ],
+ "sigmas": [
+ "1949",
+ 0
+ ],
+ "guider": [
+ "1921",
+ 0
+ ],
+ "latents": [
+ "2119",
+ 0
+ ],
+ "optional_cond_image": [
+ "1960",
+ 0
+ ],
+ "optional_positive_conditionings": [
+ "2136",
+ 0
+ ],
+ "optional_negative_index_latents": [
+ "2143",
+ 0
+ ]
+ },
+ "class_type": "LTXVLoopingSampler",
+ "_meta": {
+ "title": "π
π
£π
§ LTXV Looping Sampler"
+ }
+ },
+ "2119": {
+ "inputs": {
+ "width": [
+ "2140",
+ 0
+ ],
+ "height": [
+ "2141",
+ 0
+ ],
+ "length": 361,
+ "batch_size": 1
+ },
+ "class_type": "EmptyLTXVLatentVideo",
+ "_meta": {
+ "title": "EmptyLTXVLatentVideo"
+ }
+ },
+ "2122": {
+ "inputs": {
+ "lora_name": "ltx-video-ICLoRA-detailer-13B-0.9.8",
+ "strength_model": 1,
+ "model": [
+ "1896",
+ 0
+ ]
+ },
+ "class_type": "LoraLoaderModelOnly",
+ "_meta": {
+ "title": "LoraLoaderModelOnly"
+ }
+ },
+ "2124": {
+ "inputs": {
+ "guiding_strength": 1,
+ "temporal_tile_size": 80,
+ "temporal_overlap": 24,
+ "temporal_overlap_cond_strength": 0.5,
+ "horizontal_tiles": 1,
+ "vertical_tiles": 1,
+ "spatial_overlap": 1,
+ "adain_factor": 0,
+ "optional_negative_index": -1,
+ "optional_negative_index_strength": 1,
+ "per_tile_seed_offsets": "0",
+ "per_tile_use_negative_latents": "1",
+ "model": [
+ "2122",
+ 0
+ ],
+ "vae": [
+ "1896",
+ 2
+ ],
+ "noise": [
+ "1598",
+ 0
+ ],
+ "sampler": [
+ "1926",
+ 0
+ ],
+ "sigmas": [
+ "2073",
+ 0
+ ],
+ "guider": [
+ "1871",
+ 0
+ ],
+ "latents": [
+ "1691",
+ 0
+ ],
+ "optional_guiding_latents": [
+ "1691",
+ 0
+ ]
+ },
+ "class_type": "LTXVLoopingSampler",
+ "_meta": {
+ "title": "π
π
£π
§ LTXV Looping Sampler"
+ }
+ },
+ "2127": {
+ "inputs": {
+ "horizontal_tiles": 2,
+ "vertical_tiles": 2,
+ "overlap": 5,
+ "last_frame_fix": false,
+ "vae": [
+ "2117",
+ 0
+ ],
+ "latents": [
+ "2124",
+ 0
+ ]
+ },
+ "class_type": "LTXVTiledVAEDecode",
+ "_meta": {
+ "title": "π
π
£π
§ LTXV Tiled VAE Decode"
+ }
+ },
+ "2136": {
+ "inputs": {
+ "prompts": "a chimpanzee walks in the jungle |\na chimpanzee stops and eats a snack |\na chimpanzee lays on the ground",
+ "clip": [
+ "38",
+ 0
+ ]
+ },
+ "class_type": "MultiPromptProvider",
+ "_meta": {
+ "title": "π
π
£π
§ Multi Prompt Provider"
+ }
+ },
+ "2137": {
+ "inputs": {
+ "text": "",
+ "clip": [
+ "38",
+ 0
+ ]
+ },
+ "class_type": "CLIPTextEncode",
+ "_meta": {
+ "title": "CLIP Text Encode (Prompt)"
+ }
+ },
+ "2140": {
+ "inputs": {
+ "value": 768
+ },
+ "class_type": "PrimitiveInt",
+ "_meta": {
+ "title": "Width"
+ }
+ },
+ "2141": {
+ "inputs": {
+ "value": 512
+ },
+ "class_type": "PrimitiveInt",
+ "_meta": {
+ "title": "Height"
+ }
+ },
+ "2142": {
+ "inputs": {
+ "width": 512,
+ "height": 512,
+ "upscale_method": "bilinear",
+ "keep_proportion": false,
+ "divisible_by": 32,
+ "crop": "center",
+ "image": [
+ "1960",
+ 0
+ ],
+ "width_input": [
+ "2140",
+ 0
+ ],
+ "height_input": [
+ "2141",
+ 0
+ ]
+ },
+ "class_type": "ImageResizeKJ",
+ "_meta": {
+ "title": "Resize Image"
+ }
+ },
+ "2143": {
+ "inputs": {
+ "pixels": [
+ "2142",
+ 0
+ ],
+ "vae": [
+ "1896",
+ 2
+ ]
+ },
+ "class_type": "VAEEncode",
+ "_meta": {
+ "title": "VAE Encode"
+ }
+ }
+ },
+ "comfy_fork_version": "develop@ba9dad4",
+ "workspace_info": {
+ "id": "elBQFQknIoLYTEwIloQuw"
+ },
+ "node_versions": {
+ "comfy-core": "0.3.20"
+ }
+ },
+ "version": 0.4
+}
diff --git a/example_workflows/ltxv-13b-i2v-mixed-multiscale.json b/example_workflows/ltxv-13b-i2v-mixed-multiscale.json
index 36d9c74..d2a583b 100644
--- a/example_workflows/ltxv-13b-i2v-mixed-multiscale.json
+++ b/example_workflows/ltxv-13b-i2v-mixed-multiscale.json
@@ -116,7 +116,7 @@
"Node name for S&R": "LTXVLatentUpsamplerModelLoader"
},
"widgets_values": [
- "ltxv-spatial-upscaler-0.9.7.safetensors",
+ "ltxv-spatial-upscaler-0.9.8.safetensors",
true,
false
]
@@ -3049,7 +3049,7 @@
},
"1828": {
"inputs": {
- "upscale_model": "ltxv-spatial-upscaler-0.9.7.safetensors",
+ "upscale_model": "ltxv-spatial-upscaler-0.9.8.safetensors",
"spatial_upsample": true,
"temporal_upsample": false
},
diff --git a/example_workflows/ltxv-13b-upscale.json b/example_workflows/ltxv-13b-upscale.json
new file mode 100644
index 0000000..2ab6787
--- /dev/null
+++ b/example_workflows/ltxv-13b-upscale.json
@@ -0,0 +1,2604 @@
+{
+ "id": "394ed254-7306-42a2-9ae6-aa880ce4456d",
+ "revision": 0,
+ "last_node_id": 2008,
+ "last_link_id": 5770,
+ "nodes": [
+ {
+ "id": 7,
+ "type": "CLIPTextEncode",
+ "pos": [
+ 722.5008544921875,
+ 2398.3359375
+ ],
+ "size": [
+ 317.832275390625,
+ 213.2843780517578
+ ],
+ "flags": {},
+ "order": 9,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "clip",
+ "name": "clip",
+ "type": "CLIP",
+ "link": 75
+ },
+ {
+ "localized_name": "text",
+ "name": "text",
+ "type": "STRING",
+ "widget": {
+ "name": "text"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "CONDITIONING",
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "slot_index": 0,
+ "links": [
+ 3365
+ ]
+ }
+ ],
+ "title": "CLIP Text Encode (Negative Prompt)",
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.28",
+ "Node name for S&R": "CLIPTextEncode"
+ },
+ "widgets_values": [
+ "low quality, worst quality, deformed, distorted, disfigured, motion smear, motion artifacts, fused fingers, bad anatomy, weird hand, ugly"
+ ],
+ "color": "#322",
+ "bgcolor": "#533"
+ },
+ {
+ "id": 1894,
+ "type": "LTXVLoopingSampler",
+ "pos": [
+ 2618.935791015625,
+ 2138.807861328125
+ ],
+ "size": [
+ 305.21484375,
+ 474
+ ],
+ "flags": {},
+ "order": 19,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "model",
+ "name": "model",
+ "type": "MODEL",
+ "link": 5447
+ },
+ {
+ "localized_name": "vae",
+ "name": "vae",
+ "type": "VAE",
+ "link": 5456
+ },
+ {
+ "localized_name": "noise",
+ "name": "noise",
+ "type": "NOISE",
+ "link": 5453
+ },
+ {
+ "localized_name": "sampler",
+ "name": "sampler",
+ "type": "SAMPLER",
+ "link": 5751
+ },
+ {
+ "localized_name": "sigmas",
+ "name": "sigmas",
+ "type": "SIGMAS",
+ "link": 5449
+ },
+ {
+ "localized_name": "guider",
+ "name": "guider",
+ "type": "GUIDER",
+ "link": 5452
+ },
+ {
+ "localized_name": "latents",
+ "name": "latents",
+ "type": "LATENT",
+ "link": 5744
+ },
+ {
+ "localized_name": "optional_cond_image",
+ "name": "optional_cond_image",
+ "shape": 7,
+ "type": "IMAGE",
+ "link": null
+ },
+ {
+ "localized_name": "optional_guiding_latents",
+ "name": "optional_guiding_latents",
+ "shape": 7,
+ "type": "LATENT",
+ "link": 5745
+ },
+ {
+ "localized_name": "optional_positive_conditionings",
+ "name": "optional_positive_conditionings",
+ "shape": 7,
+ "type": "CONDITIONING",
+ "link": null
+ },
+ {
+ "localized_name": "optional_negative_index_latents",
+ "name": "optional_negative_index_latents",
+ "shape": 7,
+ "type": "LATENT",
+ "link": null
+ },
+ {
+ "localized_name": "guiding_strength",
+ "name": "guiding_strength",
+ "type": "FLOAT",
+ "widget": {
+ "name": "guiding_strength"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "temporal_tile_size",
+ "name": "temporal_tile_size",
+ "type": "INT",
+ "widget": {
+ "name": "temporal_tile_size"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "temporal_overlap",
+ "name": "temporal_overlap",
+ "type": "INT",
+ "widget": {
+ "name": "temporal_overlap"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "temporal_overlap_cond_strength",
+ "name": "temporal_overlap_cond_strength",
+ "type": "FLOAT",
+ "widget": {
+ "name": "temporal_overlap_cond_strength"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "horizontal_tiles",
+ "name": "horizontal_tiles",
+ "type": "INT",
+ "widget": {
+ "name": "horizontal_tiles"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "vertical_tiles",
+ "name": "vertical_tiles",
+ "type": "INT",
+ "widget": {
+ "name": "vertical_tiles"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "spatial_overlap",
+ "name": "spatial_overlap",
+ "type": "INT",
+ "widget": {
+ "name": "spatial_overlap"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "adain_factor",
+ "name": "adain_factor",
+ "shape": 7,
+ "type": "FLOAT",
+ "widget": {
+ "name": "adain_factor"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "optional_negative_index",
+ "name": "optional_negative_index",
+ "shape": 7,
+ "type": "INT",
+ "widget": {
+ "name": "optional_negative_index"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "optional_negative_index_strength",
+ "name": "optional_negative_index_strength",
+ "shape": 7,
+ "type": "FLOAT",
+ "widget": {
+ "name": "optional_negative_index_strength"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "denoised_output",
+ "name": "denoised_output",
+ "type": "LATENT",
+ "links": [
+ 5762
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "LTXVLoopingSampler"
+ },
+ "widgets_values": [
+ 1,
+ 64,
+ 16,
+ 0.25000000000000006,
+ 2,
+ 2,
+ 3,
+ 0.25000000000000006,
+ -1,
+ 1
+ ]
+ },
+ {
+ "id": 1998,
+ "type": "LTXVLatentUpsamplerModelLoader",
+ "pos": [
+ 1485.9312744140625,
+ 2118.88525390625
+ ],
+ "size": [
+ 344.3999938964844,
+ 106
+ ],
+ "flags": {},
+ "order": 0,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "upscale_model",
+ "name": "upscale_model",
+ "type": "COMBO",
+ "widget": {
+ "name": "upscale_model"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "spatial_upsample",
+ "name": "spatial_upsample",
+ "type": "BOOLEAN",
+ "widget": {
+ "name": "spatial_upsample"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "temporal_upsample",
+ "name": "temporal_upsample",
+ "type": "BOOLEAN",
+ "widget": {
+ "name": "temporal_upsample"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "UPSCALE_MODEL",
+ "name": "UPSCALE_MODEL",
+ "type": "UPSCALE_MODEL",
+ "links": [
+ 5753
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "LTXVLatentUpsamplerModelLoader"
+ },
+ "widgets_values": [
+ "ltxv-spatial-upscaler-0.9.8.safetensors",
+ true,
+ false
+ ]
+ },
+ {
+ "id": 1999,
+ "type": "LTXVLatentUpsampler",
+ "pos": [
+ 1555.3997802734375,
+ 2777.468017578125
+ ],
+ "size": [
+ 235.1999969482422,
+ 66
+ ],
+ "flags": {},
+ "order": 16,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "samples",
+ "name": "samples",
+ "type": "LATENT",
+ "link": 5754
+ },
+ {
+ "localized_name": "upscale_model",
+ "name": "upscale_model",
+ "type": "UPSCALE_MODEL",
+ "link": 5753
+ },
+ {
+ "localized_name": "vae",
+ "name": "vae",
+ "type": "VAE",
+ "link": 5755
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "LATENT",
+ "name": "LATENT",
+ "type": "LATENT",
+ "links": [
+ 5756
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "LTXVLatentUpsampler"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 1996,
+ "type": "VAEEncode",
+ "pos": [
+ 1146.9952392578125,
+ 2610.52783203125
+ ],
+ "size": [
+ 140,
+ 46
+ ],
+ "flags": {},
+ "order": 13,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "pixels",
+ "name": "pixels",
+ "type": "IMAGE",
+ "link": 5749
+ },
+ {
+ "localized_name": "vae",
+ "name": "vae",
+ "type": "VAE",
+ "link": 5748
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "LATENT",
+ "name": "LATENT",
+ "type": "LATENT",
+ "links": [
+ 5754
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.44",
+ "Node name for S&R": "VAEEncode"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 6,
+ "type": "CLIPTextEncode",
+ "pos": [
+ 717.5663452148438,
+ 2114.04638671875
+ ],
+ "size": [
+ 307.2346496582031,
+ 204.2556610107422
+ ],
+ "flags": {},
+ "order": 8,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "clip",
+ "name": "clip",
+ "type": "CLIP",
+ "link": 74
+ },
+ {
+ "localized_name": "text",
+ "name": "text",
+ "type": "STRING",
+ "widget": {
+ "name": "text"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "CONDITIONING",
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "slot_index": 0,
+ "links": [
+ 3364
+ ]
+ }
+ ],
+ "title": "CLIP Text Encode (Positive Prompt)",
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.28",
+ "Node name for S&R": "CLIPTextEncode"
+ },
+ "widgets_values": [
+ ""
+ ],
+ "color": "#232",
+ "bgcolor": "#353"
+ },
+ {
+ "id": 1241,
+ "type": "LTXVConditioning",
+ "pos": [
+ 1082.930419921875,
+ 2271.91064453125
+ ],
+ "size": [
+ 328.21636962890625,
+ 78
+ ],
+ "flags": {},
+ "order": 14,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "positive",
+ "name": "positive",
+ "type": "CONDITIONING",
+ "link": 3364
+ },
+ {
+ "localized_name": "negative",
+ "name": "negative",
+ "type": "CONDITIONING",
+ "link": 3365
+ },
+ {
+ "localized_name": "frame_rate",
+ "name": "frame_rate",
+ "type": "FLOAT",
+ "widget": {
+ "name": "frame_rate"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "positive",
+ "name": "positive",
+ "type": "CONDITIONING",
+ "slot_index": 0,
+ "links": [
+ 5274
+ ]
+ },
+ {
+ "localized_name": "negative",
+ "name": "negative",
+ "type": "CONDITIONING",
+ "slot_index": 1,
+ "links": [
+ 5275
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.28",
+ "Node name for S&R": "LTXVConditioning"
+ },
+ "widgets_values": [
+ 24.000000000000004
+ ]
+ },
+ {
+ "id": 38,
+ "type": "CLIPLoader",
+ "pos": [
+ 365.0711975097656,
+ 2209.521484375
+ ],
+ "size": [
+ 315,
+ 106
+ ],
+ "flags": {},
+ "order": 1,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "clip_name",
+ "name": "clip_name",
+ "type": "COMBO",
+ "widget": {
+ "name": "clip_name"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "type",
+ "name": "type",
+ "type": "COMBO",
+ "widget": {
+ "name": "type"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "device",
+ "name": "device",
+ "shape": 7,
+ "type": "COMBO",
+ "widget": {
+ "name": "device"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "CLIP",
+ "name": "CLIP",
+ "type": "CLIP",
+ "slot_index": 0,
+ "links": [
+ 74,
+ 75
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.28",
+ "Node name for S&R": "CLIPLoader"
+ },
+ "widgets_values": [
+ "t5xxl_fp8.safetensors",
+ "ltxv",
+ "default"
+ ]
+ },
+ {
+ "id": 1990,
+ "type": "LTXVTiledVAEDecode",
+ "pos": [
+ 3016.148193359375,
+ 2142.771728515625
+ ],
+ "size": [
+ 290.6636657714844,
+ 150
+ ],
+ "flags": {},
+ "order": 20,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "vae",
+ "name": "vae",
+ "type": "VAE",
+ "link": 5769
+ },
+ {
+ "localized_name": "latents",
+ "name": "latents",
+ "type": "LATENT",
+ "link": 5762
+ },
+ {
+ "localized_name": "horizontal_tiles",
+ "name": "horizontal_tiles",
+ "type": "INT",
+ "widget": {
+ "name": "horizontal_tiles"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "vertical_tiles",
+ "name": "vertical_tiles",
+ "type": "INT",
+ "widget": {
+ "name": "vertical_tiles"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "overlap",
+ "name": "overlap",
+ "type": "INT",
+ "widget": {
+ "name": "overlap"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "last_frame_fix",
+ "name": "last_frame_fix",
+ "type": "BOOLEAN",
+ "widget": {
+ "name": "last_frame_fix"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "image",
+ "name": "image",
+ "type": "IMAGE",
+ "links": [
+ 5711
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "LTXVTiledVAEDecode"
+ },
+ "widgets_values": [
+ 2,
+ 2,
+ 5,
+ false
+ ]
+ },
+ {
+ "id": 1599,
+ "type": "VHS_VideoCombine",
+ "pos": [
+ 3926.94921875,
+ 2162.355224609375
+ ],
+ "size": [
+ 610.8043212890625,
+ 741.8695678710938
+ ],
+ "flags": {},
+ "order": 23,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "images",
+ "name": "images",
+ "type": "IMAGE",
+ "link": 5739
+ },
+ {
+ "localized_name": "audio",
+ "name": "audio",
+ "shape": 7,
+ "type": "AUDIO",
+ "link": null
+ },
+ {
+ "localized_name": "meta_batch",
+ "name": "meta_batch",
+ "shape": 7,
+ "type": "VHS_BatchManager",
+ "link": null
+ },
+ {
+ "localized_name": "vae",
+ "name": "vae",
+ "shape": 7,
+ "type": "VAE",
+ "link": null
+ },
+ {
+ "localized_name": "frame_rate",
+ "name": "frame_rate",
+ "type": "FLOAT",
+ "widget": {
+ "name": "frame_rate"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "loop_count",
+ "name": "loop_count",
+ "type": "INT",
+ "widget": {
+ "name": "loop_count"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "filename_prefix",
+ "name": "filename_prefix",
+ "type": "STRING",
+ "widget": {
+ "name": "filename_prefix"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "format",
+ "name": "format",
+ "type": "COMBO",
+ "widget": {
+ "name": "format"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "pingpong",
+ "name": "pingpong",
+ "type": "BOOLEAN",
+ "widget": {
+ "name": "pingpong"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "save_output",
+ "name": "save_output",
+ "type": "BOOLEAN",
+ "widget": {
+ "name": "save_output"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "Filenames",
+ "name": "Filenames",
+ "type": "VHS_FILENAMES",
+ "links": null
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VHS_VideoCombine",
+ "cnr_id": "comfyui-videohelpersuite",
+ "ver": "2c25b8b53835aaeb63f831b3137c705cf9f85dce"
+ },
+ "widgets_values": {
+ "frame_rate": 24,
+ "loop_count": 0,
+ "filename_prefix": "ltxv-hd",
+ "format": "video/h264-mp4",
+ "pix_fmt": "yuv420p",
+ "crf": 18,
+ "save_metadata": false,
+ "trim_to_audio": false,
+ "pingpong": false,
+ "save_output": false,
+ "videopreview": {
+ "hidden": false,
+ "paused": false,
+ "params": {
+ "filename": "ltxv-hd_00001.mp4",
+ "subfolder": "",
+ "type": "temp",
+ "format": "video/h264-mp4",
+ "frame_rate": 24,
+ "workflow": "ltxv-hd_00001.png",
+ "fullpath": "/home/michael/src/comfyui_worker_serving/src/comfyui/temp/ltxv-hd_00001.mp4"
+ },
+ "muted": true
+ }
+ }
+ },
+ {
+ "id": 2003,
+ "type": "Reroute",
+ "pos": [
+ 3891.437255859375,
+ 2089.540283203125
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 24,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5763
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "IMAGE",
+ "links": [
+ 5765
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 2004,
+ "type": "Reroute",
+ "pos": [
+ 4466.16455078125,
+ 2084.887939453125
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 25,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5765
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "IMAGE",
+ "links": [
+ 5766
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 1992,
+ "type": "Reroute",
+ "pos": [
+ 2468.88232421875,
+ 2783.16748046875
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 18,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5756
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "LATENT",
+ "links": [
+ 5744,
+ 5745
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 1598,
+ "type": "RandomNoise",
+ "pos": [
+ 1930.61865234375,
+ 2137.015625
+ ],
+ "size": [
+ 210,
+ 82
+ ],
+ "flags": {},
+ "order": 2,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "noise_seed",
+ "name": "noise_seed",
+ "type": "INT",
+ "widget": {
+ "name": "noise_seed"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "NOISE",
+ "name": "NOISE",
+ "type": "NOISE",
+ "links": [
+ 5453
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.30",
+ "Node name for S&R": "RandomNoise"
+ },
+ "widgets_values": [
+ 1256,
+ "fixed"
+ ]
+ },
+ {
+ "id": 1813,
+ "type": "STGGuiderAdvanced",
+ "pos": [
+ 1941.501953125,
+ 2278.861083984375
+ ],
+ "size": [
+ 278.79998779296875,
+ 262
+ ],
+ "flags": {},
+ "order": 17,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "model",
+ "name": "model",
+ "type": "MODEL",
+ "link": 5448
+ },
+ {
+ "localized_name": "positive",
+ "name": "positive",
+ "type": "CONDITIONING",
+ "link": 5274
+ },
+ {
+ "localized_name": "negative",
+ "name": "negative",
+ "type": "CONDITIONING",
+ "link": 5275
+ },
+ {
+ "localized_name": "preset",
+ "name": "preset",
+ "shape": 7,
+ "type": "STG_ADVANCED_PRESET",
+ "link": null
+ },
+ {
+ "localized_name": "skip_steps_sigma_threshold",
+ "name": "skip_steps_sigma_threshold",
+ "type": "FLOAT",
+ "widget": {
+ "name": "skip_steps_sigma_threshold"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "cfg_star_rescale",
+ "name": "cfg_star_rescale",
+ "type": "BOOLEAN",
+ "widget": {
+ "name": "cfg_star_rescale"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "sigmas",
+ "name": "sigmas",
+ "type": "STRING",
+ "widget": {
+ "name": "sigmas"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "cfg_values",
+ "name": "cfg_values",
+ "type": "STRING",
+ "widget": {
+ "name": "cfg_values"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "stg_scale_values",
+ "name": "stg_scale_values",
+ "type": "STRING",
+ "widget": {
+ "name": "stg_scale_values"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "stg_rescale_values",
+ "name": "stg_rescale_values",
+ "type": "STRING",
+ "widget": {
+ "name": "stg_rescale_values"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "stg_layers_indices",
+ "name": "stg_layers_indices",
+ "type": "STRING",
+ "widget": {
+ "name": "stg_layers_indices"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "GUIDER",
+ "name": "GUIDER",
+ "type": "GUIDER",
+ "links": [
+ 5452
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "STGGuiderAdvanced"
+ },
+ "widgets_values": [
+ 0.9970000000000002,
+ true,
+ "1",
+ "1",
+ "0",
+ "1",
+ "[42]"
+ ]
+ },
+ {
+ "id": 1989,
+ "type": "StringToFloatList",
+ "pos": [
+ 1954.6505126953125,
+ 2621.100830078125
+ ],
+ "size": [
+ 210,
+ 88
+ ],
+ "flags": {},
+ "order": 3,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "string",
+ "name": "string",
+ "type": "STRING",
+ "widget": {
+ "name": "string"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "FLOAT",
+ "name": "FLOAT",
+ "type": "FLOAT",
+ "links": [
+ 5740
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfyui-kjnodes",
+ "ver": "0addfc6101f7a834c7fb6e0a1b26529360ab5350",
+ "Node name for S&R": "StringToFloatList"
+ },
+ "widgets_values": [
+ "0.99, 0.9094, 0.0"
+ ],
+ "color": "#223",
+ "bgcolor": "#335"
+ },
+ {
+ "id": 1889,
+ "type": "FloatToSigmas",
+ "pos": [
+ 2219.18115234375,
+ 2627.6787109375
+ ],
+ "size": [
+ 216.59999084472656,
+ 26
+ ],
+ "flags": {},
+ "order": 10,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "float_list",
+ "name": "float_list",
+ "type": "FLOAT",
+ "link": 5740
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "SIGMAS",
+ "name": "SIGMAS",
+ "type": "SIGMAS",
+ "links": [
+ 5449
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfyui-kjnodes",
+ "ver": "1.0.8",
+ "Node name for S&R": "FloatToSigmas"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 1997,
+ "type": "KSamplerSelect",
+ "pos": [
+ 2223.688232421875,
+ 2715.1572265625
+ ],
+ "size": [
+ 270,
+ 58
+ ],
+ "flags": {},
+ "order": 4,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "sampler_name",
+ "name": "sampler_name",
+ "type": "COMBO",
+ "widget": {
+ "name": "sampler_name"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "SAMPLER",
+ "name": "SAMPLER",
+ "type": "SAMPLER",
+ "links": [
+ 5751
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.44",
+ "Node name for S&R": "KSamplerSelect"
+ },
+ "widgets_values": [
+ "euler_ancestral"
+ ]
+ },
+ {
+ "id": 44,
+ "type": "CheckpointLoaderSimple",
+ "pos": [
+ 700.7203369140625,
+ 2717.640625
+ ],
+ "size": [
+ 339.6689147949219,
+ 126.58426666259766
+ ],
+ "flags": {},
+ "order": 5,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "ckpt_name",
+ "name": "ckpt_name",
+ "type": "COMBO",
+ "widget": {
+ "name": "ckpt_name"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "MODEL",
+ "name": "MODEL",
+ "type": "MODEL",
+ "slot_index": 0,
+ "links": [
+ 5445
+ ]
+ },
+ {
+ "localized_name": "CLIP",
+ "name": "CLIP",
+ "type": "CLIP",
+ "links": []
+ },
+ {
+ "localized_name": "VAE",
+ "name": "VAE",
+ "type": "VAE",
+ "slot_index": 2,
+ "links": [
+ 5456,
+ 5748,
+ 5755,
+ 5767
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.28",
+ "Node name for S&R": "CheckpointLoaderSimple"
+ },
+ "widgets_values": [
+ "ltxv-13b-0.9.8-distilled.safetensors"
+ ]
+ },
+ {
+ "id": 2006,
+ "type": "Reroute",
+ "pos": [
+ 1307.743408203125,
+ 2852.38916015625
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 12,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5767
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "VAE",
+ "links": [
+ 5768
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 2007,
+ "type": "Reroute",
+ "pos": [
+ 2954.07861328125,
+ 2859.37255859375
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 15,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5768
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "VAE",
+ "links": [
+ 5769
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 1902,
+ "type": "VHS_VideoCombine",
+ "pos": [
+ 4568.09326171875,
+ 2160.841796875
+ ],
+ "size": [
+ 1224.197998046875,
+ 749.3993530273438
+ ],
+ "flags": {},
+ "order": 26,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "images",
+ "name": "images",
+ "type": "IMAGE",
+ "link": 5766
+ },
+ {
+ "localized_name": "audio",
+ "name": "audio",
+ "shape": 7,
+ "type": "AUDIO",
+ "link": null
+ },
+ {
+ "localized_name": "meta_batch",
+ "name": "meta_batch",
+ "shape": 7,
+ "type": "VHS_BatchManager",
+ "link": null
+ },
+ {
+ "localized_name": "vae",
+ "name": "vae",
+ "shape": 7,
+ "type": "VAE",
+ "link": null
+ },
+ {
+ "localized_name": "frame_rate",
+ "name": "frame_rate",
+ "type": "FLOAT",
+ "widget": {
+ "name": "frame_rate"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "loop_count",
+ "name": "loop_count",
+ "type": "INT",
+ "widget": {
+ "name": "loop_count"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "filename_prefix",
+ "name": "filename_prefix",
+ "type": "STRING",
+ "widget": {
+ "name": "filename_prefix"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "format",
+ "name": "format",
+ "type": "COMBO",
+ "widget": {
+ "name": "format"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "pingpong",
+ "name": "pingpong",
+ "type": "BOOLEAN",
+ "widget": {
+ "name": "pingpong"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "save_output",
+ "name": "save_output",
+ "type": "BOOLEAN",
+ "widget": {
+ "name": "save_output"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "Filenames",
+ "name": "Filenames",
+ "type": "VHS_FILENAMES",
+ "links": null
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VHS_VideoCombine",
+ "cnr_id": "comfyui-videohelpersuite",
+ "ver": "2c25b8b53835aaeb63f831b3137c705cf9f85dce"
+ },
+ "widgets_values": {
+ "frame_rate": 24,
+ "loop_count": 0,
+ "filename_prefix": "ltxv-hd-sd",
+ "format": "video/h264-mp4",
+ "pix_fmt": "yuv420p",
+ "crf": 18,
+ "save_metadata": false,
+ "trim_to_audio": false,
+ "pingpong": false,
+ "save_output": false,
+ "videopreview": {
+ "hidden": false,
+ "paused": false,
+ "params": {
+ "filename": "ltxv-hd-sd_00002.mp4",
+ "subfolder": "",
+ "type": "temp",
+ "format": "video/h264-mp4",
+ "frame_rate": 24,
+ "workflow": "ltxv-hd-sd_00002.png",
+ "fullpath": "/home/michael/src/comfyui_worker_serving/src/comfyui/temp/ltxv-hd-sd_00002.mp4"
+ },
+ "muted": true
+ }
+ }
+ },
+ {
+ "id": 1699,
+ "type": "LTXVFilmGrain",
+ "pos": [
+ 3346.66015625,
+ 2149.525634765625
+ ],
+ "size": [
+ 210,
+ 82
+ ],
+ "flags": {},
+ "order": 21,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "images",
+ "name": "images",
+ "type": "IMAGE",
+ "link": 5711
+ },
+ {
+ "localized_name": "grain_intensity",
+ "name": "grain_intensity",
+ "type": "FLOAT",
+ "widget": {
+ "name": "grain_intensity"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "saturation",
+ "name": "saturation",
+ "type": "FLOAT",
+ "widget": {
+ "name": "saturation"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "IMAGE",
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 5667,
+ 5739
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "LTXVFilmGrain"
+ },
+ "widgets_values": [
+ 0.010000000000000002,
+ 0.5
+ ]
+ },
+ {
+ "id": 1895,
+ "type": "LoraLoaderModelOnly",
+ "pos": [
+ 1089.3231201171875,
+ 2413.4921875
+ ],
+ "size": [
+ 313.3110046386719,
+ 82
+ ],
+ "flags": {},
+ "order": 11,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "model",
+ "name": "model",
+ "type": "MODEL",
+ "link": 5445
+ },
+ {
+ "localized_name": "lora_name",
+ "name": "lora_name",
+ "type": "COMBO",
+ "widget": {
+ "name": "lora_name"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "strength_model",
+ "name": "strength_model",
+ "type": "FLOAT",
+ "widget": {
+ "name": "strength_model"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "MODEL",
+ "name": "MODEL",
+ "type": "MODEL",
+ "links": [
+ 5447,
+ 5448
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.43",
+ "Node name for S&R": "LoraLoaderModelOnly"
+ },
+ "widgets_values": [
+ "ltx-video-ICLoRA-detailer-13B-0.9.8",
+ 1.5000000000000002
+ ]
+ },
+ {
+ "id": 1995,
+ "type": "VHS_LoadVideo",
+ "pos": [
+ 383.91558837890625,
+ 2422.13671875
+ ],
+ "size": [
+ 252.056640625,
+ 479.037841796875
+ ],
+ "flags": {},
+ "order": 6,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "meta_batch",
+ "name": "meta_batch",
+ "shape": 7,
+ "type": "VHS_BatchManager",
+ "link": null
+ },
+ {
+ "localized_name": "vae",
+ "name": "vae",
+ "shape": 7,
+ "type": "VAE",
+ "link": null
+ },
+ {
+ "localized_name": "video",
+ "name": "video",
+ "type": "COMBO",
+ "widget": {
+ "name": "video"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "force_rate",
+ "name": "force_rate",
+ "type": "FLOAT",
+ "widget": {
+ "name": "force_rate"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "custom_width",
+ "name": "custom_width",
+ "type": "INT",
+ "widget": {
+ "name": "custom_width"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "custom_height",
+ "name": "custom_height",
+ "type": "INT",
+ "widget": {
+ "name": "custom_height"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "frame_load_cap",
+ "name": "frame_load_cap",
+ "type": "INT",
+ "widget": {
+ "name": "frame_load_cap"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "skip_first_frames",
+ "name": "skip_first_frames",
+ "type": "INT",
+ "widget": {
+ "name": "skip_first_frames"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "select_every_nth",
+ "name": "select_every_nth",
+ "type": "INT",
+ "widget": {
+ "name": "select_every_nth"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "format",
+ "name": "format",
+ "shape": 7,
+ "type": "COMBO",
+ "widget": {
+ "name": "format"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "IMAGE",
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 5749,
+ 5770
+ ]
+ },
+ {
+ "localized_name": "frame_count",
+ "name": "frame_count",
+ "type": "INT",
+ "links": null
+ },
+ {
+ "localized_name": "audio",
+ "name": "audio",
+ "type": "AUDIO",
+ "links": null
+ },
+ {
+ "localized_name": "video_info",
+ "name": "video_info",
+ "type": "VHS_VIDEOINFO",
+ "links": null
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VHS_LoadVideo"
+ },
+ "widgets_values": {
+ "video": "AnimateDiff_00151.mp4",
+ "force_rate": 0,
+ "custom_width": 0,
+ "custom_height": 0,
+ "frame_load_cap": 0,
+ "skip_first_frames": 0,
+ "select_every_nth": 1,
+ "format": "LTXV",
+ "choose video to upload": "image",
+ "videopreview": {
+ "hidden": false,
+ "paused": false,
+ "params": {
+ "filename": "AnimateDiff_00151.mp4",
+ "type": "input",
+ "format": "video/mp4",
+ "force_rate": 0,
+ "custom_width": 0,
+ "custom_height": 0,
+ "frame_load_cap": 0,
+ "skip_first_frames": 0,
+ "select_every_nth": 1
+ }
+ }
+ }
+ },
+ {
+ "id": 1901,
+ "type": "ImageConcanate",
+ "pos": [
+ 3582.269287109375,
+ 2386.01611328125
+ ],
+ "size": [
+ 270,
+ 102
+ ],
+ "flags": {},
+ "order": 22,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "image1",
+ "name": "image1",
+ "type": "IMAGE",
+ "link": 5667
+ },
+ {
+ "localized_name": "image2",
+ "name": "image2",
+ "type": "IMAGE",
+ "link": 5770
+ },
+ {
+ "localized_name": "direction",
+ "name": "direction",
+ "type": "COMBO",
+ "widget": {
+ "name": "direction"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "match_image_size",
+ "name": "match_image_size",
+ "type": "BOOLEAN",
+ "widget": {
+ "name": "match_image_size"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "IMAGE",
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 5763
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfyui-kjnodes",
+ "ver": "1.0.8",
+ "Node name for S&R": "ImageConcanate"
+ },
+ "widgets_values": [
+ "right",
+ true
+ ]
+ },
+ {
+ "id": 2008,
+ "type": "Note",
+ "pos": [
+ 4842.8349609375,
+ 1924.749267578125
+ ],
+ "size": [
+ 566.965087890625,
+ 107.72560119628906
+ ],
+ "flags": {},
+ "order": 7,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [],
+ "properties": {},
+ "widgets_values": [
+ "Left is the generated video, right is the original one."
+ ],
+ "color": "#432",
+ "bgcolor": "#653"
+ }
+ ],
+ "links": [
+ [
+ 74,
+ 38,
+ 0,
+ 6,
+ 0,
+ "CLIP"
+ ],
+ [
+ 75,
+ 38,
+ 0,
+ 7,
+ 0,
+ "CLIP"
+ ],
+ [
+ 3364,
+ 6,
+ 0,
+ 1241,
+ 0,
+ "CONDITIONING"
+ ],
+ [
+ 3365,
+ 7,
+ 0,
+ 1241,
+ 1,
+ "CONDITIONING"
+ ],
+ [
+ 5274,
+ 1241,
+ 0,
+ 1813,
+ 1,
+ "CONDITIONING"
+ ],
+ [
+ 5275,
+ 1241,
+ 1,
+ 1813,
+ 2,
+ "CONDITIONING"
+ ],
+ [
+ 5445,
+ 44,
+ 0,
+ 1895,
+ 0,
+ "MODEL"
+ ],
+ [
+ 5447,
+ 1895,
+ 0,
+ 1894,
+ 0,
+ "MODEL"
+ ],
+ [
+ 5448,
+ 1895,
+ 0,
+ 1813,
+ 0,
+ "MODEL"
+ ],
+ [
+ 5449,
+ 1889,
+ 0,
+ 1894,
+ 4,
+ "SIGMAS"
+ ],
+ [
+ 5452,
+ 1813,
+ 0,
+ 1894,
+ 5,
+ "GUIDER"
+ ],
+ [
+ 5453,
+ 1598,
+ 0,
+ 1894,
+ 2,
+ "NOISE"
+ ],
+ [
+ 5456,
+ 44,
+ 2,
+ 1894,
+ 1,
+ "VAE"
+ ],
+ [
+ 5667,
+ 1699,
+ 0,
+ 1901,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 5711,
+ 1990,
+ 0,
+ 1699,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 5739,
+ 1699,
+ 0,
+ 1599,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 5740,
+ 1989,
+ 0,
+ 1889,
+ 0,
+ "FLOAT"
+ ],
+ [
+ 5744,
+ 1992,
+ 0,
+ 1894,
+ 6,
+ "LATENT"
+ ],
+ [
+ 5745,
+ 1992,
+ 0,
+ 1894,
+ 8,
+ "LATENT"
+ ],
+ [
+ 5748,
+ 44,
+ 2,
+ 1996,
+ 1,
+ "VAE"
+ ],
+ [
+ 5749,
+ 1995,
+ 0,
+ 1996,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 5751,
+ 1997,
+ 0,
+ 1894,
+ 3,
+ "SAMPLER"
+ ],
+ [
+ 5753,
+ 1998,
+ 0,
+ 1999,
+ 1,
+ "UPSCALE_MODEL"
+ ],
+ [
+ 5754,
+ 1996,
+ 0,
+ 1999,
+ 0,
+ "LATENT"
+ ],
+ [
+ 5755,
+ 44,
+ 2,
+ 1999,
+ 2,
+ "VAE"
+ ],
+ [
+ 5756,
+ 1999,
+ 0,
+ 1992,
+ 0,
+ "*"
+ ],
+ [
+ 5762,
+ 1894,
+ 0,
+ 1990,
+ 1,
+ "LATENT"
+ ],
+ [
+ 5763,
+ 1901,
+ 0,
+ 2003,
+ 0,
+ "*"
+ ],
+ [
+ 5765,
+ 2003,
+ 0,
+ 2004,
+ 0,
+ "*"
+ ],
+ [
+ 5766,
+ 2004,
+ 0,
+ 1902,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 5767,
+ 44,
+ 2,
+ 2006,
+ 0,
+ "*"
+ ],
+ [
+ 5768,
+ 2006,
+ 0,
+ 2007,
+ 0,
+ "*"
+ ],
+ [
+ 5769,
+ 2007,
+ 0,
+ 1990,
+ 0,
+ "VAE"
+ ],
+ [
+ 5770,
+ 1995,
+ 0,
+ 1901,
+ 1,
+ "IMAGE"
+ ]
+ ],
+ "groups": [
+ {
+ "id": 41,
+ "title": "Setup",
+ "bounding": [
+ 329.9997863769531,
+ 2040.44580078125,
+ 1101.9881591796875,
+ 875.8268432617188
+ ],
+ "color": "#3f789e",
+ "font_size": 24,
+ "flags": {},
+ "nodes": [
+ 7,
+ 1996,
+ 6,
+ 1241,
+ 38,
+ 44,
+ 2006,
+ 1895,
+ 1995
+ ]
+ },
+ {
+ "id": 42,
+ "title": "Add Details",
+ "bounding": [
+ 1880.87255859375,
+ 2053.541259765625,
+ 3920.83447265625,
+ 860.0048217773438
+ ],
+ "color": "#3f789e",
+ "font_size": 24,
+ "flags": {},
+ "nodes": [
+ 1894,
+ 1990,
+ 1599,
+ 2003,
+ 2004,
+ 1992,
+ 1598,
+ 1813,
+ 1989,
+ 1889,
+ 1997,
+ 2007,
+ 1902,
+ 1699,
+ 1901
+ ]
+ },
+ {
+ "id": 43,
+ "title": "Latent Upscaler",
+ "bounding": [
+ 1479.4404296875,
+ 2047.81640625,
+ 375.705078125,
+ 868.5703125
+ ],
+ "color": "#3f789e",
+ "font_size": 24,
+ "flags": {},
+ "nodes": [
+ 1998,
+ 1999
+ ]
+ }
+ ],
+ "config": {},
+ "extra": {
+ "ds": {
+ "scale": 0.6303940863128579,
+ "offset": [
+ -3473.6268617369606,
+ -1759.5003971014191
+ ]
+ },
+ "frontendVersion": "1.17.11",
+ "VHS_latentpreview": true,
+ "VHS_latentpreviewrate": 0,
+ "VHS_MetadataImage": true,
+ "VHS_KeepIntermediate": true,
+ "prompt": {
+ "6": {
+ "inputs": {
+ "text": "",
+ "clip": [
+ "38",
+ 0
+ ]
+ },
+ "class_type": "CLIPTextEncode",
+ "_meta": {
+ "title": "CLIP Text Encode (Positive Prompt)"
+ }
+ },
+ "7": {
+ "inputs": {
+ "text": "low quality, worst quality, deformed, distorted, disfigured, motion smear, motion artifacts, fused fingers, bad anatomy, weird hand, ugly",
+ "clip": [
+ "38",
+ 0
+ ]
+ },
+ "class_type": "CLIPTextEncode",
+ "_meta": {
+ "title": "CLIP Text Encode (Negative Prompt)"
+ }
+ },
+ "38": {
+ "inputs": {
+ "clip_name": "t5xxl_fp8.safetensors",
+ "type": "ltxv",
+ "device": "default"
+ },
+ "class_type": "CLIPLoader",
+ "_meta": {
+ "title": "Load CLIP"
+ }
+ },
+ "44": {
+ "inputs": {
+ "ckpt_name": "ltxv-13b-0.9.8-distilled.safetensors"
+ },
+ "class_type": "CheckpointLoaderSimple",
+ "_meta": {
+ "title": "Load Checkpoint"
+ }
+ },
+ "1241": {
+ "inputs": {
+ "frame_rate": 24.000000000000004,
+ "positive": [
+ "6",
+ 0
+ ],
+ "negative": [
+ "7",
+ 0
+ ]
+ },
+ "class_type": "LTXVConditioning",
+ "_meta": {
+ "title": "LTXVConditioning"
+ }
+ },
+ "1598": {
+ "inputs": {
+ "noise_seed": 1256
+ },
+ "class_type": "RandomNoise",
+ "_meta": {
+ "title": "RandomNoise"
+ }
+ },
+ "1599": {
+ "inputs": {
+ "frame_rate": 24,
+ "loop_count": 0,
+ "filename_prefix": "ltxv-hd",
+ "format": "video/h264-mp4",
+ "pix_fmt": "yuv420p",
+ "crf": 18,
+ "save_metadata": false,
+ "trim_to_audio": false,
+ "pingpong": false,
+ "save_output": false,
+ "images": [
+ "1699",
+ 0
+ ]
+ },
+ "class_type": "VHS_VideoCombine",
+ "_meta": {
+ "title": "Video Combine π₯π
₯π
π
’"
+ }
+ },
+ "1699": {
+ "inputs": {
+ "grain_intensity": 0.010000000000000002,
+ "saturation": 0.5,
+ "images": [
+ "1990",
+ 0
+ ]
+ },
+ "class_type": "LTXVFilmGrain",
+ "_meta": {
+ "title": "π
π
£π
§ LTXV Film Grain"
+ }
+ },
+ "1813": {
+ "inputs": {
+ "skip_steps_sigma_threshold": 0.9970000000000002,
+ "cfg_star_rescale": true,
+ "sigmas": "1",
+ "cfg_values": "1",
+ "stg_scale_values": "0",
+ "stg_rescale_values": "1",
+ "stg_layers_indices": "[42]",
+ "model": [
+ "1895",
+ 0
+ ],
+ "positive": [
+ "1241",
+ 0
+ ],
+ "negative": [
+ "1241",
+ 1
+ ]
+ },
+ "class_type": "STGGuiderAdvanced",
+ "_meta": {
+ "title": "π
π
£π
§ STG Guider Advanced"
+ }
+ },
+ "1889": {
+ "inputs": {
+ "float_list": [
+ "1989",
+ 0
+ ]
+ },
+ "class_type": "FloatToSigmas",
+ "_meta": {
+ "title": "Float To Sigmas"
+ }
+ },
+ "1894": {
+ "inputs": {
+ "guiding_strength": 1,
+ "temporal_tile_size": 64,
+ "temporal_overlap": 16,
+ "temporal_overlap_cond_strength": 0.25000000000000006,
+ "horizontal_tiles": 2,
+ "vertical_tiles": 2,
+ "spatial_overlap": 3,
+ "adain_factor": 0.25000000000000006,
+ "optional_negative_index": -1,
+ "optional_negative_index_strength": 1,
+ "model": [
+ "1895",
+ 0
+ ],
+ "vae": [
+ "44",
+ 2
+ ],
+ "noise": [
+ "1598",
+ 0
+ ],
+ "sampler": [
+ "1997",
+ 0
+ ],
+ "sigmas": [
+ "1889",
+ 0
+ ],
+ "guider": [
+ "1813",
+ 0
+ ],
+ "latents": [
+ "1999",
+ 0
+ ],
+ "optional_guiding_latents": [
+ "1999",
+ 0
+ ]
+ },
+ "class_type": "LTXVLoopingSampler",
+ "_meta": {
+ "title": "π
π
£π
§ LTXV Looping Sampler"
+ }
+ },
+ "1895": {
+ "inputs": {
+ "lora_name": "ltx-video-ICLoRA-detailer-13B-0.9.8",
+ "strength_model": 1.5000000000000002,
+ "model": [
+ "44",
+ 0
+ ]
+ },
+ "class_type": "LoraLoaderModelOnly",
+ "_meta": {
+ "title": "LoraLoaderModelOnly"
+ }
+ },
+ "1901": {
+ "inputs": {
+ "direction": "right",
+ "match_image_size": true,
+ "image1": [
+ "1699",
+ 0
+ ],
+ "image2": [
+ "1995",
+ 0
+ ]
+ },
+ "class_type": "ImageConcanate",
+ "_meta": {
+ "title": "Image Concatenate"
+ }
+ },
+ "1902": {
+ "inputs": {
+ "frame_rate": 24,
+ "loop_count": 0,
+ "filename_prefix": "ltxv-hd-sd",
+ "format": "video/h264-mp4",
+ "pix_fmt": "yuv420p",
+ "crf": 18,
+ "save_metadata": false,
+ "trim_to_audio": false,
+ "pingpong": false,
+ "save_output": false,
+ "images": [
+ "1901",
+ 0
+ ]
+ },
+ "class_type": "VHS_VideoCombine",
+ "_meta": {
+ "title": "Video Combine π₯π
₯π
π
’"
+ }
+ },
+ "1989": {
+ "inputs": {
+ "string": "0.99, 0.9094, 0.0"
+ },
+ "class_type": "StringToFloatList",
+ "_meta": {
+ "title": "String to Float List"
+ }
+ },
+ "1990": {
+ "inputs": {
+ "horizontal_tiles": 2,
+ "vertical_tiles": 2,
+ "overlap": 5,
+ "last_frame_fix": false,
+ "vae": [
+ "44",
+ 2
+ ],
+ "latents": [
+ "1894",
+ 0
+ ]
+ },
+ "class_type": "LTXVTiledVAEDecode",
+ "_meta": {
+ "title": "π
π
£π
§ LTXV Tiled VAE Decode"
+ }
+ },
+ "1995": {
+ "inputs": {
+ "video": "AnimateDiff_00151.mp4",
+ "force_rate": 0,
+ "custom_width": 0,
+ "custom_height": 0,
+ "frame_load_cap": 0,
+ "skip_first_frames": 0,
+ "select_every_nth": 1,
+ "format": "LTXV"
+ },
+ "class_type": "VHS_LoadVideo",
+ "_meta": {
+ "title": "Load Video (Upload) π₯π
₯π
π
’"
+ }
+ },
+ "1996": {
+ "inputs": {
+ "pixels": [
+ "1995",
+ 0
+ ],
+ "vae": [
+ "44",
+ 2
+ ]
+ },
+ "class_type": "VAEEncode",
+ "_meta": {
+ "title": "VAE Encode"
+ }
+ },
+ "1997": {
+ "inputs": {
+ "sampler_name": "euler_ancestral"
+ },
+ "class_type": "KSamplerSelect",
+ "_meta": {
+ "title": "KSamplerSelect"
+ }
+ },
+ "1998": {
+ "inputs": {
+ "upscale_model": "ltxv-spatial-upscaler-0.9.8.safetensors",
+ "spatial_upsample": true,
+ "temporal_upsample": false
+ },
+ "class_type": "LTXVLatentUpsamplerModelLoader",
+ "_meta": {
+ "title": "π
π
£π
§ LTXV Latent Upsampler Model Loader"
+ }
+ },
+ "1999": {
+ "inputs": {
+ "samples": [
+ "1996",
+ 0
+ ],
+ "upscale_model": [
+ "1998",
+ 0
+ ],
+ "vae": [
+ "44",
+ 2
+ ]
+ },
+ "class_type": "LTXVLatentUpsampler",
+ "_meta": {
+ "title": "π
π
£π
§ LTXV Latent Upsampler"
+ }
+ }
+ },
+ "comfy_fork_version": "develop@c8755c7d",
+ "workspace_info": {
+ "id": "elBQFQknIoLYTEwIloQuw"
+ },
+ "node_versions": {
+ "comfy-core": "0.3.30",
+ "comfyui-kjnodes": "1.0.8"
+ }
+ },
+ "version": 0.4
+}
diff --git a/example_workflows/ltxv-13b-v2v-long-depth.json b/example_workflows/ltxv-13b-v2v-long-depth.json
new file mode 100644
index 0000000..5f2a6ad
--- /dev/null
+++ b/example_workflows/ltxv-13b-v2v-long-depth.json
@@ -0,0 +1,4864 @@
+{
+ "id": "394ed254-7306-42a2-9ae6-aa880ce4456d",
+ "revision": 0,
+ "last_node_id": 2149,
+ "last_link_id": 6004,
+ "nodes": [
+ {
+ "id": 1335,
+ "type": "VAEDecode",
+ "pos": [
+ 4524.71875,
+ 2618.7578125
+ ],
+ "size": [
+ 210,
+ 46
+ ],
+ "flags": {},
+ "order": 47,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "samples",
+ "name": "samples",
+ "type": "LATENT",
+ "link": 6003
+ },
+ {
+ "localized_name": "vae",
+ "name": "vae",
+ "type": "VAE",
+ "link": 5363
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "IMAGE",
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 3578
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.29",
+ "Node name for S&R": "VAEDecode"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 1926,
+ "type": "KSamplerSelect",
+ "pos": [
+ 7206.24755859375,
+ 2623.925537109375
+ ],
+ "size": [
+ 251.94110107421875,
+ 58
+ ],
+ "flags": {},
+ "order": 0,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "sampler_name",
+ "name": "sampler_name",
+ "type": "COMBO",
+ "widget": {
+ "name": "sampler_name"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "SAMPLER",
+ "name": "SAMPLER",
+ "type": "SAMPLER",
+ "links": [
+ 5904
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.28",
+ "Node name for S&R": "KSamplerSelect"
+ },
+ "widgets_values": [
+ "euler_ancestral"
+ ]
+ },
+ {
+ "id": 2038,
+ "type": "Reroute",
+ "pos": [
+ 6732.23095703125,
+ 2231.4091796875
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 40,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5742
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "CONDITIONING",
+ "links": [
+ 5740
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 2037,
+ "type": "Reroute",
+ "pos": [
+ 6729.97705078125,
+ 2189.18310546875
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 39,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5741
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "CONDITIONING",
+ "links": [
+ 5739
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 2073,
+ "type": "FloatToSigmas",
+ "pos": [
+ 7289.4375,
+ 2834.601318359375
+ ],
+ "size": [
+ 216.59999084472656,
+ 26
+ ],
+ "flags": {},
+ "order": 17,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "float_list",
+ "name": "float_list",
+ "type": "FLOAT",
+ "link": 5782
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "SIGMAS",
+ "name": "SIGMAS",
+ "type": "SIGMAS",
+ "links": [
+ 5905
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "FloatToSigmas",
+ "cnr_id": "comfyui-kjnodes",
+ "ver": "1.0.8"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 1952,
+ "type": "StringToFloatList",
+ "pos": [
+ 3031.37158203125,
+ 2693.744384765625
+ ],
+ "size": [
+ 290,
+ 130
+ ],
+ "flags": {},
+ "order": 1,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "string",
+ "name": "string",
+ "type": "STRING",
+ "widget": {
+ "name": "string"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "FLOAT",
+ "name": "FLOAT",
+ "type": "FLOAT",
+ "links": [
+ 5567
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "StringToFloatList",
+ "cnr_id": "comfyui-kjnodes",
+ "ver": "0addfc6101f7a834c7fb6e0a1b26529360ab5350"
+ },
+ "widgets_values": [
+ "1.0000, 0.9937, 0.9875, 0.9812, 0.9750, 0.9094, 0.7250, 0.4219, 0.0\n"
+ ],
+ "color": "#223",
+ "bgcolor": "#335"
+ },
+ {
+ "id": 1598,
+ "type": "RandomNoise",
+ "pos": [
+ 7275.9599609375,
+ 2305.344482421875
+ ],
+ "size": [
+ 210,
+ 82
+ ],
+ "flags": {},
+ "order": 2,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "noise_seed",
+ "name": "noise_seed",
+ "type": "INT",
+ "widget": {
+ "name": "noise_seed"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "NOISE",
+ "name": "NOISE",
+ "type": "NOISE",
+ "links": [
+ 5903
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.30",
+ "Node name for S&R": "RandomNoise"
+ },
+ "widgets_values": [
+ 1625,
+ "fixed"
+ ]
+ },
+ {
+ "id": 2102,
+ "type": "Reroute",
+ "pos": [
+ 5964.9345703125,
+ 2899.48828125
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 51,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5838
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "LATENT",
+ "links": [
+ 5839
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 2101,
+ "type": "Reroute",
+ "pos": [
+ 4516.3046875,
+ 2895.996337890625
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 48,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 6004
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "LATENT",
+ "links": [
+ 5838
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 1973,
+ "type": "VHS_VideoCombine",
+ "pos": [
+ 8417.9189453125,
+ 2240.651123046875
+ ],
+ "size": [
+ 770.2554931640625,
+ 334
+ ],
+ "flags": {},
+ "order": 56,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "images",
+ "name": "images",
+ "type": "IMAGE",
+ "link": 5920
+ },
+ {
+ "localized_name": "audio",
+ "name": "audio",
+ "shape": 7,
+ "type": "AUDIO",
+ "link": null
+ },
+ {
+ "localized_name": "meta_batch",
+ "name": "meta_batch",
+ "shape": 7,
+ "type": "VHS_BatchManager",
+ "link": null
+ },
+ {
+ "localized_name": "vae",
+ "name": "vae",
+ "shape": 7,
+ "type": "VAE",
+ "link": null
+ },
+ {
+ "localized_name": "frame_rate",
+ "name": "frame_rate",
+ "type": "FLOAT",
+ "widget": {
+ "name": "frame_rate"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "loop_count",
+ "name": "loop_count",
+ "type": "INT",
+ "widget": {
+ "name": "loop_count"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "filename_prefix",
+ "name": "filename_prefix",
+ "type": "STRING",
+ "widget": {
+ "name": "filename_prefix"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "format",
+ "name": "format",
+ "type": "COMBO",
+ "widget": {
+ "name": "format"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "pingpong",
+ "name": "pingpong",
+ "type": "BOOLEAN",
+ "widget": {
+ "name": "pingpong"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "save_output",
+ "name": "save_output",
+ "type": "BOOLEAN",
+ "widget": {
+ "name": "save_output"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "Filenames",
+ "name": "Filenames",
+ "type": "VHS_FILENAMES",
+ "links": null
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VHS_VideoCombine"
+ },
+ "widgets_values": {
+ "frame_rate": 24,
+ "loop_count": 0,
+ "filename_prefix": "ltxv-ic-lora",
+ "format": "video/h264-mp4",
+ "pix_fmt": "yuv420p",
+ "crf": 19,
+ "save_metadata": true,
+ "trim_to_audio": false,
+ "pingpong": false,
+ "save_output": true,
+ "videopreview": {
+ "hidden": false,
+ "paused": false,
+ "params": {
+ "filename": "ltxv-ic-lora_00025.mp4",
+ "subfolder": "",
+ "type": "output",
+ "format": "video/h264-mp4",
+ "frame_rate": 24,
+ "workflow": "ltxv-ic-lora_00025.png",
+ "fullpath": "/home/michael/src/comfyui_worker_serving/src/comfyui/output/ltxv-ic-lora_00025.mp4"
+ }
+ }
+ }
+ },
+ {
+ "id": 2116,
+ "type": "STGAdvancedPresets",
+ "pos": [
+ 6563.388671875,
+ 2521.9775390625
+ ],
+ "size": [
+ 292.0787048339844,
+ 58
+ ],
+ "flags": {},
+ "order": 3,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "preset",
+ "name": "preset",
+ "type": "COMBO",
+ "widget": {
+ "name": "preset"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "STG_ADVANCED_PRESET",
+ "name": "STG_ADVANCED_PRESET",
+ "type": "STG_ADVANCED_PRESET",
+ "links": [
+ 5873
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "STGAdvancedPresets"
+ },
+ "widgets_values": [
+ "13b Distilled"
+ ]
+ },
+ {
+ "id": 2117,
+ "type": "Set VAE Decoder Noise",
+ "pos": [
+ 7985.1396484375,
+ 2245.2392578125
+ ],
+ "size": [
+ 294.1568298339844,
+ 130
+ ],
+ "flags": {},
+ "order": 49,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "vae",
+ "name": "vae",
+ "type": "VAE",
+ "link": 5874
+ },
+ {
+ "localized_name": "timestep",
+ "name": "timestep",
+ "type": "FLOAT",
+ "widget": {
+ "name": "timestep"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "scale",
+ "name": "scale",
+ "type": "FLOAT",
+ "widget": {
+ "name": "scale"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "seed",
+ "name": "seed",
+ "type": "INT",
+ "widget": {
+ "name": "seed"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "VAE",
+ "name": "VAE",
+ "type": "VAE",
+ "links": [
+ 5917
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "Set VAE Decoder Noise"
+ },
+ "widgets_values": [
+ 0.05,
+ 0.025,
+ 42,
+ "fixed"
+ ]
+ },
+ {
+ "id": 2096,
+ "type": "Reroute",
+ "pos": [
+ 3950,
+ 2050
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 28,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5829
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "VAE",
+ "links": [
+ 5831,
+ 5995
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 1921,
+ "type": "STGGuiderAdvanced",
+ "pos": [
+ 3176.751953125,
+ 2356.80322265625
+ ],
+ "size": [
+ 278.79998779296875,
+ 262
+ ],
+ "flags": {},
+ "order": 42,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "model",
+ "name": "model",
+ "type": "MODEL",
+ "link": 5992
+ },
+ {
+ "localized_name": "positive",
+ "name": "positive",
+ "type": "CONDITIONING",
+ "link": 5584
+ },
+ {
+ "localized_name": "negative",
+ "name": "negative",
+ "type": "CONDITIONING",
+ "link": 5585
+ },
+ {
+ "localized_name": "preset",
+ "name": "preset",
+ "shape": 7,
+ "type": "STG_ADVANCED_PRESET",
+ "link": 5613
+ },
+ {
+ "localized_name": "skip_steps_sigma_threshold",
+ "name": "skip_steps_sigma_threshold",
+ "type": "FLOAT",
+ "widget": {
+ "name": "skip_steps_sigma_threshold"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "cfg_star_rescale",
+ "name": "cfg_star_rescale",
+ "type": "BOOLEAN",
+ "widget": {
+ "name": "cfg_star_rescale"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "sigmas",
+ "name": "sigmas",
+ "type": "STRING",
+ "widget": {
+ "name": "sigmas"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "cfg_values",
+ "name": "cfg_values",
+ "type": "STRING",
+ "widget": {
+ "name": "cfg_values"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "stg_scale_values",
+ "name": "stg_scale_values",
+ "type": "STRING",
+ "widget": {
+ "name": "stg_scale_values"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "stg_rescale_values",
+ "name": "stg_rescale_values",
+ "type": "STRING",
+ "widget": {
+ "name": "stg_rescale_values"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "stg_layers_indices",
+ "name": "stg_layers_indices",
+ "type": "STRING",
+ "widget": {
+ "name": "stg_layers_indices"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "GUIDER",
+ "name": "GUIDER",
+ "type": "GUIDER",
+ "links": [
+ 5999
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "STGGuiderAdvanced"
+ },
+ "widgets_values": [
+ 0.9970000000000002,
+ true,
+ "1",
+ "1",
+ "0,0,0,0,0,0",
+ "1",
+ "[25]"
+ ]
+ },
+ {
+ "id": 2072,
+ "type": "StringToFloatList",
+ "pos": [
+ 6805.841796875,
+ 2835.313232421875
+ ],
+ "size": [
+ 395.74224853515625,
+ 88
+ ],
+ "flags": {},
+ "order": 4,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "string",
+ "name": "string",
+ "type": "STRING",
+ "widget": {
+ "name": "string"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "FLOAT",
+ "name": "FLOAT",
+ "type": "FLOAT",
+ "links": [
+ 5782
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "StringToFloatList",
+ "cnr_id": "comfyui-kjnodes",
+ "ver": "0addfc6101f7a834c7fb6e0a1b26529360ab5350"
+ },
+ "widgets_values": [
+ "0.99, 0.9094, 0.0"
+ ],
+ "color": "#223",
+ "bgcolor": "#335"
+ },
+ {
+ "id": 1871,
+ "type": "STGGuiderAdvanced",
+ "pos": [
+ 6889.51904296875,
+ 2431.979248046875
+ ],
+ "size": [
+ 278.79998779296875,
+ 262
+ ],
+ "flags": {},
+ "order": 44,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "model",
+ "name": "model",
+ "type": "MODEL",
+ "link": 5896
+ },
+ {
+ "localized_name": "positive",
+ "name": "positive",
+ "type": "CONDITIONING",
+ "link": 5739
+ },
+ {
+ "localized_name": "negative",
+ "name": "negative",
+ "type": "CONDITIONING",
+ "link": 5740
+ },
+ {
+ "localized_name": "preset",
+ "name": "preset",
+ "shape": 7,
+ "type": "STG_ADVANCED_PRESET",
+ "link": 5873
+ },
+ {
+ "localized_name": "skip_steps_sigma_threshold",
+ "name": "skip_steps_sigma_threshold",
+ "type": "FLOAT",
+ "widget": {
+ "name": "skip_steps_sigma_threshold"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "cfg_star_rescale",
+ "name": "cfg_star_rescale",
+ "type": "BOOLEAN",
+ "widget": {
+ "name": "cfg_star_rescale"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "sigmas",
+ "name": "sigmas",
+ "type": "STRING",
+ "widget": {
+ "name": "sigmas"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "cfg_values",
+ "name": "cfg_values",
+ "type": "STRING",
+ "widget": {
+ "name": "cfg_values"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "stg_scale_values",
+ "name": "stg_scale_values",
+ "type": "STRING",
+ "widget": {
+ "name": "stg_scale_values"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "stg_rescale_values",
+ "name": "stg_rescale_values",
+ "type": "STRING",
+ "widget": {
+ "name": "stg_rescale_values"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "stg_layers_indices",
+ "name": "stg_layers_indices",
+ "type": "STRING",
+ "widget": {
+ "name": "stg_layers_indices"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "GUIDER",
+ "name": "GUIDER",
+ "type": "GUIDER",
+ "links": [
+ 5906
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "STGGuiderAdvanced"
+ },
+ "widgets_values": [
+ 0.9970000000000002,
+ true,
+ "1",
+ "1",
+ "0",
+ "1",
+ "[42]"
+ ]
+ },
+ {
+ "id": 2124,
+ "type": "LTXVLoopingSampler",
+ "pos": [
+ 7587.734375,
+ 2224.18359375
+ ],
+ "size": [
+ 365.21484375,
+ 546
+ ],
+ "flags": {},
+ "order": 54,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "model",
+ "name": "model",
+ "type": "MODEL",
+ "link": 5901
+ },
+ {
+ "localized_name": "vae",
+ "name": "vae",
+ "type": "VAE",
+ "link": 5902
+ },
+ {
+ "localized_name": "noise",
+ "name": "noise",
+ "type": "NOISE",
+ "link": 5903
+ },
+ {
+ "localized_name": "sampler",
+ "name": "sampler",
+ "type": "SAMPLER",
+ "link": 5904
+ },
+ {
+ "localized_name": "sigmas",
+ "name": "sigmas",
+ "type": "SIGMAS",
+ "link": 5905
+ },
+ {
+ "localized_name": "guider",
+ "name": "guider",
+ "type": "GUIDER",
+ "link": 5906
+ },
+ {
+ "localized_name": "latents",
+ "name": "latents",
+ "type": "LATENT",
+ "link": 5961
+ },
+ {
+ "localized_name": "optional_cond_image",
+ "name": "optional_cond_image",
+ "shape": 7,
+ "type": "IMAGE",
+ "link": null
+ },
+ {
+ "localized_name": "optional_guiding_latents",
+ "name": "optional_guiding_latents",
+ "shape": 7,
+ "type": "LATENT",
+ "link": 5912
+ },
+ {
+ "localized_name": "optional_positive_conditionings",
+ "name": "optional_positive_conditionings",
+ "shape": 7,
+ "type": "CONDITIONING",
+ "link": null
+ },
+ {
+ "localized_name": "optional_negative_index_latents",
+ "name": "optional_negative_index_latents",
+ "shape": 7,
+ "type": "LATENT",
+ "link": null
+ },
+ {
+ "localized_name": "guiding_strength",
+ "name": "guiding_strength",
+ "type": "FLOAT",
+ "widget": {
+ "name": "guiding_strength"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "temporal_tile_size",
+ "name": "temporal_tile_size",
+ "type": "INT",
+ "widget": {
+ "name": "temporal_tile_size"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "temporal_overlap",
+ "name": "temporal_overlap",
+ "type": "INT",
+ "widget": {
+ "name": "temporal_overlap"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "temporal_overlap_cond_strength",
+ "name": "temporal_overlap_cond_strength",
+ "type": "FLOAT",
+ "widget": {
+ "name": "temporal_overlap_cond_strength"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "horizontal_tiles",
+ "name": "horizontal_tiles",
+ "type": "INT",
+ "widget": {
+ "name": "horizontal_tiles"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "vertical_tiles",
+ "name": "vertical_tiles",
+ "type": "INT",
+ "widget": {
+ "name": "vertical_tiles"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "spatial_overlap",
+ "name": "spatial_overlap",
+ "type": "INT",
+ "widget": {
+ "name": "spatial_overlap"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "adain_factor",
+ "name": "adain_factor",
+ "shape": 7,
+ "type": "FLOAT",
+ "widget": {
+ "name": "adain_factor"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "optional_negative_index",
+ "name": "optional_negative_index",
+ "shape": 7,
+ "type": "INT",
+ "widget": {
+ "name": "optional_negative_index"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "optional_negative_index_strength",
+ "name": "optional_negative_index_strength",
+ "shape": 7,
+ "type": "FLOAT",
+ "widget": {
+ "name": "optional_negative_index_strength"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "per_tile_seed_offsets",
+ "name": "per_tile_seed_offsets",
+ "shape": 7,
+ "type": "STRING",
+ "widget": {
+ "name": "per_tile_seed_offsets"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "per_tile_use_negative_latents",
+ "name": "per_tile_use_negative_latents",
+ "shape": 7,
+ "type": "STRING",
+ "widget": {
+ "name": "per_tile_use_negative_latents"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "denoised_output",
+ "name": "denoised_output",
+ "type": "LATENT",
+ "links": [
+ 5918
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "LTXVLoopingSampler"
+ },
+ "widgets_values": [
+ 1,
+ 80,
+ 24,
+ 0.5,
+ 1,
+ 1,
+ 1,
+ 0,
+ -1,
+ 1,
+ "0",
+ "1"
+ ]
+ },
+ {
+ "id": 2127,
+ "type": "LTXVTiledVAEDecode",
+ "pos": [
+ 7989.189453125,
+ 2440.381103515625
+ ],
+ "size": [
+ 290.6636657714844,
+ 150
+ ],
+ "flags": {},
+ "order": 55,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "vae",
+ "name": "vae",
+ "type": "VAE",
+ "link": 5917
+ },
+ {
+ "localized_name": "latents",
+ "name": "latents",
+ "type": "LATENT",
+ "link": 5918
+ },
+ {
+ "localized_name": "horizontal_tiles",
+ "name": "horizontal_tiles",
+ "type": "INT",
+ "widget": {
+ "name": "horizontal_tiles"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "vertical_tiles",
+ "name": "vertical_tiles",
+ "type": "INT",
+ "widget": {
+ "name": "vertical_tiles"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "overlap",
+ "name": "overlap",
+ "type": "INT",
+ "widget": {
+ "name": "overlap"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "last_frame_fix",
+ "name": "last_frame_fix",
+ "type": "BOOLEAN",
+ "widget": {
+ "name": "last_frame_fix"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "image",
+ "name": "image",
+ "type": "IMAGE",
+ "links": [
+ 5920
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "LTXVTiledVAEDecode"
+ },
+ "widgets_values": [
+ 2,
+ 2,
+ 5,
+ false
+ ]
+ },
+ {
+ "id": 2129,
+ "type": "Reroute",
+ "pos": [
+ 2004.1419677734375,
+ 2654.619873046875
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 21,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5941
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "MODEL",
+ "links": [
+ 5938
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 2094,
+ "type": "Reroute",
+ "pos": [
+ 2371.384765625,
+ 2891.617919921875
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 23,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5825
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "VAE",
+ "links": [
+ 5826,
+ 5979
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 2122,
+ "type": "LoraLoaderModelOnly",
+ "pos": [
+ 6512.681640625,
+ 2314.541259765625
+ ],
+ "size": [
+ 270,
+ 82
+ ],
+ "flags": {},
+ "order": 41,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "model",
+ "name": "model",
+ "type": "MODEL",
+ "link": 5898
+ },
+ {
+ "localized_name": "lora_name",
+ "name": "lora_name",
+ "type": "COMBO",
+ "widget": {
+ "name": "lora_name"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "strength_model",
+ "name": "strength_model",
+ "type": "FLOAT",
+ "widget": {
+ "name": "strength_model"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "MODEL",
+ "name": "MODEL",
+ "type": "MODEL",
+ "links": [
+ 5896,
+ 5901
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.44",
+ "Node name for S&R": "LoraLoaderModelOnly"
+ },
+ "widgets_values": [
+ "ltx-video-ICLoRA-detailer-13B-0.9.8",
+ 1
+ ]
+ },
+ {
+ "id": 2125,
+ "type": "Reroute",
+ "pos": [
+ 7292.6181640625,
+ 2481.50341796875
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 53,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5971
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "LATENT",
+ "links": [
+ 5912,
+ 5961
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 1241,
+ "type": "LTXVConditioning",
+ "pos": [
+ 2569.50537109375,
+ 2276.412109375
+ ],
+ "size": [
+ 328.21636962890625,
+ 78
+ ],
+ "flags": {},
+ "order": 26,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "positive",
+ "name": "positive",
+ "type": "CONDITIONING",
+ "link": 5967
+ },
+ {
+ "localized_name": "negative",
+ "name": "negative",
+ "type": "CONDITIONING",
+ "link": 3365
+ },
+ {
+ "localized_name": "frame_rate",
+ "name": "frame_rate",
+ "type": "FLOAT",
+ "widget": {
+ "name": "frame_rate"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "positive",
+ "name": "positive",
+ "type": "CONDITIONING",
+ "slot_index": 0,
+ "links": [
+ 5584,
+ 5715
+ ]
+ },
+ {
+ "localized_name": "negative",
+ "name": "negative",
+ "type": "CONDITIONING",
+ "slot_index": 1,
+ "links": [
+ 5585,
+ 5716
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.28",
+ "Node name for S&R": "LTXVConditioning"
+ },
+ "widgets_values": [
+ 24.000000000000004
+ ]
+ },
+ {
+ "id": 38,
+ "type": "CLIPLoader",
+ "pos": [
+ 1916.6739501953125,
+ 2303.91259765625
+ ],
+ "size": [
+ 245.33026123046875,
+ 106
+ ],
+ "flags": {},
+ "order": 5,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "clip_name",
+ "name": "clip_name",
+ "type": "COMBO",
+ "widget": {
+ "name": "clip_name"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "type",
+ "name": "type",
+ "type": "COMBO",
+ "widget": {
+ "name": "type"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "device",
+ "name": "device",
+ "shape": 7,
+ "type": "COMBO",
+ "widget": {
+ "name": "device"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "CLIP",
+ "name": "CLIP",
+ "type": "CLIP",
+ "slot_index": 0,
+ "links": [
+ 5603,
+ 5964,
+ 5966
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.28",
+ "Node name for S&R": "CLIPLoader"
+ },
+ "widgets_values": [
+ "t5xxl_fp16.safetensors",
+ "ltxv",
+ "default"
+ ]
+ },
+ {
+ "id": 1949,
+ "type": "PrintSigmas",
+ "pos": [
+ 3674.795654296875,
+ 2763.217529296875
+ ],
+ "size": [
+ 210,
+ 26
+ ],
+ "flags": {},
+ "order": 25,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "sigmas",
+ "name": "sigmas",
+ "type": "SIGMAS",
+ "link": 5641
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "SIGMAS",
+ "name": "SIGMAS",
+ "type": "SIGMAS",
+ "links": [
+ 5998
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "PrintSigmas"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 1953,
+ "type": "FloatToSigmas",
+ "pos": [
+ 3391.44384765625,
+ 2769.8349609375
+ ],
+ "size": [
+ 216.59999084472656,
+ 26
+ ],
+ "flags": {},
+ "order": 16,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "float_list",
+ "name": "float_list",
+ "type": "FLOAT",
+ "link": 5567
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "SIGMAS",
+ "name": "SIGMAS",
+ "type": "SIGMAS",
+ "links": [
+ 5641
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "FloatToSigmas",
+ "cnr_id": "comfyui-kjnodes",
+ "ver": "1.0.8"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 2022,
+ "type": "Reroute",
+ "pos": [
+ 3229.825439453125,
+ 1977.3233642578125
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 31,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5715
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "CONDITIONING",
+ "links": [
+ 5741
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 2023,
+ "type": "Reroute",
+ "pos": [
+ 3223.71728515625,
+ 2017.1053466796875
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 32,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5716
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "CONDITIONING",
+ "links": [
+ 5742
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 2097,
+ "type": "Note",
+ "pos": [
+ 2233.589111328125,
+ 2181.5400390625
+ ],
+ "size": [
+ 285.2653503417969,
+ 88
+ ],
+ "flags": {},
+ "order": 6,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [],
+ "properties": {},
+ "widgets_values": [
+ "Leave the positive conditioning text blank. Use multi prompt provider node on the right."
+ ],
+ "color": "#432",
+ "bgcolor": "#653"
+ },
+ {
+ "id": 2095,
+ "type": "Reroute",
+ "pos": [
+ 3925.002197265625,
+ 2883.0654296875
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 29,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5826
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "VAE",
+ "links": [
+ 5828
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 73,
+ "type": "KSamplerSelect",
+ "pos": [
+ 3586.90478515625,
+ 2493.794189453125
+ ],
+ "size": [
+ 251.94110107421875,
+ 58
+ ],
+ "flags": {},
+ "order": 7,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "sampler_name",
+ "name": "sampler_name",
+ "type": "COMBO",
+ "widget": {
+ "name": "sampler_name"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "SAMPLER",
+ "name": "SAMPLER",
+ "type": "SAMPLER",
+ "links": [
+ 5997
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.28",
+ "Node name for S&R": "KSamplerSelect"
+ },
+ "widgets_values": [
+ "euler_ancestral"
+ ]
+ },
+ {
+ "id": 1896,
+ "type": "CheckpointLoaderSimple",
+ "pos": [
+ 1923.9993896484375,
+ 2810.05615234375
+ ],
+ "size": [
+ 315,
+ 98
+ ],
+ "flags": {},
+ "order": 8,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "ckpt_name",
+ "name": "ckpt_name",
+ "type": "COMBO",
+ "widget": {
+ "name": "ckpt_name"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "MODEL",
+ "name": "MODEL",
+ "type": "MODEL",
+ "slot_index": 0,
+ "links": [
+ 5941
+ ]
+ },
+ {
+ "localized_name": "CLIP",
+ "name": "CLIP",
+ "type": "CLIP",
+ "links": null
+ },
+ {
+ "localized_name": "VAE",
+ "name": "VAE",
+ "type": "VAE",
+ "slot_index": 2,
+ "links": [
+ 5818,
+ 5825
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.28",
+ "Node name for S&R": "CheckpointLoaderSimple"
+ },
+ "widgets_values": [
+ "ltxv-13b-0.9.8-distilled.safetensors"
+ ],
+ "color": "#322",
+ "bgcolor": "#533"
+ },
+ {
+ "id": 1870,
+ "type": "Set VAE Decoder Noise",
+ "pos": [
+ 4506.759765625,
+ 2418.0849609375
+ ],
+ "size": [
+ 235.1999969482422,
+ 130
+ ],
+ "flags": {},
+ "order": 36,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "vae",
+ "name": "vae",
+ "type": "VAE",
+ "link": 5828
+ },
+ {
+ "localized_name": "timestep",
+ "name": "timestep",
+ "type": "FLOAT",
+ "widget": {
+ "name": "timestep"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "scale",
+ "name": "scale",
+ "type": "FLOAT",
+ "widget": {
+ "name": "scale"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "seed",
+ "name": "seed",
+ "type": "INT",
+ "widget": {
+ "name": "seed"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "VAE",
+ "name": "VAE",
+ "type": "VAE",
+ "links": [
+ 5363
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "Set VAE Decoder Noise"
+ },
+ "widgets_values": [
+ 0.05000000000000001,
+ 0.025000000000000005,
+ 42,
+ "fixed"
+ ]
+ },
+ {
+ "id": 2119,
+ "type": "EmptyLTXVLatentVideo",
+ "pos": [
+ 2818.27294921875,
+ 2537.522705078125
+ ],
+ "size": [
+ 270,
+ 130
+ ],
+ "flags": {},
+ "order": 38,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "width",
+ "name": "width",
+ "type": "INT",
+ "widget": {
+ "name": "width"
+ },
+ "link": 5973
+ },
+ {
+ "localized_name": "height",
+ "name": "height",
+ "type": "INT",
+ "widget": {
+ "name": "height"
+ },
+ "link": 5974
+ },
+ {
+ "localized_name": "length",
+ "name": "length",
+ "type": "INT",
+ "widget": {
+ "name": "length"
+ },
+ "link": 5990
+ },
+ {
+ "localized_name": "batch_size",
+ "name": "batch_size",
+ "type": "INT",
+ "widget": {
+ "name": "batch_size"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "LATENT",
+ "name": "LATENT",
+ "type": "LATENT",
+ "links": [
+ 6000
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.44",
+ "Node name for S&R": "EmptyLTXVLatentVideo"
+ },
+ "widgets_values": [
+ 768,
+ 512,
+ 361,
+ 1
+ ]
+ },
+ {
+ "id": 7,
+ "type": "CLIPTextEncode",
+ "pos": [
+ 2187.339599609375,
+ 2528.894775390625
+ ],
+ "size": [
+ 324.2440490722656,
+ 138.9625701904297
+ ],
+ "flags": {},
+ "order": 18,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "clip",
+ "name": "clip",
+ "type": "CLIP",
+ "link": 5603
+ },
+ {
+ "localized_name": "text",
+ "name": "text",
+ "type": "STRING",
+ "widget": {
+ "name": "text"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "CONDITIONING",
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "slot_index": 0,
+ "links": [
+ 3365
+ ]
+ }
+ ],
+ "title": "CLIP Text Encode (Negative Prompt)",
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.28",
+ "Node name for S&R": "CLIPTextEncode"
+ },
+ "widgets_values": [
+ "low quality, worst quality, deformed, distorted, disfigured, motion smear, motion artifacts, fused fingers, bad anatomy, weird hand, ugly"
+ ],
+ "color": "#322",
+ "bgcolor": "#533"
+ },
+ {
+ "id": 2137,
+ "type": "CLIPTextEncode",
+ "pos": [
+ 2207.601806640625,
+ 2326.387451171875
+ ],
+ "size": [
+ 277.42706298828125,
+ 104.5481948852539
+ ],
+ "flags": {},
+ "order": 20,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "clip",
+ "name": "clip",
+ "type": "CLIP",
+ "link": 5966
+ },
+ {
+ "localized_name": "text",
+ "name": "text",
+ "type": "STRING",
+ "widget": {
+ "name": "text"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "CONDITIONING",
+ "name": "CONDITIONING",
+ "type": "CONDITIONING",
+ "links": [
+ 5967
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.44",
+ "Node name for S&R": "CLIPTextEncode"
+ },
+ "widgets_values": [
+ ""
+ ]
+ },
+ {
+ "id": 2143,
+ "type": "VAEEncode",
+ "pos": [
+ 2871.01513671875,
+ 2827.94580078125
+ ],
+ "size": [
+ 140,
+ 46
+ ],
+ "flags": {},
+ "order": 37,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "pixels",
+ "name": "pixels",
+ "type": "IMAGE",
+ "link": 5989
+ },
+ {
+ "localized_name": "vae",
+ "name": "vae",
+ "type": "VAE",
+ "link": 5979
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "LATENT",
+ "name": "LATENT",
+ "type": "LATENT",
+ "links": [
+ 6001
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.43",
+ "Node name for S&R": "VAEEncode"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 1967,
+ "type": "STGAdvancedPresets",
+ "pos": [
+ 2914.488037109375,
+ 2417.88720703125
+ ],
+ "size": [
+ 232.07870483398438,
+ 58
+ ],
+ "flags": {},
+ "order": 9,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "preset",
+ "name": "preset",
+ "type": "COMBO",
+ "widget": {
+ "name": "preset"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "STG_ADVANCED_PRESET",
+ "name": "STG_ADVANCED_PRESET",
+ "type": "STG_ADVANCED_PRESET",
+ "links": [
+ 5613
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "STGAdvancedPresets"
+ },
+ "widgets_values": [
+ "13b Distilled"
+ ]
+ },
+ {
+ "id": 1336,
+ "type": "VHS_VideoCombine",
+ "pos": [
+ 4850.5517578125,
+ 2275.85302734375
+ ],
+ "size": [
+ 430.260498046875,
+ 334
+ ],
+ "flags": {},
+ "order": 50,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "images",
+ "name": "images",
+ "type": "IMAGE",
+ "link": 3578
+ },
+ {
+ "localized_name": "audio",
+ "name": "audio",
+ "shape": 7,
+ "type": "AUDIO",
+ "link": null
+ },
+ {
+ "localized_name": "meta_batch",
+ "name": "meta_batch",
+ "shape": 7,
+ "type": "VHS_BatchManager",
+ "link": null
+ },
+ {
+ "localized_name": "vae",
+ "name": "vae",
+ "shape": 7,
+ "type": "VAE",
+ "link": null
+ },
+ {
+ "localized_name": "frame_rate",
+ "name": "frame_rate",
+ "type": "FLOAT",
+ "widget": {
+ "name": "frame_rate"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "loop_count",
+ "name": "loop_count",
+ "type": "INT",
+ "widget": {
+ "name": "loop_count"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "filename_prefix",
+ "name": "filename_prefix",
+ "type": "STRING",
+ "widget": {
+ "name": "filename_prefix"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "format",
+ "name": "format",
+ "type": "COMBO",
+ "widget": {
+ "name": "format"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "pingpong",
+ "name": "pingpong",
+ "type": "BOOLEAN",
+ "widget": {
+ "name": "pingpong"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "save_output",
+ "name": "save_output",
+ "type": "BOOLEAN",
+ "widget": {
+ "name": "save_output"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "Filenames",
+ "name": "Filenames",
+ "type": "VHS_FILENAMES",
+ "links": null
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VHS_VideoCombine"
+ },
+ "widgets_values": {
+ "frame_rate": 24,
+ "loop_count": 0,
+ "filename_prefix": "ltxv-base",
+ "format": "video/h264-mp4",
+ "pix_fmt": "yuv420p",
+ "crf": 19,
+ "save_metadata": false,
+ "trim_to_audio": false,
+ "pingpong": false,
+ "save_output": false,
+ "videopreview": {
+ "hidden": false,
+ "paused": false,
+ "params": {
+ "filename": "ltxv-base_00003.mp4",
+ "subfolder": "",
+ "type": "temp",
+ "format": "video/h264-mp4",
+ "frame_rate": 24,
+ "workflow": "ltxv-base_00003.png",
+ "fullpath": "/home/michael/src/comfyui_worker_serving/src/comfyui/temp/ltxv-base_00003.mp4"
+ }
+ }
+ }
+ },
+ {
+ "id": 1507,
+ "type": "RandomNoise",
+ "pos": [
+ 3535.158203125,
+ 2604.37841796875
+ ],
+ "size": [
+ 239.2462158203125,
+ 82
+ ],
+ "flags": {},
+ "order": 10,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "noise_seed",
+ "name": "noise_seed",
+ "type": "INT",
+ "widget": {
+ "name": "noise_seed"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "NOISE",
+ "name": "NOISE",
+ "type": "NOISE",
+ "slot_index": 0,
+ "links": [
+ 5996
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.28",
+ "Node name for S&R": "RandomNoise"
+ },
+ "widgets_values": [
+ 1,
+ "fixed"
+ ]
+ },
+ {
+ "id": 1828,
+ "type": "LTXVLatentUpsamplerModelLoader",
+ "pos": [
+ 5665.14599609375,
+ 2265.11572265625
+ ],
+ "size": [
+ 349.8224792480469,
+ 113.41394805908203
+ ],
+ "flags": {},
+ "order": 11,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "upscale_model",
+ "name": "upscale_model",
+ "type": "COMBO",
+ "widget": {
+ "name": "upscale_model"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "spatial_upsample",
+ "name": "spatial_upsample",
+ "type": "BOOLEAN",
+ "widget": {
+ "name": "spatial_upsample"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "temporal_upsample",
+ "name": "temporal_upsample",
+ "type": "BOOLEAN",
+ "widget": {
+ "name": "temporal_upsample"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "UPSCALE_MODEL",
+ "name": "UPSCALE_MODEL",
+ "type": "UPSCALE_MODEL",
+ "links": [
+ 5303
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "LTXVLatentUpsamplerModelLoader"
+ },
+ "widgets_values": [
+ "ltxv-spatial-upscaler-0.9.8.safetensors",
+ true,
+ false
+ ]
+ },
+ {
+ "id": 1691,
+ "type": "LTXVLatentUpsampler",
+ "pos": [
+ 6055.61474609375,
+ 2476.571533203125
+ ],
+ "size": [
+ 235.1999969482422,
+ 66
+ ],
+ "flags": {},
+ "order": 52,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "samples",
+ "name": "samples",
+ "type": "LATENT",
+ "link": 5839
+ },
+ {
+ "localized_name": "upscale_model",
+ "name": "upscale_model",
+ "type": "UPSCALE_MODEL",
+ "link": 5303
+ },
+ {
+ "localized_name": "vae",
+ "name": "vae",
+ "type": "VAE",
+ "link": 5820
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "LATENT",
+ "name": "LATENT",
+ "type": "LATENT",
+ "links": [
+ 5971
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "LTXVLatentUpsampler"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 2091,
+ "type": "Reroute",
+ "pos": [
+ 5588.74267578125,
+ 2046.29345703125
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 35,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5831
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "VAE",
+ "links": [
+ 5820,
+ 5821
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 2089,
+ "type": "Reroute",
+ "pos": [
+ 6374.76953125,
+ 2075.138427734375
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 33,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5815
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "MODEL",
+ "links": [
+ 5898
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 2092,
+ "type": "Reroute",
+ "pos": [
+ 7487.28955078125,
+ 2057.455078125
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 43,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5821
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "VAE",
+ "links": [
+ 5823,
+ 5902
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 2093,
+ "type": "Reroute",
+ "pos": [
+ 7880.1572265625,
+ 2062.468505859375
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 46,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5823
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "VAE",
+ "links": [
+ 5874
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 2148,
+ "type": "LTXVLoopingSampler",
+ "pos": [
+ 4011.846923828125,
+ 2252.72412109375
+ ],
+ "size": [
+ 365.21484375,
+ 522
+ ],
+ "flags": {},
+ "order": 45,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "model",
+ "name": "model",
+ "type": "MODEL",
+ "link": 5994
+ },
+ {
+ "localized_name": "vae",
+ "name": "vae",
+ "type": "VAE",
+ "link": 5995
+ },
+ {
+ "localized_name": "noise",
+ "name": "noise",
+ "type": "NOISE",
+ "link": 5996
+ },
+ {
+ "localized_name": "sampler",
+ "name": "sampler",
+ "type": "SAMPLER",
+ "link": 5997
+ },
+ {
+ "localized_name": "sigmas",
+ "name": "sigmas",
+ "type": "SIGMAS",
+ "link": 5998
+ },
+ {
+ "localized_name": "guider",
+ "name": "guider",
+ "type": "GUIDER",
+ "link": 5999
+ },
+ {
+ "localized_name": "latents",
+ "name": "latents",
+ "type": "LATENT",
+ "link": 6000
+ },
+ {
+ "localized_name": "optional_cond_image",
+ "name": "optional_cond_image",
+ "shape": 7,
+ "type": "IMAGE",
+ "link": null
+ },
+ {
+ "localized_name": "optional_guiding_latents",
+ "name": "optional_guiding_latents",
+ "shape": 7,
+ "type": "LATENT",
+ "link": 6001
+ },
+ {
+ "localized_name": "optional_positive_conditionings",
+ "name": "optional_positive_conditionings",
+ "shape": 7,
+ "type": "CONDITIONING",
+ "link": 6002
+ },
+ {
+ "localized_name": "optional_negative_index_latents",
+ "name": "optional_negative_index_latents",
+ "shape": 7,
+ "type": "LATENT",
+ "link": null
+ },
+ {
+ "localized_name": "guiding_strength",
+ "name": "guiding_strength",
+ "type": "FLOAT",
+ "widget": {
+ "name": "guiding_strength"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "temporal_tile_size",
+ "name": "temporal_tile_size",
+ "type": "INT",
+ "widget": {
+ "name": "temporal_tile_size"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "temporal_overlap",
+ "name": "temporal_overlap",
+ "type": "INT",
+ "widget": {
+ "name": "temporal_overlap"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "temporal_overlap_cond_strength",
+ "name": "temporal_overlap_cond_strength",
+ "type": "FLOAT",
+ "widget": {
+ "name": "temporal_overlap_cond_strength"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "horizontal_tiles",
+ "name": "horizontal_tiles",
+ "type": "INT",
+ "widget": {
+ "name": "horizontal_tiles"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "vertical_tiles",
+ "name": "vertical_tiles",
+ "type": "INT",
+ "widget": {
+ "name": "vertical_tiles"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "spatial_overlap",
+ "name": "spatial_overlap",
+ "type": "INT",
+ "widget": {
+ "name": "spatial_overlap"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "adain_factor",
+ "name": "adain_factor",
+ "shape": 7,
+ "type": "FLOAT",
+ "widget": {
+ "name": "adain_factor"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "optional_negative_index",
+ "name": "optional_negative_index",
+ "shape": 7,
+ "type": "INT",
+ "widget": {
+ "name": "optional_negative_index"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "optional_negative_index_strength",
+ "name": "optional_negative_index_strength",
+ "shape": 7,
+ "type": "FLOAT",
+ "widget": {
+ "name": "optional_negative_index_strength"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "per_tile_seed_offsets",
+ "name": "per_tile_seed_offsets",
+ "shape": 7,
+ "type": "STRING",
+ "widget": {
+ "name": "per_tile_seed_offsets"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "per_tile_use_negative_latents",
+ "name": "per_tile_use_negative_latents",
+ "shape": 7,
+ "type": "STRING",
+ "widget": {
+ "name": "per_tile_use_negative_latents"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "denoised_output",
+ "name": "denoised_output",
+ "type": "LATENT",
+ "links": [
+ 6003,
+ 6004
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "LTXVLoopingSampler"
+ },
+ "widgets_values": [
+ 1,
+ 80,
+ 24,
+ 0.5,
+ 1,
+ 1,
+ 1,
+ 0,
+ -1,
+ 1,
+ "0",
+ "1"
+ ]
+ },
+ {
+ "id": 2147,
+ "type": "LoraLoaderModelOnly",
+ "pos": [
+ 3079.407958984375,
+ 2192.917236328125
+ ],
+ "size": [
+ 369.5658264160156,
+ 82
+ ],
+ "flags": {},
+ "order": 34,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "model",
+ "name": "model",
+ "type": "MODEL",
+ "link": 5991
+ },
+ {
+ "localized_name": "lora_name",
+ "name": "lora_name",
+ "type": "COMBO",
+ "widget": {
+ "name": "lora_name"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "strength_model",
+ "name": "strength_model",
+ "type": "FLOAT",
+ "widget": {
+ "name": "strength_model"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "MODEL",
+ "name": "MODEL",
+ "type": "MODEL",
+ "links": [
+ 5992,
+ 5994
+ ]
+ }
+ ],
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.43",
+ "Node name for S&R": "LoraLoaderModelOnly"
+ },
+ "widgets_values": [
+ "ltxv/13b/ltxv-097-ic-lora-depth-control.safetensors",
+ 1.0000000000000002
+ ]
+ },
+ {
+ "id": 2141,
+ "type": "PrimitiveInt",
+ "pos": [
+ 2603.194091796875,
+ 2755.296630859375
+ ],
+ "size": [
+ 210,
+ 82
+ ],
+ "flags": {},
+ "order": 12,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "value",
+ "name": "value",
+ "type": "INT",
+ "widget": {
+ "name": "value"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "INT",
+ "name": "INT",
+ "type": "INT",
+ "links": [
+ 5974,
+ 5983
+ ]
+ }
+ ],
+ "title": "Height",
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.43",
+ "Node name for S&R": "PrimitiveInt"
+ },
+ "widgets_values": [
+ 512,
+ "fixed"
+ ]
+ },
+ {
+ "id": 2140,
+ "type": "PrimitiveInt",
+ "pos": [
+ 2371.451416015625,
+ 2757.50048828125
+ ],
+ "size": [
+ 210,
+ 82
+ ],
+ "flags": {},
+ "order": 13,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "value",
+ "name": "value",
+ "type": "INT",
+ "widget": {
+ "name": "value"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "INT",
+ "name": "INT",
+ "type": "INT",
+ "links": [
+ 5973,
+ 5982
+ ]
+ }
+ ],
+ "title": "Width",
+ "properties": {
+ "cnr_id": "comfy-core",
+ "ver": "0.3.43",
+ "Node name for S&R": "PrimitiveInt"
+ },
+ "widgets_values": [
+ 768,
+ "fixed"
+ ]
+ },
+ {
+ "id": 2149,
+ "type": "Note",
+ "pos": [
+ 1921.96630859375,
+ 3036.942626953125
+ ],
+ "size": [
+ 264.2660827636719,
+ 194.1212615966797
+ ],
+ "flags": {},
+ "order": 14,
+ "mode": 0,
+ "inputs": [],
+ "outputs": [],
+ "properties": {},
+ "widgets_values": [
+ "If changing guiding video to pose or canny edges needs select relevant lora in the lora loader node."
+ ],
+ "color": "#432",
+ "bgcolor": "#653"
+ },
+ {
+ "id": 2144,
+ "type": "VHS_LoadVideo",
+ "pos": [
+ 2209.757568359375,
+ 3033.856689453125
+ ],
+ "size": [
+ 313.7864074707031,
+ 310
+ ],
+ "flags": {},
+ "order": 15,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "meta_batch",
+ "name": "meta_batch",
+ "shape": 7,
+ "type": "VHS_BatchManager",
+ "link": null
+ },
+ {
+ "localized_name": "vae",
+ "name": "vae",
+ "shape": 7,
+ "type": "VAE",
+ "link": null
+ },
+ {
+ "localized_name": "video",
+ "name": "video",
+ "type": "COMBO",
+ "widget": {
+ "name": "video"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "force_rate",
+ "name": "force_rate",
+ "type": "FLOAT",
+ "widget": {
+ "name": "force_rate"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "custom_width",
+ "name": "custom_width",
+ "type": "INT",
+ "widget": {
+ "name": "custom_width"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "custom_height",
+ "name": "custom_height",
+ "type": "INT",
+ "widget": {
+ "name": "custom_height"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "frame_load_cap",
+ "name": "frame_load_cap",
+ "type": "INT",
+ "widget": {
+ "name": "frame_load_cap"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "skip_first_frames",
+ "name": "skip_first_frames",
+ "type": "INT",
+ "widget": {
+ "name": "skip_first_frames"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "select_every_nth",
+ "name": "select_every_nth",
+ "type": "INT",
+ "widget": {
+ "name": "select_every_nth"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "format",
+ "name": "format",
+ "shape": 7,
+ "type": "COMBO",
+ "widget": {
+ "name": "format"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "IMAGE",
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 5981
+ ]
+ },
+ {
+ "localized_name": "frame_count",
+ "name": "frame_count",
+ "type": "INT",
+ "links": null
+ },
+ {
+ "localized_name": "audio",
+ "name": "audio",
+ "type": "AUDIO",
+ "links": null
+ },
+ {
+ "localized_name": "video_info",
+ "name": "video_info",
+ "type": "VHS_VIDEOINFO",
+ "links": null
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "VHS_LoadVideo"
+ },
+ "widgets_values": {
+ "video": "depth-surfing.mp4",
+ "force_rate": 0,
+ "custom_width": 0,
+ "custom_height": 0,
+ "frame_load_cap": 481,
+ "skip_first_frames": 0,
+ "select_every_nth": 1,
+ "format": "LTXV",
+ "choose video to upload": "image",
+ "videopreview": {
+ "hidden": false,
+ "paused": true,
+ "params": {
+ "frame_load_cap": 481,
+ "skip_first_frames": 0,
+ "force_rate": 0,
+ "filename": "depth-surfing.mp4",
+ "type": "input",
+ "format": "video/mp4",
+ "select_every_nth": 1
+ }
+ }
+ }
+ },
+ {
+ "id": 2146,
+ "type": "GetImageSizeAndCount",
+ "pos": [
+ 2905.13330078125,
+ 3033.642333984375
+ ],
+ "size": [
+ 190.86483764648438,
+ 86
+ ],
+ "flags": {},
+ "order": 30,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "image",
+ "name": "image",
+ "type": "IMAGE",
+ "link": 5988
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "image",
+ "name": "image",
+ "type": "IMAGE",
+ "links": [
+ 5989
+ ]
+ },
+ {
+ "label": "768 width",
+ "localized_name": "width",
+ "name": "width",
+ "type": "INT",
+ "links": null
+ },
+ {
+ "label": "512 height",
+ "localized_name": "height",
+ "name": "height",
+ "type": "INT",
+ "links": null
+ },
+ {
+ "label": "481 count",
+ "localized_name": "count",
+ "name": "count",
+ "type": "INT",
+ "links": [
+ 5990
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "GetImageSizeAndCount",
+ "cnr_id": "comfyui-kjnodes",
+ "ver": "1.0.8"
+ },
+ "widgets_values": []
+ },
+ {
+ "id": 2145,
+ "type": "ImageResizeKJ",
+ "pos": [
+ 2580.661865234375,
+ 3032.484619140625
+ ],
+ "size": [
+ 270,
+ 238
+ ],
+ "flags": {},
+ "order": 24,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "image",
+ "name": "image",
+ "type": "IMAGE",
+ "link": 5981
+ },
+ {
+ "localized_name": "width_input",
+ "name": "width_input",
+ "shape": 7,
+ "type": "INT",
+ "link": 5982
+ },
+ {
+ "localized_name": "height_input",
+ "name": "height_input",
+ "shape": 7,
+ "type": "INT",
+ "link": 5983
+ },
+ {
+ "localized_name": "get_image_size",
+ "name": "get_image_size",
+ "shape": 7,
+ "type": "IMAGE",
+ "link": null
+ },
+ {
+ "localized_name": "width",
+ "name": "width",
+ "type": "INT",
+ "widget": {
+ "name": "width"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "height",
+ "name": "height",
+ "type": "INT",
+ "widget": {
+ "name": "height"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "upscale_method",
+ "name": "upscale_method",
+ "type": "COMBO",
+ "widget": {
+ "name": "upscale_method"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "keep_proportion",
+ "name": "keep_proportion",
+ "type": "BOOLEAN",
+ "widget": {
+ "name": "keep_proportion"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "divisible_by",
+ "name": "divisible_by",
+ "type": "INT",
+ "widget": {
+ "name": "divisible_by"
+ },
+ "link": null
+ },
+ {
+ "localized_name": "crop",
+ "name": "crop",
+ "shape": 7,
+ "type": "COMBO",
+ "widget": {
+ "name": "crop"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "IMAGE",
+ "name": "IMAGE",
+ "type": "IMAGE",
+ "links": [
+ 5988
+ ]
+ },
+ {
+ "localized_name": "width",
+ "name": "width",
+ "type": "INT",
+ "links": null
+ },
+ {
+ "localized_name": "height",
+ "name": "height",
+ "type": "INT",
+ "links": null
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "ImageResizeKJ",
+ "cnr_id": "comfyui-kjnodes",
+ "ver": "1.0.8"
+ },
+ "widgets_values": [
+ 768,
+ 512,
+ "bilinear",
+ false,
+ 32,
+ "center"
+ ]
+ },
+ {
+ "id": 2088,
+ "type": "Reroute",
+ "pos": [
+ 2091.060302734375,
+ 2069.913330078125
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 27,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5938
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "MODEL",
+ "links": [
+ 5815,
+ 5991
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 2090,
+ "type": "Reroute",
+ "pos": [
+ 1989.3577880859375,
+ 2035.9425048828125
+ ],
+ "size": [
+ 75,
+ 26
+ ],
+ "flags": {},
+ "order": 22,
+ "mode": 0,
+ "inputs": [
+ {
+ "name": "",
+ "type": "*",
+ "link": 5818
+ }
+ ],
+ "outputs": [
+ {
+ "name": "",
+ "type": "VAE",
+ "links": [
+ 5829
+ ]
+ }
+ ],
+ "properties": {
+ "showOutputText": false,
+ "horizontal": false
+ }
+ },
+ {
+ "id": 2136,
+ "type": "MultiPromptProvider",
+ "pos": [
+ 2630.412841796875,
+ 1869.997802734375
+ ],
+ "size": [
+ 1002.2837524414062,
+ 88
+ ],
+ "flags": {},
+ "order": 19,
+ "mode": 0,
+ "inputs": [
+ {
+ "localized_name": "clip",
+ "name": "clip",
+ "type": "CLIP",
+ "link": 5964
+ },
+ {
+ "localized_name": "prompts",
+ "name": "prompts",
+ "type": "STRING",
+ "widget": {
+ "name": "prompts"
+ },
+ "link": null
+ }
+ ],
+ "outputs": [
+ {
+ "localized_name": "conditionings",
+ "name": "conditionings",
+ "type": "CONDITIONING",
+ "links": [
+ 6002
+ ]
+ }
+ ],
+ "properties": {
+ "Node name for S&R": "MultiPromptProvider"
+ },
+ "widgets_values": [
+ "ultra-realistic cinematic scene of a smiling snowboarder racing down a steep mountain slope with a massive avalanche thundering behind them |\nUltra-realistic cinematic scene of a determined jet skier carving across a stormy open ocean, massive waves crashing around them as a towering wall of water"
+ ]
+ }
+ ],
+ "links": [
+ [
+ 3365,
+ 7,
+ 0,
+ 1241,
+ 1,
+ "CONDITIONING"
+ ],
+ [
+ 3578,
+ 1335,
+ 0,
+ 1336,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 5303,
+ 1828,
+ 0,
+ 1691,
+ 1,
+ "UPSCALE_MODEL"
+ ],
+ [
+ 5363,
+ 1870,
+ 0,
+ 1335,
+ 1,
+ "VAE"
+ ],
+ [
+ 5567,
+ 1952,
+ 0,
+ 1953,
+ 0,
+ "FLOAT"
+ ],
+ [
+ 5584,
+ 1241,
+ 0,
+ 1921,
+ 1,
+ "CONDITIONING"
+ ],
+ [
+ 5585,
+ 1241,
+ 1,
+ 1921,
+ 2,
+ "CONDITIONING"
+ ],
+ [
+ 5603,
+ 38,
+ 0,
+ 7,
+ 0,
+ "CLIP"
+ ],
+ [
+ 5613,
+ 1967,
+ 0,
+ 1921,
+ 3,
+ "STG_ADVANCED_PRESET"
+ ],
+ [
+ 5641,
+ 1953,
+ 0,
+ 1949,
+ 0,
+ "SIGMAS"
+ ],
+ [
+ 5715,
+ 1241,
+ 0,
+ 2022,
+ 0,
+ "*"
+ ],
+ [
+ 5716,
+ 1241,
+ 1,
+ 2023,
+ 0,
+ "*"
+ ],
+ [
+ 5739,
+ 2037,
+ 0,
+ 1871,
+ 1,
+ "CONDITIONING"
+ ],
+ [
+ 5740,
+ 2038,
+ 0,
+ 1871,
+ 2,
+ "CONDITIONING"
+ ],
+ [
+ 5741,
+ 2022,
+ 0,
+ 2037,
+ 0,
+ "*"
+ ],
+ [
+ 5742,
+ 2023,
+ 0,
+ 2038,
+ 0,
+ "*"
+ ],
+ [
+ 5782,
+ 2072,
+ 0,
+ 2073,
+ 0,
+ "FLOAT"
+ ],
+ [
+ 5815,
+ 2088,
+ 0,
+ 2089,
+ 0,
+ "*"
+ ],
+ [
+ 5818,
+ 1896,
+ 2,
+ 2090,
+ 0,
+ "*"
+ ],
+ [
+ 5820,
+ 2091,
+ 0,
+ 1691,
+ 2,
+ "VAE"
+ ],
+ [
+ 5821,
+ 2091,
+ 0,
+ 2092,
+ 0,
+ "*"
+ ],
+ [
+ 5823,
+ 2092,
+ 0,
+ 2093,
+ 0,
+ "*"
+ ],
+ [
+ 5825,
+ 1896,
+ 2,
+ 2094,
+ 0,
+ "*"
+ ],
+ [
+ 5826,
+ 2094,
+ 0,
+ 2095,
+ 0,
+ "*"
+ ],
+ [
+ 5828,
+ 2095,
+ 0,
+ 1870,
+ 0,
+ "VAE"
+ ],
+ [
+ 5829,
+ 2090,
+ 0,
+ 2096,
+ 0,
+ "*"
+ ],
+ [
+ 5831,
+ 2096,
+ 0,
+ 2091,
+ 0,
+ "*"
+ ],
+ [
+ 5838,
+ 2101,
+ 0,
+ 2102,
+ 0,
+ "*"
+ ],
+ [
+ 5839,
+ 2102,
+ 0,
+ 1691,
+ 0,
+ "LATENT"
+ ],
+ [
+ 5873,
+ 2116,
+ 0,
+ 1871,
+ 3,
+ "STG_ADVANCED_PRESET"
+ ],
+ [
+ 5874,
+ 2093,
+ 0,
+ 2117,
+ 0,
+ "VAE"
+ ],
+ [
+ 5896,
+ 2122,
+ 0,
+ 1871,
+ 0,
+ "MODEL"
+ ],
+ [
+ 5898,
+ 2089,
+ 0,
+ 2122,
+ 0,
+ "MODEL"
+ ],
+ [
+ 5901,
+ 2122,
+ 0,
+ 2124,
+ 0,
+ "MODEL"
+ ],
+ [
+ 5902,
+ 2092,
+ 0,
+ 2124,
+ 1,
+ "VAE"
+ ],
+ [
+ 5903,
+ 1598,
+ 0,
+ 2124,
+ 2,
+ "NOISE"
+ ],
+ [
+ 5904,
+ 1926,
+ 0,
+ 2124,
+ 3,
+ "SAMPLER"
+ ],
+ [
+ 5905,
+ 2073,
+ 0,
+ 2124,
+ 4,
+ "SIGMAS"
+ ],
+ [
+ 5906,
+ 1871,
+ 0,
+ 2124,
+ 5,
+ "GUIDER"
+ ],
+ [
+ 5912,
+ 2125,
+ 0,
+ 2124,
+ 8,
+ "LATENT"
+ ],
+ [
+ 5917,
+ 2117,
+ 0,
+ 2127,
+ 0,
+ "VAE"
+ ],
+ [
+ 5918,
+ 2124,
+ 0,
+ 2127,
+ 1,
+ "LATENT"
+ ],
+ [
+ 5920,
+ 2127,
+ 0,
+ 1973,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 5938,
+ 2129,
+ 0,
+ 2088,
+ 0,
+ "*"
+ ],
+ [
+ 5941,
+ 1896,
+ 0,
+ 2129,
+ 0,
+ "*"
+ ],
+ [
+ 5961,
+ 2125,
+ 0,
+ 2124,
+ 6,
+ "LATENT"
+ ],
+ [
+ 5964,
+ 38,
+ 0,
+ 2136,
+ 0,
+ "CLIP"
+ ],
+ [
+ 5966,
+ 38,
+ 0,
+ 2137,
+ 0,
+ "CLIP"
+ ],
+ [
+ 5967,
+ 2137,
+ 0,
+ 1241,
+ 0,
+ "CONDITIONING"
+ ],
+ [
+ 5971,
+ 1691,
+ 0,
+ 2125,
+ 0,
+ "*"
+ ],
+ [
+ 5973,
+ 2140,
+ 0,
+ 2119,
+ 0,
+ "INT"
+ ],
+ [
+ 5974,
+ 2141,
+ 0,
+ 2119,
+ 1,
+ "INT"
+ ],
+ [
+ 5979,
+ 2094,
+ 0,
+ 2143,
+ 1,
+ "VAE"
+ ],
+ [
+ 5981,
+ 2144,
+ 0,
+ 2145,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 5982,
+ 2140,
+ 0,
+ 2145,
+ 1,
+ "INT"
+ ],
+ [
+ 5983,
+ 2141,
+ 0,
+ 2145,
+ 2,
+ "INT"
+ ],
+ [
+ 5988,
+ 2145,
+ 0,
+ 2146,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 5989,
+ 2146,
+ 0,
+ 2143,
+ 0,
+ "IMAGE"
+ ],
+ [
+ 5990,
+ 2146,
+ 3,
+ 2119,
+ 2,
+ "INT"
+ ],
+ [
+ 5991,
+ 2088,
+ 0,
+ 2147,
+ 0,
+ "MODEL"
+ ],
+ [
+ 5992,
+ 2147,
+ 0,
+ 1921,
+ 0,
+ "MODEL"
+ ],
+ [
+ 5994,
+ 2147,
+ 0,
+ 2148,
+ 0,
+ "MODEL"
+ ],
+ [
+ 5995,
+ 2096,
+ 0,
+ 2148,
+ 1,
+ "VAE"
+ ],
+ [
+ 5996,
+ 1507,
+ 0,
+ 2148,
+ 2,
+ "NOISE"
+ ],
+ [
+ 5997,
+ 73,
+ 0,
+ 2148,
+ 3,
+ "SAMPLER"
+ ],
+ [
+ 5998,
+ 1949,
+ 0,
+ 2148,
+ 4,
+ "SIGMAS"
+ ],
+ [
+ 5999,
+ 1921,
+ 0,
+ 2148,
+ 5,
+ "GUIDER"
+ ],
+ [
+ 6000,
+ 2119,
+ 0,
+ 2148,
+ 6,
+ "LATENT"
+ ],
+ [
+ 6001,
+ 2143,
+ 0,
+ 2148,
+ 8,
+ "LATENT"
+ ],
+ [
+ 6002,
+ 2136,
+ 0,
+ 2148,
+ 9,
+ "CONDITIONING"
+ ],
+ [
+ 6003,
+ 2148,
+ 0,
+ 1335,
+ 0,
+ "LATENT"
+ ],
+ [
+ 6004,
+ 2148,
+ 0,
+ 2101,
+ 0,
+ "*"
+ ]
+ ],
+ "groups": [
+ {
+ "id": 34,
+ "title": "Latent Upscaler",
+ "bounding": [
+ 5585.8896484375,
+ 2108.431640625,
+ 761.7763671875,
+ 493.7742614746094
+ ],
+ "color": "#a1309b",
+ "font_size": 24,
+ "flags": {},
+ "nodes": [
+ 1828,
+ 1691
+ ]
+ },
+ {
+ "id": 42,
+ "title": "Add Details",
+ "bounding": [
+ 6371.76318359375,
+ 2112.9609375,
+ 2866.58203125,
+ 1085.7049560546875
+ ],
+ "color": "#a1309b",
+ "font_size": 24,
+ "flags": {},
+ "nodes": [
+ 1926,
+ 2038,
+ 2037,
+ 2073,
+ 1598,
+ 1973,
+ 2116,
+ 2117,
+ 2072,
+ 1871,
+ 2124,
+ 2127,
+ 2122,
+ 2125
+ ]
+ },
+ {
+ "id": 48,
+ "title": "LTXV Base Video",
+ "bounding": [
+ 1902.1943359375,
+ 2103.927490234375,
+ 3663.2529296875,
+ 825.6270751953125
+ ],
+ "color": "#3f789e",
+ "font_size": 24,
+ "flags": {},
+ "nodes": [
+ 1335,
+ 1952,
+ 2101,
+ 1921,
+ 2129,
+ 2094,
+ 1241,
+ 38,
+ 1949,
+ 1953,
+ 2097,
+ 2095,
+ 73,
+ 1896,
+ 1870,
+ 2119,
+ 7,
+ 2137,
+ 2143,
+ 1967,
+ 1336,
+ 1507,
+ 2148,
+ 2147,
+ 2141,
+ 2140
+ ]
+ },
+ {
+ "id": 49,
+ "title": "Load guiding video",
+ "bounding": [
+ 1905.921630859375,
+ 2950.99853515625,
+ 1304.6558837890625,
+ 651.2169799804688
+ ],
+ "color": "#3f789e",
+ "font_size": 24,
+ "flags": {},
+ "nodes": [
+ 2149,
+ 2144,
+ 2146,
+ 2145
+ ]
+ }
+ ],
+ "config": {},
+ "extra": {
+ "ds": {
+ "scale": 0.8954302432552734,
+ "offset": [
+ -2308.495116040538,
+ -1635.1741240123174
+ ]
+ },
+ "frontendVersion": "1.17.11",
+ "VHS_latentpreview": true,
+ "VHS_latentpreviewrate": 0,
+ "VHS_MetadataImage": true,
+ "VHS_KeepIntermediate": true,
+ "prompt": {
+ "7": {
+ "inputs": {
+ "text": "low quality, worst quality, deformed, distorted, disfigured, motion smear, motion artifacts, fused fingers, bad anatomy, weird hand, ugly",
+ "clip": [
+ "38",
+ 0
+ ]
+ },
+ "class_type": "CLIPTextEncode",
+ "_meta": {
+ "title": "CLIP Text Encode (Negative Prompt)"
+ }
+ },
+ "38": {
+ "inputs": {
+ "clip_name": "t5xxl_fp16.safetensors",
+ "type": "ltxv",
+ "device": "default"
+ },
+ "class_type": "CLIPLoader",
+ "_meta": {
+ "title": "Load CLIP"
+ }
+ },
+ "73": {
+ "inputs": {
+ "sampler_name": "euler_ancestral"
+ },
+ "class_type": "KSamplerSelect",
+ "_meta": {
+ "title": "KSamplerSelect"
+ }
+ },
+ "1241": {
+ "inputs": {
+ "frame_rate": 24.000000000000004,
+ "positive": [
+ "2137",
+ 0
+ ],
+ "negative": [
+ "7",
+ 0
+ ]
+ },
+ "class_type": "LTXVConditioning",
+ "_meta": {
+ "title": "LTXVConditioning"
+ }
+ },
+ "1335": {
+ "inputs": {
+ "samples": [
+ "2148",
+ 0
+ ],
+ "vae": [
+ "1870",
+ 0
+ ]
+ },
+ "class_type": "VAEDecode",
+ "_meta": {
+ "title": "VAE Decode"
+ }
+ },
+ "1336": {
+ "inputs": {
+ "frame_rate": 24,
+ "loop_count": 0,
+ "filename_prefix": "ltxv-base",
+ "format": "video/h264-mp4",
+ "pix_fmt": "yuv420p",
+ "crf": 19,
+ "save_metadata": false,
+ "trim_to_audio": false,
+ "pingpong": false,
+ "save_output": false,
+ "images": [
+ "1335",
+ 0
+ ]
+ },
+ "class_type": "VHS_VideoCombine",
+ "_meta": {
+ "title": "Video Combine π₯π
₯π
π
’"
+ }
+ },
+ "1507": {
+ "inputs": {
+ "noise_seed": 1
+ },
+ "class_type": "RandomNoise",
+ "_meta": {
+ "title": "RandomNoise"
+ }
+ },
+ "1598": {
+ "inputs": {
+ "noise_seed": 1625
+ },
+ "class_type": "RandomNoise",
+ "_meta": {
+ "title": "RandomNoise"
+ }
+ },
+ "1691": {
+ "inputs": {
+ "samples": [
+ "2148",
+ 0
+ ],
+ "upscale_model": [
+ "1828",
+ 0
+ ],
+ "vae": [
+ "1896",
+ 2
+ ]
+ },
+ "class_type": "LTXVLatentUpsampler",
+ "_meta": {
+ "title": "π
π
£π
§ LTXV Latent Upsampler"
+ }
+ },
+ "1828": {
+ "inputs": {
+ "upscale_model": "ltxv-spatial-upscaler-0.9.8.safetensors",
+ "spatial_upsample": true,
+ "temporal_upsample": false
+ },
+ "class_type": "LTXVLatentUpsamplerModelLoader",
+ "_meta": {
+ "title": "π
π
£π
§ LTXV Latent Upsampler Model Loader"
+ }
+ },
+ "1870": {
+ "inputs": {
+ "timestep": 0.05000000000000001,
+ "scale": 0.025000000000000005,
+ "seed": 42,
+ "vae": [
+ "1896",
+ 2
+ ]
+ },
+ "class_type": "Set VAE Decoder Noise",
+ "_meta": {
+ "title": "π
π
£π
§ Set VAE Decoder Noise"
+ }
+ },
+ "1871": {
+ "inputs": {
+ "skip_steps_sigma_threshold": 0.9970000000000002,
+ "cfg_star_rescale": true,
+ "sigmas": "1",
+ "cfg_values": "1",
+ "stg_scale_values": "0",
+ "stg_rescale_values": "1",
+ "stg_layers_indices": "[42]",
+ "model": [
+ "2122",
+ 0
+ ],
+ "positive": [
+ "1241",
+ 0
+ ],
+ "negative": [
+ "1241",
+ 1
+ ],
+ "preset": [
+ "2116",
+ 0
+ ]
+ },
+ "class_type": "STGGuiderAdvanced",
+ "_meta": {
+ "title": "π
π
£π
§ STG Guider Advanced"
+ }
+ },
+ "1896": {
+ "inputs": {
+ "ckpt_name": "ltxv-13b-0.9.8-distilled.safetensors"
+ },
+ "class_type": "CheckpointLoaderSimple",
+ "_meta": {
+ "title": "Load Checkpoint"
+ }
+ },
+ "1921": {
+ "inputs": {
+ "skip_steps_sigma_threshold": 0.9970000000000002,
+ "cfg_star_rescale": true,
+ "sigmas": "1",
+ "cfg_values": "1",
+ "stg_scale_values": "0,0,0,0,0,0",
+ "stg_rescale_values": "1",
+ "stg_layers_indices": "[25]",
+ "model": [
+ "2147",
+ 0
+ ],
+ "positive": [
+ "1241",
+ 0
+ ],
+ "negative": [
+ "1241",
+ 1
+ ],
+ "preset": [
+ "1967",
+ 0
+ ]
+ },
+ "class_type": "STGGuiderAdvanced",
+ "_meta": {
+ "title": "π
π
£π
§ STG Guider Advanced"
+ }
+ },
+ "1926": {
+ "inputs": {
+ "sampler_name": "euler_ancestral"
+ },
+ "class_type": "KSamplerSelect",
+ "_meta": {
+ "title": "KSamplerSelect"
+ }
+ },
+ "1949": {
+ "inputs": {
+ "sigmas": [
+ "1953",
+ 0
+ ]
+ },
+ "class_type": "PrintSigmas",
+ "_meta": {
+ "title": "PrintSigmas"
+ }
+ },
+ "1952": {
+ "inputs": {
+ "string": "1.0000, 0.9937, 0.9875, 0.9812, 0.9750, 0.9094, 0.7250, 0.4219, 0.0\n"
+ },
+ "class_type": "StringToFloatList",
+ "_meta": {
+ "title": "String to Float List"
+ }
+ },
+ "1953": {
+ "inputs": {
+ "float_list": [
+ "1952",
+ 0
+ ]
+ },
+ "class_type": "FloatToSigmas",
+ "_meta": {
+ "title": "Float To Sigmas"
+ }
+ },
+ "1967": {
+ "inputs": {
+ "preset": "13b Distilled"
+ },
+ "class_type": "STGAdvancedPresets",
+ "_meta": {
+ "title": "π
π
£π
§ STG Advanced Presets"
+ }
+ },
+ "1973": {
+ "inputs": {
+ "frame_rate": 24,
+ "loop_count": 0,
+ "filename_prefix": "ltxv-ic-lora",
+ "format": "video/h264-mp4",
+ "pix_fmt": "yuv420p",
+ "crf": 19,
+ "save_metadata": true,
+ "trim_to_audio": false,
+ "pingpong": false,
+ "save_output": true,
+ "images": [
+ "2127",
+ 0
+ ]
+ },
+ "class_type": "VHS_VideoCombine",
+ "_meta": {
+ "title": "Video Combine π₯π
₯π
π
’"
+ }
+ },
+ "2072": {
+ "inputs": {
+ "string": "0.99, 0.9094, 0.0"
+ },
+ "class_type": "StringToFloatList",
+ "_meta": {
+ "title": "String to Float List"
+ }
+ },
+ "2073": {
+ "inputs": {
+ "float_list": [
+ "2072",
+ 0
+ ]
+ },
+ "class_type": "FloatToSigmas",
+ "_meta": {
+ "title": "Float To Sigmas"
+ }
+ },
+ "2116": {
+ "inputs": {
+ "preset": "13b Distilled"
+ },
+ "class_type": "STGAdvancedPresets",
+ "_meta": {
+ "title": "π
π
£π
§ STG Advanced Presets"
+ }
+ },
+ "2117": {
+ "inputs": {
+ "timestep": 0.05,
+ "scale": 0.025,
+ "seed": 42,
+ "vae": [
+ "1896",
+ 2
+ ]
+ },
+ "class_type": "Set VAE Decoder Noise",
+ "_meta": {
+ "title": "π
π
£π
§ Set VAE Decoder Noise"
+ }
+ },
+ "2119": {
+ "inputs": {
+ "width": [
+ "2140",
+ 0
+ ],
+ "height": [
+ "2141",
+ 0
+ ],
+ "length": [
+ "2146",
+ 3
+ ],
+ "batch_size": 1
+ },
+ "class_type": "EmptyLTXVLatentVideo",
+ "_meta": {
+ "title": "EmptyLTXVLatentVideo"
+ }
+ },
+ "2122": {
+ "inputs": {
+ "lora_name": "ltx-video-ICLoRA-detailer-13B-0.9.8",
+ "strength_model": 1,
+ "model": [
+ "1896",
+ 0
+ ]
+ },
+ "class_type": "LoraLoaderModelOnly",
+ "_meta": {
+ "title": "LoraLoaderModelOnly"
+ }
+ },
+ "2124": {
+ "inputs": {
+ "guiding_strength": 1,
+ "temporal_tile_size": 80,
+ "temporal_overlap": 24,
+ "temporal_overlap_cond_strength": 0.5,
+ "horizontal_tiles": 1,
+ "vertical_tiles": 1,
+ "spatial_overlap": 1,
+ "adain_factor": 0,
+ "optional_negative_index": -1,
+ "optional_negative_index_strength": 1,
+ "per_tile_seed_offsets": "0",
+ "per_tile_use_negative_latents": "1",
+ "model": [
+ "2122",
+ 0
+ ],
+ "vae": [
+ "1896",
+ 2
+ ],
+ "noise": [
+ "1598",
+ 0
+ ],
+ "sampler": [
+ "1926",
+ 0
+ ],
+ "sigmas": [
+ "2073",
+ 0
+ ],
+ "guider": [
+ "1871",
+ 0
+ ],
+ "latents": [
+ "1691",
+ 0
+ ],
+ "optional_guiding_latents": [
+ "1691",
+ 0
+ ]
+ },
+ "class_type": "LTXVLoopingSampler",
+ "_meta": {
+ "title": "π
π
£π
§ LTXV Looping Sampler"
+ }
+ },
+ "2127": {
+ "inputs": {
+ "horizontal_tiles": 2,
+ "vertical_tiles": 2,
+ "overlap": 5,
+ "last_frame_fix": false,
+ "vae": [
+ "2117",
+ 0
+ ],
+ "latents": [
+ "2124",
+ 0
+ ]
+ },
+ "class_type": "LTXVTiledVAEDecode",
+ "_meta": {
+ "title": "π
π
£π
§ LTXV Tiled VAE Decode"
+ }
+ },
+ "2136": {
+ "inputs": {
+ "prompts": "ultra-realistic cinematic scene of a smiling snowboarder racing down a steep mountain slope with a massive avalanche thundering behind them |\nUltra-realistic cinematic scene of a determined jet skier carving across a stormy open ocean, massive waves crashing around them as a towering wall of water",
+ "clip": [
+ "38",
+ 0
+ ]
+ },
+ "class_type": "MultiPromptProvider",
+ "_meta": {
+ "title": "π
π
£π
§ Multi Prompt Provider"
+ }
+ },
+ "2137": {
+ "inputs": {
+ "text": "",
+ "clip": [
+ "38",
+ 0
+ ]
+ },
+ "class_type": "CLIPTextEncode",
+ "_meta": {
+ "title": "CLIP Text Encode (Prompt)"
+ }
+ },
+ "2140": {
+ "inputs": {
+ "value": 768
+ },
+ "class_type": "PrimitiveInt",
+ "_meta": {
+ "title": "Width"
+ }
+ },
+ "2141": {
+ "inputs": {
+ "value": 512
+ },
+ "class_type": "PrimitiveInt",
+ "_meta": {
+ "title": "Height"
+ }
+ },
+ "2143": {
+ "inputs": {
+ "pixels": [
+ "2146",
+ 0
+ ],
+ "vae": [
+ "1896",
+ 2
+ ]
+ },
+ "class_type": "VAEEncode",
+ "_meta": {
+ "title": "VAE Encode"
+ }
+ },
+ "2144": {
+ "inputs": {
+ "video": "depth-surfing.mp4",
+ "force_rate": 0,
+ "custom_width": 0,
+ "custom_height": 0,
+ "frame_load_cap": 481,
+ "skip_first_frames": 0,
+ "select_every_nth": 1,
+ "format": "LTXV"
+ },
+ "class_type": "VHS_LoadVideo",
+ "_meta": {
+ "title": "Load Video (Upload) π₯π
₯π
π
’"
+ }
+ },
+ "2145": {
+ "inputs": {
+ "width": 768,
+ "height": 512,
+ "upscale_method": "bilinear",
+ "keep_proportion": false,
+ "divisible_by": 32,
+ "crop": "center",
+ "image": [
+ "2144",
+ 0
+ ],
+ "width_input": [
+ "2140",
+ 0
+ ],
+ "height_input": [
+ "2141",
+ 0
+ ]
+ },
+ "class_type": "ImageResizeKJ",
+ "_meta": {
+ "title": "Resize Image"
+ }
+ },
+ "2146": {
+ "inputs": {
+ "image": [
+ "2145",
+ 0
+ ]
+ },
+ "class_type": "GetImageSizeAndCount",
+ "_meta": {
+ "title": "Get Image Size & Count"
+ }
+ },
+ "2147": {
+ "inputs": {
+ "lora_name": "ltxv/13b/ltxv-097-ic-lora-depth-control.safetensors",
+ "strength_model": 1.0000000000000002,
+ "model": [
+ "1896",
+ 0
+ ]
+ },
+ "class_type": "LoraLoaderModelOnly",
+ "_meta": {
+ "title": "LoraLoaderModelOnly"
+ }
+ },
+ "2148": {
+ "inputs": {
+ "guiding_strength": 1,
+ "temporal_tile_size": 80,
+ "temporal_overlap": 24,
+ "temporal_overlap_cond_strength": 0.5,
+ "horizontal_tiles": 1,
+ "vertical_tiles": 1,
+ "spatial_overlap": 1,
+ "adain_factor": 0,
+ "optional_negative_index": -1,
+ "optional_negative_index_strength": 1,
+ "per_tile_seed_offsets": "0",
+ "per_tile_use_negative_latents": "1",
+ "model": [
+ "2147",
+ 0
+ ],
+ "vae": [
+ "1896",
+ 2
+ ],
+ "noise": [
+ "1507",
+ 0
+ ],
+ "sampler": [
+ "73",
+ 0
+ ],
+ "sigmas": [
+ "1949",
+ 0
+ ],
+ "guider": [
+ "1921",
+ 0
+ ],
+ "latents": [
+ "2119",
+ 0
+ ],
+ "optional_guiding_latents": [
+ "2143",
+ 0
+ ],
+ "optional_positive_conditionings": [
+ "2136",
+ 0
+ ]
+ },
+ "class_type": "LTXVLoopingSampler",
+ "_meta": {
+ "title": "π
π
£π
§ LTXV Looping Sampler"
+ }
+ }
+ },
+ "comfy_fork_version": "develop@ba9dad4",
+ "workspace_info": {
+ "id": "elBQFQknIoLYTEwIloQuw"
+ },
+ "node_versions": {
+ "comfy-core": "0.3.20"
+ }
+ },
+ "version": 0.4
+}
diff --git a/film_grain.py b/film_grain.py
index 67d6dd9..3ebe3b0 100644
--- a/film_grain.py
+++ b/film_grain.py
@@ -37,20 +37,24 @@ class LTXVFilmGrain:
) -> Tuple[torch.Tensor]:
if grain_intensity < 0 or grain_intensity > 1:
raise ValueError("Grain intensity must be between 0 and 1.")
-
device = comfy.model_management.get_torch_device()
images = images.to(device)
- grain = torch.randn_like(images, device=device)
- grain[:, :, :, 0] *= 2
- grain[:, :, :, 2] *= 3
- grain = grain * saturation + grain[:, :, :, 1].unsqueeze(3).repeat(
- 1, 1, 1, 3
- ) * (1 - saturation)
+ grain = torch.zeros(images[0:1].shape, device=device)
- # Blend the grain with the image
- noised_images = images + grain_intensity * grain
- noised_images.clamp_(0, 1)
- noised_images = noised_images.to(comfy.model_management.intermediate_device())
+ # Process images in-place to reduce memory usage
+ for i in range(images.shape[0]):
+ # Generate grain for single image
+ torch.randn(grain.shape, device=device, out=grain)
+ grain[:, :, :, 0] *= 2
+ grain[:, :, :, 2] *= 3
+ grain = grain * saturation + grain[:, :, :, 1].unsqueeze(3).expand(
+ -1, -1, -1, 3
+ ) * (1 - saturation)
- return (noised_images,)
+ # Blend the grain with the image in-place
+ images[i : i + 1].add_(grain_intensity * grain)
+ images[i : i + 1].clamp_(0, 1)
+
+ images = images.to(comfy.model_management.intermediate_device())
+ return (images,)
diff --git a/looping_sampler.py b/looping_sampler.py
new file mode 100644
index 0000000..78409ce
--- /dev/null
+++ b/looping_sampler.py
@@ -0,0 +1,726 @@
+import copy
+from dataclasses import dataclass
+
+import comfy
+import torch
+
+from .easy_samplers import LTXVBaseSampler, LTXVExtendSampler, LTXVInContextSampler
+from .latents import LTXVSelectLatents
+from .nodes_registry import comfy_node
+
+
+@dataclass
+class TileConfig:
+ """Configuration for spatial tile processing."""
+
+ tile_latents: dict
+ tile_guiding_latents: dict
+ tile_negative_index_latents: dict
+ tile_cond_image: torch.Tensor
+ tile_height: int
+ tile_width: int
+ v: int
+ h: int
+ vertical_tiles: int
+ horizontal_tiles: int
+ first_seed: int
+
+
+@dataclass
+class SamplingConfig:
+ """Configuration for sampling parameters."""
+
+ temporal_tile_size: int
+ temporal_overlap: int
+ temporal_overlap_cond_strength: float
+ guiding_strength: float
+ adain_factor: float
+ optional_negative_index: int
+ optional_negative_index_strength: float
+ optional_positive_conditionings: list
+ time_scale_factor: int
+ width_scale_factor: int
+ height_scale_factor: int
+ per_tile_seed_offsets: list
+ per_tile_use_negative_latents: list
+
+
+@dataclass
+class ModelConfig:
+ """Configuration for model components."""
+
+ model: object
+ vae: object
+ noise: object
+ sampler: object
+ sigmas: object
+ guider: object
+
+
+@comfy_node(
+ name="LTXVLoopingSampler",
+)
+class LTXVLoopingSampler:
+
+ @classmethod
+ def INPUT_TYPES(s):
+ return {
+ "required": {
+ "model": ("MODEL", {"tooltip": "The diffusion model to use."}),
+ "vae": ("VAE", {"tooltip": "The VAE to use."}),
+ "noise": ("NOISE", {"tooltip": "The noise to use."}),
+ "sampler": ("SAMPLER", {"tooltip": "The sampler to use."}),
+ "sigmas": ("SIGMAS", {"tooltip": "The sigmas to use."}),
+ "guider": (
+ "GUIDER",
+ {"tooltip": "The guider to use, must be a STGGuiderAdvanced."},
+ ),
+ "latents": (
+ "LATENT",
+ {
+ "tooltip": "The latents to use for creating the long video, they can be guiding latents or empty latents when no guidance is used."
+ },
+ ),
+ "guiding_strength": (
+ "FLOAT",
+ {
+ "default": 1.0,
+ "min": 0.0,
+ "max": 1.0,
+ "step": 0.01,
+ "tooltip": "The strength of the conditioning on guiding latents, when optional_guiding_latents are provided.",
+ },
+ ),
+ "temporal_tile_size": (
+ "INT",
+ {
+ "default": 80,
+ "min": 24,
+ "max": 1000,
+ "step": 8,
+ "tooltip": "The size of the temporal tile to use for the sampling, in pixel frames, in addition to the overlapping region.",
+ },
+ ),
+ "temporal_overlap": (
+ "INT",
+ {
+ "default": 24,
+ "min": 16,
+ "max": 80,
+ "step": 8,
+ "tooltip": "The overlap between the temporal tiles, in pixel frames.",
+ },
+ ),
+ "temporal_overlap_cond_strength": (
+ "FLOAT",
+ {
+ "default": 0.5,
+ "min": 0.0,
+ "max": 1.0,
+ "step": 0.01,
+ "tooltip": "The strength of the conditioning on the latents from the previous temporal tile.",
+ },
+ ),
+ "horizontal_tiles": (
+ "INT",
+ {
+ "default": 1,
+ "min": 1,
+ "max": 6,
+ "tooltip": "Number of horizontal spatial tiles.",
+ },
+ ),
+ "vertical_tiles": (
+ "INT",
+ {
+ "default": 1,
+ "min": 1,
+ "max": 6,
+ "tooltip": "Number of vertical spatial tiles.",
+ },
+ ),
+ "spatial_overlap": (
+ "INT",
+ {
+ "default": 1,
+ "min": 1,
+ "max": 8,
+ "tooltip": "Overlap between spatial tiles.",
+ },
+ ),
+ },
+ "optional": {
+ "optional_cond_image": (
+ "IMAGE",
+ {
+ "tooltip": "The image to use for conditioning the first frame in the video (i2v setup). If not provided, the first frame will be unconditioned (t2v setup). The image will be resized to the size of the first frame."
+ },
+ ),
+ "optional_guiding_latents": (
+ "LATENT",
+ {
+ "tooltip": "The latents to use for guiding the sampling, typically with an IC-LoRA."
+ },
+ ),
+ "adain_factor": (
+ "FLOAT",
+ {
+ "default": 0.0,
+ "min": 0.0,
+ "max": 1.0,
+ "step": 0.01,
+ "tooltip": "The strength of the AdaIn operation used to fix the statistics of each new generated temporal tile, to prevent accumulated oversaturation.",
+ },
+ ),
+ "optional_positive_conditionings": (
+ "CONDITIONING",
+ {
+ "tooltip": "Optional way to provide changing positive prompts, one per temporal tile, using the MultiPromptProvider node."
+ },
+ ),
+ "optional_negative_index_latents": (
+ "LATENT",
+ {
+ "tooltip": "Special optional latents to condition on a negative index before each new temporal tile as a way to provide long term context during video generation."
+ },
+ ),
+ },
+ }
+
+ RETURN_TYPES = ("LATENT",)
+ RETURN_NAMES = ("denoised_output",)
+
+ FUNCTION = "sample"
+ CATEGORY = "sampling"
+
+ def _extract_latent_spatial_tile(self, latent_dict, v_start, v_end, h_start, h_end):
+ """Extract spatial tile from a latent dictionary."""
+ if latent_dict is None:
+ return None
+ tile_samples = latent_dict["samples"][:, :, :, v_start:v_end, h_start:h_end]
+ return {"samples": tile_samples}
+
+ def _extract_spatial_tile(
+ self,
+ samples,
+ optional_guiding_latents,
+ optional_negative_index_latents,
+ optional_cond_image,
+ v_start,
+ v_end,
+ h_start,
+ h_end,
+ height_scale_factor,
+ width_scale_factor,
+ ):
+ """Extract spatial tiles from all inputs for a given spatial region."""
+ # Extract spatial tile from latents
+ tile_latents = self._extract_latent_spatial_tile(
+ {"samples": samples}, v_start, v_end, h_start, h_end
+ )
+
+ # Extract spatial tile from guiding latents if provided
+ tile_guiding_latents = self._extract_latent_spatial_tile(
+ optional_guiding_latents, v_start, v_end, h_start, h_end
+ )
+
+ # Extract spatial tile from negative index latents if provided
+ tile_negative_index_latents = self._extract_latent_spatial_tile(
+ optional_negative_index_latents, v_start, v_end, h_start, h_end
+ )
+
+ # Extract spatial tile from conditioning image if provided
+ tile_cond_image = None
+ if optional_cond_image is not None:
+ # Scale coordinates for image
+ img_h_start = v_start * height_scale_factor
+ img_h_end = v_end * height_scale_factor
+ img_w_start = h_start * width_scale_factor
+ img_w_end = h_end * width_scale_factor
+
+ # Extract image tile
+ tile_cond_image = optional_cond_image[
+ :, img_h_start:img_h_end, img_w_start:img_w_end, :
+ ]
+
+ return (
+ tile_latents,
+ tile_guiding_latents,
+ tile_negative_index_latents,
+ tile_cond_image,
+ )
+
+ def _process_temporal_chunks(
+ self,
+ tile_config: TileConfig,
+ sampling_config: SamplingConfig,
+ model_config: ModelConfig,
+ ):
+ """Process all temporal chunks for a single spatial tile."""
+ chunk_index = 0
+ tile_out_latents = None
+ first_tile_out_latents = None
+
+ for i_temporal_tile, (start_index, end_index) in enumerate(
+ zip(
+ range(
+ 0,
+ tile_config.tile_latents["samples"].shape[2]
+ + sampling_config.temporal_tile_size
+ - sampling_config.temporal_overlap,
+ sampling_config.temporal_tile_size
+ - sampling_config.temporal_overlap,
+ ),
+ range(
+ sampling_config.temporal_tile_size,
+ tile_config.tile_latents["samples"].shape[2]
+ + sampling_config.temporal_tile_size
+ - sampling_config.temporal_overlap,
+ sampling_config.temporal_tile_size
+ - sampling_config.temporal_overlap,
+ ),
+ )
+ ):
+ if tile_config.tile_guiding_latents is not None:
+ guiding_latent_chunk = LTXVSelectLatents().select_latents(
+ tile_config.tile_guiding_latents,
+ start_index,
+ min(
+ end_index - 1,
+ tile_config.tile_guiding_latents["samples"].shape[2] - 1,
+ ),
+ )[0]
+ else:
+ guiding_latent_chunk = None
+
+ latent_chunk = LTXVSelectLatents().select_latents(
+ tile_config.tile_latents,
+ start_index,
+ min(end_index - 1, tile_config.tile_latents["samples"].shape[2] - 1),
+ )[0]
+
+ print(
+ "Processing temporal chunk at index",
+ start_index,
+ "to",
+ min(end_index - 1, tile_config.tile_latents["samples"].shape[2] - 1),
+ )
+
+ seed_offset = self._get_per_tile_value(
+ sampling_config.per_tile_seed_offsets, i_temporal_tile
+ )
+ use_negative_latents = self._get_per_tile_value(
+ sampling_config.per_tile_use_negative_latents, i_temporal_tile
+ )
+
+ model_config.noise.seed = self._calculate_tile_seed(
+ tile_config.first_seed,
+ start_index,
+ tile_config.vertical_tiles,
+ tile_config.horizontal_tiles,
+ tile_config.v,
+ tile_config.h,
+ seed_offset,
+ )
+
+ # Handle optional positive conditionings
+ new_guider = self._prepare_guider_for_chunk(
+ model_config.guider,
+ sampling_config.optional_positive_conditionings,
+ chunk_index,
+ )
+
+ if start_index == 0:
+ if tile_config.tile_guiding_latents is not None:
+ tile_out_latents = LTXVInContextSampler().sample(
+ vae=model_config.vae,
+ guider=new_guider,
+ sampler=model_config.sampler,
+ sigmas=model_config.sigmas,
+ noise=model_config.noise,
+ guiding_latents=guiding_latent_chunk,
+ optional_cond_image=tile_config.tile_cond_image,
+ num_frames=-1,
+ optional_negative_index_latents=(
+ tile_config.tile_negative_index_latents
+ if use_negative_latents
+ else None
+ ),
+ optional_negative_index=sampling_config.optional_negative_index,
+ optional_negative_index_strength=sampling_config.optional_negative_index_strength,
+ optional_initialization_latents=latent_chunk,
+ optional_cond_strength=sampling_config.temporal_overlap_cond_strength,
+ optional_guiding_strength=sampling_config.guiding_strength,
+ )[0]
+ else:
+ tile_out_latents = LTXVBaseSampler().sample(
+ model=model_config.model,
+ vae=model_config.vae,
+ noise=model_config.noise,
+ sampler=model_config.sampler,
+ sigmas=model_config.sigmas,
+ guider=new_guider,
+ num_frames=(
+ min(
+ sampling_config.temporal_tile_size,
+ tile_config.tile_latents["samples"].shape[2],
+ )
+ - 1
+ )
+ * sampling_config.time_scale_factor
+ + 1,
+ width=tile_config.tile_width
+ * sampling_config.width_scale_factor,
+ height=tile_config.tile_height
+ * sampling_config.height_scale_factor,
+ optional_cond_images=tile_config.tile_cond_image,
+ optional_cond_indices="0",
+ crop="center",
+ crf=30,
+ strength=sampling_config.temporal_overlap_cond_strength,
+ optional_negative_index_latents=(
+ tile_config.tile_negative_index_latents
+ if use_negative_latents
+ else None
+ ),
+ optional_negative_index=sampling_config.optional_negative_index,
+ optional_negative_index_strength=sampling_config.optional_negative_index_strength,
+ optional_initialization_latents=latent_chunk,
+ )[0]
+ first_tile_out_latents = copy.deepcopy(tile_out_latents)
+ else:
+ tile_out_latents = LTXVExtendSampler().sample(
+ model=model_config.model,
+ vae=model_config.vae,
+ sampler=model_config.sampler,
+ sigmas=model_config.sigmas,
+ noise=model_config.noise,
+ latents=tile_out_latents,
+ num_new_frames=(
+ latent_chunk["samples"].shape[2]
+ - sampling_config.temporal_overlap
+ )
+ * sampling_config.time_scale_factor,
+ frame_overlap=sampling_config.temporal_overlap
+ * sampling_config.time_scale_factor,
+ guider=new_guider,
+ strength=sampling_config.temporal_overlap_cond_strength,
+ guiding_strength=sampling_config.guiding_strength,
+ optional_guiding_latents=guiding_latent_chunk,
+ optional_reference_latents=first_tile_out_latents,
+ adain_factor=sampling_config.adain_factor,
+ optional_negative_index_latents=(
+ tile_config.tile_negative_index_latents
+ if use_negative_latents
+ else None
+ ),
+ optional_negative_index=sampling_config.optional_negative_index,
+ optional_negative_index_strength=sampling_config.optional_negative_index_strength,
+ optional_initialization_latents=latent_chunk,
+ )[0]
+
+ chunk_index += 1
+
+ return tile_out_latents
+
+ def _create_spatial_weights(
+ self, tile_samples, v, h, horizontal_tiles, vertical_tiles, spatial_overlap
+ ):
+ """Create blending weights for spatial tiles."""
+ tile_weights = torch.ones_like(tile_samples, device=tile_samples.device)
+
+ # Apply horizontal blending weights
+ if h > 0: # Left overlap
+ h_blend = torch.linspace(0, 1, spatial_overlap, device=tile_samples.device)
+ tile_weights[:, :, :, :, :spatial_overlap] *= h_blend.view(1, 1, 1, 1, -1)
+ if h < horizontal_tiles - 1: # Right overlap
+ h_blend = torch.linspace(1, 0, spatial_overlap, device=tile_samples.device)
+ tile_weights[:, :, :, :, -spatial_overlap:] *= h_blend.view(1, 1, 1, 1, -1)
+
+ # Apply vertical blending weights
+ if v > 0: # Top overlap
+ v_blend = torch.linspace(0, 1, spatial_overlap, device=tile_samples.device)
+ tile_weights[:, :, :, :spatial_overlap, :] *= v_blend.view(1, 1, 1, -1, 1)
+ if v < vertical_tiles - 1: # Bottom overlap
+ v_blend = torch.linspace(1, 0, spatial_overlap, device=tile_samples.device)
+ tile_weights[:, :, :, -spatial_overlap:, :] *= v_blend.view(1, 1, 1, -1, 1)
+
+ return tile_weights
+
+ def _calculate_tile_seed(
+ self,
+ first_seed,
+ start_index,
+ vertical_tiles,
+ horizontal_tiles,
+ v,
+ h,
+ seed_offset,
+ ):
+ """Calculate the seed value for a specific temporal and spatial tile."""
+ return (
+ first_seed
+ + start_index * (vertical_tiles * horizontal_tiles)
+ + v * horizontal_tiles
+ + h
+ + seed_offset
+ )
+
+ def _get_per_tile_value(self, value_list, tile_index):
+ """Get a value from a per-tile configuration list, using the last value if the list is shorter."""
+ return value_list[min(tile_index, len(value_list) - 1)]
+
+ def _parse_per_tile_config(self, config_string, default_value, converter_func):
+ """Parse a comma-separated per-tile configuration string into a list with type conversion."""
+ if config_string == "":
+ config_string = default_value
+ return [converter_func(item.strip()) for item in config_string.split(",")]
+
+ def _prepare_guider_for_chunk(
+ self, guider, optional_positive_conditionings, chunk_index
+ ):
+ """Prepare the guider for a specific chunk, handling optional positive conditionings."""
+ if optional_positive_conditionings is not None:
+ new_guider = copy.copy(guider)
+ positive, negative = guider.raw_conds
+ # Use the conditioning at chunk_index, or the last one if we've run out
+ conditioning_index = min(
+ chunk_index, len(optional_positive_conditionings) - 1
+ )
+ new_guider.set_conds(
+ optional_positive_conditionings[conditioning_index],
+ negative,
+ )
+ new_guider.raw_conds = (
+ optional_positive_conditionings[conditioning_index],
+ negative,
+ )
+ return new_guider
+ else:
+ return guider
+
+ def sample(
+ self,
+ model,
+ vae,
+ noise,
+ sampler,
+ sigmas,
+ guider,
+ latents,
+ guiding_strength,
+ adain_factor,
+ temporal_tile_size,
+ temporal_overlap,
+ temporal_overlap_cond_strength,
+ horizontal_tiles,
+ vertical_tiles,
+ spatial_overlap,
+ optional_cond_image=None,
+ optional_guiding_latents=None,
+ optional_negative_index_latents=None,
+ optional_negative_index=-1,
+ optional_negative_index_strength=1.0,
+ optional_positive_conditionings=None,
+ per_tile_seed_offsets="0",
+ per_tile_use_negative_latents="1",
+ ):
+
+ # Get dimensions and prepare for spatial tiling
+ samples = latents["samples"]
+ batch, channels, frames, height, width = samples.shape
+ time_scale_factor, width_scale_factor, height_scale_factor = (
+ vae.downscale_index_formula
+ )
+ temporal_tile_size = temporal_tile_size // time_scale_factor
+ temporal_overlap = temporal_overlap // time_scale_factor
+ first_seed = noise.seed
+
+ per_tile_seed_offsets = self._parse_per_tile_config(
+ per_tile_seed_offsets, "0", int
+ )
+ per_tile_use_negative_latents = self._parse_per_tile_config(
+ per_tile_use_negative_latents, "1", lambda x: bool(int(x))
+ )
+
+ if optional_guiding_latents is not None:
+ assert (
+ latents["samples"].shape[2]
+ == optional_guiding_latents["samples"].shape[2]
+ ), "The number of frames in the latents and optional_guiding_latents must be the same"
+
+ # Calculate tile sizes with overlap
+ base_tile_height = (
+ height + (vertical_tiles - 1) * spatial_overlap
+ ) // vertical_tiles
+ base_tile_width = (
+ width + (horizontal_tiles - 1) * spatial_overlap
+ ) // horizontal_tiles
+
+ # Initialize output tensor and weight tensor
+ final_output = torch.zeros_like(samples, device=samples.device)
+ weights = torch.zeros_like(samples, device=samples.device)
+
+ if optional_cond_image is not None:
+ img_height = height * height_scale_factor
+ img_width = width * width_scale_factor
+ optional_cond_image = comfy.utils.common_upscale(
+ optional_cond_image.movedim(-1, 1),
+ img_width,
+ img_height,
+ "bicubic",
+ crop="center",
+ ).movedim(1, -1)
+ img_batch, img_height, img_width, img_channels = optional_cond_image.shape
+
+ # Process each spatial tile
+ for v in range(vertical_tiles):
+ for h in range(horizontal_tiles):
+ # Calculate tile boundaries
+ h_start = h * (base_tile_width - spatial_overlap)
+ v_start = v * (base_tile_height - spatial_overlap)
+
+ # Adjust end positions for edge tiles
+ h_end = (
+ min(h_start + base_tile_width, width)
+ if h < horizontal_tiles - 1
+ else width
+ )
+ v_end = (
+ min(v_start + base_tile_height, height)
+ if v < vertical_tiles - 1
+ else height
+ )
+
+ # Calculate actual tile dimensions
+ tile_height = v_end - v_start
+ tile_width = h_end - h_start
+
+ print(f"Processing spatial tile at row {v}, col {h}:")
+ print(f" Position: ({v_start}:{v_end}, {h_start}:{h_end})")
+ print(f" Size: {tile_height}x{tile_width}")
+
+ # Extract spatial tiles from all inputs
+ (
+ tile_latents,
+ tile_guiding_latents,
+ tile_negative_index_latents,
+ tile_cond_image,
+ ) = self._extract_spatial_tile(
+ samples,
+ optional_guiding_latents,
+ optional_negative_index_latents,
+ optional_cond_image,
+ v_start,
+ v_end,
+ h_start,
+ h_end,
+ height_scale_factor,
+ width_scale_factor,
+ )
+
+ # Process all temporal chunks for this spatial tile
+ tile_config = TileConfig(
+ tile_latents=tile_latents,
+ tile_guiding_latents=tile_guiding_latents,
+ tile_negative_index_latents=tile_negative_index_latents,
+ tile_cond_image=tile_cond_image,
+ tile_height=tile_height,
+ tile_width=tile_width,
+ v=v,
+ h=h,
+ vertical_tiles=vertical_tiles,
+ horizontal_tiles=horizontal_tiles,
+ first_seed=first_seed,
+ )
+
+ sampling_config = SamplingConfig(
+ temporal_tile_size=temporal_tile_size,
+ temporal_overlap=temporal_overlap,
+ temporal_overlap_cond_strength=temporal_overlap_cond_strength,
+ guiding_strength=guiding_strength,
+ adain_factor=adain_factor,
+ optional_negative_index=optional_negative_index,
+ optional_negative_index_strength=optional_negative_index_strength,
+ optional_positive_conditionings=optional_positive_conditionings,
+ time_scale_factor=time_scale_factor,
+ width_scale_factor=width_scale_factor,
+ height_scale_factor=height_scale_factor,
+ per_tile_seed_offsets=per_tile_seed_offsets,
+ per_tile_use_negative_latents=per_tile_use_negative_latents,
+ )
+
+ model_config = ModelConfig(
+ model=model,
+ vae=vae,
+ noise=noise,
+ sampler=sampler,
+ sigmas=sigmas,
+ guider=guider,
+ )
+
+ tile_out_latents = self._process_temporal_chunks(
+ tile_config,
+ sampling_config,
+ model_config,
+ )
+
+ # Create weight mask for this spatial tile
+ tile_weights = self._create_spatial_weights(
+ tile_latents["samples"],
+ v,
+ h,
+ horizontal_tiles,
+ vertical_tiles,
+ spatial_overlap,
+ )
+
+ # Add weighted tile to final output
+ final_output[:, :, :, v_start:v_end, h_start:h_end] += (
+ tile_out_latents["samples"].to(final_output.device) * tile_weights
+ )
+ weights[:, :, :, v_start:v_end, h_start:h_end] += tile_weights
+
+ # Normalize by weights
+ final_output = final_output / (weights + 1e-8)
+ out_latents = {"samples": final_output}
+
+ noise.seed = first_seed
+ return (out_latents,)
+
+
+@comfy_node(
+ name="MultiPromptProvider",
+)
+class MultiPromptProvider:
+
+ @classmethod
+ def INPUT_TYPES(s):
+ return {
+ "required": {
+ "prompts": (
+ "STRING",
+ {
+ "multiline": True,
+ "dynamicPrompts": True,
+ "tooltip": "Prompts to encode, one per line. Each prompt will be encoded separately. Each prompt will be used in one temporal_tile in LTXVLoopingSampler.",
+ },
+ ),
+ "clip": ("CLIP", {"tooltip": "CLIP model to encode the prompts."}),
+ },
+ }
+
+ RETURN_TYPES = ("CONDITIONING",)
+ RETURN_NAMES = ("conditionings",)
+
+ FUNCTION = "get_prompt_list"
+ CATEGORY = "prompt"
+
+ def get_prompt_list(self, prompts, clip):
+ prompt_list = prompts.split("|")
+ prompt_list = [prompt.strip() for prompt in prompt_list]
+ encoded_prompt_list = [
+ clip.encode_from_tokens_scheduled(clip.tokenize(prompt))
+ for prompt in prompt_list
+ ]
+ return (encoded_prompt_list,)
diff --git a/tiled_sampler.py b/tiled_sampler.py
index c97847a..7723c22 100644
--- a/tiled_sampler.py
+++ b/tiled_sampler.py
@@ -5,7 +5,6 @@ import torch
from comfy_extras.nodes_custom_sampler import SamplerCustomAdvanced
from comfy_extras.nodes_lt import LTXVAddGuide, LTXVCropGuides
-from .easy_samplers import LTXVBaseSampler, LTXVExtendSampler, LTXVInContextSampler
from .latents import LTXVAddLatentGuide, LTXVSelectLatents
from .nodes_registry import comfy_node
@@ -315,296 +314,3 @@ class LTXVTiledSampler:
denoised_output = denoised_output / (weights + 1e-8)
return {"samples": output}, {"samples": denoised_output}
-
-
-@comfy_node(
- name="LTXVLoopingSampler",
-)
-class LTXVLoopingSampler:
-
- @classmethod
- def INPUT_TYPES(s):
- return {
- "required": {
- "model": ("MODEL", {"tooltip": "The diffusion model to use."}),
- "vae": ("VAE", {"tooltip": "The VAE to use."}),
- "noise": ("NOISE", {"tooltip": "The noise to use."}),
- "sampler": ("SAMPLER", {"tooltip": "The sampler to use."}),
- "sigmas": ("SIGMAS", {"tooltip": "The sigmas to use."}),
- "guider": (
- "GUIDER",
- {"tooltip": "The guider to use, must be a STGGuiderAdvanced."},
- ),
- "latents": (
- "LATENT",
- {
- "tooltip": "The latents to use for creating the long video, they can be guiding latents or empty latents when no guidance is used."
- },
- ),
- "use_latents_to_guide": (
- "BOOLEAN",
- {
- "default": True,
- "tooltip": "Whether to use the latents to guide the sampling, such as with IC-LoRAs. If False, just the shape of the latents will be used.",
- },
- ),
- "guiding_strength": (
- "FLOAT",
- {
- "default": 1.0,
- "min": 0.0,
- "max": 1.0,
- "step": 0.01,
- "tooltip": "The strength of the conditioning on guiding latents, when use_latents_to_guide is True.",
- },
- ),
- "temporal_tile_size": (
- "INT",
- {
- "default": 80,
- "min": 24,
- "max": 1000,
- "step": 8,
- "tooltip": "The size of the temporal tile to use for the sampling, in pixel frames, in addition to the overlapping region.",
- },
- ),
- "overlap": (
- "INT",
- {
- "default": 24,
- "min": 16,
- "max": 80,
- "step": 8,
- "tooltip": "The overlap between the temporal tiles, in pixel frames.",
- },
- ),
- "overlap_cond_strength": (
- "FLOAT",
- {
- "default": 0.5,
- "min": 0.0,
- "max": 1.0,
- "step": 0.01,
- "tooltip": "The strength of the conditioning on the latents from the previous temporal tile.",
- },
- ),
- },
- "optional": {
- "optional_cond_image": (
- "IMAGE",
- {
- "tooltip": "The image to use for conditioning the first frame in the video (i2v setup). If not provided, the first frame will be unconditioned (t2v setup). The image will be resized to the size of the first frame."
- },
- ),
- "adain_factor": (
- "FLOAT",
- {
- "default": 0.0,
- "min": 0.0,
- "max": 1.0,
- "step": 0.01,
- "tooltip": "The strength of the AdaIn operation used to fix the statistics of each new generated temporal tile, to prevent accumulated oversaturation.",
- },
- ),
- "optional_positive_conditionings": (
- "CONDITIONING",
- {
- "tooltip": "Optional way to provide changing positive prompts, one per temporal tile, using the MultiPromptProvider node."
- },
- ),
- "optional_negative_index_latents": (
- "LATENT",
- {
- "tooltip": "Special optional latents to condition on a negative index before each new temporal tile as a way to provide long term context during video generation."
- },
- ),
- "optional_negative_index": (
- "INT",
- {
- "default": -1,
- "min": -1000,
- "max": 1000,
- "tooltip": "The index in which to condition using the optional_negative_index_latents.",
- },
- ),
- "optional_negative_index_strength": (
- "FLOAT",
- {
- "default": 1.0,
- "min": 0.0,
- "max": 1.0,
- "step": 0.01,
- "tooltip": "The strength of the conditioning with the optional_negative_index_latents.",
- },
- ),
- },
- }
-
- RETURN_TYPES = ("LATENT",)
- RETURN_NAMES = ("denoised_output",)
-
- FUNCTION = "sample"
- CATEGORY = "sampling"
-
- def sample(
- self,
- model,
- vae,
- noise,
- sampler,
- sigmas,
- guider,
- latents,
- use_latents_to_guide,
- guiding_strength,
- adain_factor,
- temporal_tile_size,
- overlap,
- overlap_cond_strength,
- optional_cond_image=None,
- optional_negative_index_latents=None,
- optional_negative_index=-1,
- optional_negative_index_strength=1.0,
- optional_positive_conditionings=None,
- ):
- time_scale_factor, width_scale_factor, height_scale_factor = (
- vae.downscale_index_formula
- )
- temporal_tile_size = temporal_tile_size // time_scale_factor
- overlap = overlap // time_scale_factor
- first_seed = noise.seed
- chunk_index = 0
- for start_index, end_index in zip(
- range(
- 0,
- latents["samples"].shape[2] + temporal_tile_size - overlap,
- temporal_tile_size - overlap,
- ),
- range(
- temporal_tile_size,
- latents["samples"].shape[2] + temporal_tile_size - overlap,
- temporal_tile_size - overlap,
- ),
- ):
- guiding_latent_chunk = LTXVSelectLatents().select_latents(
- latents,
- start_index,
- min(end_index - 1, latents["samples"].shape[2] - 1),
- )[0]
- noise.seed = first_seed + start_index
-
- # Handle optional positive conditionings
- if optional_positive_conditionings is not None:
- new_guider = copy.copy(guider)
- positive, negative = guider.raw_conds
- # Use the conditioning at chunk_index, or the last one if we've run out
- conditioning_index = min(
- chunk_index, len(optional_positive_conditionings) - 1
- )
- new_guider.set_conds(
- optional_positive_conditionings[conditioning_index], negative
- )
- new_guider.raw_conds = (
- optional_positive_conditionings[conditioning_index],
- negative,
- )
- else:
- new_guider = guider
-
- if start_index == 0:
- if use_latents_to_guide:
- out_latents = LTXVInContextSampler().sample(
- vae=vae,
- guider=new_guider,
- sampler=sampler,
- sigmas=sigmas,
- noise=noise,
- guiding_latents=guiding_latent_chunk,
- optional_cond_image=optional_cond_image,
- num_frames=-1,
- )[0]
- else:
- out_latents = LTXVBaseSampler().sample(
- model=model,
- vae=vae,
- noise=noise,
- sampler=sampler,
- sigmas=sigmas,
- guider=new_guider,
- num_frames=(
- min(temporal_tile_size, latents["samples"].shape[2]) - 1
- )
- * time_scale_factor
- + 1,
- width=latents["samples"].shape[4] * width_scale_factor,
- height=latents["samples"].shape[3] * height_scale_factor,
- optional_cond_images=optional_cond_image,
- optional_cond_indices="0",
- strength=overlap_cond_strength,
- )[0]
- first_out_latents = copy.deepcopy(out_latents)
- else:
- out_latents = LTXVExtendSampler().sample(
- model=model,
- vae=vae,
- sampler=sampler,
- sigmas=sigmas,
- noise=noise,
- latents=out_latents,
- num_new_frames=(guiding_latent_chunk["samples"].shape[2] - overlap)
- * time_scale_factor,
- frame_overlap=overlap * time_scale_factor,
- guider=new_guider,
- strength=overlap_cond_strength,
- guiding_strength=guiding_strength,
- optional_guiding_latents=(
- guiding_latent_chunk if use_latents_to_guide else None
- ),
- optional_reference_latents=first_out_latents,
- adain_factor=adain_factor,
- optional_negative_index_latents=optional_negative_index_latents,
- optional_negative_index=optional_negative_index,
- optional_negative_index_strength=optional_negative_index_strength,
- )[0]
-
- chunk_index += 1
-
- noise.seed = first_seed
- return (out_latents,)
-
-
-@comfy_node(
- name="MultiPromptProvider",
-)
-class MultiPromptProvider:
-
- @classmethod
- def INPUT_TYPES(s):
- return {
- "required": {
- "prompts": (
- "STRING",
- {
- "multiline": True,
- "dynamicPrompts": True,
- "tooltip": "Prompts to encode, one per line. Each prompt will be encoded separately. Each prompt will be used in one temporal_tile in LTXVLoopingSampler.",
- },
- ),
- "clip": ("CLIP", {"tooltip": "CLIP model to encode the prompts."}),
- },
- }
-
- RETURN_TYPES = ("CONDITIONING",)
- RETURN_NAMES = ("conditionings",)
-
- FUNCTION = "get_prompt_list"
- CATEGORY = "prompt"
-
- def get_prompt_list(self, prompts, clip):
- prompt_list = prompts.split("\n")
- prompt_list = [prompt.strip() for prompt in prompt_list]
- encoded_prompt_list = [
- clip.encode_from_tokens_scheduled(clip.tokenize(prompt))
- for prompt in prompt_list
- ]
- return (encoded_prompt_list,)
diff --git a/tiled_vae_decode.py b/tiled_vae_decode.py
new file mode 100644
index 0000000..9a8ab66
--- /dev/null
+++ b/tiled_vae_decode.py
@@ -0,0 +1,197 @@
+import torch
+
+from .nodes_registry import comfy_node
+
+
+@comfy_node(
+ name="LTXVTiledVAEDecode",
+)
+class LTXVTiledVAEDecode:
+
+ @classmethod
+ def INPUT_TYPES(s):
+ return {
+ "required": {
+ "vae": ("VAE",),
+ "latents": ("LATENT",),
+ "horizontal_tiles": ("INT", {"default": 1, "min": 1, "max": 6}),
+ "vertical_tiles": ("INT", {"default": 1, "min": 1, "max": 6}),
+ "overlap": ("INT", {"default": 1, "min": 1, "max": 8}),
+ "last_frame_fix": ("BOOLEAN", {"default": False}),
+ },
+ }
+
+ RETURN_TYPES = ("IMAGE",)
+ RETURN_NAMES = ("image",)
+
+ FUNCTION = "decode"
+
+ CATEGORY = "latent"
+
+ def decode(
+ self,
+ vae,
+ latents,
+ horizontal_tiles,
+ vertical_tiles,
+ overlap,
+ last_frame_fix,
+ ):
+ # Get the latent samples
+ samples = latents["samples"]
+
+ if last_frame_fix:
+ # Repeat the last frame along dimension 2 (frames)
+ # samples: [batch, channels, frames, height, width]
+ last_frame = samples[
+ :, :, -1:, :, :
+ ] # shape: [batch, channels, 1, height, width]
+ samples = torch.cat([samples, last_frame], dim=2)
+
+ batch, channels, frames, height, width = samples.shape
+ time_scale_factor, width_scale_factor, height_scale_factor = (
+ vae.downscale_index_formula
+ )
+ image_frames = 1 + (frames - 1) * time_scale_factor
+
+ # Calculate output image dimensions
+ output_height = height * height_scale_factor
+ output_width = width * width_scale_factor
+
+ # Calculate tile sizes with overlap
+ base_tile_height = (height + (vertical_tiles - 1) * overlap) // vertical_tiles
+ base_tile_width = (width + (horizontal_tiles - 1) * overlap) // horizontal_tiles
+
+ # Initialize output tensor and weight tensor
+ # VAE decode returns images in format [batch, height, width, channels]
+ output = None
+ weights = None
+
+ # Process each tile
+ for v in range(vertical_tiles):
+ for h in range(horizontal_tiles):
+ # Calculate tile boundaries
+ h_start = h * (base_tile_width - overlap)
+ v_start = v * (base_tile_height - overlap)
+
+ # Adjust end positions for edge tiles
+ h_end = (
+ min(h_start + base_tile_width, width)
+ if h < horizontal_tiles - 1
+ else width
+ )
+ v_end = (
+ min(v_start + base_tile_height, height)
+ if v < vertical_tiles - 1
+ else height
+ )
+
+ # Calculate actual tile dimensions
+ tile_height = v_end - v_start
+ tile_width = h_end - h_start
+
+ print(f"Processing VAE decode tile at row {v}, col {h}:")
+ print(f" Position: ({v_start}:{v_end}, {h_start}:{h_end})")
+ print(f" Size: {tile_height}x{tile_width}")
+
+ # Extract tile
+ tile = samples[:, :, :, v_start:v_end, h_start:h_end]
+
+ # Create tile latents dict
+ tile_latents = {"samples": tile}
+
+ # Decode the tile
+ decoded_tile = vae.decode(tile_latents["samples"])
+
+ # Initialize output tensors on first tile
+ if output is None:
+ output = torch.zeros(
+ (
+ batch,
+ image_frames,
+ output_height,
+ output_width,
+ decoded_tile.shape[-1],
+ ),
+ device=decoded_tile.device,
+ dtype=decoded_tile.dtype,
+ )
+ weights = torch.zeros(
+ (batch, image_frames, output_height, output_width, 1),
+ device=decoded_tile.device,
+ dtype=decoded_tile.dtype,
+ )
+
+ # Calculate output tile boundaries
+ out_h_start = v_start * height_scale_factor
+ out_h_end = v_end * height_scale_factor
+ out_w_start = h_start * width_scale_factor
+ out_w_end = h_end * width_scale_factor
+
+ # Create weight mask for this tile
+ tile_out_height = out_h_end - out_h_start
+ tile_out_width = out_w_end - out_w_start
+ tile_weights = torch.ones(
+ (batch, image_frames, tile_out_height, tile_out_width, 1),
+ device=decoded_tile.device,
+ dtype=decoded_tile.dtype,
+ )
+
+ # Calculate overlap regions in output space
+ overlap_out_h = overlap * height_scale_factor
+ overlap_out_w = overlap * width_scale_factor
+
+ # Apply horizontal blending weights
+ if h > 0: # Left overlap
+ h_blend = torch.linspace(
+ 0, 1, overlap_out_w, device=decoded_tile.device
+ )
+ tile_weights[:, :, :, :overlap_out_w, :] *= h_blend.view(
+ 1, 1, 1, -1, 1
+ )
+ if h < horizontal_tiles - 1: # Right overlap
+ h_blend = torch.linspace(
+ 1, 0, overlap_out_w, device=decoded_tile.device
+ )
+ tile_weights[:, :, :, -overlap_out_w:, :] *= h_blend.view(
+ 1, 1, 1, -1, 1
+ )
+
+ # Apply vertical blending weights
+ if v > 0: # Top overlap
+ v_blend = torch.linspace(
+ 0, 1, overlap_out_h, device=decoded_tile.device
+ )
+ tile_weights[:, :, :overlap_out_h, :, :] *= v_blend.view(
+ 1, 1, -1, 1, 1
+ )
+ if v < vertical_tiles - 1: # Bottom overlap
+ v_blend = torch.linspace(
+ 1, 0, overlap_out_h, device=decoded_tile.device
+ )
+ tile_weights[:, :, -overlap_out_h:, :, :] *= v_blend.view(
+ 1, 1, -1, 1, 1
+ )
+
+ # Add weighted tile to output
+ output[:, :, out_h_start:out_h_end, out_w_start:out_w_end, :] += (
+ decoded_tile * tile_weights
+ )
+
+ # Add weights to weight tensor
+ weights[
+ :, :, out_h_start:out_h_end, out_w_start:out_w_end, :
+ ] += tile_weights
+
+ # Normalize by weights
+ output = output / (weights + 1e-8)
+
+ # Reshape output to match expected format [batch * frames, height, width, channels]
+ output = output.view(
+ batch * image_frames, output_height, output_width, output.shape[-1]
+ )
+
+ if last_frame_fix:
+ output = output[:-time_scale_factor, :, :]
+
+ return (output,)