Nodes/Protoface/Protoface Seedance 2.0 · Generate Video
ComfyUI Node

Protoface Seedance 2.0 · Generate Video

Every input at once, watermark included

By protoface-ai·Created 22 days ago·Updated 13 days ago· 0
Protoface Seedance 2.0 · Generate Video
    • video
    • files
    • run id
    ◄prompt►
    ◄first_frame▾►
    ◄audio▾►
    ◄reference▾►
    ◄reference_video▾►
    ◄last_frame▾►
    ◄quality720p►
    ◄duration_seconds6►
    ◄aspect_ratio16:9►
    ◄enhance_promptfalse►
    ◄generate_audiotrue►
    ◄seed▾►
    ◄watermarkfalse►
    ◄generation_id0►
    ◄request_scope►

    The everything node

    Fifteen inputs. This is the widest node in the pack, and it's what "Protoface-optimized Seedance 2.0" means in practice: start frame, end frame, reference stills, reference video, reference audio, quality tier, duration, aspect ratio, prompt enhancement, native audio, seed, and a watermark toggle. If you have an opinion about a shot, there's a socket for it.

    Seedance is ByteDance's video model and the one whose arrival in ComfyUI produced the community's bluntest reaction to API-node pricing - the "extremely expensive… a really small number of videos per year" thread, and the flat "Local and not through an api? No? Nvm then" at +203. That reaction is the right frame for this node. It's a real tool with real capability, and it is not the one you learn on. Wire it once you know exactly what shot you need and what it's worth.

    Inputs, grouped

    Text and shape. prompt, duration_seconds (a picker, default 6), aspect_ratio (default 16:9), quality (default 720p, with the tooltip pointing at output_quality_descriptions for which tiers are upscales).

    Frames. first_frame and last_frame, one asset each - the pair that turns a free generation into a controlled transition.

    References. reference, reference_video, audio - all list-shaped, all taking public URLs, data URIs or asset ids, and all counting toward the model's reference limit. This is the part that makes Seedance worth its price: character stills, a motion clip, and a voice track conditioning one shot.

    Toggles. generate_audio (default true), enhance_prompt (default false, no tooltip - assume it's the prompt-rewrite behaviour its siblings describe), seed (dynamic combo, -1 for random), and watermark, default false. That last one is worth knowing exists; on some platforms you have to pay to remove it, here it's a checkbox.

    Booking. generation_id and request_scope, exactly as on every Protoface node: fixed ID resumes the same paid job, incremented ID is a fresh charge, auto-assigned scope in the UI and hand-supplied when headless.

    Outputs

    video (VIDEO, list), files (PROTOFACE_FILE, list - the original download), run id (string). Lists all the way down, so multiple results map into Save Video without extra nodes.

    Install

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

    ComfyUI 0.41.0+, Python 3.10+, deps httpx, jsonschema, Pillow, av>=14. Manager path: search Protoface, install protoface-nodes, restart, reload the browser tab. Then Protoface in the lower-right corner and your account key - billed directly by Protoface, not through Comfy credits.

    Where people get bitten

    Cost, first and loudest. Fifteen inputs invite fifteen experiments, and every queue is a charge. Decide the shot on a cheaper node (Hailuo, Pika, FastH3) and bring the winner here.

    Reference limits. The adapter counts batch items toward the model's reference maximum, so a folder of stills connected to reference fails with "too many references, including items in input batches" - split and run in passes.

    Recovery and state. A timeout is a live job: requeue with the same generation_id, or resume with run id. Incrementing the ID to retry is a second charge. Don't delete ~/.cache/protoface-comfyui while a submission is unresolved, and remember that on a shared ComfyUI server, anyone who can queue a graph spends your key - separate accounts want separate instances.

    CategoryProtoface/Video/protoface

    Inputs (15)

    NameTypeDefaultDescription
    promptSTRING—
    first_frameCOMBOA public URL, a data URI, or an asset id.
    audioCOMBOPublic URLs, data URIs, or asset ids; one value or a list.
    referenceCOMBOPublic URLs, data URIs, or asset ids; one value or a list.
    reference_videoCOMBOPublic URLs, data URIs, or asset ids; one value or a list.
    last_frameCOMBOA public URL, a data URI, or an asset id.
    qualityCOMBO720pOutput resolution tier. Upscaled tiers are identified in output_quality_descriptions.
    duration_secondsCOMBO612 options: 4, 5, 6, 7, 8, 9, +6
    aspect_ratioCOMBO16:92 options: 16:9, 9:16
    enhance_promptBOOLEANfalse—
    generate_audioBOOLEANtrue—
    seedCOMBO2 options: [object Object], [object Object]
    watermarkBOOLEANfalse—
    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—