Nodes/KIE.ai Nodes Next/Extend Veo3.1 Video · fast
ComfyUI Node

Extend Veo3.1 Video · fast

Keep the same shot running for another chunk

By felipederosilva·Created 2 months ago·Updated 5 days ago· 3
Extend Veo3.1 Video · fast
    • video
    • url
    • all_urls_json
    • task_id
    • raw_json
    • credits_consumed
    • credits_left
    ◄task_idveo_task_abcdef123456►
    ◄promptThe dog continues running through the park, jumping over obstacles and playing with other dogs►
    ◄seeds12345►
    ◄watermarkMyBrand►
    ◄timeout_seconds1200►
    ◄callback_url►

    Veo clips come in eight-second slices, which is fine until the shot needs to breathe. The Extend node is how you buy more time: it takes the task ID of a video you already generated and continues it, with a prompt describing what happens next. This is the fast tier of that operation - the middle price, the one you'll use most.

    The whole thing only makes sense as a pair, so understand the chain before you wire it: Generate Veo3.1 Video hands you a task_id output. Extend Veo3.1 Video · fast takes that ID, adds a continuation prompt, and returns a new clip that picks up where the last one stopped. You can extend repeatedly - which is how people get 30-plus-second Veo sequences out of a model that renders eight at a time - and each extension is its own paid job.

    How it works

    Under the hood it's a KIE Market call: the node submits {"task_id": ..., "prompt": ..., "model": "fast"} shaped for the extend endpoint and polls the job until it reports success, then downloads the result and wraps it as a native ComfyUI VIDEO. The tier is baked into the node (fast), which is why there are three Extend nodes in the Veo3.1 folder rather than one with a dropdown. KIE bills each extension at the tier you picked.

    The continuation is a new generation seeded from the previous clip, not a trim-and-append of stored frames. Continuity is good, not perfect - long chains drift, and the drift compounds. Two extensions usually look seamless; six usually don't.

    The inputs

    • task_id - required, and it must be a task ID the video generation API actually returned. It defaults to a placeholder string from the docs; wire the task_id output from your Generate node here instead of typing anything.
    • prompt - what happens next. This is a motion prompt, not a re-description: "the dog keeps running, hurdles a low fence, camera tracks left". Re-describe the whole scene and you'll often get a soft reset of the framing.
    • seeds - note the plural. Range 10000–99999, default 12345. Same seed plus same prompt trends toward similar motion; it's a nudge, not a lock.
    • watermark - and this is the trap. It defaults to the literal string MyBrand, and if it's non-empty you get it burned into your video. Clear the field unless you actually want a watermark on your clip.
    • timeout_seconds - 1200 by default; the extend call queues like any other render, so raise it before you assume it hung.
    • callback_url - leave empty. It's for server-side workflows, not ComfyUI.

    Outputs: video, url, all_urls_json, task_id (the new one - chain this into the next extension), raw_json, credits_consumed, credits_left. Wire video into KIE • Preview Video or KIE • Save Video; the node isn't a terminal node, so an unwired video output means it never executes.

    Install and key

    cd ComfyUI/custom_nodes
    git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
    cd ComfyUI-KIE-Nodes-Next && pip install -r requirements.txt
    # restart ComfyUI
    

    Or Manager → search "KIE.ai Nodes Next". Requirements are requests, Pillow, numpy, PyYAML; no weights, no VRAM, nothing to download. API key goes in once at Settings → KIE.ai Nodes Next → Connection - validated before saving, stored outside the workflow, masked to a fingerprint in the UI.

    Where people get burned

    Using an old task ID is the top one. Extensions are tied to a generation that still exists on KIE's side; IDs from a workflow you archived last month may simply not resolve, and the failure arrives as a provider error, not a friendly one.

    Second: extending a clip you didn't generate through KIE. The field wants a KIE task ID, not a URL and not a local file. If you have a video you love from elsewhere, you can't extend it here - that's a different operation.

    Third: cost discipline. Every extension is another full-price job, and stacking four of them to reach an arbitrary length costs more than shooting the sequence as two planned 8-second shots and cutting them together. Plan the beats first, then decide whether you need extension at all. The 4K-capable tiers aren't the place to discover that.

    CategoryKIE Next/Video/Veo3.1

    Inputs (6)

    NameTypeDefaultDescription
    task_idSTRINGveo_task_abcdef123456The task ID of the original video generation. Must be a valid task ID returned by the video generation API.
    promptSTRINGThe dog continues running through the park, jumping over obstacles and playing with other dogsA text prompt describing the content of the extended video. It should detail how you want the video to be extended, including actions, scene changes, styles, etc.
    seedsoptINT1234510000–99999A random seed parameter that controls the randomness of the generated content. Range: 10000-99999. The same seed will generate similar video content, while different seeds will generate different video content. If not specified, the system will automatically assign a random seed.
    watermarkoptSTRINGMyBrandWatermark text (optional). If provided, a watermark will be added to the generated video.
    timeout_secondsoptINT120030–7200—
    callback_urloptSTRINGOptional KIE callback URL. Leave empty for normal ComfyUI use.

    Outputs (7)

    NameTypeDescription
    videoVIDEO—
    urlSTRING—
    all_urls_jsonSTRING—
    task_idSTRING—
    raw_jsonSTRING—
    credits_consumedFLOAT—
    credits_leftFLOAT—