LTXShotUpscaler now ONLY does latent upscale (tiny model). New LTXShotRefiner handles second pass sampling (main model). This gives ComfyUI 3 separate execution steps: 1. LTXShotRenderer → main model loaded, then offloaded 2. LTXShotUpscaler → upscale model loaded (~200MB), then offloaded 3. LTXShotRefiner → main model reloaded for refinement Matches how the original workflow manages VRAM across nodes. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
225 lines
9.6 KiB
JSON
225 lines
9.6 KiB
JSON
{
|
|
"id": "ltx-shot-renderer-example",
|
|
"revision": 0,
|
|
"last_node_id": 15,
|
|
"last_link_id": 32,
|
|
"nodes": [
|
|
{
|
|
"id": 1, "type": "CheckpointLoaderSimple", "pos": [100, 200], "size": [300, 100],
|
|
"flags": {}, "order": 0, "mode": 0,
|
|
"inputs": [],
|
|
"outputs": [
|
|
{"name": "MODEL", "type": "MODEL", "links": [1]},
|
|
{"name": "CLIP", "type": "CLIP", "links": []},
|
|
{"name": "VAE", "type": "VAE", "links": []}
|
|
],
|
|
"properties": {"Node name for S&R": "CheckpointLoaderSimple"},
|
|
"widgets_values": ["ltx-2.3-22b-dev-fp8.safetensors"]
|
|
},
|
|
{
|
|
"id": 2, "type": "DualCLIPLoader", "pos": [100, 400], "size": [300, 120],
|
|
"flags": {}, "order": 1, "mode": 0,
|
|
"inputs": [],
|
|
"outputs": [{"name": "CLIP", "type": "CLIP", "links": [2]}],
|
|
"properties": {"Node name for S&R": "DualCLIPLoader"},
|
|
"widgets_values": ["gemma_3_12B_it_fp8_e4m3fn.safetensors", "ltx-2.3_text_projection_bf16.safetensors", "ltxv", "default"]
|
|
},
|
|
{
|
|
"id": 3, "type": "VAELoaderKJ", "pos": [100, 600], "size": [300, 110],
|
|
"flags": {}, "order": 2, "mode": 0, "title": "Audio VAE",
|
|
"inputs": [],
|
|
"outputs": [{"name": "VAE", "type": "VAE", "links": [3, 30]}],
|
|
"properties": {"Node name for S&R": "VAELoaderKJ"},
|
|
"widgets_values": ["LTX23_audio_vae_bf16.safetensors", "main_device", "bf16"]
|
|
},
|
|
{
|
|
"id": 4, "type": "VAELoaderKJ", "pos": [100, 770], "size": [300, 110],
|
|
"flags": {}, "order": 3, "mode": 0, "title": "Video VAE",
|
|
"inputs": [],
|
|
"outputs": [{"name": "VAE", "type": "VAE", "links": [11, 20, 22, 14]}],
|
|
"properties": {"Node name for S&R": "VAELoaderKJ"},
|
|
"widgets_values": ["LTX23_video_vae_bf16.safetensors", "main_device", "bf16"]
|
|
},
|
|
{
|
|
"id": 5, "type": "LoraLoaderModelOnly", "pos": [470, 200], "size": [300, 90],
|
|
"flags": {}, "order": 4, "mode": 0, "title": "Distilled LoRA",
|
|
"inputs": [{"name": "model", "type": "MODEL", "link": 1}],
|
|
"outputs": [{"name": "MODEL", "type": "MODEL", "links": [5]}],
|
|
"properties": {"Node name for S&R": "LoraLoaderModelOnly"},
|
|
"widgets_values": ["ltx-2.3-22b-distilled-lora-384.safetensors", 0.5]
|
|
},
|
|
{
|
|
"id": 6, "type": "LTXDirector", "pos": [830, 150], "size": [1120, 777],
|
|
"flags": {}, "order": 5, "mode": 0,
|
|
"inputs": [
|
|
{"name": "model", "type": "MODEL", "link": 5},
|
|
{"name": "clip", "type": "CLIP", "link": 2},
|
|
{"name": "audio_vae", "shape": 7, "type": "VAE", "link": 3},
|
|
{"name": "optional_latent", "shape": 7, "type": "LATENT", "link": null}
|
|
],
|
|
"outputs": [
|
|
{"name": "model", "type": "MODEL", "links": [6, 24]},
|
|
{"name": "positive", "type": "CONDITIONING", "links": [7]},
|
|
{"name": "video_latent", "type": "LATENT", "links": [8]},
|
|
{"name": "audio_latent", "type": "LATENT", "links": [9]},
|
|
{"name": "guide_data", "type": "GUIDE_DATA", "links": [10, 25]},
|
|
{"name": "frame_rate", "type": "FLOAT", "links": [12, 32]},
|
|
{"name": "combined_audio", "type": "AUDIO", "links": []}
|
|
],
|
|
"properties": {
|
|
"cnr_id": "whatdreamscost-comfyui",
|
|
"Node name for S&R": "LTXDirector",
|
|
"aux_id": "kijai/ComfyUI-PromptRelay"
|
|
},
|
|
"widgets_values": [
|
|
"A woman with long dark hair walks through a sunlit garden, gentle breeze moving her white dress. She looks directly at the camera with a warm smile. Soft ambient sounds of birds and rustling leaves.",
|
|
120, 5, "{\"segments\":[],\"audioSegments\":[]}", "", "", 0.001, "", false, 24, "seconds", 0, 0, "maintain aspect ratio", 32, 18, ""
|
|
],
|
|
"color": "#432", "bgcolor": "#653"
|
|
},
|
|
{
|
|
"id": 7, "type": "LTXShotRenderer", "pos": [2050, 200], "size": [320, 350],
|
|
"flags": {}, "order": 6, "mode": 0,
|
|
"inputs": [
|
|
{"name": "model", "type": "MODEL", "link": 6},
|
|
{"name": "positive", "type": "CONDITIONING", "link": 7},
|
|
{"name": "video_latent", "type": "LATENT", "link": 8},
|
|
{"name": "audio_latent", "type": "LATENT", "link": 9},
|
|
{"name": "guide_data", "type": "GUIDE_DATA", "link": 10},
|
|
{"name": "vae", "type": "VAE", "link": 11},
|
|
{"name": "frame_rate", "type": "FLOAT", "link": 12}
|
|
],
|
|
"outputs": [
|
|
{"name": "video_latent", "type": "LATENT", "links": [18]},
|
|
{"name": "audio_latent", "type": "LATENT", "links": [23]},
|
|
{"name": "positive", "type": "CONDITIONING", "links": [16]},
|
|
{"name": "negative", "type": "CONDITIONING", "links": [17]}
|
|
],
|
|
"properties": {"Node name for S&R": "LTXShotRenderer"},
|
|
"color": "#234", "bgcolor": "#456"
|
|
},
|
|
{
|
|
"id": 11, "type": "LatentUpscaleModelLoader", "pos": [2450, 600], "size": [300, 60],
|
|
"flags": {}, "order": 7, "mode": 0,
|
|
"inputs": [],
|
|
"outputs": [{"name": "LATENT_UPSCALE_MODEL", "type": "LATENT_UPSCALE_MODEL", "links": [21]}],
|
|
"properties": {"Node name for S&R": "LatentUpscaleModelLoader"},
|
|
"widgets_values": ["ltx-2.3-spatial-upscaler-x2-1.0.safetensors"]
|
|
},
|
|
{
|
|
"id": 12, "type": "LTXShotUpscaler", "pos": [2450, 200], "size": [280, 120],
|
|
"flags": {}, "order": 8, "mode": 0,
|
|
"inputs": [
|
|
{"name": "video_latent", "type": "LATENT", "link": 18},
|
|
{"name": "upscale_model", "type": "LATENT_UPSCALE_MODEL", "link": 21},
|
|
{"name": "vae", "type": "VAE", "link": 20}
|
|
],
|
|
"outputs": [
|
|
{"name": "video_latent", "type": "LATENT", "links": [26]}
|
|
],
|
|
"properties": {"Node name for S&R": "LTXShotUpscaler"},
|
|
"color": "#243", "bgcolor": "#465"
|
|
},
|
|
{
|
|
"id": 15, "type": "LTXShotRefiner", "pos": [2800, 200], "size": [320, 380],
|
|
"flags": {}, "order": 9, "mode": 0,
|
|
"inputs": [
|
|
{"name": "model", "type": "MODEL", "link": 24},
|
|
{"name": "positive", "type": "CONDITIONING", "link": 16},
|
|
{"name": "negative", "type": "CONDITIONING", "link": 17},
|
|
{"name": "video_latent", "type": "LATENT", "link": 26},
|
|
{"name": "audio_latent", "type": "LATENT", "link": 23},
|
|
{"name": "guide_data", "type": "GUIDE_DATA", "link": 25},
|
|
{"name": "vae", "type": "VAE", "link": 22}
|
|
],
|
|
"outputs": [
|
|
{"name": "video_latent", "type": "LATENT", "links": [27]},
|
|
{"name": "audio_latent", "type": "LATENT", "links": [28]}
|
|
],
|
|
"properties": {"Node name for S&R": "LTXShotRefiner"},
|
|
"color": "#342", "bgcolor": "#564"
|
|
},
|
|
{
|
|
"id": 8, "type": "VAEDecode", "pos": [3200, 200], "size": [200, 50],
|
|
"flags": {}, "order": 10, "mode": 0,
|
|
"inputs": [
|
|
{"name": "samples", "type": "LATENT", "link": 27},
|
|
{"name": "vae", "type": "VAE", "link": 14}
|
|
],
|
|
"outputs": [{"name": "IMAGE", "type": "IMAGE", "links": [29]}],
|
|
"properties": {"Node name for S&R": "VAEDecode"},
|
|
"widgets_values": []
|
|
},
|
|
{
|
|
"id": 9, "type": "LTXVAudioVAEDecode", "pos": [3200, 350], "size": [200, 50],
|
|
"flags": {}, "order": 11, "mode": 0,
|
|
"inputs": [
|
|
{"name": "samples", "type": "LATENT", "link": 28},
|
|
{"name": "audio_vae", "type": "VAE", "link": 30}
|
|
],
|
|
"outputs": [{"name": "AUDIO", "type": "AUDIO", "links": [31]}],
|
|
"properties": {"Node name for S&R": "LTXVAudioVAEDecode"},
|
|
"widgets_values": []
|
|
},
|
|
{
|
|
"id": 13, "type": "RTXVideoSuperResolution", "pos": [3470, 200], "size": [300, 100],
|
|
"flags": {}, "order": 12, "mode": 0,
|
|
"inputs": [{"name": "images", "type": "IMAGE", "link": 29}],
|
|
"outputs": [{"name": "upscaled_images", "type": "IMAGE", "links": [13]}],
|
|
"properties": {"Node name for S&R": "RTXVideoSuperResolution"},
|
|
"widgets_values": ["scale by multiplier", 1.3, "HIGH"]
|
|
},
|
|
{
|
|
"id": 14, "type": "VHS_VideoCombine", "pos": [3850, 200], "size": [300, 300],
|
|
"flags": {}, "order": 13, "mode": 0,
|
|
"inputs": [
|
|
{"name": "images", "type": "IMAGE", "link": 13},
|
|
{"name": "audio", "type": "AUDIO", "link": 31},
|
|
{"name": "meta_batch", "type": "VHS_BatchManager", "link": null},
|
|
{"name": "vae", "type": "VAE", "link": null},
|
|
{"name": "frame_rate", "type": "FLOAT", "link": 32}
|
|
],
|
|
"outputs": [{"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": "LTXShotRenderer",
|
|
"format": "video/h264-mp4", "pix_fmt": "yuv420p", "crf": 14,
|
|
"save_metadata": true, "trim_to_audio": false, "pingpong": false,
|
|
"save_output": true, "videopreview": {"hidden": false, "paused": false, "params": {}}
|
|
}
|
|
}
|
|
],
|
|
"links": [
|
|
[1, 1, 0, 5, 0, "MODEL"],
|
|
[2, 2, 0, 6, 1, "CLIP"],
|
|
[3, 3, 0, 6, 2, "VAE"],
|
|
[5, 5, 0, 6, 0, "MODEL"],
|
|
[6, 6, 0, 7, 0, "MODEL"],
|
|
[7, 6, 1, 7, 1, "CONDITIONING"],
|
|
[8, 6, 2, 7, 2, "LATENT"],
|
|
[9, 6, 3, 7, 3, "LATENT"],
|
|
[10, 6, 4, 7, 4, "GUIDE_DATA"],
|
|
[11, 4, 0, 7, 5, "VAE"],
|
|
[12, 6, 5, 7, 6, "FLOAT"],
|
|
[13, 13,0, 14, 0, "IMAGE"],
|
|
[14, 4, 0, 8, 1, "VAE"],
|
|
[16, 7, 2, 15, 1, "CONDITIONING"],
|
|
[17, 7, 3, 15, 2, "CONDITIONING"],
|
|
[18, 7, 0, 12, 0, "LATENT"],
|
|
[20, 4, 0, 12, 2, "VAE"],
|
|
[21, 11,0, 12, 1, "LATENT_UPSCALE_MODEL"],
|
|
[22, 4, 0, 15, 6, "VAE"],
|
|
[23, 7, 1, 15, 4, "LATENT"],
|
|
[24, 6, 0, 15, 0, "MODEL"],
|
|
[25, 6, 4, 15, 5, "GUIDE_DATA"],
|
|
[26, 12,0, 15, 3, "LATENT"],
|
|
[27, 15,0, 8, 0, "LATENT"],
|
|
[28, 15,1, 9, 0, "LATENT"],
|
|
[29, 8, 0, 13, 0, "IMAGE"],
|
|
[30, 3, 0, 9, 1, "VAE"],
|
|
[31, 9, 0, 14, 1, "AUDIO"],
|
|
[32, 6, 5, 14, 4, "FLOAT"]
|
|
],
|
|
"groups": [], "config": {}, "extra": {}, "version": 0.4
|
|
}
|