ComfyUI Node

LTX Sequencer

The node that put your first/last frames on a timeline

By WhatDreamsCost·Created 5 months ago·Updated 26 days ago· 1,996
LTX Sequencer
  • positive
  • negative
  • vae
  • latent
  • multi_input
  • positive
  • negative
  • latent
num_images1
insert_modeframes
frame_rate24
insert_frame_10
insert_second_10.0
strength_11.00
insert_frame_20
insert_second_20.0
strength_21.00
insert_frame_30
insert_second_30.0
strength_31.00
insert_frame_40
insert_second_40.0
strength_41.00
insert_frame_50
insert_second_50.0
strength_51.00
insert_frame_60
insert_second_60.0
strength_61.00
insert_frame_70
insert_second_70.0
strength_71.00
insert_frame_80
insert_second_80.0
strength_81.00
insert_frame_90
insert_second_90.0
strength_91.00
insert_frame_100
insert_second_100.0
strength_101.00
insert_frame_110
insert_second_110.0
strength_111.00
insert_frame_120
insert_second_120.0
strength_121.00
insert_frame_130
insert_second_130.0
strength_131.00
insert_frame_140
insert_second_140.0
strength_141.00
insert_frame_150
insert_second_150.0
strength_151.00
insert_frame_160
insert_second_160.0
strength_161.00
insert_frame_170
insert_second_170.0
strength_171.00
insert_frame_180
insert_second_180.0
strength_181.00
insert_frame_190
insert_second_190.0
strength_191.00
insert_frame_200
insert_second_200.0
strength_201.00
insert_frame_210
insert_second_210.0
strength_211.00
insert_frame_220
insert_second_220.0
strength_221.00
insert_frame_230
insert_second_230.0
strength_231.00
insert_frame_240
insert_second_240.0
strength_241.00
insert_frame_250
insert_second_250.0
strength_251.00
insert_frame_260
insert_second_260.0
strength_261.00
insert_frame_270
insert_second_270.0
strength_271.00
insert_frame_280
insert_second_280.0
strength_281.00
insert_frame_290
insert_second_290.0
strength_291.00
insert_frame_300
insert_second_300.0
strength_301.00
insert_frame_310
insert_second_310.0
strength_311.00
insert_frame_320
insert_second_320.0
strength_321.00
insert_frame_330
insert_second_330.0
strength_331.00
insert_frame_340
insert_second_340.0
strength_341.00
insert_frame_350
insert_second_350.0
strength_351.00
insert_frame_360
insert_second_360.0
strength_361.00
insert_frame_370
insert_second_370.0
strength_371.00
insert_frame_380
insert_second_380.0
strength_381.00
insert_frame_390
insert_second_390.0
strength_391.00
insert_frame_400
insert_second_400.0
strength_401.00
insert_frame_410
insert_second_410.0
strength_411.00
insert_frame_420
insert_second_420.0
strength_421.00
insert_frame_430
insert_second_430.0
strength_431.00
insert_frame_440
insert_second_440.0
strength_441.00
insert_frame_450
insert_second_450.0
strength_451.00
insert_frame_460
insert_second_460.0
strength_461.00
insert_frame_470
insert_second_470.0
strength_471.00
insert_frame_480
insert_second_480.0
strength_481.00
insert_frame_490
insert_second_490.0
strength_491.00
insert_frame_500
insert_second_500.0
strength_501.00

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_N and strength_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.

CategoryWhatDreamsCost

Inputs (158)

