TensorScale LTX-2.5 Fast Video (Soze)
Synced audio video at $0.04 a second, right in your graph
- image
- video
- video_path
- request_id
- config
- status
Lightricks' LTX line has always been about speed - the local models were the "generate faster than you can watch it" crowd. This node is the hosted take on that philosophy: TensorScale's LTX-2.5 Fast, billed at a flat $0.04 per generated video second, with audio generated and synced in the same pass. No local weights to download, no VRAM to budget, just a prompt and a key. If you've ever run LTX locally and wished it came with a soundtrack, this is that wish fulfilled.
The inputs
The prompt is the single most important input, and the tooltip makes the reason clear: it describes both the video and the audio. "A lighthouse beam sweeps the fog; waves crash against the rocks below" is an LTX-2.5 prompt - the sound is generated from the same description, so write for the ear as well as the eye.
resolution- five options from 576x1024 up to 1920x1088 (native 1080p, more or less).num_frames-121(5 seconds) or241(10 seconds). Frame rate is fixed at 24 fps, so the frame count is the duration; there's no other length.seed- defaults to 10; set it for reproducible takes.
Then the image-to-video path: connect an image and it conditions frame 0. image_strength (0–1, default 0 = let the service decide) sets how strongly that frame anchors the clip, and crf (0–51, default 0 = omit) overrides the output compression. One important quirk: this endpoint only accepts the image inline - it rejects URLs. There's no use_fal_upload option here, so the 10 MiB body cap applies to your conditioning frame; a normal PNG is fine, an enormous one isn't.
How it works
TensorScale's /v2/ltx2-5/fast runs synchronously with a model-scoped key (TENSORSCALE_API_KEY_LTX2_5_FAST, falling back to TENSORSCALE_API_KEY). The default timeout is 7200s - the maximum the pack allows - because a 10-second clip with audio is a genuinely long single request. The node logs the estimated cost, so you can see the per-run bill in the status output before it even lands.
Outputs: video (the VIDEO object), video_path, request_id, config (a run summary including the cost estimate), 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 the model-scoped TENSORSCALE_API_KEY_LTX2_5_FAST (environment variable or .env in the repo root). Keep it out of git.
Common issues
- Cost surprise. At $0.04/second, a 10-second clip is $0.40 - cheap per render, not free when batched. The status output shows the estimate, so check it before you run a queue of fifty.
- Image conditioning rejected. This endpoint refuses URLs, so only the inline socket works - and it must stay under the 10 MiB cap.
- Length is locked to 5 or 10 seconds. If you need 7, this node isn't the tool; the frame-count dropdown is fixed.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Describes both the video and the audio to generate. | |
| resolution | COMBO | 1920x1088 | 5 options: 1920x1088, 1088x1920, 1280x768, 768x1280, 576x1024 |
| num_frames | COMBO | 121 | 121 = 5 seconds, 241 = 10 seconds (at the fixed 24 fps). |
| seed | INT | 100–4294967295 | — |
| imageopt | IMAGE | Optional first-frame conditioning (frame_idx 0). Inline only — this endpoint rejects URLs. | |
| image_strengthopt | FLOAT | 0.000–1 | 0 = omit and let the service default. |
| crfopt | INT | 00–51 | 0 = omit. Otherwise overrides the output CRF. |
| image_formatopt | COMBO | PNG | 2 options: PNG, JPEG |
| api_key_envopt | STRING | TENSORSCALE_API_KEY_LTX2_5_FAST | Environment variable holding the model-scoped key. Falls back to TENSORSCALE_API_KEY when unset. |
| timeoutopt | INT | 720060–7200 | Read timeout in seconds. These endpoints are synchronous — the socket stays open for the whole generation. |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| video_path | STRING | — |
| request_id | STRING | — |
| config | STRING | — |
| status | STRING | — |