Nodes/Quality of Life Nodes for ComfyUI/TensorScale LTX-2.3 Fast Video (Soze)
ComfyUI Node

TensorScale LTX-2.3 Fast Video (Soze)

The cheap hosted LTX tier with the flexible image anchor

By SozeInc·Created 2 years ago·Updated a day ago· 10
TensorScale LTX-2.3 Fast Video (Soze)
  • image
  • video
  • video_path
  • request_id
  • config
  • status
prompt
duration5
resolution1280x768
seed42
image_url
image_strength1.00
frame_idx0
use_fal_uploadfalse
image_formatPNG
api_key_envTENSORSCALE_API_KEY_LTX_2_3_FAST
timeout1800

The previous generation of Lightricks' hosted fast tier, and honestly still a perfectly good place to spend your draft renders. LTX-2.3 Fast is text-to-video by default, with an image anchor available when you want one, and it costs less than its 2.5 successor - which makes it the iteration node in the TensorScale family. Use 2.5 for the final pass with audio; use 2.3 to figure out what the shot even is.

The inputs

Small required set: prompt, duration (5 or 8 seconds - that's the whole choice), resolution (1920x1088, 1088x1920, 1280x768, or 768x1280), and seed. The prompt is pure scene description; unlike the 2.5 node, there's no audio to describe, so keep it visual.

The interesting part is how the image conditioning works, because LTX-2.3 gives you three ways in:

  • image_url - paste a public HTTPS URL. It wins if both are supplied.
  • image socket - connect an image tensor; it's sent as an image_inputs entry with an inline data URI. Because it's a structured entry, you also get frame_idx (0–240), which lets you anchor a frame other than the first. That's rare and handy - condition frame 20 if that's the key beat.
  • use_fal_upload - flip this on to push the socket image to FAL's CDN and send the flat URL form instead of inlining. If the image is large, this keeps you under the 10 MiB body cap (and it needs FAL_KEY configured).

image_strength (0–1, default 1.0) controls how hard the anchor holds. It's a lean, well-specified node.

How it works

TensorScale's /v2/ltx-2.3/fast runs synchronously with a model-scoped key (TENSORSCALE_API_KEY_LTX_2_3_FAST, falling back to TENSORSCALE_API_KEY). The node POSTs once and the connection stays open through the whole generation - the timeout widget (default 1800s) is a read timeout, and a long clip is legitimately minutes. The returned mp4 is saved to disk and handed back as a VIDEO object.

Outputs: video, video_path, request_id, config (a run summary string), and status.

Install and key

From the Soze pack ("Quality of Life Nodes for ComfyUI"), via ComfyUI Manager or:

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

Restart, then set TENSORSCALE_API_KEY or TENSORSCALE_API_KEY_LTX_2_3_FAST (environment variable or .env in the repo root). Don't commit keys.

Common issues

  • Inline image too big. If you get the 10 MiB error, either use image_url with a hosted image or turn on use_fal_upload.
  • use_fal_upload errors out. It needs a FAL_KEY even though generation is TensorScale - the upload hop is FAL's CDN.
  • Frame anchor not where you expected. Check frame_idx - with an inline image_inputs entry, 0 is the default but not the only option. A typed image_url always lands at frame 0.
CategoryTensorScale/VideoGeneration

Inputs (12)

NameTypeDefaultDescription
promptSTRING
durationCOMBO5Clip length in seconds.
resolutionCOMBO1280x7684 options: 1920x1088, 1088x1920, 1280x768, 768x1280
seedINT420–4294967295
imageoptIMAGEOptional conditioning frame, sent inline via image_inputs.
image_urloptSTRINGPublic HTTPS image URL. Overrides the image socket.
image_strengthoptFLOAT1.000–1
frame_idxoptINT00–240Which frame the socket image conditions (image_inputs only).
use_fal_uploadoptBOOLEANfalseUpload the image socket to FAL's CDN and use the flat image_url form instead of inlining.
image_formatoptCOMBOPNG2 options: PNG, JPEG
api_key_envoptSTRINGTENSORSCALE_API_KEY_LTX_2_3_FASTEnvironment variable holding the model-scoped key. Falls back to TENSORSCALE_API_KEY when unset.
timeoutoptINT180060–7200Read timeout in seconds. These endpoints are synchronous — the socket stays open for the whole generation.

Outputs (5)

NameTypeDescription
videoVIDEO
video_pathSTRING
request_idSTRING
configSTRING
statusSTRING