LTX Sequencer
The node that put your first/last frames on a timeline
- positive
- negative
- vae
- latent
- multi_input
- positive
- negative
- latent
LTX Sequencer is where the WhatDreamsCost pack started getting serious. Before LTX Director came along and ate its lunch, the Sequencer was the go-to way to build first-frame/last-frame (FFLF) videos and multi-keyframe shot sequences in LTX - and it's still the node the author points to when he says "use this instead of LTX Keyframer." Think of it as Keyframer plus the parts that were missing: it injects your guide images into the latent and appends the matching keyframe info to your conditioning, so you're not wiring two nodes to do one job.
It's an overhaul of ComfyUI's stock LTXVAddGuideMulti node, which tells you both what it does and where it sits in the LTX world. LTX is a first/middle/last-frame conditioning model - you anchor certain frames with images and it hallucinates the motion between them. The Sequencer is the cleanest stock-adjacent way to do that with any number of anchors.
How it works
Mechanically it's a subclass of ComfyUI's LTXVAddGuide, and the source reads like a well-behaved version of it: for each image in your batch it VAE-encodes the frame, works out which latent frame it lands on (converting pixel-space positions through the VAE's scale factors), and calls append_keyframe - which writes the encoded guide into the latent, updates the noise mask, and appends guide info to both positive and negative conditioning. Images beyond the batch size are skipped cleanly.
The thing it adds over Keyframer is an insert_mode. Set it to frames and each image gets an insert_frame_N (pixel space, negatives index from the end). Set it to seconds and you get insert_second_N instead, converted to frames using the frame_rate input - which is what you want when you're thinking "image B should land two seconds in," not "at frame 48." A num_images counter (up to 50) decides how many of those per-image widget pairs you actually see.
There's also a sync feature: multiple Sequencer nodes on a canvas can be synced so editing one updates all of them in real time - genuinely useful when you're iterating a shot list.
Inputs that matter
positive/negative/vae/latent- the conditioning pair, the video VAE, and the latent to extend.multi_input- batched images, typically from the pack's Multi Image Loader, which auto-populates the widget list.insert_mode- frames or seconds. This is the toggle to learn.- Per image:
insert_frame_N/insert_second_Nandstrength_N(0–1).
Outputs
positive, negative, and latent - the latent has the guides baked in and a matching noise mask, and the conditioning carries the keyframe info. All three go into the sampler, with the latent coming from whatever empty-video-latent node you're using.
Install
Standard for the pack:
cd ComfyUI/custom_nodes
git clone https://github.com/WhatDreamsCost/WhatDreamsCost-ComfyUI
Or search WhatDreamsCost in ComfyUI Manager, install, restart. No model downloads, no extra deps - it leans on ComfyUI's own LTX extras (comfy_extras.nodes_lt). Pair it with current ComfyUI-LTXVideo nodes for LTX 2.3.
Gotchas
The one failure mode you'll actually hit: "Conditioning frames exceed the length of the latent sequence." That's an assert from the underlying LTXVAddGuide, and it means one of your insert frames (or the encoded guide's length) overruns the latent you fed in. Make your empty latent long enough to cover the last keyframe. And if you're starting fresh with LTX 2.3, know that Director supersedes this node for new projects - Sequencer is the right tool when you want stock-node simplicity without a full timeline editor in the middle of your graph.
Inputs (158)
| Name | Type | Default | Description |
|---|---|---|---|
| positive | CONDITIONING | Positive conditioning to which guide keyframe info will be added | |
| negative | CONDITIONING | Negative conditioning to which guide keyframe info will be added | |
| vae | VAE | Video VAE used to encode the guide images | |
| latent | LATENT | Video latent, guides are added to the end of this latent | |
| multi_input | IMAGE | Batched images from MultiImageLoader | |
| num_images | INT | 10–50 | Select how many index/strength widgets to configure. |
| insert_mode | COMBO | frames | Select the method for determining insertion points. |
| frame_rate | INT | 241–120 | Video FPS (used for calculating second insertions). |
| insert_frame_1opt | INT | 0-9999–9999 | Frame insert point for image 1 (in pixel space). |
| insert_second_1opt | FLOAT | 0.00–9999 | Second insert point for image 1. |
| strength_1opt | FLOAT | 1.000–1 | Strength for image 1. |
| insert_frame_2opt | INT | 0-9999–9999 | Frame insert point for image 2 (in pixel space). |
| insert_second_2opt | FLOAT | 0.00–9999 | Second insert point for image 2. |
| strength_2opt | FLOAT | 1.000–1 | Strength for image 2. |
| insert_frame_3opt | INT | 0-9999–9999 | Frame insert point for image 3 (in pixel space). |
| insert_second_3opt | FLOAT | 0.00–9999 | Second insert point for image 3. |
| strength_3opt | FLOAT | 1.000–1 | Strength for image 3. |
| insert_frame_4opt | INT | 0-9999–9999 | Frame insert point for image 4 (in pixel space). |
| insert_second_4opt | FLOAT | 0.00–9999 | Second insert point for image 4. |
| strength_4opt | FLOAT | 1.000–1 | Strength for image 4. |
| insert_frame_5opt | INT | 0-9999–9999 | Frame insert point for image 5 (in pixel space). |
| insert_second_5opt | FLOAT | 0.00–9999 | Second insert point for image 5. |
| strength_5opt | FLOAT | 1.000–1 | Strength for image 5. |
| insert_frame_6opt | INT | 0-9999–9999 | Frame insert point for image 6 (in pixel space). |
| insert_second_6opt | FLOAT | 0.00–9999 | Second insert point for image 6. |
| strength_6opt | FLOAT | 1.000–1 | Strength for image 6. |
| insert_frame_7opt | INT | 0-9999–9999 | Frame insert point for image 7 (in pixel space). |
| insert_second_7opt | FLOAT | 0.00–9999 | Second insert point for image 7. |
| strength_7opt | FLOAT | 1.000–1 | Strength for image 7. |
| insert_frame_8opt | INT | 0-9999–9999 | Frame insert point for image 8 (in pixel space). |
| insert_second_8opt | FLOAT | 0.00–9999 | Second insert point for image 8. |
| strength_8opt | FLOAT | 1.000–1 | Strength for image 8. |
| insert_frame_9opt | INT | 0-9999–9999 | Frame insert point for image 9 (in pixel space). |
| insert_second_9opt | FLOAT | 0.00–9999 | Second insert point for image 9. |
| strength_9opt | FLOAT | 1.000–1 | Strength for image 9. |
| insert_frame_10opt | INT | 0-9999–9999 | Frame insert point for image 10 (in pixel space). |
| insert_second_10opt | FLOAT | 0.00–9999 | Second insert point for image 10. |
| strength_10opt | FLOAT | 1.000–1 | Strength for image 10. |
| insert_frame_11opt | INT | 0-9999–9999 | Frame insert point for image 11 (in pixel space). |
| insert_second_11opt | FLOAT | 0.00–9999 | Second insert point for image 11. |
| strength_11opt | FLOAT | 1.000–1 | Strength for image 11. |
| insert_frame_12opt | INT | 0-9999–9999 | Frame insert point for image 12 (in pixel space). |
| insert_second_12opt | FLOAT | 0.00–9999 | Second insert point for image 12. |
| strength_12opt | FLOAT | 1.000–1 | Strength for image 12. |
| insert_frame_13opt | INT | 0-9999–9999 | Frame insert point for image 13 (in pixel space). |
| insert_second_13opt | FLOAT | 0.00–9999 | Second insert point for image 13. |
| strength_13opt | FLOAT | 1.000–1 | Strength for image 13. |
| insert_frame_14opt | INT | 0-9999–9999 | Frame insert point for image 14 (in pixel space). |
| insert_second_14opt | FLOAT | 0.00–9999 | Second insert point for image 14. |
| strength_14opt | FLOAT | 1.000–1 | Strength for image 14. |
| insert_frame_15opt | INT | 0-9999–9999 | Frame insert point for image 15 (in pixel space). |
| insert_second_15opt | FLOAT | 0.00–9999 | Second insert point for image 15. |
| strength_15opt | FLOAT | 1.000–1 | Strength for image 15. |
| insert_frame_16opt | INT | 0-9999–9999 | Frame insert point for image 16 (in pixel space). |
| insert_second_16opt | FLOAT | 0.00–9999 | Second insert point for image 16. |
| strength_16opt | FLOAT | 1.000–1 | Strength for image 16. |
| insert_frame_17opt | INT | 0-9999–9999 | Frame insert point for image 17 (in pixel space). |
| insert_second_17opt | FLOAT | 0.00–9999 | Second insert point for image 17. |
| strength_17opt | FLOAT | 1.000–1 | Strength for image 17. |
| insert_frame_18opt | INT | 0-9999–9999 | Frame insert point for image 18 (in pixel space). |
| insert_second_18opt | FLOAT | 0.00–9999 | Second insert point for image 18. |
| strength_18opt | FLOAT | 1.000–1 | Strength for image 18. |
| insert_frame_19opt | INT | 0-9999–9999 | Frame insert point for image 19 (in pixel space). |
| insert_second_19opt | FLOAT | 0.00–9999 | Second insert point for image 19. |
| strength_19opt | FLOAT | 1.000–1 | Strength for image 19. |
| insert_frame_20opt | INT | 0-9999–9999 | Frame insert point for image 20 (in pixel space). |
| insert_second_20opt | FLOAT | 0.00–9999 | Second insert point for image 20. |
| strength_20opt | FLOAT | 1.000–1 | Strength for image 20. |
| insert_frame_21opt | INT | 0-9999–9999 | Frame insert point for image 21 (in pixel space). |
| insert_second_21opt | FLOAT | 0.00–9999 | Second insert point for image 21. |
| strength_21opt | FLOAT | 1.000–1 | Strength for image 21. |
| insert_frame_22opt | INT | 0-9999–9999 | Frame insert point for image 22 (in pixel space). |
| insert_second_22opt | FLOAT | 0.00–9999 | Second insert point for image 22. |
| strength_22opt | FLOAT | 1.000–1 | Strength for image 22. |
| insert_frame_23opt | INT | 0-9999–9999 | Frame insert point for image 23 (in pixel space). |
| insert_second_23opt | FLOAT | 0.00–9999 | Second insert point for image 23. |
| strength_23opt | FLOAT | 1.000–1 | Strength for image 23. |
| insert_frame_24opt | INT | 0-9999–9999 | Frame insert point for image 24 (in pixel space). |
| insert_second_24opt | FLOAT | 0.00–9999 | Second insert point for image 24. |
| strength_24opt | FLOAT | 1.000–1 | Strength for image 24. |
| insert_frame_25opt | INT | 0-9999–9999 | Frame insert point for image 25 (in pixel space). |
| insert_second_25opt | FLOAT | 0.00–9999 | Second insert point for image 25. |
| strength_25opt | FLOAT | 1.000–1 | Strength for image 25. |
| insert_frame_26opt | INT | 0-9999–9999 | Frame insert point for image 26 (in pixel space). |
| insert_second_26opt | FLOAT | 0.00–9999 | Second insert point for image 26. |
| strength_26opt | FLOAT | 1.000–1 | Strength for image 26. |
| insert_frame_27opt | INT | 0-9999–9999 | Frame insert point for image 27 (in pixel space). |
| insert_second_27opt | FLOAT | 0.00–9999 | Second insert point for image 27. |
| strength_27opt | FLOAT | 1.000–1 | Strength for image 27. |
| insert_frame_28opt | INT | 0-9999–9999 | Frame insert point for image 28 (in pixel space). |
| insert_second_28opt | FLOAT | 0.00–9999 | Second insert point for image 28. |
| strength_28opt | FLOAT | 1.000–1 | Strength for image 28. |
| insert_frame_29opt | INT | 0-9999–9999 | Frame insert point for image 29 (in pixel space). |
| insert_second_29opt | FLOAT | 0.00–9999 | Second insert point for image 29. |
| strength_29opt | FLOAT | 1.000–1 | Strength for image 29. |
| insert_frame_30opt | INT | 0-9999–9999 | Frame insert point for image 30 (in pixel space). |
| insert_second_30opt | FLOAT | 0.00–9999 | Second insert point for image 30. |
| strength_30opt | FLOAT | 1.000–1 | Strength for image 30. |
| insert_frame_31opt | INT | 0-9999–9999 | Frame insert point for image 31 (in pixel space). |
| insert_second_31opt | FLOAT | 0.00–9999 | Second insert point for image 31. |
| strength_31opt | FLOAT | 1.000–1 | Strength for image 31. |
| insert_frame_32opt | INT | 0-9999–9999 | Frame insert point for image 32 (in pixel space). |
| insert_second_32opt | FLOAT | 0.00–9999 | Second insert point for image 32. |
| strength_32opt | FLOAT | 1.000–1 | Strength for image 32. |
| insert_frame_33opt | INT | 0-9999–9999 | Frame insert point for image 33 (in pixel space). |
| insert_second_33opt | FLOAT | 0.00–9999 | Second insert point for image 33. |
| strength_33opt | FLOAT | 1.000–1 | Strength for image 33. |
| insert_frame_34opt | INT | 0-9999–9999 | Frame insert point for image 34 (in pixel space). |
| insert_second_34opt | FLOAT | 0.00–9999 | Second insert point for image 34. |
| strength_34opt | FLOAT | 1.000–1 | Strength for image 34. |
| insert_frame_35opt | INT | 0-9999–9999 | Frame insert point for image 35 (in pixel space). |
| insert_second_35opt | FLOAT | 0.00–9999 | Second insert point for image 35. |
| strength_35opt | FLOAT | 1.000–1 | Strength for image 35. |
| insert_frame_36opt | INT | 0-9999–9999 | Frame insert point for image 36 (in pixel space). |
| insert_second_36opt | FLOAT | 0.00–9999 | Second insert point for image 36. |
| strength_36opt | FLOAT | 1.000–1 | Strength for image 36. |
| insert_frame_37opt | INT | 0-9999–9999 | Frame insert point for image 37 (in pixel space). |
| insert_second_37opt | FLOAT | 0.00–9999 | Second insert point for image 37. |
| strength_37opt | FLOAT | 1.000–1 | Strength for image 37. |
| insert_frame_38opt | INT | 0-9999–9999 | Frame insert point for image 38 (in pixel space). |
| insert_second_38opt | FLOAT | 0.00–9999 | Second insert point for image 38. |
| strength_38opt | FLOAT | 1.000–1 | Strength for image 38. |
| insert_frame_39opt | INT | 0-9999–9999 | Frame insert point for image 39 (in pixel space). |
| insert_second_39opt | FLOAT | 0.00–9999 | Second insert point for image 39. |
| strength_39opt | FLOAT | 1.000–1 | Strength for image 39. |
| insert_frame_40opt | INT | 0-9999–9999 | Frame insert point for image 40 (in pixel space). |
| insert_second_40opt | FLOAT | 0.00–9999 | Second insert point for image 40. |
| strength_40opt | FLOAT | 1.000–1 | Strength for image 40. |
| insert_frame_41opt | INT | 0-9999–9999 | Frame insert point for image 41 (in pixel space). |
| insert_second_41opt | FLOAT | 0.00–9999 | Second insert point for image 41. |
| strength_41opt | FLOAT | 1.000–1 | Strength for image 41. |
| insert_frame_42opt | INT | 0-9999–9999 | Frame insert point for image 42 (in pixel space). |
| insert_second_42opt | FLOAT | 0.00–9999 | Second insert point for image 42. |
| strength_42opt | FLOAT | 1.000–1 | Strength for image 42. |
| insert_frame_43opt | INT | 0-9999–9999 | Frame insert point for image 43 (in pixel space). |
| insert_second_43opt | FLOAT | 0.00–9999 | Second insert point for image 43. |
| strength_43opt | FLOAT | 1.000–1 | Strength for image 43. |
| insert_frame_44opt | INT | 0-9999–9999 | Frame insert point for image 44 (in pixel space). |
| insert_second_44opt | FLOAT | 0.00–9999 | Second insert point for image 44. |
| strength_44opt | FLOAT | 1.000–1 | Strength for image 44. |
| insert_frame_45opt | INT | 0-9999–9999 | Frame insert point for image 45 (in pixel space). |
| insert_second_45opt | FLOAT | 0.00–9999 | Second insert point for image 45. |
| strength_45opt | FLOAT | 1.000–1 | Strength for image 45. |
| insert_frame_46opt | INT | 0-9999–9999 | Frame insert point for image 46 (in pixel space). |
| insert_second_46opt | FLOAT | 0.00–9999 | Second insert point for image 46. |
| strength_46opt | FLOAT | 1.000–1 | Strength for image 46. |
| insert_frame_47opt | INT | 0-9999–9999 | Frame insert point for image 47 (in pixel space). |
| insert_second_47opt | FLOAT | 0.00–9999 | Second insert point for image 47. |
| strength_47opt | FLOAT | 1.000–1 | Strength for image 47. |
| insert_frame_48opt | INT | 0-9999–9999 | Frame insert point for image 48 (in pixel space). |
| insert_second_48opt | FLOAT | 0.00–9999 | Second insert point for image 48. |
| strength_48opt | FLOAT | 1.000–1 | Strength for image 48. |
| insert_frame_49opt | INT | 0-9999–9999 | Frame insert point for image 49 (in pixel space). |
| insert_second_49opt | FLOAT | 0.00–9999 | Second insert point for image 49. |
| strength_49opt | FLOAT | 1.000–1 | Strength for image 49. |
| insert_frame_50opt | INT | 0-9999–9999 | Frame insert point for image 50 (in pixel space). |
| insert_second_50opt | FLOAT | 0.00–9999 | Second insert point for image 50. |
| strength_50opt | FLOAT | 1.000–1 | Strength for image 50. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |
| latent | LATENT | Video latent with added guides |