LTX Take Controls (Joy-LTX 2.5)
The master panel that sizes an LTX-2.5 take to your card
- pass1_width
- pass1_height
- frames
- two_pass
- use_x15
- beats
- beat_frames
- summary
This node is the odd one out in the pack in the best way: it's not for MiniMax-H3 at all. It's the MASTER CONTROLS panel for the pack's other canvas, the LTX-2.5 single-generation one (the "Joy-LTX 2.5" workflow). Where H3 renders short blocks and chains them, LTX renders a whole take in ONE generation - and LTX has a cost model that punishes guessing. H3LTXTakeControls does for LTX what the H3 studio controls do for H3: it sizes the render to your card so you don't find out at step 200 that the take was never going to fit.
How it works
LTX's cost is tokens = (W/32)(H/32) × latent frames, and the upscale pass runs on the output grid. That's the lever this panel pulls: the upscale factor decides the real cost. x2 means 4x the pixels of pass 1, x1.5 means 2.25x, none means pass 1 only. So upscale defaults to auto - the largest output that fits your card - and as you push take_seconds up, auto steps the upscale down (x2 → x1.5 → none) and prints which, keeping you on the edge of what fits instead of over it. The measured comfort zone on a 24GB card is 8s at x2, ~14s at x1.5, at 960x544.
The inputs that matter
width,height- render (pass-1) size; output = this × the upscale factor, so 960x544 x2 = 1920x1088. Multiples of 32.take_seconds- 1 to 60, length of the whole take in one generation.beat_seconds- how long each written sentence/beat should be; the writer getstake_seconds / beat_secondsbeats to write. This is the pacing knob that keeps dialogue from cramming.upscale-auto/x2(the official LTX-2.5 spatial upscaler, 4x pixels in pass 2) /x1.5(the LTX-2.3 x1.5 file, which works on 2.5 latents - verified - and is ~1.8x the seconds of x2) /none.vram_gb-0= read the card. Set a number to plan for another card, useful when you're tuning a workflow you'll hand to someone with a 16GB card.
Outputs: pass1_width, pass1_height, frames, two_pass (whether pass 2 runs), use_x15, beats, beat_frames, and a summary string. Wire these into the LTX sampler, the writer, and the upscaler.
Where it fits
The LTX ecosystem has always been the speed-first corner of local video - LTX's defining trait is fast, short generations. This workflow takes that and gives you a take: a single generation of 8-14 seconds with audio, sized to the card automatically, with the writer's beat count driven by the same panel so dialogue matches the actual length. If you're on the LTX-2.5 path and want "type a length, render a take" without doing token math yourself, this is the node. (It's also proof of how seriously this pack's author documents cost models - the tooltips here are little essays.)
Install
Ships in the H3 Multishot pack:
cd ComfyUI/custom_nodes
git clone https://github.com/jlucasmcrell/ComfyUI-H3-Multishot
or ComfyUI-Manager → H3 Multishot. Restart; ComfyUI v0.30.0+. The LTX workflow also needs the LTX-2.5 model files and ComfyUI's own LTX nodes, which ship with ComfyUI - check the workflow's requirements for the exact upscaler files (the x2 and x1.5 variants are separate downloads).
The trap: vram_gb = 0 reads your card, but if you've got other things loaded, "reads your card" reads the total, not the free headroom. The panel's estimates assume a clean card. If your take OOMs on a busy machine, drop take_seconds or pin upscale to x1.5 - that's the knob auto won't turn for you mid-render.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| width | INT | 960256–1920 | RENDER (pass-1) width. Output = this x the upscale factor (960x544 x2 = 1920x1088, x1.5 = 1440x832). Multiples of 32. |
| height | INT | 544256–1920 | Render (pass-1) height; output = this x the upscale factor. |
| take_seconds | FLOAT | 8.01–60 | Length of the take, rendered in ONE generation. Longer takes cost tokens; past what the card fits, auto steps the upscale down (x2 -> x1.5 -> none) and prints which. 8 s x2 / ~14 s x1.5 at 960x544 is the 24 GB comfort zone. |
| beat_seconds | FLOAT | 8.03–15 | How long each written sentence/beat should be; the writer gets take_seconds / beat_seconds beats to write. |
| upscale | COMBO | auto | auto = the largest output that fits your card. x2 = the official LTX-2.5 spatial upscaler (4x pixels in pass 2). x1.5 = the LTX-2.3 spatial x1.5 upscaler file - works on 2.5 latents (verified render), 2.25x pixels, so about 1.8x the seconds of x2 on the same card. none = pass 1 only at the render size. |
| vram_gbopt | FLOAT | 00–200 | 0 = read the card. Set a number to plan for another card. |
Outputs (8)
| Name | Type | Description |
|---|---|---|
| pass1_width | INT | — |
| pass1_height | INT | — |
| frames | INT | — |
| two_pass | BOOLEAN | — |
| use_x15 | BOOLEAN | — |
| beats | INT | — |
| beat_frames | INT | — |
| summary | STRING | — |