seedance2-api

hexiaochun/seedance2-api · updated Apr 8, 2026

MDX-style export adds YAML metadata + attribution linking explainx.ai and this canonical listing URL.

$npx skills add https://github.com/hexiaochun/seedance2-api --skill seedance2-api
0 commentsdiscussion
summary

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
skill.md

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:

  1. Check xskill-ai MCP service status (read mcps/user-xskill-ai/STATUS.md)
  2. If MCP is available → use submit_task / get_task and other MCP tools
  3. If MCP is unavailable or returns errors → switch to Script Mode

Script mode prerequisites:

  1. Verify XSKILL_API_KEY environment variable is set (run echo $XSKILL_API_KEY | head -c 10)
  2. 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
    
  3. Verify requests is 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:

  1. Content – Who is the subject? What are they doing? Where?
  2. Visuals – Lighting, color palette, texture, mood
  3. Camera – Push in / pull out / pan / tilt / track / orbit / crane
  4. Motion – Subject actions and pacing
  5. 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 (415)
    • model: seedance_2.0_fast (default, faster) or seedance_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_fast or seedance_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:

  1. After submission, inform the user: "Video is generating, estimated ~10 minutes"
  2. First query after 60 seconds via get_task
  3. Then every 90 seconds
  4. 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 user
  • failed → 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.py path above is relative to .cursor/skills/seedance2-api/. Use the full path .cursor/skills/seedance2-api/scripts/seedance_api.py when executing, or cd into 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

How to use seedance2-api on Cursor

AI-first code editor with Composer

1

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
2

Execute installation command

Execute the skills CLI command in your project's root directory to begin installation:

$npx skills add https://github.com/hexiaochun/seedance2-api --skill seedance2-api

The skills CLI fetches seedance2-api from GitHub repository hexiaochun/seedance2-api and configures it for Cursor.

3

Select Cursor when prompted

The CLI will show a list of available agents. Use arrow keys to navigate and space to select Cursor:

◆ Which agents do you want to install to?
│ ── Universal (.agents/skills) ── always included ────
│ • Amp
│ • Antigravity
│ • Cline
│ • Codex
│ ●Cursor(selected)
│ • Cursor
│ • Windsurf
4

Verify installation

Confirm successful installation by checking the skill directory location:

.cursor/skills/seedance2-api

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

GET_STARTED →

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. 1.Install skill using provided installation command
  2. 2.Test with simple use case relevant to your work
  3. 3.Evaluate output quality and relevance
  4. 4.Iterate on prompts to improve results
  5. 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

  1. 1Familiarize yourself with skill capabilities and limitations
  2. 2Start with low-risk, non-critical tasks
  3. 3Progress to more complex and valuable use cases
  4. 4Build expertise through regular use and experimentation

Discussion

Product Hunt–style comments (not star reviews)
  • No comments yet — start the thread.
general reviews

Ratings

4.755 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

1 / 6