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
endpointfield in ComfyUI for your BytePlusep-...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
Via ComfyUI Manager (recommended)
- Open ComfyUI Manager → Install via Git URL
- Paste:
https://github.com/nnnnkatsu/seedance2-comfyui-byteplus - 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
- Add
Seedance 2.0 BytePlus Config. - Paste your BytePlus ModelArk API key into
api_key. - Paste your BytePlus endpoint ID into
endpoint.- Endpoint IDs usually look like
ep-....
- Endpoint IDs usually look like
- Add a generation node, for example
Seedance 2.0 Text-to-Video. - Wire
api_keyandendpointfrom the config node into the generation node. - 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 BytePlusasset://...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
Seedance2Characteris 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.jsonis not used by this fork.
Requirements
- Python >= 3.8
requests>= 2.28Pillow>= 9.0numpy>= 1.23torch>= 2.0opencv-python>= 4.7
License
MIT © 2026