# Seedance 2.0 ComfyUI Nodes
> **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](https://muapi.ai) API.
> If you wish to check the api documentation check this [Seedance 2.0 api](https://github.com/Anil-matcha/Seedance-2.0-API)
[](LICENSE)
[](https://github.com/comfyanonymous/ComfyUI)
[](https://muapi.ai)
---
## Related Projects
- [seedance-2-generator](https://github.com/SamurAIGPT/seedance-2-generator) β Ready-made Next.js SaaS built on Seedance 2 β no ComfyUI needed
- [seedance-2.0-watermark-remover](https://github.com/SamurAIGPT/seedance-2.0-watermark-remover) β Remove watermarks from your Seedance 2 outputs
- [n8n-nodes-seedance2](https://github.com/Anil-matcha/n8n-nodes-seedance2) β Automate Seedance 2 generation in n8n workflows
- [muapi-comfyui](https://github.com/SamurAIGPT/muapi-comfyui) β ComfyUI nodes for 100+ MuAPI models including Seedance
## What is Seedance 2.0?
Seedance 2.0 is ByteDance's latest video generation model, capable of producing high-quality, photorealistic videos from text prompts or reference images. It supports:
- **Text-to-Video** β generate video from a text description
- **Image-to-Video** β animate up to 9 reference images with motion guidance
- **Omni Reference** β combine images, video clips, and audio as multi-modal reference inputs
- **Video Extend** β seamlessly extend any generated video
- **Consistent Character** β generate a 4K multi-panel character sheet from reference photos; use `@character:<id>` inline in any prompt, or wire the sheet image directly into **Consistent Character Video** for tighter face fidelity
---
## Nodes
| Node | Description |
|------|-------------|
| π Seedance 2.0 API Key | Set your key once β wire to all nodes |
| π± Seedance 2.0 Text-to-Video | Generate video from a text prompt |
| π± Seedance 2.0 Image-to-Video | Animate up to 9 reference images |
| π± Seedance 2.0 Omni Reference | Multi-modal: combine images, video clips, and audio |
| π± Seedance 2.0 Consistent Character | Generate a 4K character sheet from 1β3 reference photos |
| π± Seedance 2.0 Consistent Character Video | Animate a scene with locked character identity from a sheet |
| π± Seedance 2.0 Extend | Extend a previously generated video |
| π± Seedance 2.0 Save Video | Download URL β disk + ComfyUI IMAGE frames |
---
## Installation
### Via ComfyUI Manager (recommended)
1. Open **ComfyUI Manager** β **Install via Git URL**
2. Paste: `https://github.com/Anil-matcha/seedance2-comfyui`
3. Restart ComfyUI
### Manual
```bash
cd ComfyUI/custom_nodes
git clone https://github.com/Anil-matcha/seedance2-comfyui
pip install -r seedance2-comfyui/requirements.txt
```
---
## Quick Start
1. Sign up at [muapi.ai](https://muapi.ai) and go to **Dashboard β API Keys β Create Key**
2. Right-click the ComfyUI canvas β **Add Node** β **π± Seedance 2.0**
3. Add a **π Seedance 2.0 API Key** node, paste your key, and wire its output to any generation node
4. Write a prompt and hit **Queue Prompt**
> **Tip:** If you use the [MuAPI CLI](https://github.com/SamurAIGPT/muapi-cli), run `muapi auth configure --api-key YOUR_KEY` once and all nodes will pick it up automatically β no need to paste the key anywhere.
---
## Node Reference
### π Seedance 2.0 API Key
Set your muapi.ai API key once and wire the output to all generation nodes. Alternatively, leave every `api_key` field blank β nodes automatically read from `~/.muapi/config.json` if you've authenticated via the CLI.
---
### π± Seedance 2.0 Text-to-Video
Generate a video from a text description.
| Field | Values | Default |
|-------|--------|---------|
| `api_key` | Optional β leave blank if using the API Key node or CLI config | β |
| `prompt` | Text describing the video | β |
| `aspect_ratio` | 16:9 / 9:16 / 4:3 / 3:4 | 16:9 |
| `quality` | basic / high | basic |
| `duration` | 5 / 10 / 15 seconds | 5 |
**Outputs:** `video_url` Β· `first_frame` (IMAGE) Β· `request_id`
---
### π± Seedance 2.0 Image-to-Video
Animate reference images into a video. Connect up to 9 images via `image_1` β¦ `image_9` and reference them in the prompt using `@image1` β¦ `@image9`.
**Example prompt:**
```
The cat in @image1 walks gracefully through a sunlit garden.
@image1 transforms into @image2 with a smooth dissolve transition.
```
---
### π± Seedance 2.0 Omni Reference
Multi-modal video generation that combines images, video clips, and audio clips as reference material alongside a text prompt. Use `@image1`β¦`@image9`, `@video1`β¦`@video3`, and `@audio1`β¦`@audio3` to reference media in the prompt.
**Example prompt:**
```
A person @image1 walking on the beach at sunset, cinematic lighting, with @audio1 as background music.
```
| Field | Values | Default |
|-------|--------|---------|
| `prompt` | Text with optional `@imageN`, `@videoN`, `@audioN` references | β |
| `aspect_ratio` | 21:9 / 16:9 / 4:3 / 1:1 / 3:4 / 9:16 | 16:9 |
| `duration` | 4 β 15 seconds (integer) | 5 |
| `image_1` β¦ `image_9` | Optional β ComfyUI IMAGE tensors (auto-uploaded) | β |
| `video_url_1` β¦ `video_url_3` | Optional β MP4 URL (max 15s each) | β |
| `audio_url_1` β¦ `audio_url_3` | Optional β MP3/WAV URL (total max 15s) | β |
**Outputs:** `video_url` Β· `first_frame` (IMAGE) Β· `request_id`
---
### π± Seedance 2.0 Consistent Character
Generate a 4K / 21:9 multi-panel character sheet (front, back, side profile, action pose, facial expressions, accessories) from 1β3 reference photos of a real person.
| Field | Description |
|-------|-------------|
| `image_1` β¦ `image_3` | Reference photos of the person (at least 1 required; clear frontal/3-4 angle shots work best) |
| `outfit_description` | Describe the desired outfit/style for the character |
**Outputs:**
| Output | Type | Description |
|--------|------|-------------|
| `sheet_image` | IMAGE | Character sheet as a ComfyUI tensor β wire directly into Consistent Character Video |
| `sheet_url` | STRING | CDN URL of the character sheet image |
| `character_id` | STRING | `request_id` of this generation β use as `@character:<id>` in T2V/I2V/Omni prompts |
**Recommended workflow β wire `sheet_image` into Consistent Character Video:**
```
[LoadImage] βββ [π± Consistent Character] ββ(sheet_image)βββ [π± Consistent Character Video]
[outfit_description] (sheet_url) [scene prompt]
```
**Alternative β use `@character:<id>` in any prompt (simpler but looser face fidelity):**
```
[π± Consistent Character] character_id βββ (paste into prompt) βββ [π± Text-to-Video]
T2V prompt: "@character:{character_id} rides a motorcycle through a neon-lit city at night"
```
---
### π± Seedance 2.0 Consistent Character Video
Generate a video scene with locked character identity. Anchors on the character sheet image as `@image1` for maximum face/identity preservation.
Connect `sheet_image` (or paste `sheet_url`) from the **Consistent Character** node.
| Field | Description |
|-------|-------------|
| `prompt` | Scene description. `@image1` refers to the character sheet and is auto-prepended if omitted. |
| `sheet_image` | IMAGE tensor from Consistent Character (preferred) |
| `sheet_url` | Paste the sheet URL if you don't have the tensor |
| `scene_image_2`, `scene_image_3` | Optional extra scene/background images (referenced as `@image2`, `@image3`) |
| `aspect_ratio` | 16:9 / 9:16 / 4:3 / 3:4 |
| `quality` | basic / high |
| `duration` | 5 / 10 / 15 seconds |
**Outputs:** `video_url` Β· `first_frame` (IMAGE) Β· `request_id`
**Example prompt:**
```
@image1 walks through a rain-soaked neon city, cinematic slow motion
```
---
### π± Seedance 2.0 Extend
Continue any completed Seedance 2.0 video. Connect the `request_id` output from a generation node.
| Field | Description |
|-------|-------------|
| `request_id` | From a completed T2V or I2V generation |
| `prompt` | Optional β guide the continuation |
| `quality` | basic / high |
| `duration` | 5 / 10 / 15 seconds to add |
---
### π± Seedance 2.0 Save Video
Downloads the generated video to ComfyUI's output folder and returns all frames as an IMAGE tensor for use with other nodes (preview, VHS, upscale, etc.).
---
## Example Workflows
Load any `.json` file from this repo via **File β Load** in ComfyUI.
| File | Description |
|------|-------------|
| `Seedance2_T2V_Example.json` | Basic text-to-video generation |
| `Seedance2_ConsistentCharacter_Example.json` | Full consistent character workflow: reference photo β character sheet β video |
**Text-to-Video:**
```
[π API Key] βββββββββββββββββββββββββββββββββββ
β
[π± Text-to-Video] β video_url β [π± Save Video] β frames β [Preview Image]
```
**Consistent Character:**
```
[π API Key] ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
[LoadImage] β [π± Consistent Character] β sheet_image β [π± Consistent Character Video] β [π± Save Video]
[outfit_description] β [scene prompt]
[Preview Image] β
(character sheet) [Preview Image]
(first frame)
```
---
## API
This node pack uses the **muapi.ai** API under the hood:
- **T2V:** `POST https://api.muapi.ai/api/v1/seedance-v2.0-t2v`
- **I2V:** `POST https://api.muapi.ai/api/v1/seedance-v2.0-i2v`
- **Omni:** `POST https://api.muapi.ai/api/v1/seedance-2.0-omni-reference`
- **Character:** `POST https://api.muapi.ai/api/v1/seedance-2-character`
- **Extend:** `POST https://api.muapi.ai/api/v1/seedance-v2.0-extend`
- **Poll:** `GET https://api.muapi.ai/api/v1/predictions/{id}/result`
- **Upload:** `POST https://api.muapi.ai/api/v1/upload_file`
Authentication is a single `x-api-key` header β no session tokens required.
---
## Requirements
- Python β₯ 3.8
- `requests` β₯ 2.28 Β· `Pillow` β₯ 9.0 Β· `numpy` β₯ 1.23 Β· `torch` β₯ 2.0 Β· `opencv-python` β₯ 4.7
---
## Want More Models?
This repo is focused on Seedance 2.0 only. If you need access to **100+ models** β Kling, Veo3, Flux, HiDream, GPT-image-1.5, Imagen4, Wan, lipsync, audio, image enhancement and more β check out the full MuAPI ComfyUI node pack:
**[SamurAIGPT/muapi-comfyui](https://github.com/SamurAIGPT/muapi-comfyui)** β ComfyUI nodes for every muapi.ai model in one place.
---
## License
MIT Β© 2026