Per docs.ltx.video/api-documentation/api-reference/upload/create-upload:
1. POST /v1/upload to get signed upload_url + storage_uri
2. PUT binary data to upload_url with Content-Type + required_headers
3. Pass storage_uri (ltx://uploads/abc-123) to generation request
This replaces catbox.moe/uguu.se which have redirect/accessibility issues.
LTX Cloud Storage is guaranteed accessible from LTX inference servers.
ComfyUI's SaveVideo calls video.get_dimensions() which requires VideoFromFile.
VideoInput does not exist — correct class is VideoFromFile from comfy_api.input_impl.
Parameters now match LTX API playground exactly:
- model: ltx-2-3-pro | ltx-2-pro (removed ltx-2-3-fast, not in audio-to-video API)
- guidance_scale: float, default 7.5 (CFG, same as playground)
- resolution: 1080x1920 | 1920x1080
- Removed negative_prompt and duration (not in audio-to-video API spec)
All 5 video generation nodes now return {'ui': {'videos': [...]}}
so ComfyUI displays the video directly without needing Video Combine.
- ltx_post() now returns (frames, video_path, ui_dict)
- All generate() return {'ui': ui, 'result': (frames, video_path, fps)}
- fps output (25.0) still available for VHS_VideoCombine if needed
Replaces comfyui-replicate-ltx-master which sends literal '...' as image.
Fixes:
- Uploads image tensor to catbox.moe (public URL) before calling Replicate
- Uploads audio properly (same pipeline as direct API node)
- Returns video preview directly in ComfyUI UI (no Video Combine needed)
- Returns (frames, video_path, fps) for optional downstream use
- Polls prediction status with timeout handling