Nodes/SeedanceComfyUI/Seedance Generate Video (Ace Data Cloud)
ComfyUI Node

Seedance Generate Video (Ace Data Cloud)

A ticket printer with thirty widgets, and why that's fine

By AceDataCloud·Created 3 days ago·Updated 2 days ago· 0
Seedance Generate Video (Ace Data Cloud)
    • status
    • task_id
    • media_urls_json
    • first_media_url
    • result_json
    • trace_id
    ◄parameters_json{}►
    ◄model(from JSON/default)►
    ◄content►
    ◄resolution►
    ◄ratio►
    ◄duration►
    ◄frames►
    ◄seed►
    ◄camerafixed►
    ◄watermark►
    ◄generate_audio►
    ◄callback_url►
    ◄return_last_frame►
    ◄execution_expires_after►
    ◄omni_reference_task_type►
    ◄output_format►
    ◄tools►
    ◄priority►
    ◄safety_identifier►
    ◄prompt►
    ◄first_frame_url►
    ◄last_frame_url►
    ◄reference_image_urls►
    ◄reference_audio_urls►
    ◄reference_video_urls►

    You can't download Seedance. ByteDance ships the whole video line as an API product and has never released the weights, so if you want it inside a ComfyUI graph this node is the door - and like every API-node pack, it doesn't generate a video so much as hand you a receipt for one.

    Set your expectations on that first, because it explains everything else. Press run and the node comes back with pending and a task ID. That's not a bug. Video jobs run on someone else's GPU for minutes, so the pack submits the job, gives you the ID, and you pick the result up with the retrieve node. The workflow shape is always Generate → Retrieve → Load Video.

    How the request gets built

    The real input on this node is parameters_json, a multiline box holding the API fields you'd otherwise be typing into a curl call. The named widgets are conveniences stacked on top: a non-empty widget overrides the matching key in the JSON, and everything you leave empty is simply dropped. Whatever's missing falls through to the service defaults, which are worth knowing because they're modest - doubao-seedance-2-0-mini-260615, 480p, 16:9, no audio. If you run it with defaults and think Seedance looks cheap, you asked for the cheap one.

    Before anything leaves your machine, the assembled body is validated against a copied JSON-Schema snapshot of the published contract (jsonschema, Draft 2020-12). Bad enum values die locally with a message like Invalid resolution: does not meet the API's enum constraint. That's a good design; it stops most malformed requests from ever reaching a paid endpoint.

    The genuinely clever bit is how prompts and reference images get assembled. If content is empty, the node builds the API's content array for you from shortcuts:

    • prompt becomes the text block (capped at 1000 characters by the contract)
    • first_frame_url and last_frame_url become image blocks with the matching role - this is your image-to-video and your first/last-frame interpolation
    • reference_image_urls, reference_audio_urls, reference_video_urls become reference blocks; each accepts a JSON array or one URL per line

    Fill in content yourself and any of those shortcuts and it refuses with "Use content JSON or the prompt/reference shortcuts, not both." Pick a lane.

    The widgets that matter

    Nine fixed model IDs plus a (from JSON/default) sentinel - that sentinel isn't "no model", it hands the choice to JSON and then to the API. Read the names and they tell you the job: -lite-t2v is text-only, -lite-i2v starts from an image, pro/pro-fast/1.5-pro/2.0/2.0-fast/2.0-mini/2.5 are the capability ladder. Newest isn't automatically right; mini is where you iterate and the 2.x pro tier is where you spend for the final.

    Then resolution (480p / 720p / 1080p / 4k), ratio (16:9 through 21:9, plus adaptive), duration in seconds or frames - not both, the node errors out if you fill both - seed, generate_audio, watermark, output_format (mp4 or mov), and omni_reference_task_type (auto / reference / edit / extend) if you're plumbing reference workflows. Boolean-ish widgets are strings on the canvas, so type true or false.

    Outputs

    Six strings: status, task_id, media_urls_json, first_media_url, result_json, trace_id. Wire task_id into the retrieve node, and once that reports success, wire its first_media_url into Seedance Load Video. The node itself is an output node, so it also prints a short status / task ID / media count line in the UI.

    result_json is deliberately sanitised - request bodies, credentials, upstream model names and supplier fields are stripped before you ever see them. Good hygiene, mildly annoying when you're debugging, which is what trace_id is for.

    Installing and the key

    Manager: search Seedance, take Seedance by Ace Data Cloud from publisher acedatacloud, install, restart. Manual:

    cd ComfyUI/custom_nodes
    git clone https://github.com/AceDataCloud/SeedanceComfyUI
    python -m pip install -r SeedanceComfyUI/requirements.txt
    export ACEDATACLOUD_API_KEY=your-key   # same shell you launch ComfyUI from
    

    Restart ComfyUI afterwards - the key is read from the process environment at call time, so a key exported in another terminal does nothing. Two dependencies (requests, jsonschema), no local model, no GPU. Be aware this is a third-party pack talking to a reseller endpoint, not one of Comfy's vetted Partner Nodes; it holds your key and calls the network by design, which is exactly the shape of pack worth skim-reading before you run it. This one's small and readable, and the key is never written into workflow JSON.

    Two limits bite in practice: submissions are attempted once - connection failures are never retried, because retrying could pay twice - so if a run dies mid-request, check your request history before pressing go again. And frames/duration mismatch is a hard stop, not a warning. Both are the pack being careful with your credits.

    CategoryAce Data Cloud/Seedance

    Inputs (25)

    NameTypeDefaultDescription
    parameters_jsonSTRING{}—
    modelCOMBO(from JSON/default)10 options: (from JSON/default), doubao-seedance-1-0-pro-250528, doubao-seedance-1-0-pro-fast-251015, doubao-seedance-1-5-pro-251215, doubao-seedance-1-0-lite-t2v-250428, doubao-seedance-1-0-lite-i2v-250428, +4
    contentSTRING—
    resolutionSTRING—
    ratioSTRING—
    durationSTRING—
    framesSTRING—
    seedSTRING—
    camerafixedSTRING—
    watermarkSTRING—
    generate_audioSTRING—
    callback_urlSTRING—
    return_last_frameSTRING—
    execution_expires_afterSTRING—
    omni_reference_task_typeSTRING—
    output_formatSTRING—
    toolsSTRING—
    prioritySTRING—
    safety_identifierSTRING—
    promptSTRING—
    first_frame_urlSTRING—
    last_frame_urlSTRING—
    reference_image_urlsSTRING—
    reference_audio_urlsSTRING—
    reference_video_urlsSTRING—

    Outputs (6)

    NameTypeDescription
    statusSTRING—
    task_idSTRING—
    media_urls_jsonSTRING—
    first_media_urlSTRING—
    result_jsonSTRING—
    trace_idSTRING—