Protoface LTX 2.5 Fast · Generate Video
The hosted version of the model you'd otherwise run at home
- video
- files
- run id
The awkward one: this model can run on your GPU
Most nodes in this pack exist because the model is closed and there's no other door. LTX is the exception. Lightricks releases the weights - LTX 2.5's predecessors are why the KB calls the family "the speed tier of local video generation," seconds per clip where Wan takes minutes - under a licence that's free below a revenue cap. You can absolutely run it at home.
So why call the hosted one? Three honest reasons. You don't want to babysit 19B-class weights and their VRAM appetite on a laptop. You want the synced-audio path without building a two-pass pipeline. Or you're already in this pack for Veo and Kling and it's one more node instead of one more model download.
This is LTX 2.5 Fast, the generate-video task, in Protoface - the beta pack of hosted-model nodes for ComfyUI. Paid per generation, remote, no weights.
How it works
Same shared adapter as every node in the pack: schema-derived controls, validation, upload, journaled request, submit, poll, download as native VIDEO. The interesting part is LTX's own design: it generates picture and audio in the same pass, which is exactly why Lightricks positioned the family as a rendering engine rather than a prompt box. LTX 2.5 Fast inherits that - synchronized audio from a single generation.
generation_id is the paid-request identity (fixed = reuse/resume, increment = spend), and several controls here are media-style - Default means the field isn't sent at all, which is different from sending a blank value.
The inputs that matter
prompt - LTX punishes short prompts; that's been true of the family since the 2B days. Describe camera, light, subject, and motion in a couple of full sentences.
quality defaults to 720p, and the tooltip is unusually precise: each tier is an exact canvas, not a marketing label. duration_seconds is an integer from 6 to 20, but the admissible range narrows per tier - the field text says as much. Set quality first, then duration.
audio_url is the input that makes this node special. It's a media input in native Audio mode, so you can wire in an AUDIO from anywhere else in the graph - a TTS generation, a voice-changed take, a music bed. Picture plus a given track is a lip-sync or music-video shape that would otherwise need a whole local Wan-plus-MultiTalk graph.
image_url and last_image_url are the frame controls: start only, or start-and-end for interpolation. Both are media inputs with a References mode for asset ids and reused results from other jobs.
generate_audio defaults on and the tooltip is refreshingly blunt: LTX emits synchronized audio from the same pass, and disabling it does not reduce cost. So there's no reason to turn it off except to get a silent file.
enhance_prompt (off) rewrites your prompt into the engine's native grammar, best-effort - if the rewrite is unavailable or would change your direction, your text goes through unchanged.
Outputs
video (native VIDEO, list), files (PROTOFACE_FILE list of every original download), run id (string, for Protoface Resume Run). The pack ships an LTX image-to-video template under Templates → the Protoface extension if you want a working starting graph.
Install
Manager → search Protoface → install protoface-nodes → restart → reload. Manual:
git clone --branch v0.1.0 --depth 1 https://github.com/protoface-ai/protoface-comfyui.git custom_nodes/protoface
python -m pip install -r custom_nodes/protoface/requirements.txt
ComfyUI 0.41.0+ and Python 3.10+, with ComfyUI's own interpreter. av matters more here than anywhere else in the pack, because you're moving audio between nodes as well as video. Then click Protoface in the lower-right and enter your key.
Where people get burned
Duration and quality disagreeing. The envelope is 6–20 s, but each tier has its own narrower window. Validation will tell you; read it instead of random-clicking.
Paying for something you could run locally. If you have the VRAM and the patience, the open LTX weights are right there. Hosted is convenience, not capability - be clear with yourself about which you're buying.
Wiring audio into the wrong input type. audio_url wants audio. An IMAGE or VIDEO connection there will be refused, and the error is about modality, not about your file being bad.
Bumping generation_id to "recover" a slow job. That's a new charge. Requeue unchanged, or use Resume Run with the run id.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| quality | COMBO | 720p | Output resolution tier. Each tier is an exact canvas, not a label. |
| duration_seconds | INT | 66–20 | Envelope across all tiers. The admissible range narrows per tier; see tiers[].duration_seconds. |
| aspect_ratio | COMBO | 16:9 | 2 options: 16:9, 9:16 |
| audio_url | COMBO | A public URL, a data URI, or an asset id. | |
| enhance_prompt | BOOLEAN | false | Rewrite the prompt into this engine's native prompt grammar before rendering. Best effort: the prompt is sent unchanged if the rewrite is unavailable or would alter the requested direction. |
| generate_audio | BOOLEAN | true | LTX 2.5 Fast emits synchronized audio from the same pass; disabling it does not reduce cost. |
| image_url | COMBO | A public URL, a data URI, or an asset id. | |
| last_image_url | COMBO | A public URL, a data URI, or an asset id. | |
| seed | COMBO | 3 options: [object Object], [object Object], [object Object] | |
| generation_id | INT | 00–9007199254740991 | Keep fixed to reuse/resume this paid job. Increment for a fresh paid generation; independent of the model seed. |
| request_scope | STRING | Automatically assigned per node. Headless clients must supply a stable unique workflow/node ID. This is not a secret. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| files | PROTOFACE_FILE | — |
| run id | STRING | — |