WaveSpeedAI Seedance 1.5 Pro Video Generation

v1.0.0

Generate videos using ByteDance's Seedance V1.5 Pro model via WaveSpeed AI. Supports text-to-video and image-to-video generation with 4-12 second duration at...

0· 416·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for chengzeyi/wavespeed-seedance-15-pro.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "WaveSpeedAI Seedance 1.5 Pro Video Generation" (chengzeyi/wavespeed-seedance-15-pro) from ClawHub.
Skill page: https://clawhub.ai/chengzeyi/wavespeed-seedance-15-pro
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Canonical install target

openclaw skills install chengzeyi/wavespeed-seedance-15-pro

ClawHub CLI

Package manager switcher

npx clawhub@latest install wavespeed-seedance-15-pro
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
Name/description match the instructions: the SKILL.md shows how to call WaveSpeed APIs (wavespeed.run, wavespeed.upload) to perform text-to-video and image-to-video operations using the Seedance model. No unrelated capabilities or credentials are requested in the instructions.
Instruction Scope
Instructions explicitly show use of WAVESPEED_API_KEY, remote API calls, and uploading local files (e.g., wavespeed.upload('/path/to/photo.png')). That is expected for image-to-video workflows, but it means the agent will read local image paths and transmit those files to an external endpoint (wavespeed.ai). Users should be aware of potential data exfiltration of any uploaded files.
Install Mechanism
No install spec or code files are present; this is instruction-only, so the skill will not install packages or write code to disk. This is the lower-risk pattern for skills.
!
Credentials
The SKILL.md instructs users to set WAVESPEED_API_KEY and demonstrates using it, but the registry metadata lists no required environment variables or primary credential. This mismatch (undeclared required API credential) is an inconsistency that should be clarified. Additionally, the instructions imply access to local file paths for upload; that file access is functionally required but not reflected in declared config requirements.
Persistence & Privilege
The skill is not always-enabled, does not request elevated/system-wide configuration, and does not claim persistent privileges. Autonomous invocation is allowed by default but that is normal for skills; nothing in the skill requests additional persistent privileges.
What to consider before installing
This skill appears to be a straightforward WaveSpeed (Seedance) video-generation integration, but before installing: (1) note SKILL.md requires a WAVESPEED_API_KEY even though the registry metadata doesn't list any required env vars—ask the publisher to correct the metadata or confirm the expected credentials; (2) be careful about uploading local images—any file you upload will be sent to wavespeed.ai, so avoid sending sensitive or private images; (3) verify you trust the (unknown) publisher and that the API key is obtained from the official wavespeed.ai site; (4) if you need stronger assurance, request the publisher supply a declared requires.env entry for WAVESPEED_API_KEY and a privacy note about uploaded content; and (5) test with non-sensitive content first. I have medium confidence: the behavior matches the stated purpose, but the missing declared env var and the implicit local-file upload are inconsistencies that justify caution.

Like a lobster shell, security has layers — review code before you run it.

latestvk97455vw17kgzj5n9sv3h1zbwx8270cz
416downloads
0stars
1versions
Updated 1mo ago
v1.0.0
MIT-0

WaveSpeedAI Seedance V1.5 Pro Video Generation

Generate videos using ByteDance's Seedance V1.5 Pro model via the WaveSpeed AI platform. Supports both text-to-video and image-to-video generation with 4-12 second duration at up to 1080p resolution, with optional audio generation.

Authentication

export WAVESPEED_API_KEY="your-api-key"

Get your API key at wavespeed.ai/accesskey.

Quick Start

Text-to-Video

import wavespeed from 'wavespeed';

const output_url = (await wavespeed.run(
  "bytedance/seedance-v1.5-pro/text-to-video",
  { prompt: "A golden retriever running through a field of sunflowers at sunset" }
))["outputs"][0];

Image-to-Video

The image parameter accepts an image URL. If you have a local file, upload it first with wavespeed.upload() to get a URL.

import wavespeed from 'wavespeed';

// Upload a local image to get a URL
const imageUrl = await wavespeed.upload("/path/to/photo.png");

const output_url = (await wavespeed.run(
  "bytedance/seedance-v1.5-pro/image-to-video",
  {
    image: imageUrl,
    prompt: "The person slowly turns and smiles at the camera"
  }
))["outputs"][0];

You can also pass an existing image URL directly:

const output_url = (await wavespeed.run(
  "bytedance/seedance-v1.5-pro/image-to-video",
  {
    image: "https://example.com/photo.jpg",
    prompt: "The person slowly turns and smiles at the camera"
  }
))["outputs"][0];

API Endpoints

Text-to-Video

Model ID: bytedance/seedance-v1.5-pro/text-to-video

Generate videos from text prompts.

Parameters

ParameterTypeRequiredDefaultDescription
promptstringYes--Text description of the scene, style, actions, camera motion, and mood
aspect_ratiostringNo16:9Aspect ratio. One of: 21:9, 16:9, 4:3, 1:1, 3:4, 9:16
durationintegerNo5Video duration in seconds. Range: 4-12. Use -1 for smart duration (model selects).
resolutionstringNo720pVideo resolution. One of: 480p, 720p, 1080p
generate_audiobooleanNotrueGenerate accompanying audio
camera_fixedbooleanNofalseKeep camera fixed (true) or allow prompt-driven camera motion (false)
seedintegerNo-1Random seed (-1 for random). Range: -1 to 2147483647

