LTX 2.3 / extendVideo
Keep the story going past the clip, on Civitai's cloud
- source_video
- loras
- diffusion_model
- api_config
- video
- workflow_id
- raw_json
LTX 2.3's video extension node. Give it a source clip and a prompt, and it continues the video - same look, same motion vocabulary, new frames - running entirely on Civitai's cloud through the official civitai/civitai-comfy-nodes pack. It's the LTX answer to the eternal "five seconds isn't enough" problem, and it's one of the simplest nodes in the family to understand: the one new dial is num_frames, which says how much footage to add.
Extension is where LTX has always been quietly good. The 0.9.5 release way back added frame interpolation and video extension, LTX-2's "continue a video" behavior got called scary-accurate for carrying voices and motion across the seam (the KB's ltx-video doc has the receipts), and 2.3's rebuilt VAE made the hand-off noticeably cleaner. On Civitai's hosted 22B engine, you get that continuation without the 32GB+ VRAM the local model officially wants. The trade, as always with this pack: per-run Buzz cost and your source clip living on Civitai's servers while the job runs.
How it works
Standard orchestration plumbing - videoGen workflow with the LTX 2.3 engine, submit to the Civitai Orchestration API, long-poll, download the MP4 as a VIDEO. The source video is uploaded with the request and conditioned on as the first segment; the hosted Comfy workflow generates num_frames more and stitches the extension on. Frame-count rules for LTX matter even here: LTX 2.3 wants frame counts divisible by 8 plus 1, which is why the default sits at 121 (and the 9–481 range's bookends land on the formula).
Inputs and outputs that matter
- prompt (required) - what happens next. Continuation quality tracks prompt quality: describe the ongoing action, not a new scene.
- source_video (required) - the
VIDEOsocket with the clip to extend. - negative_prompt - what to avoid.
- num_frames - default 121, range 9–481. More frames = longer extension = more cost and queue time. This is the input to spend your time on.
- duration - the extension's seconds (tooltip: 3 or 5); note it coexists with
num_frames, so the engine resolves length from both. - 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 extensions 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 into ComfyUI/custom_nodes and pip install -r civitai-comfy-nodes/requirements.txt. Only requests; no models.
Common issues
- Auth & Buzz. Civitai account with Buzz;
CIVITAI_API_TOKENfor headless installs. - Seam jumps. Extensions can drift at the cut point. Lower
guidance_scalea touch or add a describing prompt; LTX 2.3 is better here than 2.x, but it's not perfect. Keepingnum_framesmodest and extending iteratively (extend the extension) usually gives cleaner results than one giant jump. - Upload cost. The source clip uploads to Civitai each run; short and compressed is kind to your uplink and your patience.
- Don't confuse duration and num_frames. Both set length; if you set one and the other still says default, you may get more (or less) footage than you expected. Set both deliberately.
- Early preview. Behavior may change without notice; pin the version.
- Cost. Longer extensions bill like longer jobs - read the per-run cost on the node.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| source_video | VIDEO | — | |
| 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. |
| num_framesopt | INT | 1219–481 | — |
| 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 | — |