Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/README.skills.md
Original file line number Diff line number Diff line change
Expand Up @@ -427,6 +427,7 @@ See [CONTRIBUTING.md](../CONTRIBUTING.md#adding-skills) for guidelines on how to
| [verify-agent-action](../skills/verify-agent-action/SKILL.md)<br />`gh skills install github/awesome-copilot verify-agent-action` | Review a proposed AI-agent action or human-approval packet before execution. Use when an agent wants to run a consequential tool, command, deployment, message, purchase, credential operation, or data mutation; when checking whether approval still matches the exact action; or when auditing action evidence for forged results, parameter swaps, replay, correlated reviewers, missing evidence, expiry, or stale monitoring. Produce an evidence-based review only—never execute or authorize the action. | None |
| [vscode-ext-commands](../skills/vscode-ext-commands/SKILL.md)<br />`gh skills install github/awesome-copilot vscode-ext-commands` | Guidelines for contributing commands in VS Code extensions. Indicates naming convention, visibility, localization and other relevant attributes, following VS Code extension development guidelines, libraries and good practices | None |
| [vscode-ext-localization](../skills/vscode-ext-localization/SKILL.md)<br />`gh skills install github/awesome-copilot vscode-ext-localization` | Guidelines for proper localization of VS Code extensions, following VS Code extension development guidelines, libraries and good practices | None |
| [wavespeed-media-generation](../skills/wavespeed-media-generation/SKILL.md)<br />`gh skills install github/awesome-copilot wavespeed-media-generation` | Generate or edit AI media (images, video, audio, 3D) using the WaveSpeed CLI. Use when asked to create, edit, animate, upscale, or transform images, generate video from text or images, extend or edit video clips, produce TTS/music/audio, or build visual assets. Covers the find -> inspect -> run workflow across the WaveSpeed model catalog, local-file uploads, and price quotes before running. Requires a WaveSpeed account and API key. | None |
| [web-design-reviewer](../skills/web-design-reviewer/SKILL.md)<br />`gh skills install github/awesome-copilot web-design-reviewer` | This skill enables visual inspection of websites running locally or remotely to identify and fix design issues. Triggers on requests like "review website design", "check the UI", "fix the layout", "find design problems". Detects issues with responsive design, accessibility, visual consistency, and layout breakage, then performs fixes at the source code level. | `references/framework-fixes.md`<br />`references/visual-checklist.md` |
| [webapp-testing](../skills/webapp-testing/SKILL.md)<br />`gh skills install github/awesome-copilot webapp-testing` | Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs. | `assets/test-helper.js` |
| [webmcpify](../skills/webmcpify/SKILL.md)<br />`gh skills install github/awesome-copilot webmcpify` | Make a web app agent-ready — propose a WebMCP tool manifest, integrate, verify in a real browser, heal; unrelated code stays untouched. Use for "webmcpify", "add WebMCP", or "expose app actions to AI agents". | `references/heal.md`<br />`references/integrate.md`<br />`references/inventory.md`<br />`references/runtime.md`<br />`references/security.md`<br />`references/verify.md`<br />`templates` |
Expand Down
116 changes: 116 additions & 0 deletions skills/wavespeed-media-generation/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
---
name: wavespeed-media-generation
description: 'Generate or edit AI media (images, video, audio, 3D) using the WaveSpeed CLI. Use when asked to create, edit, animate, upscale, or transform images, generate video from text or images, extend or edit video clips, produce TTS/music/audio, or build visual assets. Covers the find -> inspect -> run workflow across the WaveSpeed model catalog, local-file uploads, and price quotes before running. Requires a WaveSpeed account and API key.'
license: MIT
compatibility: Requires Node.js and the WaveSpeed CLI (`npm install -g @wavespeed/cli`) plus a WaveSpeed account (https://wavespeed.ai). Authenticate via `wavespeed login` or the WAVESPEED_API_KEY environment variable.
---

# WaveSpeed Media Generation

Generate and edit AI media (images, video, audio, 3D) from the terminal using the WaveSpeed CLI. Every model on the platform is invoked through one verb — `wavespeed run <model-id>` — so the same three-step workflow covers text-to-image, image editing, video generation, audio, and everything else in the catalog.

## When to Use This Skill

Use this skill when you need to:

- Generate images from text prompts
- Edit existing images with natural-language instructions (background replacement, restyling, object changes)
- Generate video from text or animate a still image
- Edit or extend existing video clips
- Generate audio, speech (TTS), or music
- Upscale or transform visual assets
- Produce visual assets for a project (mockups, textures, marketing creatives)

## Setup

1. **Install the CLI**:

```bash
npm install -g @wavespeed/cli
```

2. **Authenticate** — check first with `wavespeed status`. If not signed in, either:
- Ask the user to run `wavespeed login` (opens https://wavespeed.ai/accesskey and stores the key locally), or
- For CI or non-interactive shells, set the `WAVESPEED_API_KEY` environment variable (it takes precedence over stored config).

Never ask the user to paste an API key into the chat — the CLI handles credentials.

## The Three-Step Workflow

Model IDs are always explicit — there are no `image` / `video` shortcut subcommands. Always follow find -> inspect -> run:

```bash
# 1. FIND a model — search the live catalog
wavespeed models "seedream"
wavespeed models --type image-to-video --popular

# 2. INSPECT its inputs — each model has its own schema
wavespeed run bytedance/seedream-v5.0-pro -h

# 3. RUN it — always pass --json so you can read the result programmatically
wavespeed run bytedance/seedream-v5.0-pro \
-p "a cyberpunk skyline at golden hour" \
-i aspect_ratio="16:9" -i resolution="2k" --json
```

`run --json` returns `{ id, model, prompt, outputs: [url, ...], saved: [path, ...], elapsed_ms, raw }`. Keep the `id` — it is the handle for `wavespeed show <id>` if anything is interrupted. Use the output URL when the user wants a link; add `--download` when they need the file on disk.

## Price Quotes Before Running

Generation costs money. For anything beyond a quick single image — video, batches, high resolutions — quote the price first and confirm with the user:

```bash
wavespeed price bytedance/seedance-2.5/text-to-video -p "..." -i duration=10 --json
```

For spend questions afterwards: `wavespeed usage` (totals, per-model) and `wavespeed billings` (per-charge records).

## Recommended Starting Points

| Use case | Model |
| --- | --- |
| Text to image | `bytedance/seedream-v5.0-pro` |
| Image edit (instruction-driven) | `bytedance/seedream-v5.0-pro/edit` — requires `images: [url, ...]` |
| Text to video | `bytedance/seedance-2.5/text-to-video` |
| Image to video | `bytedance/seedance-2.5/image-to-video` — requires `image: url` |
| Video edit (instruction-driven) | `bytedance/seedance-2.5/video-edit` — requires `video: url` |
| Video extend | `bytedance/seedance-2.5/video-extend` — requires `video: url` |

These are starting points, not a fixed list. Browse alternatives with `wavespeed models <query>` — the catalog is live and models change over time.

## Common Recipes

```bash
# Edit an existing local image — @path uploads the file and substitutes its hosted URL (one step)
wavespeed run bytedance/seedream-v5.0-pro/edit \
-p "replace the background with a sunlit kitchen" \
-i images='["@./input.jpg"]' --json

# Image-to-video — same @ marker for single-URL fields
wavespeed run bytedance/seedance-2.5/image-to-video \
-p "subtle parallax, gentle wind" \
-i image=@./hero.jpg -i duration=5 --json

# Or upload separately when you need the URL itself
URL=$(wavespeed upload ./hero.jpg --json | jq -r .url)

# Save outputs locally with a filename template
wavespeed run ... -p "..." --download "./out/{index}.{ext}"
```

## Project Config and Aliases

If a `wavespeed.json` exists in the project (created by `wavespeed init`):

- **`defaultModel`** — lets `wavespeed run -p "..."` work without a model argument.
- **Aliases** — named shortcuts that bundle a model plus default inputs. Run `wavespeed aliases` to list them; `wavespeed run <alias> -h` shows the resolved schema. CLI `-i key=value` flags override alias defaults.

The CLI never modifies the user's prompt or inputs. The single exception is explicit: an `@path` value uploads that file and substitutes its hosted URL. Bare paths are never uploaded.

## Pitfalls

- **Local files**: use `@./file.jpg` inside `-i` values. Bare paths are NOT uploaded and the model will reject them.
- **Do not invent model IDs**: always confirm via `wavespeed models <query>` or `wavespeed schema <id>` before running.
- **Always use `--json`** on `run` so `outputs[0]` can be read programmatically.
- **`wavespeed delete` requires `--yes`** when run non-interactively (which includes agent sessions).
- **Cost awareness**: quote with `wavespeed price` before expensive runs (video, batches, high resolution) and confirm with the user.
Loading