Generate high-quality AI videos using the Volcano Engine Seedance model, supporting multiple creation modes such as text-to-video (T2V), image-to-video (I2V), and audio-video synchronization.
✨ Node.js Version: This script is implemented using Node.js and requires no Python environment. The entry script automatically detects the Node.js runtime (preferring the system node, falling back to the WeSight built-in runtime), so both Windows and Mac users can use it out of the box.
Configuration
- Base URL:
https://ark.cn-beijing.volces.com/api/v3 - API Key: Read from the environment variable
ARK_API_KEYRead - Authentication Method:
Authorization: Bearer {API_KEY} - SDK: Compatible with the Volcano Ark Python SDK
How to Configure the API Key
Method 1: Configure via Environment Variables (Recommended)
Set the environment variable in the terminal:
# macOS/Linux
export ARK_API_KEY="你的API密钥"
# 或者添加到 ~/.zshrc 或 ~/.bashrc 以永久生效
echo 'export ARK_API_KEY="你的API密钥"' >> ~/.zshrc
source ~/.zshrc
# Windows PowerShell
$env:ARK_API_KEY="你的API密钥"
# 或者设置系统环境变量以永久生效
[System.Environment]::SetEnvironmentVariable('ARK_API_KEY', '你的API密钥', 'User')
Method 2: Inject at WeSight Startup
WeSight automatically reads system environment variables. Make sure ARK_API_KEY。
How to Get an API Key:
- Visit the Volcano Ark console:https://console.volcengine.com/ark/region:ark+cn-beijing/apikey
- Create a new API Key
- Copy the key and set it as an environment variable
Prerequisites Check
No dependencies need to be installed! This script is already compatible with Node.js built-in modules.
WeSight already includes the Node.js runtime, and all necessary dependencies have been automatically packaged. Windows and Mac users need no additional configuration.
Workflow
Seedance video generation is an asynchronous process:
- Submit Task - Call the API to create a video generation task and obtain
task_id - Poll Status - Query the task status every few seconds until the status becomes
succeeded - Download Video - From
video_urlfield, download the generated MP4 file
Quotas and Limits
Free Quota
All Seedance models provide the following under **default mode (online inference)**:
- 2 million tokens free quota
- flex mode (offline inference) has no free quota
Note: The documentation does not clearly state how many videos 2 million tokens can generate; consumption depends on video duration, resolution, and whether images/audio are used. It is recommended to test with a small batch first.
Rate Limits
| Model Series | RPM (requests per minute) | Concurrency | TPD (daily tokens in offline mode) |
|---|---|---|---|
| Pro Series | 600 | 10 | 500 billion |
| Lite Series | 300 | 5 | 250 billion |
- RPM Rate Limit: The upper limit on the number of tasks that can be created per minute for the same model under an account
- Concurrency Limit: The upper limit on the number of tasks being processed at the same time
- TPD Rate Limit: The upper limit on the total tokens called for the same model within one day in flex mode
Video Retention Time
⚠️ Important Reminder:
- Task data (including video URLs) is retained for only 24 hours
- It will be automatically cleared after the timeout
- Be sure to download and save the generated videos promptly
Usage Examples
Path Description: The examples below use $SKILLS_ROOT environment variable to reference the script path. WeSight will automatically set this variable to point to the actual SKILLs directory location, so there is no need to manually modify the path.
1. Text-to-Video (T2V)
Generate videos based on text descriptions, suitable for creative inspiration and concept validation.
bash "$SKILLS_ROOT/seedance/scripts/generate-video.sh" \
--prompt "一只小猫在草地上玩耍,阳光明媚,镜头缓缓推进" \
--duration 5 \
--output generated_video.mp4
Example prompts:
- "Realistic style, under a clear blue sky, a large field of white daisies, the camera gradually zooms in, finally settling on a close-up of a single daisy, with a few sparkling dewdrops on the petals"
- "A subway rumbles past, pages flutter, the camera begins to rotate 360 degrees around the girl"
- "Seaside sunset, waves gently lapping the beach, a peaceful and serene atmosphere"
2. Image-to-Video (I2V) - First Frame Guidance
Generate dynamic videos based on the first frame image,supports local images and web URLs。
# 使用本地图片
bash "$SKILLS_ROOT/seedance/scripts/generate-video.sh" \
--prompt "女孩睁开眼,温柔地看向镜头,头发被风吹动" \
--image "/Users/yourname/Pictures/girl.jpg" \
--duration 5 \
--output i2v_video.mp4
# 使用网络图片
bash "$SKILLS_ROOT/seedance/scripts/generate-video.sh" \
--prompt "女孩睁开眼,温柔地看向镜头,头发被风吹动" \
--image "https://example.com/first_frame.jpg" \
--duration 5 \
--output i2v_video.mp4
Supported image sources:
- ✅ Local file:
/path/to/image.jpg - ✅ Web URL:
https://example.com/image.jpg - ✅ file:// protocol:
file:///path/to/image.jpg
Supported image formats:
- jpg, jpeg, png, gif, webp, bmp, tiff, heic
3. Image-to-Video (I2V) - First and Last Frame Guidance
Provide the first and last frames to generate a transition animation.Supports local images。
bash "$SKILLS_ROOT/seedance/scripts/generate-video.sh" \
--prompt "360度环绕运镜,流畅过渡" \
--image "/Users/yourname/Pictures/first_frame.jpg" \
--image "/Users/yourname/Pictures/last_frame.jpg" \
--duration 5 \
--output transition_video.mp4
4. Multi-Reference Image-to-Video
Generate videos by fusing features from multiple reference images.Supports mixed use of local images and web images。
bash "$SKILLS_ROOT/seedance/scripts/generate-video.sh" \
--prompt "[图1]戴着眼镜穿着蓝色T恤的男生和[图2]的柯基小狗,坐在[图3]的草坪上,视频卡通风格" \
--image "/Users/yourname/Pictures/person.jpg" \
--image "https://example.com/dog.jpg" \
--image "/Users/yourname/Pictures/grass.jpg" \
--model "doubao-seedance-1-0-lite-i2v-250428" \
--duration 5 \
--output multi_ref_video.mp4
5. Audio-Video Synchronized Video Generation (1.5 pro only)
Generate videos containing audio (ambient sound, action sound, background music, etc.).Supports local images。
bash "$SKILLS_ROOT/seedance/scripts/generate-video.sh" \
--prompt "镜头围绕人物推镜头拉近,特写人物面部,她正在用京剧唱腔唱'月移花影,疑是玉人来',唱词充满情感" \
--image "/Users/yourname/Pictures/actress.jpg" \
--audio \
--duration 5 \
--model "doubao-seedance-1-5-pro-251215" \
--output audio_video.mp4
Parameter Description
Required Parameters
| Parameter | Description | Example |
|---|---|---|
--prompt |
Video description prompt (required) | "A kitten is playing" |
Optional Parameters
| Parameter | Description | Default Value | Optional Values |
|---|---|---|---|
--image |
Reference image path or URL (can be used multiple times) | None | Local file path or URL |
--model |
Model ID | doubao-seedance-1-5-pro-251215 |
See model list |
--duration |
Video duration (seconds) | 5 | 2-12 (varies by model) |
--ratio |
Aspect ratio | adaptive |
adaptive, 16:9, 9:16, 1:1 |
--audio |
Generate audio (only supported by 1.5 pro) | No | Flag parameter |
--no-watermark |
Do not add watermark | No | Flag parameter |
--output |
Output file path | generated_video.mp4 |
File path |
--poll-interval |
Status query interval (seconds) | 5 | 1-10 |
--timeout |
Maximum wait time (seconds) | 300 | 60-600 |
Model Selection
Choose the appropriate model to balance quality, speed, and cost:
Seedance 1.5 pro (recommended)
- Model ID:
doubao-seedance-1-5-pro-251215 - Features: Audio-video co-generation, highest quality
- Supports: Text-to-video, image-to-video, first and last frames, audio video
- Output: 480p-1080p, 24fps, 4-12 seconds
- Rate limit: RPM 600, concurrency 10
Seedance 1.0 pro
- Model ID:
doubao-seedance-1-0-pro-250528 - Features: High-quality standard version
- Supports: Text-to-video, image-to-video, first and last frames
- Output: 480p-1080p, 24fps, 2-12 seconds
- Rate limit: RPM 600, concurrency 10
Seedance 1.0 pro fast
- Model ID:
doubao-seedance-1-0-pro-fast-251015 - Features: Fast generation, lower cost
- Supports: Text-to-video, image-to-video
- Output: 480p-1080p, 24fps, 2-12 seconds
- Rate limit: RPM 600, concurrency 10
Seedance 1.0 lite (Lite version)
- Text-to-video:
doubao-seedance-1-0-lite-t2v-250428 - Image-to-video:
doubao-seedance-1-0-lite-i2v-250428 - Features: Faster speed, supports multiple reference images
- Rate limit: RPM 300, concurrency 5
Seedance 2.0 (coming soon)
- Model ID:
doubao-seedance-2-0-260128 - Features: Next-generation video generation model with comprehensive improvements in quality and performance
- Availability: ⏰ Estimated February 24, 2026, 18:00 API access opening
- Current status: Only available in Console Experience Center Available
How to use (after February 24):
# 命令行方式
bash "$SKILLS_ROOT/seedance/scripts/generate-video.sh" \
--prompt "你的提示词" \
--model "doubao-seedance-2-0-260128" \
--duration 5
Or say in WeSight conversation: "Generate a video with Seedance 2.0..."
Recommended use cases:
- Pursuing highest quality + audio-video sync → 1.5 pro
- Standard high-quality video → 1.0 pro
- Fast preview generation → 1.0 pro fast
- Multi-reference image fusion → 1.0 lite
- Next-generation latest model (after February 24) → 2.0
Advanced options
Custom aspect ratio
Choose the appropriate aspect ratio based on your use case:
# 横屏视频(适合 YouTube、B站)
--ratio "16:9"
# 竖屏视频(适合抖音、快手)
--ratio "9:16"
# 正方形视频(适合 Instagram)
--ratio "1:1"
# 自适应(根据内容自动选择)
--ratio "adaptive"
Custom video duration
Different models support different duration ranges:
# 短视频(快速生成)
--duration 2
# 标准时长
--duration 5
# 长视频(内容更丰富)
--duration 10
Note:
- Seedance 1.5 pro supports 4-12 seconds
- Seedance 1.0 series supports 2-12 seconds
- The longer the duration, the longer the generation time
Remove watermark
Generate watermark-free video (for commercial use):
--no-watermark
Polling and timeout control
Adjust the polling strategy to suit different scenarios:
# 快速查询(适合短视频)
--poll-interval 3 --timeout 180
# 标准配置
--poll-interval 5 --timeout 300
# 耐心等待(适合长视频或高峰期)
--poll-interval 10 --timeout 600
Status descriptions
Task statuses that may occur during generation:
| Status | Description | Action |
|---|---|---|
queued |
Task queued | Keep waiting |
running |
Generating video | Keep waiting |
succeeded |
Generation successful | Download video |
failed |
Generation failed | View error information |
Error handling
Common errors and solutions
Error: Environment variable ARK_API_KEY not set
- Cause: API Key not configured
- Solution: Configure it as described in the "How to configure API Key" section
Error: Task creation failed (HTTP 401)
- Cause: API Key is invalid or expired
- Solution: Check whether the API Key is correct, or regenerate it in the console
Error: Task creation failed (HTTP 400)
- Cause: Parameter error (e.g., duration out of range)
- Solution: Check whether the parameters meet the model requirements
Error: Task timed out
- Cause: Generation took too long or the API is busy
- Solution: Increase the
--timeoutvalue, or try again later
Error: Task failed
- Cause: Content violation, unclear prompt, incorrect image format, etc.
- Solution: Check the prompt content and ensure the image URL is accessible
Error: Rate limited (HTTP 429)
- Cause: Exceeded the RPM or concurrency limit
- Solution: Wait 1 minute and try again, or upgrade your quota
Output format
The generated video has the following characteristics:
- Format: MP4
- Encoding: H.264
- Resolution: 480p / 720p / 1080p (automatically selected based on the model)
- Frame rate: 24 fps
- Audio: AAC (if enabled
--audio) - File size: about 2-5 MB/s (1080p)
Prompt best practices
Characteristics of a good prompt
- Clear scene description - Describe the environment, time, and atmosphere
- Specific action details - Describe the specific actions of objects or characters
- Camera movement - Describe camera language such as dolly in/out, pan, tilt, and close-ups
- Style specification - Style descriptions such as realistic, cartoon, anime, etc.
Prompt template
[风格],[场景描述],[主体动作],[镜头运动],[氛围/情绪]
Example:
写实风格,海边日落,一只海鸥在空中盘旋,镜头从远处缓缓推进到海鸥特写,宁静祥和的氛围
Prompt notes
- ✅ Be specific: "a kitten chasing a butterfly" rather than "a kitten playing"
- ✅ Camera language: "the camera orbits 360 degrees" rather than "rotate"
- ✅ Emotional atmosphere: "warm, bright sunlight" rather than "good weather"
- ❌ Avoid vagueness: overly abstract descriptions increase randomness
- ❌ Avoid excessive length: keeping it within 200 characters works best
- ❌ Avoid violations: do not include violent, pornographic, or other violating content
Common use cases
Short video creation
bash "$SKILLS_ROOT/seedance/scripts/generate-video.sh" \
--prompt "产品展示:智能手表从不同角度旋转展示" \
--ratio "9:16" \
--duration 5
Animated short films
bash "$SKILLS_ROOT/seedance/scripts/generate-video.sh" \
--prompt "卡通风格,小兔子在森林里蹦蹦跳跳" \
--ratio "16:9" \
--duration 8 \
--model "doubao-seedance-1-0-pro-250528"
Social media content
bash "$SKILLS_ROOT/seedance/scripts/generate-video.sh" \
--prompt "美食特写:热气腾腾的拉面,筷子夹起面条" \
--ratio "1:1" \
--duration 3
Teaching demonstrations
bash "$SKILLS_ROOT/seedance/scripts/generate-video.sh" \
--prompt "科普动画:地球自转,太阳光照射地球表面" \
--ratio "16:9" \
--duration 10
Reference materials
- API reference:https://www.volcengine.com/docs/82379/1520758
- Console:https://console.volcengine.com/ark
- API Key management:https://console.volcengine.com/ark/region:ark+cn-beijing/apikey
Technical support
If you encounter problems, you can:
- Check the error information output by the script
- Check whether the API Key configuration is correct
- Visit the Volcano Ark console to view task details
- Refer to the official website documentation for more details