NameTypeDefaultDescription
positiveCONDITIONINGPositive conditioning to which guide keyframe info will be added
negativeCONDITIONINGNegative conditioning to which guide keyframe info will be added
vaeVAEVideo VAE used to encode the guide images
latentLATENTVideo latent, guides are added to the end of this latent
multi_inputIMAGEBatched images from MultiImageLoader
num_imagesINT10–50Select how many index/strength widgets to configure.
insert_modeCOMBOframesSelect the method for determining insertion points.
frame_rateINT241–120Video FPS (used for calculating second insertions).
insert_frame_1optINT0-9999–9999Frame insert point for image 1 (in pixel space).
insert_second_1optFLOAT0.00–9999Second insert point for image 1.
strength_1optFLOAT1.000–1Strength for image 1.
insert_frame_2optINT0-9999–9999Frame insert point for image 2 (in pixel space).
insert_second_2optFLOAT0.00–9999Second insert point for image 2.
strength_2optFLOAT1.000–1Strength for image 2.
insert_frame_3optINT0-9999–9999Frame insert point for image 3 (in pixel space).
insert_second_3optFLOAT0.00–9999Second insert point for image 3.
strength_3optFLOAT1.000–1Strength for image 3.
insert_frame_4optINT0-9999–9999Frame insert point for image 4 (in pixel space).
insert_second_4optFLOAT0.00–9999Second insert point for image 4.
strength_4optFLOAT1.000–1Strength for image 4.
insert_frame_5optINT0-9999–9999Frame insert point for image 5 (in pixel space).
insert_second_5optFLOAT0.00–9999Second insert point for image 5.
strength_5optFLOAT1.000–1Strength for image 5.
insert_frame_6optINT0-9999–9999Frame insert point for image 6 (in pixel space).
insert_second_6optFLOAT0.00–9999Second insert point for image 6.
strength_6optFLOAT1.000–1Strength for image 6.
insert_frame_7optINT0-9999–9999Frame insert point for image 7 (in pixel space).
insert_second_7optFLOAT0.00–9999Second insert point for image 7.
strength_7optFLOAT1.000–1Strength for image 7.
insert_frame_8optINT0-9999–9999Frame insert point for image 8 (in pixel space).
insert_second_8optFLOAT0.00–9999Second insert point for image 8.
strength_8optFLOAT1.000–1Strength for image 8.
insert_frame_9optINT0-9999–9999Frame insert point for image 9 (in pixel space).
insert_second_9optFLOAT0.00–9999Second insert point for image 9.
strength_9optFLOAT1.000–1Strength for image 9.
insert_frame_10optINT0-9999–9999Frame insert point for image 10 (in pixel space).
insert_second_10optFLOAT0.00–9999Second insert point for image 10.
strength_10optFLOAT1.000–1Strength for image 10.
insert_frame_11optINT0-9999–9999Frame insert point for image 11 (in pixel space).
insert_second_11optFLOAT0.00–9999Second insert point for image 11.
strength_11optFLOAT1.000–1Strength for image 11.
insert_frame_12optINT0-9999–9999Frame insert point for image 12 (in pixel space).
insert_second_12optFLOAT0.00–9999Second insert point for image 12.
strength_12optFLOAT1.000–1Strength for image 12.
insert_frame_13optINT0-9999–9999Frame insert point for image 13 (in pixel space).
insert_second_13optFLOAT0.00–9999Second insert point for image 13.
strength_13optFLOAT1.000–1Strength for image 13.
insert_frame_14optINT0-9999–9999Frame insert point for image 14 (in pixel space).
insert_second_14optFLOAT0.00–9999Second insert point for image 14.
strength_14optFLOAT1.000–1Strength for image 14.
insert_frame_15optINT0-9999–9999Frame insert point for image 15 (in pixel space).
insert_second_15optFLOAT0.00–9999Second insert point for image 15.
strength_15optFLOAT1.000–1Strength for image 15.
insert_frame_16optINT0-9999–9999Frame insert point for image 16 (in pixel space).
insert_second_16optFLOAT0.00–9999Second insert point for image 16.
strength_16optFLOAT1.000–1Strength for image 16.
insert_frame_17optINT0-9999–9999Frame insert point for image 17 (in pixel space).
insert_second_17optFLOAT0.00–9999Second insert point for image 17.
strength_17optFLOAT1.000–1Strength for image 17.
insert_frame_18optINT0-9999–9999Frame insert point for image 18 (in pixel space).
insert_second_18optFLOAT0.00–9999Second insert point for image 18.
strength_18optFLOAT1.000–1Strength for image 18.
insert_frame_19optINT0-9999–9999Frame insert point for image 19 (in pixel space).
insert_second_19optFLOAT0.00–9999Second insert point for image 19.
strength_19optFLOAT1.000–1Strength for image 19.
insert_frame_20optINT0-9999–9999Frame insert point for image 20 (in pixel space).
insert_second_20optFLOAT0.00–9999Second insert point for image 20.
strength_20optFLOAT1.000–1Strength for image 20.
insert_frame_21optINT0-9999–9999Frame insert point for image 21 (in pixel space).
insert_second_21optFLOAT0.00–9999Second insert point for image 21.
strength_21optFLOAT1.000–1Strength for image 21.
insert_frame_22optINT0-9999–9999Frame insert point for image 22 (in pixel space).
insert_second_22optFLOAT0.00–9999Second insert point for image 22.
strength_22optFLOAT1.000–1Strength for image 22.
insert_frame_23optINT0-9999–9999Frame insert point for image 23 (in pixel space).
insert_second_23optFLOAT0.00–9999Second insert point for image 23.
strength_23optFLOAT1.000–1Strength for image 23.
insert_frame_24optINT0-9999–9999Frame insert point for image 24 (in pixel space).
insert_second_24optFLOAT0.00–9999Second insert point for image 24.
strength_24optFLOAT1.000–1Strength for image 24.
insert_frame_25optINT0-9999–9999Frame insert point for image 25 (in pixel space).
insert_second_25optFLOAT0.00–9999Second insert point for image 25.
strength_25optFLOAT1.000–1Strength for image 25.
insert_frame_26optINT0-9999–9999Frame insert point for image 26 (in pixel space).
insert_second_26optFLOAT0.00–9999Second insert point for image 26.
strength_26optFLOAT1.000–1Strength for image 26.
insert_frame_27optINT0-9999–9999Frame insert point for image 27 (in pixel space).
insert_second_27optFLOAT0.00–9999Second insert point for image 27.
strength_27optFLOAT1.000–1Strength for image 27.
insert_frame_28optINT0-9999–9999Frame insert point for image 28 (in pixel space).
insert_second_28optFLOAT0.00–9999Second insert point for image 28.
strength_28optFLOAT1.000–1Strength for image 28.
insert_frame_29optINT0-9999–9999Frame insert point for image 29 (in pixel space).
insert_second_29optFLOAT0.00–9999Second insert point for image 29.
strength_29optFLOAT1.000–1Strength for image 29.
insert_frame_30optINT0-9999–9999Frame insert point for image 30 (in pixel space).
insert_second_30optFLOAT0.00–9999Second insert point for image 30.
strength_30optFLOAT1.000–1Strength for image 30.
insert_frame_31optINT0-9999–9999Frame insert point for image 31 (in pixel space).
insert_second_31optFLOAT0.00–9999Second insert point for image 31.
strength_31optFLOAT1.000–1Strength for image 31.
insert_frame_32optINT0-9999–9999Frame insert point for image 32 (in pixel space).
insert_second_32optFLOAT0.00–9999Second insert point for image 32.
strength_32optFLOAT1.000–1Strength for image 32.
insert_frame_33optINT0-9999–9999Frame insert point for image 33 (in pixel space).
insert_second_33optFLOAT0.00–9999Second insert point for image 33.
strength_33optFLOAT1.000–1Strength for image 33.
insert_frame_34optINT0-9999–9999Frame insert point for image 34 (in pixel space).
insert_second_34optFLOAT0.00–9999Second insert point for image 34.
strength_34optFLOAT1.000–1Strength for image 34.
insert_frame_35optINT0-9999–9999Frame insert point for image 35 (in pixel space).
insert_second_35optFLOAT0.00–9999Second insert point for image 35.
strength_35optFLOAT1.000–1Strength for image 35.
insert_frame_36optINT0-9999–9999Frame insert point for image 36 (in pixel space).
insert_second_36optFLOAT0.00–9999Second insert point for image 36.
strength_36optFLOAT1.000–1Strength for image 36.
insert_frame_37optINT0-9999–9999Frame insert point for image 37 (in pixel space).
insert_second_37optFLOAT0.00–9999Second insert point for image 37.
strength_37optFLOAT1.000–1Strength for image 37.
insert_frame_38optINT0-9999–9999Frame insert point for image 38 (in pixel space).
insert_second_38optFLOAT0.00–9999Second insert point for image 38.
strength_38optFLOAT1.000–1Strength for image 38.
insert_frame_39optINT0-9999–9999Frame insert point for image 39 (in pixel space).
insert_second_39optFLOAT0.00–9999Second insert point for image 39.
strength_39optFLOAT1.000–1Strength for image 39.
insert_frame_40optINT0-9999–9999Frame insert point for image 40 (in pixel space).
insert_second_40optFLOAT0.00–9999Second insert point for image 40.
strength_40optFLOAT1.000–1Strength for image 40.
insert_frame_41optINT0-9999–9999Frame insert point for image 41 (in pixel space).
insert_second_41optFLOAT0.00–9999Second insert point for image 41.
strength_41optFLOAT1.000–1Strength for image 41.
insert_frame_42optINT0-9999–9999Frame insert point for image 42 (in pixel space).
insert_second_42optFLOAT0.00–9999Second insert point for image 42.
strength_42optFLOAT1.000–1Strength for image 42.
insert_frame_43optINT0-9999–9999Frame insert point for image 43 (in pixel space).
insert_second_43optFLOAT0.00–9999Second insert point for image 43.
strength_43optFLOAT1.000–1Strength for image 43.
insert_frame_44optINT0-9999–9999Frame insert point for image 44 (in pixel space).
insert_second_44optFLOAT0.00–9999Second insert point for image 44.
strength_44optFLOAT1.000–1Strength for image 44.
insert_frame_45optINT0-9999–9999Frame insert point for image 45 (in pixel space).
insert_second_45optFLOAT0.00–9999Second insert point for image 45.
strength_45optFLOAT1.000–1Strength for image 45.
insert_frame_46optINT0-9999–9999Frame insert point for image 46 (in pixel space).
insert_second_46optFLOAT0.00–9999Second insert point for image 46.
strength_46optFLOAT1.000–1Strength for image 46.
insert_frame_47optINT0-9999–9999Frame insert point for image 47 (in pixel space).
insert_second_47optFLOAT0.00–9999Second insert point for image 47.
strength_47optFLOAT1.000–1Strength for image 47.
insert_frame_48optINT0-9999–9999Frame insert point for image 48 (in pixel space).
insert_second_48optFLOAT0.00–9999Second insert point for image 48.
strength_48optFLOAT1.000–1Strength for image 48.
insert_frame_49optINT0-9999–9999Frame insert point for image 49 (in pixel space).
insert_second_49optFLOAT0.00–9999Second insert point for image 49.
strength_49optFLOAT1.000–1Strength for image 49.
insert_frame_50optINT0-9999–9999Frame insert point for image 50 (in pixel space).
insert_second_50optFLOAT0.00–9999Second insert point for image 50.
strength_50optFLOAT1.000–1Strength for image 50.

Outputs (3)

NameTypeDescription
positiveCONDITIONING
negativeCONDITIONING
latentLATENTVideo latent with added guides