ComfyUI Node

LTX Director

The timeline editor that made LTX workflows actually editable

By WhatDreamsCost·Created 5 months ago·Updated 26 days ago· 1,996
LTX Director
  • model
  • clip
  • audio_vae
  • optional_latent
  • model
  • positive
  • video_latent
  • audio_latent
  • guide_data
  • motion_guide_data
  • frame_rate
  • combined_audio
start_second0.00
end_second5.00
duration_seconds5.00
start_frame0
end_frame120
duration_frames120
timeline_data
local_prompts
segment_lengths
epsilon0.0010
guide_strength
global_prompt
use_custom_audiofalse
use_custom_motiontrue
inpaint_audiotrue
frame_rate24
display_modeseconds
custom_width0
custom_height0
resize_methodmaintain aspect ratio
divisible_by32
img_compression18
override_audiofalse

If you've ever stared at a ComfyUI LTX graph and thought "this is a video tool, why am I editing JSON arrays to time a shot," LTX Director is the answer. It's the WhatDreamsCost pack's flagship: a full timeline editor that lives inside a single node, where your text, image, and audio segments are draggable blocks you trim and cut on a ruler instead of numbers in a widget. It's built for LTX 2.3, which is a first-frame/last-frame model with time-windowed conditioning - stock ComfyUI has no good way to say "this, then that, at this moment." Director is the community's solution, and with the 2.0 update (June 2026) it stopped being a keyframe helper and became an actual AI video editor.

The author's own framing is worth respecting: he spent a month and a half on 2.0 and it shows - IC-LoRA support, audio inpainting, Retake Mode, timeline save/load, all of it free. Community reception was strong (the 2.0 launch thread pulled hundreds of upvotes), and it's now a fixture of the LTX 2.3 tooling discussion alongside LTX Desktop.

How it works

Director is, at its core, Kijai's Prompt Relay idea wrapped in a WYSIWYG interface. Prompt Relay lets each video segment carry its own local prompt that only conditions its time window (via Gaussian penalty masks on cross-attention). Director gives you those segments as blocks on a timeline, then serializes everything into JSON (timeline_data) plus the local_prompts, segment_lengths, and guide_strength strings - all auto-managed, don't hand-edit them. At execution it parses that state, VAE-encodes your image/video segments into guide frames, builds a Prompt Relay conditioning with soft or hard segment boundaries, and generates an empty LTXV latent (or uses your optional_latent). With an audio_vae connected it produces an audio latent too, which is how LTX-2's synchronized audio gets into the mix.

One thing beginners trip on: duration_frames only sets the visual scale of the timeline - the actual frame count comes from the latent you connect. Change the latent length and the timeline rescales; change the widget and nothing about your generation changes.

The inputs that matter

  • model and clip - your LTX model and its CLIP. These get patched, so you'll see them on the output side too.
  • global_prompt - conditions the entire video and anchors persistent characters/scene context across segments. Learn this one; it's how you stop a character from mutating between shots.
  • epsilon - Prompt Relay's penalty decay. Below ~0.1 you get sharp segment boundaries (the default 0.001); raise it to 0.5+ for softer transitions. This is the hidden lever for "the cuts feel too harsh."
  • use_custom_audio / inpaint_audio - timeline audio vs. generated-from-scratch, and whether empty gaps get audio-inpainted.
  • custom_width / custom_height / divisible_by - how guide images get resized to LTX-friendly dimensions (32-divisible).
  • override_audio - pull audio from the IC-LoRA video instead of the track.

Outputs

The important ones: model (patched), positive (Prompt Relay conditioning), video_latent, audio_latent, guide_data and motion_guide_data (the keyframe/motion payloads), frame_rate, and combined_audio. The standard wiring is Director → LTX Director Guide (which consumes guide_data, motion_guide_data, the latent, and the model) → LTX Director Crop Guides → sampler. Simple text-to-video runs can skip the Guide, but any image or video segments route through it.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/WhatDreamsCost/WhatDreamsCost-ComfyUI

