Zhenzhen_video_extend
Give a Kling video a few more seconds
- video
- video_id
- response
Video models hand you five seconds and call it a day. Comfly_video_extend is the ComfyUI node that pushes a Kling-generated clip a few seconds further, continuing naturally from the last frame instead of starting over. It's part of the Comfly pack's Kling group, which means it runs entirely through the ai.comfly.chat relay under your API key - no local model, billed per extension.
The mechanism is simple in the best way: you hand it a video_id (the task id from a Kling generation on the relay) and a prompt, it POSTs to the relay's /kling/v1/videos/video-extend endpoint, then polls every couple of seconds until the extension is done. Out comes a new VIDEO object plus a fresh video_id you can chain into another extension.
Inputs
video_id- the task id from a prior Kling video generation. This is aSTRINGinput marked as force-input, so wire it from another node'stask_idoutput or paste it in.prompt- what should happen in the extension. Keep it in the same spirit as the original shot ("camera continues, she looks up") so the model has somewhere to go.api_key- optional, as everywhere in this pack.
Outputs
video is a ComfyUI VIDEO object - plug it straight into the built-in Save Video node and the README is explicit that this is the intended path. video_id is the new task id for chaining another extension. response is the JSON status blob, which is also where errors land (task_status, task_status_msg).
Install
Same pack, same drill:
cd ComfyUI/custom_nodes
git clone https://github.com/ainewsto/Comfyui_Comfly
or ComfyUI Manager → search "Comfyui_Comfly" → install → restart. API key from ai.comfly.chat in the api_key field.
Where it gets fiddly
The README's Kling notes matter here: Kling's video extension historically only supported the v1.0 model - check which model produced your video_id before you chain an extension, or you'll get a task that fails with a model mismatch buried in response. Extensions are also incremental and billed per call, so the sane pattern is: generate → extend → extend the extension, rather than one long request. And like every node in this pack, it's dead in the water if the relay is down - there's no local fallback. It's a simple, honest node for a simple job: a few more seconds of Kling footage without leaving ComfyUI.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| video_id | STRING | — | |
| prompt | STRING | — | |
| api_keyopt | STRING | — | |
| skip_erroropt | BOOLEAN | false | 开启后,节点失败时不报错、按旧行为返回默认空结果;关闭时(默认)失败直接抛出错误。 |
| seedopt | INT | 00–18446744073709550000 | Execution seed for ComfyUI cache control. Fixed reuses the cached result; randomize/increment/decrement requests a new run. This compatibility seed is not sent to APIs that do not expose a native seed parameter. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| video_id | STRING | — |
| response | STRING | — |