Seedance 2.0 ComfyUI Nodes for BytePlus ModelArk

⚠️ BytePlus Direct API Version — This is a custom fork with direct BytePlus API integration. If you're using the original muapi.ai service, please use Anil-matcha/seedance2-comfyui instead.

ComfyUI custom nodes for Seedance 2.0 — the state-of-the-art video generation model by ByteDance. Generate stunning AI videos directly inside ComfyUI using the muapi.ai API. If you wish to check the api documentation check this Seedance 2.0 api

This fork changes the original muapi.ai-based node pack to call BytePlus directly:

  • Uses Authorization: Bearer <ARK_API_KEY>.
  • Creates video tasks with POST /api/v3/contents/generations/tasks.
  • Polls task status with GET /api/v3/contents/generations/tasks/{id}.
  • Uses a visible endpoint field in ComfyUI for your BytePlus ep-... endpoint ID.

The original project is Anil-matcha/seedance2-comfyui.


Nodes

Node Description
Seedance 2.0 BytePlus Config Recommended first node. Set BytePlus api_key and endpoint, then wire both outputs to generation nodes.
Seedance 2.0 API Key Legacy-compatible key-only node. Useful only if endpoint is supplied in each generation node or by environment/config.
Seedance 2.0 Text-to-Video Generate video from a text prompt.
Seedance 2.0 Image-to-Video Generate video from up to 9 ComfyUI image references.
Seedance 2.0 Omni Reference Generate video using text plus image, video, and audio references.
Seedance 2.0 Consistent Character Video Generate a reference-image-guided video using sheet_image or sheet_url.
Seedance 2.0 Extend Continue from a completed BytePlus task ID, public video URL, or asset://... video reference.
Seedance 2.0 Save Video Download a generated video URL to disk and return ComfyUI IMAGE frames.
Seedance 2.0 Consistent Character Deprecated for this BytePlus direct fork. The original node was a muapi-only character-sheet helper.

Installation

  1. Open ComfyUI Manager → Install via Git URL
  2. Paste: https://github.com/nnnnkatsu/seedance2-comfyui-byteplus
  3. Restart ComfyUI

Manual

cd ComfyUI/custom_nodes
git clone https://github.com/nnnnkatsu/seedance2-comfyui-byteplus
pip install -r seedance2-comfyui/requirements.txt

Quick Start

  1. Add Seedance 2.0 BytePlus Config.
  2. Paste your BytePlus ModelArk API key into api_key.
  3. Paste your BytePlus endpoint ID into endpoint.
    • Endpoint IDs usually look like ep-....
  4. Add a generation node, for example Seedance 2.0 Text-to-Video.
  5. Wire api_key and endpoint from the config node into the generation node.
  6. Write a prompt and queue the workflow.

The ComfyUI UI says endpoint because direct BytePlus users normally receive an ep-... endpoint ID. Internally, the BytePlus API request field is still named model; the node maps endpoint to that official API field.


Configuration

Config Node

Use this for most workflows:

[Seedance 2.0 BytePlus Config]
  api_key  -> generation node api_key
  endpoint -> generation node endpoint

Environment Variables

You can leave node fields blank and configure values with environment variables:

ARK_API_KEY=your_byteplus_api_key
SEEDANCE2_ENDPOINT=your_endpoint_id
BYTEPLUS_ARK_BASE_URL=https://ark.ap-southeast.bytepluses.com/api/v3

Backward-compatible endpoint variables are also accepted:

SEEDANCE2_MODEL=your_endpoint_id
BYTEPLUS_SEEDANCE_MODEL=your_endpoint_id
ARK_MODEL=your_endpoint_id

Config File

You can also create ~/.byteplus/seedance2-comfyui.json:

{
  "api_key": "your_byteplus_api_key",
  "endpoint": "your_endpoint_id",
  "base_url": "https://ark.ap-southeast.bytepluses.com/api/v3"
}

For compatibility, endpoint_id and model are also accepted as endpoint keys in this config file.


Node Reference

Seedance 2.0 BytePlus Config

