FAL LTX-2 Video Generation
LTX-2 on the API — the fastest video model, without hosting 19B
- image
- video
- video_path
- generation_info
- generation_time
FAL LTX-2 Video Generation wraps fal-ai/ltx-2-19b/.../image-to-video/lora - the API version of Lightricks' LTX-2. If you've read the KB's LTX coverage, the pitch is familiar: LTX is the speed tier of video generation, the model you draft with, and here it's the speed tier with the 19B model hosted for you. No local VRAM juggling, no Wan2GP tricks, no --reserve-vram flags. You send an image and a prompt, and fal runs LTX-2.
The node is honestly the fullest-featured video node in the pack - the author gave it everything the API exposes:
- model_variant -
regularordistilled. This is the big one. Distilled is the step-distilled speed model; the KB documents the local equivalent and its "distilled VAE fix" saga, so you know this is a real fork in quality-vs-speed, not a marketing toggle. Distilled for drafts, regular for the keeper. - num_frames (up to 257), width/height (256–2048), fps (up to 60), image_strength (0–1, how hard to stick to your source image) - the geometry of the clip.
- camera_lora - a dropdown of dolly/pan/tilt/zoom moves (dolly_in, pan_left, zoom_out, etc.) plus camera_lora_scale. This is the "built-in camera motion LoRAs" feature the README brags about, and it's legitimately handy: instead of describing camera motion in the prompt and hoping, you pick a move.
- lora_url / lora_scale / lora_name - custom LoRA support for style control.
- negative_prompt, guidance_scale (default 3), num_inference_steps (default 40), use_multiscale (on by default, a quality-vs-speed switch), generate_audio (LTX-2's signature synchronized-audio capability - the KB says its killer apps are lipsync and music video), enable_safety_checker, acceleration (none/tensorrt), seed.
- video_output_type - X264 mp4, H265 mp4, ProRes mov, or GIF - with video_quality and video_write_mode beside it.
Outputs: video (a proper VIDEO type you can preview in the UI - the node constructs a VideoFromFile object), video_path, generation_info, and generation_time.
Where this fits in 2026's video landscape: the KB's standing advice is that LTX loses to Wan on faces, bodies and complex motion but wins on environments, camera moves, and sheer turnaround - the "draft in LTX, refine in Wan" workflow is a documented pattern. This node gives you the draft tier without downloading anything. If your project is camera moves over environments, LTX-2 via API is a completely reasonable place to be.
The honest trade, as with every FAL node: it's paid per job, and "fast" is relative when there's a network round-trip in the middle. The KB also notes LTX "punishes short prompts" - write a real prompt, not "a cat." And while the node hands back a VIDEO object, remember the files land in ComfyUI's temp directory (the source saves videos and their metadata JSON there), so don't expect your finished clips in output/ - grab the video_path and move it if you need it long-term.
Install is the pack standard: Manager search "Node Fun", or clone https://github.com/nofunstudio/Node_Fun_ComfyUI into custom_nodes, pip install -r requirements.txt, restart, and set a FAL key. If you already run LTX locally, this node is a nice fallback when you're away from the big GPU; if you don't, it's the whole LTX-2 experience in one box.
Inputs (25)
| Name | Type | Default | Description |
|---|---|---|---|
| api_token | STRING | — | |
| model_variant | COMBO | regular | 2 options: regular, distilled |
| image | IMAGE | — | |
| prompt | STRING | A cinematic video transformation with smooth motion | — |
| num_frames | INT | 1211–257 | — |
| width | INT | 1024256–2048 | — |
| height | INT | 1024256–2048 | — |
| fps | INT | 241–60 | — |
| image_strength | FLOAT | 1.000–1 | — |
| negative_promptopt | STRING | blurry, out of focus, overexposed, underexposed, low contrast, washed out colors, excessive noise, grainy texture, poor lighting, flickering, motion blur, distorted proportions, unnatural skin tones, deformed facial features, asymmetrical face, missing facial features, extra limbs, disfigured hands, wrong hand count, artifacts around text, inconsistent perspective, camera shake | — |
| guidance_scaleopt | FLOAT | 3.00–20 | — |
| num_inference_stepsopt | INT | 401–100 | — |
| use_multiscaleopt | BOOLEAN | true | — |
| generate_audioopt | BOOLEAN | false | — |
| enable_safety_checkeropt | BOOLEAN | true | — |
| accelerationopt | COMBO | none | 2 options: none, tensorrt |
| camera_loraopt | COMBO | none | 9 options: none, dolly_in, dolly_out, pan_left, pan_right, tilt_up, +3 |
| camera_lora_scaleopt | FLOAT | 1.000–2 | — |
| video_output_typeopt | COMBO | X264 (.mp4) | 4 options: X264 (.mp4), H265 (.mp4), ProRes (.mov), GIF (.gif) |
| video_qualityopt | COMBO | high | 4 options: low, medium, high, ultra |
| video_write_modeopt | COMBO | balanced | 3 options: fast, balanced, quality |
| lora_urlopt | STRING | — | |
| lora_scaleopt | FLOAT | 1.000–2 | — |
| lora_nameopt | STRING | LTX-2 | — |
| seedopt | INT | -1-1–2147483647 | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| video_path | STRING | — |
| generation_info | STRING | — |
| generation_time | STRING | — |