Nodes/ComfyUI-Seedance2-Direct-BytePlus/Seedance 2.0 BytePlus Text to Video
ComfyUI Node

Seedance 2.0 BytePlus Text to Video

Text to video with Seedance 2.0, minus the Comfy storefront

By aisam1989·Created 3 months ago·Updated 3 months ago· 0
Seedance 2.0 BytePlus Text to Video
    • video_url
    • video
    • task_id
    • raw_json
    api_key
    prompt
    modelSeedance 2.0
    resolution720p
    ratio16:9
    duration5
    generate_audiotrue
    seed0
    watermarkfalse
    poll_seconds9
    timeout_seconds900
    base_urlhttps://ark.ap-southeast.bytepluses.com/api/v3

    Seedance 2.0 is ByteDance's flagship video model, and it has never been something you can download - no open weights, no local run, no VRAM requirement to satisfy. Your only door into it is the API. ComfyUI's official Partner Nodes hand you that API through a Comfy account and prepaid credits; this node is the other route, for when you already have a BytePlus / ModelArk API key and want Seedance sitting in your local graph like any other node. It's the core of this pack, the straightforward one: prompt in, video out.

    Here's what actually happens when you run it. The node builds a JSON payload with your prompt and settings, POSTs it to {base_url}/contents/generations/tasks, and gets back a task_id. Then it polls the task endpoint every poll_seconds (default 9) until the status flips to succeeded - or it dies on failed, cancelled, or a timeout_seconds cap (default 15 minutes). Finally it downloads the finished mp4 and wraps it as a native ComfyUI VIDEO object. So this is a wait-and-fetch node, not a stream: the canvas blocks while ByteDance's cloud renders, and a 1080p job can genuinely sit there for a while.

    The inputs that actually matter for a beginner:

    • prompt - your one and only creative input, a multiline box. This is where Seedance lives or dies.
    • model - Seedance 2.0 or Seedance 2.0 Fast. Fast is cheaper and quicker, but the pack hard-stops you at 1080p: it raises an error if you pick Fast + 1080p, because Fast only supports 480p and 720p.
    • resolution - 480p / 720p / 1080p. Default 720p is the sensible middle.
    • ratio - 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, or adaptive. Default 16:9.
    • duration - 4 to 15 seconds.
    • generate_audio - on by default. Seedance 2.0 makes sound, and the API will add an audio track unless you turn it off.
    • seed - optional; set it for reproducible shots.
    • watermark - off by default.

    The four outputs are the plumbing. video_url is the hosted URL the API returned, video is the actual VIDEO object you wire into this pack's Save Video node (or anything else that eats VIDEO), task_id is useful for hunting the job in the BytePlus console, and raw_json dumps the whole API response - handy the first time something fails or when you want to know exactly what you paid for.

    One wiring quirk: api_key is forceInput, so you can't type into it - you must connect the pack's Seedance 2.0 BytePlus API Key node (or any string source). If you leave it empty, the pack falls back to the BYTEPLUS_API_KEY env var or a config.ini.

    Install

    ComfyUI Manager → search ComfyUI-Seedance2-Direct-BytePlus, or:

    cd /path/to/ComfyUI/custom_nodes
    git clone https://github.com/aisam1989/ComfyUI-Seedance2-Direct-BytePlus
    

    Restart ComfyUI, search for Seedance 2.0 BytePlus. No model files to download and nothing heavy to install - the only real requirements are requests plus whatever ComfyUI already ships (torch, numpy, PIL). What you do need is a BytePlus key and a network path to ark.ap-southeast.bytepluses.com.

    Gotchas worth knowing

    • It's metered, and video is the expensive lane. The community's standing complaint about Seedance-in-ComfyUI is the price - a 1080p clip costs real money per call, and it adds up fast if you're iterating on prompts. This route doesn't change that math; it just changes who you pay.
    • The API is moderated, not local. ByteDance filters prompts and inputs on their side, and you can't remove the filter by tweaking a checkpoint - it's not your model. Expect refusals for content the provider doesn't want to render.
    • Secrets live in the graph. Don't export workflow JSON with a live key in it. Use config.ini (gitignored) or the env var and keep the wire empty.
    • The node holds a video in memory. Each run downloads the clip into the ComfyUI process; if you're chaining many generations, the Save Video node is what moves them to disk.

    Wire it the way the README shows - API Key → Text to Video → Save Video - and you've got a working Seedance pipeline with no Comfy account involved.

    CategorySeedance 2.0 Direct/BytePlus

    Inputs (12)

    NameTypeDefaultDescription
    api_keySTRING
    promptSTRING
    modelCOMBOSeedance 2.02 options: Seedance 2.0, Seedance 2.0 Fast
    resolutionCOMBO720p3 options: 480p, 720p, 1080p
    ratioCOMBO16:97 options: 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, +1
    durationINT54–15
    generate_audioBOOLEANtrue
    seedoptINT00–2147483647
    watermarkoptBOOLEANfalse
    poll_secondsoptINT93–60
    timeout_secondsoptINT90060–3600
    base_urloptSTRINGhttps://ark.ap-southeast.bytepluses.com/api/v3

    Outputs (4)

    NameTypeDescription
    video_urlSTRING
    videoVIDEO
    task_idSTRING
    raw_jsonSTRING