Field Description
api_key BytePlus ModelArk API key.
endpoint BytePlus ModelArk endpoint ID, usually ep-....

Outputs: api_key, endpoint


Seedance 2.0 Text-to-Video

Generate a video from a text prompt.

Field Values Default
prompt Text prompt Example cinematic prompt
aspect_ratio 16:9, 9:16, 4:3, 3:4 16:9
quality basic, high basic
duration 5, 10, 15 seconds 5
api_key Optional if supplied by config/env/file empty
endpoint Optional if supplied by config/env/file empty
generate_audio Whether BytePlus should generate audio true

Outputs: video_url, first_frame, request_id


Seedance 2.0 Image-to-Video

Generate a video from a prompt and up to 9 ComfyUI images.

Reference connected images in your prompt with @image1, @image2, and so on. The node converts this legacy syntax to BytePlus-style references internally.

The character in @image1 walks through a sunlit garden.

Image tensors are sent as base64 data URLs.


Seedance 2.0 Omni Reference

Generate video using text plus optional image, video, and audio references.

Supported prompt references:

@image1 ... @image9
@video1 ... @video3
@audio1 ... @audio3

Reference handling:

  • ComfyUI image tensors are sent as base64 image data URLs.
  • Local audio files are sent as base64 audio data URLs.
  • Reference videos must be public https://... URLs, asset://... IDs, or existing data URLs.
  • Local video files are not uploaded by this direct BytePlus API path.

Seedance 2.0 Consistent Character Video

This node now works as a reference-image-guided video node.

Use one of:

  • sheet_image: a ComfyUI IMAGE tensor, such as a loaded character/reference image.
  • sheet_url: a public image URL or BytePlus asset://... image reference.

If the prompt does not contain @image1 or [Image 1], the node prepends @image1 automatically so the reference image anchors the generation.


Seedance 2.0 Extend

Continue from a source video.

request_id accepts:

  • A completed BytePlus task ID from this node pack.
  • A public https://... video URL.
  • A BytePlus asset://... video reference.

The node retrieves the source task if needed, then submits a new task using the source video as reference_video.


Seedance 2.0 Consistent Character

This node is kept only so old workflows fail with a clear message.

The original Seedance2Character node depended on muapi.ai-specific character-sheet behavior. BytePlus ModelArk's direct Seedance video generation API does not expose the same character-sheet generation endpoint through this node pack.

Use Seedance 2.0 Consistent Character Video with an existing reference image, public sheet URL, or BytePlus asset://... digital character/image reference instead.


Example Workflows

Load these JSON files from ComfyUI with File -> Load:

File Description
Seedance2_T2V_Example.json BytePlus Config -> Text-to-Video -> Save Video
Seedance2_ConsistentCharacter_Example.json Load Image -> Consistent Character Video -> Save Video

Both examples use Seedance 2.0 BytePlus Config and require your own api_key and endpoint.


API Details

This fork uses BytePlus ModelArk directly:

Action Endpoint
Create task POST https://ark.ap-southeast.bytepluses.com/api/v3/contents/generations/tasks
Poll task GET https://ark.ap-southeast.bytepluses.com/api/v3/contents/generations/tasks/{id}

Authentication:

Authorization: Bearer <ARK_API_KEY>

Important naming note:

  • ComfyUI field: endpoint
  • BytePlus request body field: model
  • Value to paste: your BytePlus ep-... endpoint ID

Limitations

  • Seedance2Character is not implemented for direct BytePlus API usage.
  • Local video reference upload is not supported by this direct generation path.
  • Signed BytePlus output URLs can expire; save generated videos locally if you need to keep them.
  • The old muapi CLI config ~/.muapi/config.json is not used by this fork.

Requirements

  • Python >= 3.8
  • requests >= 2.28
  • Pillow >= 9.0
  • numpy >= 1.23
  • torch >= 2.0
  • opencv-python >= 4.7

License

MIT © 2026

S
Description
No description provided
Readme MIT
249 KiB
Languages
Python 66.1%
JavaScript 33.9%