seedance2-api▌
hexiaochun/seedance2-api · updated Apr 8, 2026
MDX-style export adds YAML metadata + attribution linking explainx.ai and this canonical listing URL.
End-to-end AI video generation from storyboard concept to final output.
- ›Supports both MCP and standalone Python script modes; automatically detects availability and switches gracefully if MCP is unavailable
- ›Generates reference images with Seedream 4.5 (text-to-image and image editing), then submits video tasks to Seedance 2.0 with configurable aspect ratios (16:9, 9:16, 1:1, 21:9, 4:3, 3:4) and durations (4–15 seconds)
- ›Offers two video generation modes: omni reference (up to 9 images
Seedance 2.0 Storyboard & Video Generation
End-to-end workflow from concept to final video: Storyboard → Reference images → Submit video task → Get results.
Step 0: Determine Execution Mode (MCP or Script)
Check MCP availability first:
- Check
xskill-aiMCP service status (readmcps/user-xskill-ai/STATUS.md) - If MCP is available → use
submit_task/get_taskand other MCP tools - If MCP is unavailable or returns errors → switch to Script Mode
Script mode prerequisites:
- Verify
XSKILL_API_KEYenvironment variable is set (runecho $XSKILL_API_KEY | head -c 10) - If not set, prompt the user:
export XSKILL_API_KEY=sk-your-api-key Get your API Key: https://www.xskill.ai/#/v2/api-keys - Verify
requestsis installed (pip install requests)
Script path: Located under this skill's directory at scripts/seedance_api.py:
# Find via Glob tool
glob: .cursor/skills/seedance2-api/scripts/seedance_api.py
In the following steps, each API call provides both MCP method and Script method. Choose one based on the Step 0 result.
Step 1: Understand the User's Idea
Collect the following information (proactively ask if anything is missing):
- Story concept: one-sentence summary of the video
- Duration: 4–15 seconds
- Aspect ratio: 16:9 / 9:16 / 1:1 / 21:9 / 4:3 / 3:4
- Visual style: realistic / animation / ink wash / sci-fi / cyberpunk, etc.
- Assets: existing images/videos/audio, or need AI generation
- Function mode: first & last frame control (
first_last_frames) or default omni mode (omni_reference)
Step 2: Deep Dive (5 Dimensions)
Guide the user through each dimension for richer detail:
- Content – Who is the subject? What are they doing? Where?
- Visuals – Lighting, color palette, texture, mood
- Camera – Push in / pull out / pan / tilt / track / orbit / crane
- Motion – Subject actions and pacing
- Audio – Music style, sound effects, dialogue
Step 3: Build Storyboard Structure
Break down shots along the timeline using this formula:
[Style] _____ style, _____ seconds, _____ ratio, _____ mood
0-Xs: [Camera movement] + [Visual content] + [Action description]
X-Ys: [Camera movement] + [Visual content] + [Action description]
...
[Audio] _____ music + _____ SFX + _____ dialogue
[References] @image_file_1 _____, @video_file_1 _____
See reference.md for detailed templates and examples.
Step 4: Generate Reference Images (If Needed)
If the user has no existing assets, use Seedream 4.5 to generate character art, scenes, first/last frames, etc.
Text-to-Image
Call submit_task tool:
- model_id:
fal-ai/bytedance/seedream/v4.5/text-to-image - parameters:
- prompt: detailed image description (English works best)
- image_size: choose based on video aspect ratio
- num_images: number needed (1–6)
python .cursor/skills/seedance2-api/scripts/seedance_api.py submit \
--model "fal-ai/bytedance/seedream/v4.5/text-to-image" \
--params '{"prompt":"An astronaut in a white spacesuit...","image_size":"landscape_16_9","num_images":1}'
Image Editing (Modify Existing Images)
Call submit_task tool:
- model_id:
fal-ai/bytedance/seedream/v4.5/edit - parameters:
- prompt: editing instructions (use Figure 1/2/3 to reference images)
- image_urls: array of input image URLs
- image_size: output size
python .cursor/skills/seedance2-api/scripts/seedance_api.py submit \
--model "fal-ai/bytedance/seedream/v4.5/edit" \
--params '{"prompt":"Change the background to a forest","image_urls":["https://..."],"image_size":"landscape_16_9"}'
Poll Image Results
Images typically complete in 1–2 minutes.
Call get_task tool to check status:
- First query after 30 seconds
- Then every 30 seconds
- Extract image URL when status is
completed
Single query:
python .cursor/skills/seedance2-api/scripts/seedance_api.py query \
--task-id "TASK_ID_HERE"
Auto-poll (recommended for images, interval 10s, timeout 180s):
python .cursor/skills/seedance2-api/scripts/seedance_api.py poll \
--task-id "TASK_ID_HERE" --interval 10 --timeout 180
image_size Reference
| Aspect Ratio | Recommended image_size | Note |
|---|---|---|
| 16:9 | landscape_16_9 | Landscape |
| 9:16 | portrait_16_9 | Portrait |
| 4:3 | landscape_4_3 | Landscape |
| 3:4 | portrait_4_3 | Portrait |
| 1:1 | square_hd | Square |
| 21:9 | landscape_16_9 | Approximate ultrawide |
Step 5: Compose the Final Prompt
Merge the storyboard structure and reference images into the final prompt:
- Use
@image_file_1,@image_file_2, etc. to reference images in the image_files array - Use
@video_file_1, etc. to reference videos in the video_files array - Use
@audio_file_1, etc. to reference audio in the audio_files array
Reference syntax example:
@image_file_1 as character reference, follow @video_file_1 camera movement, with @audio_file_1 as background music
Important: The Nth URL in image_files maps to @image_file_N. video_files and audio_files are independently numbered.
Step 6: Submit Video Task
Handle asset URLs:
- Seedream-generated images: URL already available, use directly
- User-provided web images: use directly
- User-provided local images: upload first to get URL (see upload methods below)
Upload Local Images
Call upload_image tool: image_url or image_data
# Upload from URL
python .cursor/skills/seedance2-api/scripts/seedance_api.py upload \
--image-url "https://example.com/image.png"
# Upload local file
python .cursor/skills/seedance2-api/scripts/seedance_api.py upload \
--image-path "/path/to/local/image.png"
Submit Seedance 2.0 Task (Omni Reference Mode)
Call submit_task tool:
- model_id:
st-ai/super-seed2 - parameters:
- prompt: the full prompt from Step 5
- functionMode:
omni_reference(default, can be omitted) - image_files: reference image URL array (up to 9, order matches @image_file_1/2/3...)
- video_files: reference video URL array (up to 3, total duration ≤ 15s)
- audio_files: reference audio URL array (up to 3)
- ratio: aspect ratio (
16:9/9:16/1:1/21:9/4:3/3:4) - duration: integer length (
4–15) - model:
seedance_2.0_fast(default, faster) orseedance_2.0(standard quality)
python .cursor/skills/seedance2-api/scripts/seedance_api.py submit \
--model "st-ai/super-seed2" \
--params '{
"prompt": "Cinematic realistic sci-fi style, 15 seconds, 16:9...",
"functionMode": "omni_reference",
"image_files": ["https://img1.png", "https://img2.png"],
"ratio": "16:9",
"duration": 15,
"model": "seedance_2.0_fast"
}'
Submit Seedance 2.0 Task (First & Last Frames Mode)
Call submit_task tool:
- model_id:
st-ai/super-seed2 - parameters:
- prompt: video description prompt
- functionMode:
first_last_frames - filePaths: image URL array (0 = text-to-video, 1 = first frame, 2 = first & last frames)
- ratio: aspect ratio
- duration: integer length
- model:
seedance_2.0_fastorseedance_2.0
python .cursor/skills/seedance2-api/scripts/seedance_api.py submit \
--model "st-ai/super-seed2" \
--params '{
"prompt": "Camera smoothly transitions from first frame to last frame, fluid motion",
"functionMode": "first_last_frames",
"filePaths": ["https://first-frame.png", "https://last-frame.png"],
"ratio": "16:9",
"duration": 5,
"model": "seedance_2.0_fast"
}'
Step 7: Poll for Video Results
Video generation takes approximately 10 minutes.
Polling strategy:
- After submission, inform the user: "Video is generating, estimated ~10 minutes"
- First query after 60 seconds via
get_task - Then every 90 seconds
- Report status to the user after each query
Recommended: auto-poll (runs in foreground, interval 30s, timeout 600s):
python .cursor/skills/seedance2-api/scripts/seedance_api.py poll \
--task-id "TASK_ID_HERE" --interval 30 --timeout 600
Progress is printed to stderr; final JSON result is printed to stdout when complete.
Manual single query:
python .cursor/skills/seedance2-api/scripts/seedance_api.py query \
--task-id "TASK_ID_HERE"
Status reference:
pending→ "Queued..."processing→ "Generating..."completed→ Extract the video URL and present to the userfailed→ Report the error; suggest adjusting the prompt and retrying
Full Workflow Example
User says: "Make a video of an astronaut walking on Mars"
When MCP Is Available
1. Gather info → 15s, 16:9, cinematic sci-fi style, no existing assets
2. Generate astronaut + Mars scene images with Seedream 4.5
submit_task("fal-ai/bytedance/seedream/v4.5/text-to-image", {...})
→ poll get_task → get image URLs
3. Compose prompt → submit video task
submit_task("st-ai/super-seed2", {...})
4. Poll get_task, ~10 min later → get video URL
When MCP Is Unavailable (Script Mode)
1. Gather info → 15s, 16:9, cinematic sci-fi style
2. Generate reference images:
python scripts/seedance_api.py submit \
--model "fal-ai/bytedance/seedream/v4.5/text-to-image" \
--params '{"prompt":"An astronaut in white spacesuit on Mars...","image_size":"landscape_16_9"}'
→ get task_id
3. Poll for image results:
python scripts/seedance_api.py poll --task-id "xxx" --interval 10 --timeout 180
→ get image URL
4. Submit video task:
python scripts/seedance_api.py submit \
--model "st-ai/super-seed2" \
--params '{"prompt":"...storyboard prompt...","functionMode":"omni_reference","image_files":["IMAGE_URL"],"ratio":"16:9","duration":15,"model":"seedance_2.0_fast"}'
→ get task_id
5. Poll for video results:
python scripts/seedance_api.py poll --task-id "xxx" --interval 30 --timeout 600
→ get video URL
Model Parameters Quick Reference
Seedream 4.5 Text-to-Image
| Parameter | Type | Required | Description |
|---|---|---|---|
| prompt | string | Yes | Image description |
| image_size | string | No | auto_2K / auto_4K / square_hd / portrait_4_3 / portrait_16_9 / landscape_4_3 / landscape_16_9 |
| num_images | int | No | 1–6, default 1 |
Seedream 4.5 Image Editing
| Parameter | Type | Required | Description |
|---|---|---|---|
| prompt | string | Yes | Editing instructions, reference images as Figure 1/2/3 |
| image_urls | array | Yes | Input image URL list |
| image_size | string | No | Same as above |
| num_images | int | No | 1–6, default 1 |
Seedance 2.0 Video (Omni Reference Mode)
| Parameter | Type | Required | Description |
|---|---|---|---|
| prompt | string | Yes | Storyboard prompt, use @image_file_N/@video_file_N/@audio_file_N |
| functionMode | string | No | omni_reference (default) |
| image_files | array | No | Reference image URL array (up to 9) |
| video_files | array | No | Reference video URL array (up to 3, total ≤ 15s) |
| audio_files | array | No | Reference audio URL array (up to 3) |
| ratio | string | No | 21:9 / 16:9 / 4:3 / 1:1 / 3:4 / 9:16 |
| duration | integer | No | 4–15, default 5 |
| model | string | No | seedance_2.0_fast (default) / seedance_2.0 |
Seedance 2.0 Video (First & Last Frames Mode)
| Parameter | Type | Required | Description |
|---|---|---|---|
| prompt | string | Yes | Video description prompt |
| functionMode | string | Yes | first_last_frames |
| filePaths | array | No | Image URL array (0 = text-to-video, 1 = first frame, 2 = first & last) |
| ratio | string | No | 21:9 / 16:9 / 4:3 / 1:1 / 3:4 / 9:16 |
| duration | integer | No | 4–15, default 5 |
| model | string | No | seedance_2.0_fast (default) / seedance_2.0 |
Tools Quick Reference
MCP Tools
| Action | Tool | Key Parameters |
|---|---|---|
| Submit task | submit_task | model_id, parameters |
| Query result | get_task | task_id |
| Upload image | upload_image | image_url or image_data |
| Check balance | get_balance | (none) |
Script Commands (When MCP Is Unavailable)
| Action | Command | Description |
|---|---|---|
| Submit task | python scripts/seedance_api.py submit --model MODEL --params '{...}' |
Returns task_id |
| Single query | python scripts/seedance_api.py query --task-id ID |
Returns current status |
| Auto-poll | python scripts/seedance_api.py poll --task-id ID --interval N --timeout N |
Blocks until done |
| Check balance | python scripts/seedance_api.py balance |
Returns account balance |
| Upload image | python scripts/seedance_api.py upload --image-url URL or --image-path PATH |
Returns image URL |
Script path note: The
scripts/seedance_api.pypath above is relative to.cursor/skills/seedance2-api/. Use the full path.cursor/skills/seedance2-api/scripts/seedance_api.pywhen executing, orcdinto the skill directory first.
Seedance 2.0 Limitations
- Realistic human face uploads are not supported
- Maximum 12 files: images ≤ 9 + videos ≤ 3 + audio ≤ 3
- Total video/audio reference duration ≤ 15 seconds
- Video references consume more credits
More Resources
See reference.md for detailed storyboard templates, full examples, and camera movement glossary.
How to use seedance2-api on Cursor
AI-first code editor with Composer
Prerequisites
Before installing skills in Cursor, ensure your development environment meets these requirements:
- ›Cursor installed and configured on your development machine
- ›Node.js version 16.0+ with npm package manager (verify with
node --version) - ›Active project directory or workspace where you want to add seedance2-api
Execute installation command
Execute the skills CLI command in your project's root directory to begin installation:
The skills CLI fetches seedance2-api from GitHub repository hexiaochun/seedance2-api and configures it for Cursor.
Select Cursor when prompted
The CLI will show a list of available agents. Use arrow keys to navigate and space to select Cursor:
Verify installation
Confirm successful installation by checking the skill directory location:
Reload or restart Cursor to activate seedance2-api. Access the skill through slash commands (e.g., /seedance2-api) or your agent's skill management interface.
Security & Verification Notice
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your development environment. Always verify the publisher's identity, review recent commits, and test in isolated environments before production deployment.
List & Monetize Your Skill
Submit your Claude Code skill and start earning
Use Cases▌
Task Automation & Efficiency
Automate repetitive workflows and reduce manual effort
Example
Generate reports, summarize documents, draft communications
Save 3-5 hours per week on routine tasks
Knowledge Enhancement
Learn new skills, understand complex topics, get expert guidance
Example
Explain concepts, provide examples, suggest learning resources
Accelerate learning and skill development by 2x
Quality Improvement
Enhance output quality through reviews, suggestions, and refinements
Example
Review drafts, suggest improvements, catch errors
Improve work quality by 30-40% with less effort
Implementation Guide▌
Prerequisites
- ›Claude Desktop or compatible AI client with skill support
- ›Clear understanding of task or problem to solve
- ›Willingness to iterate and refine outputs
Time Estimate
15-45 minutes depending on use case complexity
Installation Steps
- 1.Install skill using provided installation command
- 2.Test with simple use case relevant to your work
- 3.Evaluate output quality and relevance
- 4.Iterate on prompts to improve results
- 5.Integrate into regular workflow if valuable
Common Pitfalls
- ⚠Expecting perfect results without iteration
- ⚠Not providing enough context in prompts
- ⚠Using skill for tasks outside its intended scope
- ⚠Accepting outputs without review and validation
Best Practices▌
✓ Do
- +Start with clear, specific prompts
- +Provide relevant context and constraints
- +Review and refine all outputs before using
- +Iterate to improve output quality
- +Document successful prompt patterns
✗ Don't
- −Don't use without understanding skill limitations
- −Don't skip validation of outputs
- −Don't share sensitive information in prompts
- −Don't expect skill to replace human judgment
💡 Pro Tips
- ★Be specific about desired format and style
- ★Ask for multiple options to choose from
- ★Request explanations to understand reasoning
- ★Combine AI efficiency with human expertise
When to Use This▌
✓ Use When
Use when skill capabilities match your task, clear ROI on time saved, and you can validate outputs. Best for repetitive tasks, learning, and quality improvement.
✗ Avoid When
Avoid when task requires deep expertise you can't validate, involves sensitive decisions, or when learning process is more valuable than speed of completion.
Learning Path▌
- 1Familiarize yourself with skill capabilities and limitations
- 2Start with low-risk, non-critical tasks
- 3Progress to more complex and valuable use cases
- 4Build expertise through regular use and experimentation
Discussion
Product Hunt–style comments (not star reviews)- No comments yet — start the thread.
Ratings
4.7★★★★★55 reviews- ★★★★★Arjun Ndlovu· Dec 24, 2024
I recommend seedance2-api for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
- ★★★★★Pratham Ware· Dec 20, 2024
Useful defaults in seedance2-api — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
- ★★★★★Omar Yang· Dec 12, 2024
seedance2-api has been reliable in day-to-day use. Documentation quality is above average for community skills.
- ★★★★★Yusuf Kapoor· Dec 8, 2024
seedance2-api fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
- ★★★★★Hassan Sanchez· Dec 4, 2024
seedance2-api reduced setup friction for our internal harness; good balance of opinion and flexibility.
- ★★★★★Advait Flores· Dec 4, 2024
Keeps context tight: seedance2-api is the kind of skill you can hand to a new teammate without a long onboarding doc.
- ★★★★★Noor Agarwal· Nov 27, 2024
seedance2-api is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
- ★★★★★Aanya Verma· Nov 23, 2024
We added seedance2-api from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
- ★★★★★William Huang· Nov 15, 2024
Solid pick for teams standardizing on skills: seedance2-api is focused, and the summary matches what you get after install.
- ★★★★★Sakshi Patil· Nov 11, 2024
seedance2-api has been reliable in day-to-day use. Documentation quality is above average for community skills.
showing 1-10 of 55