Nodes/ComfyUI_StarNodes/⭐ Star LTX Video Settings
ComfyUI Node

⭐ Star LTX Video Settings

The LTX dimensions calculator that also remembers the half-res trick

By Starnodes2024·Created 2 years ago·Updated 2 days ago· 106
⭐ Star LTX Video Settings
  • image
  • width
  • width_float
  • height
  • height_float
  • width_50%
  • width_50%_float
  • height_50%
  • height_50%_float
  • frames
  • frames_float
  • fps
  • fps_float
  • seconds
  • seconds_float
video_sizeFHD
ratio16:9
custom_width1920
custom_height1080
best_size_from_inputfalse
fps24
seconds15

LTX-Video has a math problem nobody wants to do by hand. It wants its own native resolutions - 1280×720-ish for HD, with ratios like 21:9 and 9:16 that don't divide neatly - and it renders internally at half the resolution you request before upscaling. If you hardcode a 1920×1080 latent into an LTX workflow you're asking for trouble. Star LTX Video Settings is the calculator that does that math for you and emits every number downstream needs: full size, the half-size values the model actually works with, frame count, and framerate - as both INT and FLOAT so whichever node you're wiring into gets its type.

How it works

You pick a video_size (HD / FHD / Custom), a ratio from 11 options (1:1 up through 21:9, plus the portrait ones like 9:16 and 9:21), and it computes the pixel dimensions from fixed per-size ratio tables in the source. If your source image already has the ratio you want, best_size_from_input (with an optional image input) reads it straight from the pixels instead of the dropdown. fps and seconds then give you the frame math. The outputs are the whole story:

  • width / height (INT) and width_float / height_float (FLOAT) - the full-res canvas size, both numeric types so you can feed an Empty Latent that wants INT or a conditioning node that wants FLOAT.
  • width_50% / height_50% and their float twins - half the requested size. This is the LTX-specific bit: the model renders internally at half resolution and upscales, so these are the values to feed the actual latent when you want the model to do its native thing. The KB notes this is exactly why matching Wan's quality on LTX takes requesting 1080p.
  • frames / frames_float, fps / fps_float, seconds / seconds_float - the timing set.

That's fourteen outputs, which sounds like a lot, but they're organized by job: grab the half-size pair for the latent, the full-size pair for the output expectation, frames+fps for the video combine node.

Where it fits

Wire it at the top of an LTX workflow: the 50% width/height into your Empty Latent (or straight into the pack's LTXV All-in-One), fps and frames into whatever encodes the final video. One calculator node, no arithmetic in your head, and the "why is my output smaller than I asked" confusion disappears.

Installing

Part of the StarNodes pack - install Starnodes via ComfyUI Manager, or:

cd ComfyUI/custom_nodes
git clone https://github.com/Starnodes2024/ComfyUI_StarNodes
cd ComfyUI_StarNodes
pip install -r requirements.txt

Restart, then search star on the canvas. No models.

Common issues

The trap is using the full-size values where the model wants its internal half-size - if your LTX output comes out soft or the sampler complains about shape, you've wired the wrong pair. Also, best_size_from_input only helps if the input image is near the family's native aspect; a heavily-cropped source will just give you whatever ratio it has. And remember the custom width/height step is 32 - LTX is picky about divisibility, and the step exists so you can't break it by typing.

Category⭐StarNodes/Video

Inputs (8)

NameTypeDefaultDescription
video_sizeCOMBOFHD3 options: HD, FHD, Custom
ratioCOMBO16:911 options: 1:1, 4:3, 3:2, 16:10, 16:9, 21:9, +5
custom_widthINT192032–8192
custom_heightINT108032–8192
best_size_from_inputBOOLEANfalse
fpsINT241–120
secondsINT151–60
imageoptIMAGE

Outputs (14)

NameTypeDescription
widthINT
width_floatFLOAT
heightINT
height_floatFLOAT
width_50%INT
width_50%_floatFLOAT
height_50%INT
height_50%_floatFLOAT
framesINT
frames_floatFLOAT
fpsINT
fps_floatFLOAT
secondsINT
seconds_floatFLOAT