LTX 2 / extendVideo
Continue a clip with the 19B, hosted by Civitai
- source_video
- loras
- api_config
- video
- workflow_id
- raw_json
LTX 2's video-extension node, hosted on Civitai's cloud: feed it a source clip plus a prompt, and it generates the continuation - same scene, same subjects, new frames after the cut. It's the 19B-era version of the LTX 2.3 extendVideo node, and the honest framing is that extension was one of LTX 2's genuinely loved tricks.
The KB's ltx-video doc has a striking detail from the LTX-2 launch days: a user continued a clip from a real video and the model picked up the person's voice "scarily well" from a few seconds of audio, and continuation was widely cited as one of the strongest LTX-2 behaviors. That capability is what this node rents you - a hosted 19B that carries motion, look, and (when audio is on) voice across the seam, with none of the local setup that era demanded (32GB+ VRAM officially, or the Gemma text-encoder juggling act). The one dial that defines the node is num_frames - how much footage to add.
How it works
Standard orchestration: videoGen workflow with the LTX 2 engine, submit to the Civitai Orchestration API, long-poll, download as VIDEO. Your source video is uploaded with the job and conditioned on as the opening segment; the hosted Comfy workflow generates num_frames more and appends them. Frame-count hygiene still applies - LTX wants frame counts divisible by 8 plus 1, which is why the default is 121 and the range runs 9–481.
Inputs and outputs that matter
- prompt (required) - what happens next. Describe the ongoing action, not a jump cut.
- source_video (required) - the
VIDEOsocket with the clip to extend. - negative_prompt - what to avoid.
- num_frames - default 121, range 9–481. Longer extensions cost more and raise drift risk; iterative extending beats one giant jump.
- duration - tooltip: 3 or 5 seconds.
- width / height - default 1280×720.
- fps - default 24; steps - default 20 (8–50); guidance_scale - default 4; generate_audio - default true.
- model -
19b-dev/19b-distilled. - loras -
CIVITAI_LORASsocket. - 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 + pip install -r civitai-comfy-nodes/requirements.txt. Just requests; no models.
Common issues
- Auth & Buzz. Civitai account with Buzz;
CIVITAI_API_TOKENfor headless installs. - Seam drift. Extensions can wander at the cut, more so on 2.x than 2.3. Keep
num_framesmodest and extend iteratively; lowerguidance_scalea notch if the hand-off gets jumpy. - Voice/audio carries - or doesn't. With
generate_audioon, the extension often inherits the source's audio character (the "scary good" voice copying). If the new audio doesn't match, keep the source track downstream instead. - Don't fight the frame math. Set
num_framesto values that fit the divisible-by-8-plus-1 rule to avoid server-side rejections. - Early preview. Behavior may change without notice; pin the version.
- Cost. Extensions bill by length; read the per-run cost on the node's status line.
Inputs (15)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| source_video | VIDEO | — | |
| negative_promptopt | STRING | — | |
| seedopt | INT | 00–4294967295 | — |
| durationopt | COMBO | 5 | 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 | 19b-dev | 2 options: 19b-dev, 19b-distilled |
| lorasopt | CIVITAI_LORAS | — | |
| 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 | — |