Nodes/KIE.ai Nodes Next/Seedance 2.5 Draft
ComfyUI Node

Seedance 2.5 Draft

Iterate at 480p, then pay once for the final render

By felipederosilva·Created 2 months ago·Updated 5 days ago· 3
Seedance 2.5 Draft
    • video
    • url
    • all_urls_json
    • task_id
    • raw_json
    • credits_consumed
    • credits_left
    ◄draft_task_id37►
    ◄resolution1080p►
    ◄output_formatmov►
    ◄nsfw_checkertrue►
    ◄return_last_framefalse►
    ◄timeout_seconds1200►
    ◄callback_url►

    Video generation is the one part of this hobby where a bad ten minutes of prompting costs real money. Seedance 2.5 Draft exists to fix exactly that: you generate a cheap 480p draft, look at the motion, and only then spend the full-rate render on a take that actually works. This node is the second half of that loop - it takes the draft's task ID and re-renders it at 1080p.

    If you're used to local video models, this whole idea is foreign. Wan and LTXV don't bill you per attempt, so you just re-roll. Closed models do bill you, which is why the draft/commit split is the single most useful feature in KIE's Seedance line, and why this small node is worth understanding before you burn credits finding out the hard way.

    How it works

    KIE doesn't run Seedance locally - this is an API node, an HTTP client wearing a ComfyUI costume. The node submits {"model": "bytedance/seedance-2-5-draft", "input": {...}} to KIE's createTask endpoint, gets a task ID back, then polls the task record every few seconds (starting at 2.5s and backing off to 15s) until the job reports success. The finished file is downloaded and wrapped as a native ComfyUI VIDEO object, so it behaves like any other video output in your graph.

    The draft it consumes comes from the other Seedance 2.5 node: run that one with draft enabled - draft mode is restricted to 480p - and it hands you a task_id on its output. That's your draft. Feed it here. The provider renders the full 1080p version, and per KIE's docs the draft ID is good for 7 days from creation, so this is a same-week operation, not an archive format.

    The inputs that matter

    • draft_task_id - the string task ID from your Seedance 2.5 draft run. The default value 37 is a placeholder from the docs, not a real task; paste your own or drive it from the generate node's task_id output.
    • resolution - the enum currently only contains 1080p, so there's nothing to choose. That's the whole point of the commit step.
    • output_format - mov (default) or mp4. Pick mp4 if the clip is going anywhere that isn't an NLE.
    • nsfw_checker - the tooltip says it "defaults to false", but the widget ships as true. Trust the widget over the sentence. Leave it on unless you know why you're turning it off.
    • return_last_frame - also returns the clip's final frame as a JPEG, which lands in resultJson.lastFrameUrl. Handy for chaining a second shot.
    • timeout_seconds - 1200 by default. Video renders can sit in a queue; it's the one dial worth raising if you get timeouts.

    Outputs are video, url, all_urls_json, task_id, raw_json, credits_consumed and credits_left. Wire video into KIE • Preview Video or KIE • Save Video (or any node that takes VIDEO) - and note this node isn't a terminal node, so if the video goes nowhere, the node never executes and never spends anything.

    Installing

    Same pack, same one-time setup:

    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 in ComfyUI Manager, search "KIE.ai Nodes Next" / comfy node install kie-ai-nodes-next. Dependencies are mundane - requests, Pillow, numpy, PyYAML. No model downloads, no GPU cost. Then set your key once under Settings → KIE.ai Nodes Next → Connection; it's validated before saving, stored outside the workflow, and environment variables are deliberately not supported, so don't bother with export KIE_API_KEY.

    Where people get burned

    The draft expiring is the classic one - seven days is shorter than a weekend project's turnaround, and an expired ID fails at the provider with an unhelpful message. Re-draft rather than fight it.

    Then there's the money. This node has no dry-run mode; running it submits a paid job. If KIE doesn't report task-level spend on the response, the before/after balance difference is displayed as an estimate and isn't added to your confirmed total, so don't treat credits_consumed as an invoice. Use the right-click KIE Next · Check inputs & model controls menu first - it inspects the documented fields and limits locally without uploading or submitting anything.

    Finally, the whole draft workflow is only worth it if your prompt actually needs iteration. If you already know the shot, skip the 480p pass and render once.

    CategoryKIE Next/Video/ByteDance/Seedance

    Inputs (7)

    NameTypeDefaultDescription
    draft_task_idSTRING37task id from model seedance 2.5 generation task. Valid for 7 days from draft creation.
    resolutionCOMBO1080poutput video resolution.
    output_formatoptCOMBOmovouput video format.
    nsfw_checkeroptBOOLEANtrueDefaults to false. When false, no additional content filtering is applied and results are returned directly by the model.
    return_last_frameoptBOOLEANfalseWhether to also return the last frame of the generated video as a JPEG (in resultJson.lastFrameUrl). Default false.
    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—