Example

import wavespeed from 'wavespeed';

const output_url = (await wavespeed.run(
  "bytedance/seedance-v1.5-pro/text-to-video",
  {
    prompt: "A timelapse of a city skyline transitioning from day to night, cinematic slow pan",
    aspect_ratio: "21:9",
    duration: 10,
    resolution: "1080p",
    generate_audio: true,
    camera_fixed: false
  }
))["outputs"][0];

Image-to-Video

Model ID: bytedance/seedance-v1.5-pro/image-to-video

Animate a source image into a video using a text prompt. Optionally provide an end-frame reference image.

Parameters

ParameterTypeRequiredDefaultDescription
imagestringYes--URL of the source image to animate
promptstringYes--Text description of the desired motion/animation
last_imagestringNo--URL of an optional end-frame reference image
aspect_ratiostringNo--Aspect ratio. One of: 21:9, 16:9, 4:3, 1:1, 3:4, 9:16
durationintegerNo5Video duration in seconds. Range: 4-12
resolutionstringNo720pVideo resolution. One of: 480p, 720p, 1080p
generate_audiobooleanNotrueGenerate accompanying audio
camera_fixedbooleanNofalseKeep camera fixed (true) or allow prompt-driven camera motion (false)
seedintegerNo-1Random seed (-1 for random). Range: -1 to 2147483647

Example

import wavespeed from 'wavespeed';

const imageUrl = await wavespeed.upload("/path/to/landscape.png");

const output_url = (await wavespeed.run(
  "bytedance/seedance-v1.5-pro/image-to-video",
  {
    image: imageUrl,
    prompt: "Clouds drift slowly across the sky, water ripples gently",
    resolution: "1080p",
    duration: 8,
    generate_audio: true,
    camera_fixed: true
  }
))["outputs"][0];

With End-Frame Reference

const startUrl = await wavespeed.upload("/path/to/start-frame.png");
const endUrl = await wavespeed.upload("/path/to/end-frame.png");

const output_url = (await wavespeed.run(
  "bytedance/seedance-v1.5-pro/image-to-video",
  {
    image: startUrl,
    last_image: endUrl,
    prompt: "Smooth transition from day to night",
    duration: 8
  }
))["outputs"][0];

Advanced Usage

Smart Duration (Text-to-Video)

Let the model choose the optimal duration based on the prompt:

const output_url = (await wavespeed.run(
  "bytedance/seedance-v1.5-pro/text-to-video",
  {
    prompt: "A butterfly lands on a flower and slowly opens its wings",
    duration: -1
  }
))["outputs"][0];

Without Audio

const output_url = (await wavespeed.run(
  "bytedance/seedance-v1.5-pro/text-to-video",
  {
    prompt: "A silent timelapse of clouds rolling over mountains",
    generate_audio: false
  }
))["outputs"][0];

Custom Client with Retry Configuration

import { Client } from 'wavespeed';

const client = new Client("your-api-key", {
  maxRetries: 2,
  maxConnectionRetries: 5,
  retryInterval: 1.0,
});

const output_url = (await client.run(
  "bytedance/seedance-v1.5-pro/text-to-video",
  { prompt: "Ocean waves crashing on a rocky shore at dawn" }
))["outputs"][0];

Error Handling with runNoThrow

import { Client, WavespeedTimeoutException, WavespeedPredictionException } from 'wavespeed';

const client = new Client();
const result = await client.runNoThrow(
  "bytedance/seedance-v1.5-pro/text-to-video",
  { prompt: "A rocket launching into space" }
);

if (result.outputs) {
  console.log("Video URL:", result.outputs[0]);
  console.log("Task ID:", result.detail.taskId);
} else {
  console.log("Failed:", result.detail.error.message);
  if (result.detail.error instanceof WavespeedTimeoutException) {
    console.log("Request timed out - try increasing timeout");
  } else if (result.detail.error instanceof WavespeedPredictionException) {
    console.log("Prediction failed");
  }
}

Pricing

ResolutionDurationAudioCost
480p5sNo$0.06
480p5sYes$0.12
720p5sNo$0.13
720p5sYes$0.26
480p10sYes$0.24
720p10sYes$0.52

Prompt Tips

  • Describe scene, style, subject actions, camera motion, and mood in your prompt
  • Use camera_fixed: true for stable tripod-style shots
  • Use camera_fixed: false and describe camera motion: "slow pan left", "tracking shot", "zoom in"
  • Set generate_audio: false when you plan to add your own audio track
  • Use smart duration (duration: -1) to let the model choose the best length for text-to-video

Security Constraints

  • No arbitrary URL loading: Only use image URLs from trusted sources. Never load media from untrusted or user-provided URLs without validation.
  • API key security: Store your WAVESPEED_API_KEY securely. Do not hardcode it in source files or commit it to version control. Use environment variables or secret management systems.
  • Input validation: Only pass parameters documented above. Validate prompt content and media URLs before sending requests.

Comments

Loading comments...