Or search WhatDreamsCost in ComfyUI Manager. The README is explicit about the catch: update ComfyUI-LTXVideo and ComfyUI-KJNodes to their latest versions first - "you cannot use this node without updating ComfyUI-LTXVideo!" If the manager list doesn't show v2.0.0 yet, install the nightly to get the latest. Download the example workflows from the repo; they're the fastest way to see a correct graph.

Gotchas

Retake Mode is officially beta and the author says it's "not potent enough" - he's mid-overhaul, so don't judge the node by it. The 2.0.4 update added model caching and dropped Prompt Relay overhead from plain t2v/i2v runs, so don't be surprised when things suddenly feel faster; the quoted 1.5–3x speedup is hardware-dependent, so if you land at the low end, that's normal. And keep in mind the honest community critique that applies to any big overhaul node: the convenience hides the parameters you need when output goes wrong - Director hides Prompt Relay's guts behind the timeline, so when a segment misbehaves, reach for epsilon and global_prompt before assuming the tool is broken.

CategoryWhatDreamsCost

Inputs (27)

NameTypeDefaultDescription
modelMODEL
clipCLIP
start_secondFLOAT0.000–1000Start time in seconds of the timeline generation.
end_secondFLOAT5.000–1000End time in seconds of the timeline generation.
duration_secondsFLOAT5.000.1–1000Total timeline duration in seconds (computed/synced from frames).
start_frameINT00–10000Start frame of the timeline generation.
end_frameINT1201–10000End frame of the timeline generation.
duration_framesINT1201–10000Total timeline length in pixel-space frames. Used by the editor for visual scale only.
timeline_dataSTRINGJSON state of the timeline editor (auto-managed; do not edit by hand).
local_promptsSTRINGAuto-populated from the timeline editor.
segment_lengthsSTRINGAuto-populated from the timeline editor (pixel-space frame counts).
epsilonFLOAT0.00100.0001–0.99Penalty decay parameter. Values below ~0.1 all produce sharp boundaries (paper default 0.001). For softer transitions, try 0.5 or higher.
guide_strengthSTRINGAuto-populated from the timeline editor (comma-separated guide strengths for image segments).
audio_vaeoptVAEOptional. Connect an Audio VAE to generate audio latents.
optional_latentoptLATENTOptional. Connect a latent to override the auto-generated one.
global_promptoptSTRINGConditions the entire video. Anchors persistent characters, objects, and scene context.
use_custom_audiooptBOOLEANfalseToggle between using timeline audio (ON) and generating audio from scratch (OFF).
use_custom_motionoptBOOLEANtrueToggle between using timeline motion guidance (ON) and ignoring motion video segments (OFF).
inpaint_audiooptBOOLEANtrueToggle whether empty gaps in the audio track are inpainted with generated audio.
frame_rateoptFLOAT241–240Frames per second — only affects how time is displayed in the timeline editor when time_units is set to 'seconds'.
display_modeoptCOMBOsecondsDisplay the ruler, segment ranges, length input, and total in frames or seconds. Internal storage is always pixel-space frames.
custom_widthoptINT00–8192Target output width for all image segments. Set to 0 to use the original image width.
custom_heightoptINT00–8192Target output height for all image segments. Set to 0 to use the original image height.
resize_methodoptCOMBOmaintain aspect ratioHow to resize image segments to fit the target dimensions.
divisible_byoptINT321–256Snap the final output image dimensions to be divisible by this number (e.g. 32 for LTX).
img_compressionoptINT180–100H.264 CRF compression to apply to each guide image. 0 = no compression, higher = more artefacts.
override_audiooptBOOLEANfalseUse the audio from the IC-LoRA video instead of using the audio track.

Outputs (8)

NameTypeDescription
modelMODEL
positiveCONDITIONING
video_latentLATENTAuto-generated LTXV empty latent (only populated when no latent is connected).
audio_latentLATENTAuto-generated audio latent (uses custom audio if enabled).
guide_dataGUIDE_DATA
motion_guide_dataMOTION_GUIDE_DATA
frame_rateFLOATThe frame rate used for the timeline.
combined_audioAUDIOCombined timeline audio layout.