Runway API Extend AI Video
Feed it a task_id, get five more seconds
- video
- url
- all_urls_json
- task_id
- raw_json
- credits_consumed
- credits_left
Five seconds is not a scene. This node is the brute-force answer: hand it the task_id of a clip you already generated, describe what happens next, and it gives you back one video containing the original plus a continuation, roughly five seconds longer. Not a stitched pair in your editor - a single file.
What it is
KIE_Next_runway_extend_ai_video_429f7af6 is the continuation endpoint for Runway video through KIE.ai, generated as its own node by the KIE Next pack. It has no image input and no duration control, which tells you what it is: a task-level operation. You are not describing a new clip, you're telling the provider to keep going from the one it already made.
The workflow it wants is simple. Runway API node renders the first clip → wire its task_id output straight into this node's task_id input → write the continuation prompt → queue. Save the result, and if you want another five seconds, chain again from the new task ID.
How it works
Same transport as every generated node in this pack: build the documented request, create the task, poll until timeout_seconds (1200 by default), download the first result URL into a VIDEO. Because the operation is "extend", the returned file already contains both halves - there's no local concatenation step, and no chance to pick a different transition.
That single-file result is the nicest thing about it, and also the thing that makes repeated extension risky. Each hop continues from the latest state, so any identity drift or palette shift compounds. Two hops is usually fine. Four hops looks like a different film.
The inputs that matter
task_id is required and is a plain string. Wire it from the Runway API node's task_id socket - that's the clean path - or paste one in from the KIE • Task Board, which lists the last twenty tasks this ComfyUI profile submitted with their IDs and states. What it must be is a task ID from a previously generated video; the field's default value is a placeholder UUID from the docs, not something that will work.
prompt is required and describes the continuation only - what happens next, not a re-description of the whole scene. "The cat continues dancing with more energy, spinning, lights intensifying" is the pack's default and a good model to copy: keep the subject, escalate one thing.
quality is 720p or 1080p, typed as a plain string rather than a dropdown, so match it to your source clip deliberately. watermark is a corner string defaulting to kie.ai; set it to "" if the source was clean, or your extension will suddenly sprout a watermark halfway through.
Outputs
video → KIE • Preview Video or KIE • Save Video (KIE Next / Utility / Media), with saved_file available for KIE • Persistent Load Video later. The node also returns a new task_id - that's the one you chain from for a third segment, not the original. url, all_urls_json, raw_json, credits_consumed, credits_left as usual. And as with every generation node here, it isn't an output node: nothing runs until the video feeds something.
Installing it
ComfyUI Manager → "KIE.ai Nodes Next", or:
comfy node install kie-ai-nodes-next
Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
pip install -r requirements.txt
Restart, then Settings → KIE.ai Nodes Next → Connection and paste your key. The pack checks it against KIE before saving, then shows a masked fingerprint and a connected status. Nothing is written into the workflow JSON, and there's no env-var path - a KIE_API_KEY export does nothing.
Dependencies: requests, Pillow, numpy, PyYAML. Nothing to download, no VRAM.
Where people get burned
Wrong kind of task ID. This node extends video tasks. A task ID from an image generation, or one copied with whitespace still attached, will fail at submission. The Task Board is the reliable place to get a real one.
Assuming you can extend anything. It extends what KIE generated, through KIE's Runway endpoint. A locally rendered Wan clip has no task ID to give it - for that you're back to local chunking and splice nodes.
Chaining until it looks wrong. Every extension is another paid render, and the visual consistency the docs promise is a promise about a short continuation. Watch the second hop before you buy the third.
Watermark mismatch. Clean source plus default kie.ai on the extension equals a visible seam in the middle of your clip. Set it to "" up front. If a run fails on validation, the pack's preflight caught it locally and you weren't charged - right-click → KIE Next · Check inputs & model controls to inspect the documented fields before submitting.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| task_id | STRING | ee603959-debb-48d1-98c4-a6d1c717eba6 | Unique identifier of the original video generation task. Must be a valid task ID from a previously generated video. |
| prompt | STRING | The cat continues dancing with more energy and excitement, spinning around with colorful light effects intensifying | Descriptive text that guides the continuation of the video. Explain what actions, movements, or developments should happen next. Be specific but maintain consistency with the original video content. |
| quality | STRING | 720p | Video resolution, optional values are 720p or 1080p. |
| watermarkopt | STRING | kie.ai | Video watermark text content. An empty string indicates no watermark, while a non-empty string will display the specified text as a watermark in the bottom right corner of the video. |
| timeout_secondsopt | INT | 120030–7200 | — |
| callback_urlopt | STRING | Optional KIE callback URL. Leave empty for normal ComfyUI use. |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| url | STRING | — |
| all_urls_json | STRING | — |
| task_id | STRING | — |
| raw_json | STRING | — |
| credits_consumed | FLOAT | — |
| credits_left | FLOAT | — |