Nodes/Protoface/Protoface Seedance 2.5 · Extend Video
ComfyUI Node

Protoface Seedance 2.5 · Extend Video

30-second continuations, and no end-frame steering

By protoface-ai·Created 22 days ago·Updated 13 days ago· 0
Protoface Seedance 2.5 · Extend Video
    • video
    • files
    • run id
    ◄prompt►
    ◄video▾►
    ◄resolution720p►
    ◄duration5►
    ◄generate_audiotrue►
    ◄generation_id0►
    ◄request_scope►

    Long shots, fewer hops

    Extending is the operation that separates a demo clip from a sequence. Seedance 2.5 Extend takes a clip and writes the continuation - and at this tier a single hop gives you up to 30 seconds of new footage, against 15 on the 2.0 nodes. Half as many seams to hide, half as many chances to drift.

    The trade you should know about before wiring it: this node has no last_image field. 2.0's extend let you steer the continuation toward an ending frame; here there is prompt, video, resolution, duration, generate_audio and the two bookkeeping fields, and that's it. If end-frame targeting is central to your workflow, the 2.0 extend node is genuinely the better tool despite the shorter hop.

    How it works

    A thin wrapper on a paid API. The node uploads your clip, submits a job with the prompt as the continuation instruction, polls until the segment is ready, downloads it, and hands ComfyUI a native VIDEO. Controls come from the provider's public request schema; the implementation is shared with every other node in the pack. Seedance has no open weights, so there's nothing local to compare it to - you're renting the ability.

    Inputs

    video is the clip to continue. Native ComfyUI Video connects straight in, and chaining from a previous Protoface node through the asset-reuse path avoids re-uploading media you already own on their side.

    prompt is the continuation brief - the tooltip's four targets are action, camera movement, lighting, mood. Write the next beat. "Keeps walking as the camera rises, late sun, wind picking up" does more than three lines of scene description.

    duration is 4–30 seconds of new footage to append. resolution - 480p, 720p, 1080p, 4K - applies to the generated segment, so match your existing chain or prepare for a visible step.

    generate_audio defaults true and produces audio synchronised with the new segment.

    Then generation_id (paid-job handle: fixed ID with identical inputs resumes instead of re-billing; increment for a fresh generation) and request_scope (auto-assigned; a stable unique value is the headless client's job).

    Outputs: video (list), files (originals, including anything non-media in the response), run id (the argument Resume Run takes).

    Install

    ComfyUI 0.41.0+ and Python 3.10+.

    cd ComfyUI
    git clone --branch v0.1.0 --depth 1 https://github.com/protoface-ai/protoface-comfyui.git custom_nodes/protoface
    python -m pip install -r custom_nodes/protoface/requirements.txt
    

    Manager works: Extensions → search Protoface → install protoface-nodes → restart, reload browser. Pip with ComfyUI's own interpreter (python_embeded/python.exe on the portable build). Then paste your API key via the Protoface button, or export PROTOFACE_API_KEY. Dependencies are httpx, jsonschema, Pillow and PyAV - no model downloads at all.

    Where it goes wrong

    You're the editor. Segments come back separate and stitching is your job. Each hop invents its own audio, so treat audio as a per-segment asset and crossfade or replace it in post rather than expecting continuity.

    Input seconds are metered here too. Extend bills the source clip alongside the output, with a two-second minimum on the input side. Chaining five hops to reach a 90-second cut means five source reads on top of the new footage, and 2.5's per-second rates are not small - roughly 23 credits a second at 720p, 59 at 1080p.

    Drift over a long chain. Each hop sees only the clip you give it. Wardrobe, faces and lighting wander. Long hops mitigate this; more hops amplify it. That's the actual reason to prefer this node over the 2.0 version.

    Retrying into a double charge. A poll timeout leaves a recoverable job, not a failed one. Requeue unchanged, or use the run id. Never bump generation_id to "retry" - that's a new paid job and the old one may still be running.

    Wiping the cache to troubleshoot. Don't. ~/.cache/protoface-comfyui is the journal that makes recovery possible; relocate it with PROTOFACE_STATE_DIR if you need to, and keep it per-account.

    Verdict

    The right extend node for long-form work, with one real regression from 2.0. If your shots need to land on specific frames, keep the older node in your toolkit and accept the shorter hops.

    CategoryProtoface/Video/bytedance

    Inputs (7)

    NameTypeDefaultDescription
    promptSTRINGDescribe the cinematic continuation - action, camera movement, lighting, mood.
    videoCOMBOA public URL, a data URI, or an asset id.
    resolutionCOMBO720pOutput resolution of the new segment.
    durationINT54–30Length in seconds of the new segment to append (4-30).
    generate_audioBOOLEANtrueWhether to generate native audio synchronized with the output video. Defaults to true.
    generation_idINT00–9007199254740991Keep fixed to reuse/resume this paid job. Increment for a fresh paid generation; independent of the model seed.
    request_scopeSTRINGAutomatically assigned per node. Headless clients must supply a stable unique workflow/node ID. This is not a secret.

    Outputs (3)

    NameTypeDescription
    videoVIDEO—
    filesPROTOFACE_FILE—
    run idSTRING—