Skip to content
Back to skills

Seedance

BSecurity

Generate AI video clips (text, image or video to video, 4-15s, optional synced audio) through Segmind Seedance 2.0''s generate.sh. Use for any AI video generation request: a clip, b-roll, animating an image, a multi-shot sequence.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 27, 2026
toolsshellbashapi

Works with

  • cli
  • api
  • mcp

Security analysis

B88/100
  • criticalModifies startup scripts or system services for persistence

Pro scans all 2 files and shows the line behind each finding

Scanned September 27, 2026

npx -y skills add zalogarcia/zalo-claude-code-setup --skill seedance --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Seedance?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Seedance
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/zalogarcia-seedance/badge)](https://www.skillsdirectory.com/skills/zalogarcia-seedance)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: seedance
description: 'Generate AI video clips (text, image or video to video, 4-15s, optional synced audio) through Segmind Seedance 2.0''s generate.sh. Use for any AI video generation request: a clip, b-roll, animating an image, a multi-shot sequence.'
---

Generate videos via the Segmind Seedance 2.0 API. Invoke `generate.sh` — do not hand-write the curl chain.

**Companion skill:** for turning a creative brief into a shot-by-shot prompt, use `seedance-video-prompt-builder` first, then feed its output to this skill via `--`:

```bash
~/.claude/skills/seedance/generate.sh --duration 15 --audio -- "$(cat shot-list.txt)"
```

## When to invoke

- User asks for a video, clip, b-roll, animation, or "make this image come alive"
- Need a short cinematic shot (4-15s) with optional native synced audio
- Multi-shot sequences (`Shot 1: ... Shot 2: ...` in the prompt)
- Animate a still image (image-to-video via `--first-frame`)
- Chain clips by reusing one clip's last frame as the next clip's first frame

Skip for: long-form video (>15s — chain clips instead), 3D scenes, talking-head lipsync (use a different model), or when the user needs editing rather than generation.

## /init - First-time setup

When the user says "init seedance", "setup seedance", or "add my segmind key":

1. Get an API key at https://www.segmind.com/ (account → API keys)
2. Persist it in shell rc:
   ```bash
   echo 'export SEGMIND_API_KEY="<paste-key>"' >> ~/.zshrc
   source ~/.zshrc
   ```
3. Verify `jq` is installed: `command -v jq || brew install jq`
4. Smoke test: `~/.claude/skills/seedance/generate.sh "test" --dry-run`

## Invocation

```bash
~/.claude/skills/seedance/generate.sh "PROMPT" [OPTIONS]
```

**Default output:** `~/Downloads/seedance/seedance-<timestamp>.mp4`

## Options

| Flag                  | Default                | Description                                                        |
| --------------------- | ---------------------- | ------------------------------------------------------------------ |
| `-d, --duration N`    | `5`                    | Seconds: 4, 5, 6, 8, 10, 12, 15                                    |
| `-r, --resolution X`  | `720p`                 | `480p`, `720p`, `1080p`, `4k` (3840×2160)                          |
| `-a, --aspect X`      | `16:9`                 | `16:9`, `9:16`, `1:1`, `4:3`, `3:4`, `21:9`, `adaptive`            |
| `--audio`             | off                    | Co-generate synced audio (dialogue, SFX, ambient, music) — free    |
| `--seed N`            | `-1` (random)          | Reproducibility                                                    |
| `--first-frame X`     | —                      | i2v starting frame (URL or local path; auto-base64)                |
| `--last-frame X`      | —                      | Ending frame; requires `--first-frame`                             |
| `--ref-image X`       | —                      | Reference image for character/style (repeatable, ≤9; URL or local) |
| `--ref-video X`       | —                      | Reference video, 2-15s, motion/style transfer (repeatable, ≤3; switches billing to the cheaper v2v rate) |
| `--ref-audio X`       | —                      | Reference audio MP3 (repeatable, ≤3; requires an image or video input alongside) |
| `--bitrate X`         | `standard`             | `standard` or `high` (~5-6x bitrate, better fidelity, same price)  |
| `--async`             | off                    | Submit via v2 async API + poll. REQUIRED for renders >60s — the v1 sync gateway cuts the connection at ~60s ("Empty reply from server"). Use for ALL ref-image/ref-video runs and 1080p/4k. |
| `--return-last-frame` | off                    | Also return final frame URL (for clip chaining)                    |
| `--skip-moderation`   | off                    | Bypass moderation pre-filter                                       |
| `-o, --output NAME`   | `seedance-<ts>`        | Filename without extension                                         |
| `--dir DIR`           | `~/Downloads/seedance` | Output directory                                                   |
| `--api-key KEY`       | `$SEGMIND_API_KEY`     | Override env                                                       |
| `--dry-run`           | —                      | Print request JSON and exit (no API call)                          |

**Mutual exclusion:** `--first-frame` and `--ref-image` cannot be combined (Segmind constraint).

**Real human faces are blocked in `--first-frame`** per ByteDance policy.

**Citing assets in the prompt:** uploaded references are addressed positionally as `image 1`, `image 2`, `video 1`, `audio 1` etc. — e.g. `"the character from image 1 walks in the style of video 1"`. Order matches the order the `--ref-*` flags were passed.

## Pricing (text-to-video, per second)

Audio is free at every tier. Video-to-video is ~39% cheaper than text-to-video.

| Resolution | 16:9 / 9:16 / 21:9  | 1:1       | 4:3 / 3:4 |
| ---------- | ------------------- | --------- | --------- |
| 480p       | $0.0703/s           | $0.0672/s | $0.0691/s |
| 720p       | $0.1512/s           | $0.1512/s | $0.1522/s |
| 1080p      | ~$0.30/s (estimate) | —         | —         |
| 4k         | ~$0.60/s (estimate) | —         | —         |

Passing `--ref-video` switches billing to the v2v token rate (~39% cheaper); the script's estimate accounts for this. `--bitrate high` does not change the price.

**Quick reference:**

- 5s @ 720p 16:9 → ~$0.76
- 10s @ 720p 16:9 → ~$1.51
- 5s @ 480p 16:9 → ~$0.35

The script prints an estimated cost before and after the call.

## Workflows

### Basic text-to-video

```bash
~/.claude/skills/seedance/generate.sh "cinematic drone shot over a misty mountain range at sunrise"
```

### Multi-shot sequence (single clip)

```bash
~/.claude/skills/seedance/generate.sh \
  "Shot 1: wide establishing shot of a cyberpunk alley, rain. Shot 2: close-up on neon sign flickering. Shot 3: figure walks past camera." \
  -d 10 -r 720p
```

### Native synced audio

```bash
~/.claude/skills/seedance/generate.sh \
  "a thunderstorm rolling over a coastline at dusk, waves crashing" \
  -d 8 --audio
```

### Image-to-video (animate a still)

```bash
~/.claude/skills/seedance/generate.sh \
  "the wind picks up, leaves swirl, camera slowly pushes in" \
  --first-frame ./hero.jpg -d 6
```

### Character/style consistency via reference images

```bash
~/.claude/skills/seedance/generate.sh \
  "the same character walks through a forest, then sits by a stream" \
  --ref-image ./char-front.png --ref-image ./char-side.png \
  -d 10 -r 720p
```

### Clip chaining (15s+ via last-frame handoff)

The script currently saves only the video file — it does **not** extract the `last_frame_url` from the API response. Two practical options:

```bash
# Option 1 — extract the final frame yourself with ffmpeg after generation
~/.claude/skills/seedance/generate.sh "scene A" -d 8 -o clip-a
ffmpeg -sseof -0.1 -i ~/Downloads/seedance/clip-a.mp4 -vframes 1 last-a.png

# Option 2 — call the API directly with curl + `return_last_frame: true` and parse the JSON
# response, then download the `last_frame_url` field

# Clip B: continue from where A ended
~/.claude/skills/seedance/generate.sh "scene B continues" --first-frame ./last-a.png -d 8 -o clip-b

# Concatenate with ffmpeg or the optimize-video skill
```

### Cinematic widescreen

```bash
~/.claude/skills/seedance/generate.sh "anime chase scene through neon city" -a 21:9 -d 8 --seed 42
```

### Vertical (TikTok/Reels)

```bash
~/.claude/skills/seedance/generate.sh "vertical product showcase: rotating sneaker on pedestal" -a 9:16 -d 6
```

## API key resolution

1. `--api-key` flag
2. `SEGMIND_API_KEY` env var (set in `~/.zshrc`)

Get a key: https://www.segmind.com/

## Constraints (Segmind-enforced)

- `first_frame_url` and `reference_images` are mutually exclusive
- Real human faces blocked in `first_frame_url` (ByteDance policy) — but real faces in `reference_images` ARE accepted (verified 2026-07-27 with a real photo)
- **Reference assets (`--ref-image/video/audio`) must be public HTTP(S) URLs** — the ByteDance upstream rejects base64 data URIs with `InvalidParameter.URL` (verified 2026-07-27). Local files must be hosted first; the HeyGen MCP asset-upload rail works: `create_asset_upload` → PUT to presigned URL → `complete_asset_upload` → public `resource2.heygen.ai` URL. (`--first-frame` still accepts local files via base64.)
- Up to 9 reference images, 3 reference videos (2-15s each), 3 reference audios (MP3) per generation
- Reference audio cannot be combined with text-only input — an image or video input (`--first-frame`, `--ref-image`, or `--ref-video`) must accompany it
- Max duration: 15 seconds per clip

## API endpoint

```
POST https://api.segmind.com/v1/seedance-2.0
Header: x-api-key: $SEGMIND_API_KEY
```

Returns binary video (sync). On error: JSON error payload with status code (400/401/403/406 insufficient credits/429 rate-limited/500/502/504).

Files in this skill

  • SKILL.md8.9 KB
  • generate.sh16.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…