LTX Image to Video 🖼️➡️🎬
LTX Image to Video
- image
- last_frame
- frames
- video
- fps
You've got a nice still and you want it to move - a product shot drifting past, a portrait turning its head, a scene with a slow dolly. That's this node. Point it at an image, describe the motion, and the hosted LTX-2.3 API renders an animated clip. Same pack-wide deal as the other nodes: no local model, no VRAM, just an API key and a few cents per call.
Image-to-video is the mode that gave LTX-2 its worst reputation, so it's worth knowing where this sits in the timeline. LTX-2's I2V was infamous for frozen output - "often slow zooms, none or minimal motion, low quality" was a fair summary of early 2026 complaints. Then 2.3 reworked I2V training specifically to kill static results and unexpected cuts. So if you've been burned by an older LTX i2v workflow, this node is hitting the current, much-improved model, not the one that dogged the January release.
How it works
Your image gets JPEG-encoded (auto-resized past 1920px), uploaded to LTX's cloud storage, and POSTed to /v1/image-to-video along with your prompt and settings. The server renders, downloads the MP4 to output/, and decodes it back into a frame tensor. Nothing local happens except the upload and the download.
The inputs that matter
Required: api_key, image, prompt. That's a genuinely usable workflow with nothing else touched.
Optional list, with the highlights:
- model - all four choices here:
ltx-2-3-pro,ltx-2-3-fast, plus legacyltx-2-pro/ltx-2-fast. Fast model = cheap drafts. - last_frame - the standout input, and it's an IMAGE, not a setting. Give it a second image and the model does first-to-last interpolation, animating between your start and end frames. ltx-2-3 only. This is the closest thing the node has to a fix for the "it ignored my image" problem - bookend the motion yourself.
- camera_motion - dolly, jib, focus_shift options; the cheap way to make a still feel directed.
- generate_audio - defaults on, so you get LTX's synced AI audio rather than a silent clip.
- duration, fps, resolution (up to 4K), seed - same rules as the text-to-video node: pro models take 6/8/10s, fast models take even durations, and 2.3 fps options are 24/25/48/50.
Outputs: frames (IMAGE), video (VIDEO, native preview), fps (FLOAT).
Install
ComfyUI Manager (search "comfyui-ltx-node"), or:
cd ComfyUI/custom_nodes
git clone https://github.com/PauldeLavallaz/comfyui-ltx-node
pip install requests pillow
Restart, paste the key from ltx.video/api-keys.
Gotchas worth knowing
Images over 1920px get resized silently - check your result if the original aspect ratio matters, and remember the model renders at half resolution and upscales internally, so "1080p" is softer than the number suggests. Longer, specific prompts behave better (LTX punishes one-liners), and if motion still feels weak, run a couple of seeds rather than rephrasing - seed selection has been the highest-leverage lever for 2.3. And since every run is paid and your image leaves the machine, this node is best for drafts and quick animations, not for footage you need to keep confidential.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| api_key | STRING | — | |
| image | IMAGE | — | |
| prompt | STRING | — | |
| modelopt | COMBO | ltx-2-3-pro | 4 options: ltx-2-3-pro, ltx-2-3-fast, ltx-2-pro, ltx-2-fast |
| resolutionopt | COMBO | 1920x1080 | 6 options: 1920x1080, 1080x1920, 2560x1440, 1440x2560, 3840x2160, 2160x3840 |
| durationopt | INT | 86–20 | Pro models: 6/8/10s. Fast models: 6-20s (even numbers). |
| fpsopt | INT | 2424–50 | 24/25/48/50 for ltx-2-3 models. 25/50 for ltx-2 models. |
| generate_audioopt | BOOLEAN | true | Generate AI audio matching the scene. |
| camera_motionopt | COMBO | none | 9 options: none, dolly_in, dolly_out, dolly_left, dolly_right, jib_up, +3 |
| last_frameopt | IMAGE | Optional last-frame image for first-to-last interpolation (ltx-2-3 only). | |
| seedopt | INT | -1-1–2147483647 | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| frames | IMAGE | — |
| video | VIDEO | — |
| fps | FLOAT | — |