Nodes/ComfyUI LTXV API/LTXV API Image to Video
ComfyUI Node

LTXV API Image to Video

Animate a still with LTX, on someone else's GPU

By am-pipeline-prod·Created 5 months ago·Updated 4 months ago· 1
LTXV API Image to Video
  • image
  • last_frame
  • video
  • info
  • width
  • height
  • frame_rate
  • frame_count
prompt
modelltx-2-3-fast
duration4
resolution1920x1080
resolution_custom
fps24
generate_audiotrue
camera_motion(unset)

You've got a great still - a frame from a render, a photo, something Stable Diffusion nailed on the fortieth try - and you want it to move. LTXV API Image to Video sends that image to Lightricks' hosted LTX API and gets back a video that starts from your exact frame. No local model, no VAE, no VRAM gymnastics. What it does need is an LTX API key and the willingness to pay per second of output.

Why this node exists

This is the sibling of LTXV API Text to Video - same pack, same mechanism, one extra input. Where the T2V node is widgets-only, this one accepts an IMAGE and uses it as the first frame of the clip. The workflow shape is the familiar image-to-video one: Load Image → this node → SaveVideo, with your prompt describing how the still should animate. It slots into the exact place an API wrapper earns its keep - you get LTX-2.3's motion quality (the model family the community now rates as the best all-round locally-runnable video generator) without the ~100GB of weights and 24GB+ VRAM the local version wants.

How it works

The node takes your IMAGE, encodes it as a base64 PNG data URI, and includes it in a POST /v1/image-to-video request with the prompt and settings from its widgets. Lightricks renders on their side, streams the MP4 back, and the node wraps it in ComfyUI's native VIDEO type with lazy decode - nothing is decoded to pixels until a consumer asks. One detail worth knowing: if you wire a batch of images in, only frame 0 is used. It's a single-still node.

The inputs that matter

  • image - the first frame. Load it from disk or pipe it from anything else that outputs IMAGE.
  • prompt - how the image should move. LTX is prompt-hungry and rewards long, concrete scene descriptions over one-liners.
  • duration - seconds, billed per second. This is the money input.
  • generate_audio - on by default, and it's a nice party trick: LTX-2 family generates a synced audio track and bakes it into the MP4, so the returned video is born with sound.

Then the shared plumbing: model (ltx-2-3-fast default, -pro for quality), resolution / resolution_custom (the API rejects off-list combos), fps, and camera_motion ((unset) lets the model decide).

The one genuinely cool optional input is last_frame: a second IMAGE used as the end frame, and the API interpolates between the two. That's end-frame interpolation for looping or matching a specific outro pose. Caveat from the tooltip: only ltx-2-3-fast / ltx-2-3-pro honor it - the legacy ltx-2 models silently ignore it.

Outputs are the standard sync set: video (MP4, audio rides through), info, and the width / height / frame_rate / frame_count metadata sockets.

Installing it

Same story as the rest of the pack, and there's nothing to download except the code - no model files, since inference is remote:

cd ComfyUI/custom_nodes
git clone https://github.com/am-pipeline-prod/comfyui-ltxv-api.git
cd comfyui-ltxv-api
pip install -r requirements.txt

Restart, look for LTXV API in the menu. The key goes in an environment variable, not a widget:

export LTXV_API_KEY="ltxv_..."

or in ~/.config/comfyui-ltxv-api/config.toml as api_key = "ltxv_...". Widgets get serialized into saved workflows and screenshots, which is why the author deliberately kept the key out of them. And read the pack's own framing once before you rely on it: MIT, self-serve, "not actively maintained." It works; just don't bet a studio pipeline on a fast response to bug reports.

Where people get burned

  • No LTX API key found - env var or config file isn't where the node expects it.
  • HTTP 401 / 402 - invalid key, then insufficient credits. Check the LTX developer console.
  • HTTP 422 - the safety filter rejected the prompt. The hosted API is moderated; soften the prompt.
  • HTTP 400 about resolution or fps - off the accepted list for that model. 1920x1080 at fps=24 is the safe bet.
  • last_frame doing nothing - you're on ltx-2-fast or ltx-2-pro, which ignore it. Switch to the 2-3 models.

The recurring theme across this pack: your inputs leave the machine and every second bills you. That's the whole deal - you're trading local control for not owning 100GB of model. Worth it when your card can't run LTX-2; a waste if it can.

CategoryLTXV API

Inputs (10)

NameTypeDefaultDescription
imageIMAGEFirst frame of the generated video. Single frame; if a batch is wired, frame 0 is used.
promptSTRINGText describing how the image should animate.
modelCOMBOltx-2-3-fastLTX model variant. last_frame is only honored by ltx-2-3-fast / ltx-2-3-pro.
durationINT41–30Output video length in seconds. Billed per second.
resolutionCOMBO1920x1080Output frame size. Pick (custom) for non-listed sizes.
resolution_customSTRINGLiteral 'WxH' override. Ignored unless resolution=(custom).
fpsINT241–60Output frame rate (LTX API default 24).
generate_audioBOOLEANtrueWhen On, the API generates a synced audio track in the MP4 (rides through the VIDEO socket).
camera_motionCOMBO(unset)Optional camera-motion hint. (unset) = let the model pick.
last_frameoptIMAGEOptional final frame for interpolation. ltx-2-3-fast / ltx-2-3-pro only — ignored by the legacy ltx-2 models.

Outputs (6)

NameTypeDescription
videoVIDEONative ComfyUI VIDEO wrapping the downloaded MP4 (lazy decode). Wire to SaveVideo / GetVideoComponents / partner API nodes. Carries the API-generated audio track when generate_audio=True.
infoSTRINGHuman-readable summary.
widthINTFrame width in pixels.
heightINTFrame height in pixels.
frame_rateFLOATMP4 frame rate as probed from the container.
frame_countINTNumber of frames in the MP4 container.