LTX 2.3 / firstLastFrameToVideo
Pin the beginning and end, let the cloud animate between
- loras
- diffusion_model
- api_config
- video
- workflow_id
- raw_json
The frame-anchored member of the LTX 2.3 family: give it a first frame, a last frame, or both, plus a prompt, and it generates the video that plays between them. It runs on Civitai's cloud through civitai/civitai-comfy-nodes, billed in Buzz, no local model.
This is the node for scenes with a defined arc - an object that starts on the left of frame and ends on the right, a camera that pushes in from a wide shot to a close-up, a character that walks from doorway to doorway. Instead of trusting a prompt to land the ending, you show the ending and the model fills the middle. The KB's LTX material even flags a matching pattern in the community's local workflows: frame conditioning is one of LTX's strengths, and first/last frame guidance is how you get a scripted beat to actually stick.
How it works
Standard orchestration plumbing: videoGen workflow with the LTX 2.3 engine, submit, long-poll, download as VIDEO. The guide frames are passed as conditioning (per the tooltips, at least one of first_frame or last_frame must be provided), and frame_guide_strength controls how hard the output holds to them. Stage-wise, the tooltips describe frame-guide conditioning with a strength between 0 and 1 - higher values glue the video to your frames, lower values let the model improvise between them.
Inputs and outputs that matter
- prompt (required) - the action between the frames.
- first_frame - the opening guide image (string input; accepts URL/DataURL/Base64 per the pack's convention).
- last_frame - the ending guide image.
- frame_guide_strength - 0–1, default 0.7. The main creative dial: crank it to hold your frames hard, lower it for more freedom.
- negative_prompt - what to avoid.
- duration - tooltip: 3 or 5 seconds.
- width / height - default 1280×720; divisible by 32.
- fps - default 24; steps - default 20 (8–50); guidance_scale - default 4; generate_audio - default true.
- model -
22b-dev/22b-distilled. - loras -
CIVITAI_LORASsocket; diffusion_model - transformer override for fine-tunes. - quantity - 1–10 videos per job, distinct seeds.
- api_config - auth override.
Outputs: video, workflow_id, raw_json.
Installing it
ComfyUI Manager → Custom Nodes Manager → "Civitai Comfy Nodes" (publisher civitai) → Install → restart, or clone + pip install -r civitai-comfy-nodes/requirements.txt. Only requests.
Common issues
- Auth & Buzz. Civitai account with Buzz;
CIVITAI_API_TOKENfor headless. - Both frames missing = server error. The tooltip is explicit: at least one of
first_frameorlast_framemust be provided. Neither wired, the job fails on the provider side. - Weak anchoring. If the middle ignores your frames, raise
frame_guide_strengthtoward 1.0; if it's overfitting and looks like a morph, back it off. - Frame style mismatch. Frames in wildly different styles confuse the model - keep the two frames visually consistent (same subject, lighting, color grade).
- Early preview. Behavior may change without notice; pin the version.
- Cost. Full cloud video job per run; read the per-run cost on the node.
Inputs (18)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| negative_promptopt | STRING | — | |
| seedopt | INT | 00–4294967295 | — |
| durationopt | COMBO | Duration in seconds (3 or 5) | |
| widthopt | INT | 12800–2147483647 | — |
| heightopt | INT | 7200–2147483647 | — |
| fpsopt | FLOAT | 24.001–60 | — |
| generate_audioopt | BOOLEAN | true | — |
| guidance_scaleopt | FLOAT | 4.001–10 | — |
| stepsopt | INT | 208–50 | — |
| modelopt | COMBO | 22b-dev | 2 options: 22b-dev, 22b-distilled |
| lorasopt | CIVITAI_LORAS | — | |
| diffusion_modelopt | CIVITAI_AIR | Optional override for the LTX 2.3 diffusion-model checkpoint. When set, replaces the transformer file selected by Civitai.Orchestration.Grains.Workflows.Steps.VideoGen.ComfyLtx23VideoGenInput.Model while leaving the CLIPs, VAEs, and upscale-LoRA behavior unchanged. Use to point at a community fine-tune (e.g. SulphurAI/Sulphur-2-base). | |
| quantityopt | INT | 11–10 | Number of videos to generate in this single job. Each video uses a distinct seed (Seed + slotIndex) and is produced by re-running the Comfy workflow. |
| first_frameopt | STRING | First frame guide image. At least one of FirstFrame or LastFrame must be provided. | |
| last_frameopt | STRING | Last frame guide image. At least one of FirstFrame or LastFrame must be provided. | |
| frame_guide_strengthopt | FLOAT | 0.700–1 | Strength of the frame guide conditioning (0.0 to 1.0). |
| api_configopt | CIVITAI_CONFIG | Optional Civitai Auth connection; defaults to CIVITAI_API_TOKEN or stored OAuth login. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| workflow_id | STRING | — |
| raw_json | STRING | — |