{"id":"efd583f3-0910-4c4d-972b-26cb52f4611d","entityType":"agent","slug":"clawhub-wavespeed-wavespeed-veo-31-fast","name":"WaveSpeedAI Veo 3.1 Fast Video Generation","canonicalUrl":"https://www.xpersona.co/agent/clawhub-wavespeed-wavespeed-veo-31-fast","canonicalPath":"/agent/clawhub-wavespeed-wavespeed-veo-31-fast","generatedAt":"2026-10-11T17:42:17.691Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T15:35:26.211Z","emptyReason":null},"description":"Generate and extend videos using Google's Veo 3.1 Fast model via WaveSpeed AI. Supports text-to-video, image-to-video, and video extension. Features up to 4K resolution, audio generation, and chained extensions up to 148 seconds. Use when the user wants to create videos from text or images, or extend existing Veo-generated videos.","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s17epnq4kcsv1261rq3e9gvwcx8dth5q:wavespeed-veo-31-fast","sourceUrl":"https://clawhub.ai/wavespeed/wavespeed-veo-31-fast","homepage":"https://clawhub.ai/wavespeed/skills/wavespeed-veo-31-fast","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/wavespeed/wavespeed-veo-31-fast","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/wavespeed/skills/wavespeed-veo-31-fast","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"WaveSpeedAI Veo 3.1 Fast Video Generation technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T15:35:26.211Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T15:35:26.211Z","emptyReason":null},"stars":null,"forks":null,"downloads":1038,"packageName":null,"latestVersion":"2.0.1","tractionLabel":"1K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T15:35:26.144Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T15:35:26.211Z","lastCrawledAt":"2026-10-11T15:35:26.144Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T15:35:26.144Z","lastVerifiedAt":null,"highlights":[{"version":"2.0.1","createdAt":"2026-09-05T16:29:09.552Z","changelog":"Moved to the @wavespeed organization.","fileCount":3,"zipByteSize":4673},{"version":"2.0.0","createdAt":"2026-09-05T16:16:14.516Z","changelog":"Examples switched from the JS SDK to the wavespeed CLI (with the @wavespeed/mcp server as the MCP alternative): install + login setup, @path local-file upload, price quotes, --json output. SDK-specific sections (sync mode, custom client, runNoThrow) removed.","fileCount":3,"zipByteSize":4680},{"version":"1.0.0","createdAt":"2026-03-03T07:34:32.509Z","changelog":"wavespeed-veo-31-fast 1.0.0 – Initial Release - Introduces integration with Google’s Veo 3.1 Fast model via WaveSpeed AI. - Supports text-to-video, image-to-video (with optional end-frame), and video extension for Veo-generated videos. - Enables resolutions up to 4K, audio generation, and chained extensions up to 148 seconds. - Provides comprehensive API documentation and code examples for all endpoints. - Allows customizable prompts, aspect ratios, video durations, negative prompts, and seeds for reproducibility.","fileCount":3,"zipByteSize":4514}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17epnq4kcsv1261rq3e9gvwcx8dth5q:wavespeed-veo-31-fast","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s17epnq4kcsv1261rq3e9gvwcx8dth5q:wavespeed-veo-31-fast` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/wavespeed/wavespeed-veo-31-fast before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-wavespeed-wavespeed-veo-31-fast/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-wavespeed-wavespeed-veo-31-fast/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-wavespeed-wavespeed-veo-31-fast/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-wavespeed-wavespeed-veo-31-fast/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-wavespeed-wavespeed-veo-31-fast/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-wavespeed-wavespeed-veo-31-fast/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-11T17:42:17.690Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-wavespeed-wavespeed-veo-31-fast/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-wavespeed-wavespeed-veo-31-fast/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-wavespeed-wavespeed-veo-31-fast/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-wavespeed-wavespeed-veo-31-fast/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T15:35:26.211Z","emptyReason":null},"readme":"Skill: WaveSpeedAI Veo 3.1 Fast Video Generation\n\nOwner: wavespeed\n\nSummary: Generate and extend videos using Google's Veo 3.1 Fast model via WaveSpeed AI. Supports text-to-video, image-to-video, and video extension. Features up to 4K resolution, audio generation, and chained extensions up to 148 seconds. Use when the user wants to create videos from text or images, or extend existing Veo-generated videos.\n\nTags: latest:2.0.1\n\nVersion history:\n\nv2.0.1 | 2026-09-05T16:29:09.552Z | user\n\nMoved to the @wavespeed organization.\n\nv2.0.0 | 2026-09-05T16:16:14.516Z | user\n\nExamples switched from the JS SDK to the wavespeed CLI (with the @wavespeed/mcp server as the MCP alternative): install + login setup, @path local-file upload, price quotes, --json output. SDK-specific sections (sync mode, custom client, runNoThrow) removed.\n\nv1.0.0 | 2026-03-03T07:34:32.509Z | user\n\nwavespeed-veo-31-fast 1.0.0 – Initial Release\n\n- Introduces integration with Google’s Veo 3.1 Fast model via WaveSpeed AI.\n- Supports text-to-video, image-to-video (with optional end-frame), and video extension for Veo-generated videos.\n- Enables resolutions up to 4K, audio generation, and chained extensions up to 148 seconds.\n- Provides comprehensive API documentation and code examples for all endpoints.\n- Allows customizable prompts, aspect ratios, video durations, negative prompts, and seeds for reproducibility.\n\nArchive index:\n\nArchive v2.0.1: 3 files, 4673 bytes\n\nFiles: skill-card.md (2379b), SKILL.md (8932b), _meta.json (140b)\n\nFile v2.0.1:SKILL.md\n\n---\nname: wavespeed-veo-31-fast\ndescription: Generate and extend videos using Google's Veo 3.1 Fast model via WaveSpeed AI. Supports text-to-video, image-to-video, and video extension. Features up to 4K resolution, audio generation, and chained extensions up to 148 seconds. Use when the user wants to create videos from text or images, or extend existing Veo-generated videos.\nmetadata:\n  author: wavespeedai\n  version: \"2.0\"\n---\n\n# WaveSpeedAI Veo 3.1 Fast Video Generation\n\nGenerate and extend videos using Google's Veo 3.1 Fast model via the WaveSpeed AI platform. Supports text-to-video, image-to-video, and video extension with up to 4K resolution and optional audio generation.\n\n## Setup\n\nInstall the open-source CLI once and sign in; the CLI stores the key, so never ask the user to paste an API key into the chat:\n\n```bash\nnpm install -g @wavespeed/cli\nwavespeed login          # opens https://wavespeed.ai/accesskey and stores the key\nwavespeed status         # confirms you are signed in\n```\n\nFor CI or one-off shells, `WAVESPEED_API_KEY` in the environment also works.\n\nPrefer MCP tools over shell commands? The same platform is exposed by [`@wavespeed/mcp`](https://github.com/WaveSpeedAI/mcp-server) (`npx -y @wavespeed/mcp`; tools `search_models`, `get_model_schema`, `get_price`, `upload_file`, `run_model`, `get_prediction`). It shares the CLI's stored login. Every example below maps one-to-one onto `run_model` with the same model id and input fields.\n\n## Quick Start\n\n### Text-to-Video\n\n```bash\nOUTPUT_URL=$(wavespeed run google/veo3.1-fast/text-to-video \\\n  -p \"A drone shot flying over a lush tropical island at sunrise\" \\\n  --json | jq -r '.outputs[0]')\n```\n\n### Image-to-Video\n\nThe `image` parameter accepts an image URL. If you have a local file, pass it with the `@path` marker and the CLI uploads it and substitutes the hosted URL.\n\n```bash\nOUTPUT_URL=$(wavespeed run google/veo3.1-fast/image-to-video \\\n  -i image=@./photo.png \\\n  -p \"The flowers sway gently in the breeze\" \\\n  --json | jq -r '.outputs[0]')\n```\n\n### Video Extend\n\nExtend a Veo-generated video by 7 seconds per run (up to 20 extensions, 148 seconds total):\n\n```bash\n# First, generate a video\nVIDEO_URL=$(wavespeed run google/veo3.1-fast/text-to-video \\\n  -p \"A cat walking through a garden\" \\\n  --json | jq -r '.outputs[0]')\n\n# Then extend it\nEXTENDED_URL=$(wavespeed run google/veo3.1-fast/video-extend \\\n  -i video=\"$VIDEO_URL\" \\\n  -p \"The cat jumps onto a fence and looks around\" \\\n  --json | jq -r '.outputs[0]')\n```\n\n## API Endpoints\n\n### Text-to-Video\n\n**Model ID:** `google/veo3.1-fast/text-to-video`\n\nGenerate videos from text prompts with optional audio.\n\n#### Parameters\n\n| Parameter | Type | Required | Default | Description |\n|-----------|------|----------|---------|-------------|\n| `prompt` | string | Yes | -- | Text description of the video to generate |\n| `aspect_ratio` | string | No | `16:9` | Aspect ratio. One of: `16:9`, `9:16` |\n| `duration` | integer | No | `8` | Duration in seconds. One of: `4`, `6`, `8` |\n| `resolution` | string | No | `1080p` | Video resolution. One of: `720p`, `1080p`, `4k` |\n| `generate_audio` | boolean | No | `true` | Generate accompanying audio |\n| `negative_prompt` | string | No | -- | Text describing unwanted elements |\n| `seed` | integer | No | -- | Random seed for reproducibility. Range: -1 to 2147483647 |\n\n#### Example\n\n```bash\nOUTPUT_URL=$(wavespeed run google/veo3.1-fast/text-to-video \\\n  -p \"A timelapse of a city skyline transitioning from day to night, cinematic\" \\\n  -i negative_prompt=\"blurry, low quality\" \\\n  -i aspect_ratio=\"16:9\" \\\n  -i duration=8 \\\n  -i resolution=\"1080p\" \\\n  -i generate_audio=true \\\n  --json | jq -r '.outputs[0]')\n```\n\n### Image-to-Video\n\n**Model ID:** `google/veo3.1-fast/image-to-video`\n\nAnimate a source image into a video. Optionally provide an end-frame reference image.\n\n#### Parameters\n\n| Parameter | Type | Required | Default | Description |\n|-----------|------|----------|---------|-------------|\n| `image` | string | Yes | -- | URL of the source image (clear, high-quality still image) |\n| `prompt` | string | Yes | -- | Text description of the desired motion/animation |\n| `last_image` | string | No | -- | URL of an end-frame reference image |\n| `aspect_ratio` | string | No | `16:9` | Aspect ratio. One of: `16:9`, `9:16` |\n| `duration` | integer | No | `8` | Duration in seconds. One of: `4`, `6`, `8` |\n| `resolution` | string | No | `1080p` | Video resolution. One of: `720p`, `1080p`, `4k` |\n| `generate_audio` | boolean | No | `true` | Generate accompanying audio |\n| `negative_prompt` | string | No | -- | Text describing unwanted elements |\n| `seed` | integer | No | -- | Random seed for reproducibility. Range: -1 to 2147483647 |\n\n#### Example\n\n```bash\nOUTPUT_URL=$(wavespeed run google/veo3.1-fast/image-to-video \\\n  -i image=@./landscape.png \\\n  -p \"Clouds drift slowly across the sky, water ripples gently\" \\\n  -i resolution=\"1080p\" \\\n  -i duration=8 \\\n  -i generate_audio=true \\\n  --json | jq -r '.outputs[0]')\n```\n\n#### With End-Frame Reference\n\n```bash\nOUTPUT_URL=$(wavespeed run google/veo3.1-fast/image-to-video \\\n  -i image=@./start-frame.png \\\n  -i last_image=@./end-frame.png \\\n  -p \"Smooth transition from day to night\" \\\n  --json | jq -r '.outputs[0]')\n```\n\n### Video Extend\n\n**Model ID:** `google/veo3.1-fast/video-extend`\n\nExtend a Veo-generated video by 7 seconds per run. Input must be a Veo-generated video.\n\n#### Parameters\n\n| Parameter | Type | Required | Default | Description |\n|-----------|------|----------|---------|-------------|\n| `video` | string | Yes | -- | URL of the Veo-generated video to extend. Max 141 seconds. |\n| `prompt` | string | No | -- | Text guidance for the extension |\n| `resolution` | string | No | `1080p` | Video resolution. One of: `720p`, `1080p` |\n| `negative_prompt` | string | No | -- | Text describing unwanted elements |\n| `seed` | integer | No | -- | Random seed for reproducibility. Range: -1 to 2147483647 |\n\n#### Constraints\n\n- Input video **must be Veo-generated** (will not work with arbitrary videos)\n- Each run adds **+7 seconds** to the video\n- Maximum **20 extensions** in a chain\n- Maximum final video length: **148 seconds**\n- Output is a single MP4 (original + extension appended)\n- Aspect ratio and resolution are inherited from the input video\n\n#### Example\n\n```bash\n# Generate an initial video\nVIDEO_URL=$(wavespeed run google/veo3.1-fast/text-to-video \\\n  -p \"A surfer catches a wave at golden hour\" \\\n  -i duration=8 \\\n  --json | jq -r '.outputs[0]')\n\n# Extend it twice\nEXTENDED_ONCE=$(wavespeed run google/veo3.1-fast/video-extend \\\n  -i video=\"$VIDEO_URL\" \\\n  -p \"The surfer rides the wave toward shore\" \\\n  --json | jq -r '.outputs[0]')\n\nEXTENDED_TWICE=$(wavespeed run google/veo3.1-fast/video-extend \\\n  -i video=\"$EXTENDED_ONCE\" \\\n  -p \"The surfer steps off the board and walks on the beach\" \\\n  --json | jq -r '.outputs[0]')\n```\n\n\n## Pricing\n\n### Text-to-Video / Image-to-Video\n\n| Condition | Cost |\n|-----------|------|\n| With audio (720p or 1080p) | $1.20 per generation |\n| Without audio (720p or 1080p) | $0.80 per generation |\n\n### Video Extend\n\n| Condition | Cost |\n|-----------|------|\n| Per run (+7 seconds) | $1.05 |\n\n## Prompt Tips\n\n- Be specific about scene, style, subject actions, camera motion, and mood\n- Use `negative_prompt` to avoid artifacts: \"blurry, low quality, distorted\"\n- For image-to-video, use a clear, high-quality still image as input\n- For video extend, describe what should happen next in the scene\n- Video extend chains enable building longer narratives — up to 148 seconds total\n\n## CLI tips\n\n```bash\n# Inspect the live input schema before running (fields, enums, defaults)\nwavespeed run google/veo3.1-fast/text-to-video -h\n\n# Quote the price first\nwavespeed price google/veo3.1-fast/text-to-video -p \"...\" -i key=value\n\n# Save outputs to disk instead of only printing URLs\nwavespeed run google/veo3.1-fast/text-to-video -p \"...\" --json --download \"./out/{index}.{ext}\"\n\n# Local files: prefix the path with @ and the CLI uploads it and passes the hosted URL\nwavespeed run google/veo3.1-fast/text-to-video -i <field>=@./local-file.png --json\n\n# Recover a result if the run was interrupted (the id is in the --json output)\nwavespeed show <id>\n```\n\n`run --json` prints `{ id, model, prompt, outputs: [url, ...], saved: [path, ...], elapsed_ms, raw }`. Read `outputs[0]` for the result URL.\n\n## Security constraints\n\n- **Never ask for the key in chat**: `wavespeed login` handles auth; if `wavespeed status` says signed out, ask the user to run it.\n- **Local files only via `@`**: bare paths are passed through untouched and the model will reject them. Only `@`-prefixed values upload.\n- **No arbitrary URL loading**: only pass media URLs the user provided or that came back from a previous run.\n- **Input validation**: only pass parameters documented above; confirm with `wavespeed run <model> -h` when unsure.\n\nFile v2.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn733k72mbe41a710dd1kfpg2s8257bs\",\n  \"slug\": \"wavespeed-veo-31-fast\",\n  \"version\": \"2.0.1\",\n  \"publishedAt\": 1788625749552\n}\n\nFile v2.0.1:skill-card.md\n\n## Description:\n\nGenerate and extend videos using Google's Veo 3.1 Fast model via WaveSpeed AI. Supports text-to-video, image-to-video, and video extension. Features up to 4K resolution, audio generation, and chained extensions up to 148 seconds.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[wavespeed](https://clawhub.ai/user/wavespeed)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and creators use this skill to generate videos from text prompts or source images, extend existing Veo-generated videos, quote pricing, and save outputs through WaveSpeed AI tooling.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Prompts and selected media files are sent to WaveSpeed's remote service.\n\nMitigation: Use only prompts and media approved for that service and confirm the destination before upload or generation.\n\nRisk: WaveSpeed credentials may be stored by the CLI or provided through WAVESPEED_API_KEY.\n\nMitigation: Authenticate through the CLI where possible, avoid pasting keys into chat, and store environment credentials only in approved secret stores.\n\nRisk: The skill relies on unpinned WaveSpeed npm tooling.\n\nMitigation: Prefer pinned, reviewed package versions for the CLI or MCP server and run them as a normal user.\n\nRisk: Video generation and extension can incur per-run costs and may download files to local paths.\n\nMitigation: Quote pricing before runs and confirm download paths before saving generated outputs.\n\n## Reference(s):\n\n- [WaveSpeedAI Veo 3.1 Fast Video Generation on ClawHub](https://clawhub.ai/wavespeed/skills/wavespeed-veo-31-fast)\n- [WaveSpeed MCP Server](https://github.com/WaveSpeedAI/mcp-server)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Shell commands, Configuration, API calls]\n\n**Output Format:** [Markdown with inline bash commands and parameter guidance]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Outputs guide remote video generation, media upload, pricing checks, and MP4 download workflows.]\n\n## Skill Version(s):\n\n2.0.1 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v2.0.0: 3 files, 4680 bytes\n\nFiles: skill-card.md (2345b), SKILL.md (8932b), _meta.json (140b)\n\nFile v2.0.0:SKILL.md\n\n---\nname: wavespeed-veo-31-fast\ndescription: Generate and extend videos using Google's Veo 3.1 Fast model via WaveSpeed AI. Supports text-to-video, image-to-video, and video extension. Features up to 4K resolution, audio generation, and chained extensions up to 148 seconds. Use when the user wants to create videos from text or images, or extend existing Veo-generated videos.\nmetadata:\n  author: wavespeedai\n  version: \"2.0\"\n---\n\n# WaveSpeedAI Veo 3.1 Fast Video Generation\n\nGenerate and extend videos using Google's Veo 3.1 Fast model via the WaveSpeed AI platform. Supports text-to-video, image-to-video, and video extension with up to 4K resolution and optional audio generation.\n\n## Setup\n\nInstall the open-source CLI once and sign in; the CLI stores the key, so never ask the user to paste an API key into the chat:\n\n```bash\nnpm install -g @wavespeed/cli\nwavespeed login          # opens https://wavespeed.ai/accesskey and stores the key\nwavespeed status         # confirms you are signed in\n```\n\nFor CI or one-off shells, `WAVESPEED_API_KEY` in the environment also works.\n\nPrefer MCP tools over shell commands? The same platform is exposed by [`@wavespeed/mcp`](https://github.com/WaveSpeedAI/mcp-server) (`npx -y @wavespeed/mcp`; tools `search_models`, `get_model_schema`, `get_price`, `upload_file`, `run_model`, `get_prediction`). It shares the CLI's stored login. Every example below maps one-to-one onto `run_model` with the same model id and input fields.\n\n## Quick Start\n\n### Text-to-Video\n\n```bash\nOUTPUT_URL=$(wavespeed run google/veo3.1-fast/text-to-video \\\n  -p \"A drone shot flying over a lush tropical island at sunrise\" \\\n  --json | jq -r '.outputs[0]')\n```\n\n### Image-to-Video\n\nThe `image` parameter accepts an image URL. If you have a local file, pass it with the `@path` marker and the CLI uploads it and substitutes the hosted URL.\n\n```bash\nOUTPUT_URL=$(wavespeed run google/veo3.1-fast/image-to-video \\\n  -i image=@./photo.png \\\n  -p \"The flowers sway gently in the breeze\" \\\n  --json | jq -r '.outputs[0]')\n```\n\n### Video Extend\n\nExtend a Veo-generated video by 7 seconds per run (up to 20 extensions, 148 seconds total):\n\n```bash\n# First, generate a video\nVIDEO_URL=$(wavespeed run google/veo3.1-fast/text-to-video \\\n  -p \"A cat walking through a garden\" \\\n  --json | jq -r '.outputs[0]')\n\n# Then extend it\nEXTENDED_URL=$(wavespeed run google/veo3.1-fast/video-extend \\\n  -i video=\"$VIDEO_URL\" \\\n  -p \"The cat jumps onto a fence and looks around\" \\\n  --json | jq -r '.outputs[0]')\n```\n\n## API Endpoints\n\n### Text-to-Video\n\n**Model ID:** `google/veo3.1-fast/text-to-video`\n\nGenerate videos from text prompts with optional audio.\n\n#### Parameters\n\n| Parameter | Type | Required | Default | Description |\n|-----------|------|----------|---------|-------------|\n| `prompt` | string | Yes | -- | Text description of the video to generate |\n| `aspect_ratio` | string | No | `16:9` | Aspect ratio. One of: `16:9`, `9:16` |\n| `duration` | integer | No | `8` | Duration in seconds. One of: `4`, `6`, `8` |\n| `resolution` | string | No | `1080p` | Video resolution. One of: `720p`, `1080p`, `4k` |\n| `generate_audio` | boolean | No | `true` | Generate accompanying audio |\n| `negative_prompt` | string | No | -- | Text describing unwanted elements |\n| `seed` | integer | No | -- | Random seed for reproducibility. Range: -1 to 2147483647 |\n\n#### Example\n\n```bash\nOUTPUT_URL=$(wavespeed run google/veo3.1-fast/text-to-video \\\n  -p \"A timelapse of a city skyline transitioning from day to night, cinematic\" \\\n  -i negative_prompt=\"blurry, low quality\" \\\n  -i aspect_ratio=\"16:9\" \\\n  -i duration=8 \\\n  -i resolution=\"1080p\" \\\n  -i generate_audio=true \\\n  --json | jq -r '.outputs[0]')\n```\n\n### Image-to-Video\n\n**Model ID:** `google/veo3.1-fast/image-to-video`\n\nAnimate a source image into a video. Optionally provide an end-frame reference image.\n\n#### Parameters\n\n| Parameter | Type | Required | Default | Description |\n|-----------|------|----------|---------|-------------|\n| `image` | string | Yes | -- | URL of the source image (clear, high-quality still image) |\n| `prompt` | string | Yes | -- | Text description of the desired motion/animation |\n| `last_image` | string | No | -- | URL of an end-frame reference image |\n| `aspect_ratio` | string | No | `16:9` | Aspect ratio. One of: `16:9`, `9:16` |\n| `duration` | integer | No | `8` | Duration in seconds. One of: `4`, `6`, `8` |\n| `resolution` | string | No | `1080p` | Video resolution. One of: `720p`, `1080p`, `4k` |\n| `generate_audio` | boolean | No | `true` | Generate accompanying audio |\n| `negative_prompt` | string | No | -- | Text describing unwanted elements |\n| `seed` | integer | No | -- | Random seed for reproducibility. Range: -1 to 2147483647 |\n\n#### Example\n\n```bash\nOUTPUT_URL=$(wavespeed run google/veo3.1-fast/image-to-video \\\n  -i image=@./landscape.png \\\n  -p \"Clouds drift slowly across the sky, water ripples gently\" \\\n  -i resolution=\"1080p\" \\\n  -i duration=8 \\\n  -i generate_audio=true \\\n  --json | jq -r '.outputs[0]')\n```\n\n#### With End-Frame Reference\n\n```bash\nOUTPUT_URL=$(wavespeed run google/veo3.1-fast/image-to-video \\\n  -i image=@./start-frame.png \\\n  -i last_image=@./end-frame.png \\\n  -p \"Smooth transition from day to night\" \\\n  --json | jq -r '.outputs[0]')\n```\n\n### Video Extend\n\n**Model ID:** `google/veo3.1-fast/video-extend`\n\nExtend a Veo-generated video by 7 seconds per run. Input must be a Veo-generated video.\n\n#### Parameters\n\n| Parameter | Type | Required | Default | Description |\n|-----------|------|----------|---------|-------------|\n| `video` | string | Yes | -- | URL of the Veo-generated video to extend. Max 141 seconds. |\n| `prompt` | string | No | -- | Text guidance for the extension |\n| `resolution` | string | No | `1080p` | Video resolution. One of: `720p`, `1080p` |\n| `negative_prompt` | string | No | -- | Text describing unwanted elements |\n| `seed` | integer | No | -- | Random seed for reproducibility. Range: -1 to 2147483647 |\n\n#### Constraints\n\n- Input video **must be Veo-generated** (will not work with arbitrary videos)\n- Each run adds **+7 seconds** to the video\n- Maximum **20 extensions** in a chain\n- Maximum final video length: **148 seconds**\n- Output is a single MP4 (original + extension appended)\n- Aspect ratio and resolution are inherited from the input video\n\n#### Example\n\n```bash\n# Generate an initial video\nVIDEO_URL=$(wavespeed run google/veo3.1-fast/text-to-video \\\n  -p \"A surfer catches a wave at golden hour\" \\\n  -i duration=8 \\\n  --json | jq -r '.outputs[0]')\n\n# Extend it twice\nEXTENDED_ONCE=$(wavespeed run google/veo3.1-fast/video-extend \\\n  -i video=\"$VIDEO_URL\" \\\n  -p \"The surfer rides the wave toward shore\" \\\n  --json | jq -r '.outputs[0]')\n\nEXTENDED_TWICE=$(wavespeed run google/veo3.1-fast/video-extend \\\n  -i video=\"$EXTENDED_ONCE\" \\\n  -p \"The surfer steps off the board and walks on the beach\" \\\n  --json | jq -r '.outputs[0]')\n```\n\n\n## Pricing\n\n### Text-to-Video / Image-to-Video\n\n| Condition | Cost |\n|-----------|------|\n| With audio (720p or 1080p) | $1.20 per generation |\n| Without audio (720p or 1080p) | $0.80 per generation |\n\n### Video Extend\n\n| Condition | Cost |\n|-----------|------|\n| Per run (+7 seconds) | $1.05 |\n\n## Prompt Tips\n\n- Be specific about scene, style, subject actions, camera motion, and mood\n- Use `negative_prompt` to avoid artifacts: \"blurry, low quality, distorted\"\n- For image-to-video, use a clear, high-quality still image as input\n- For video extend, describe what should happen next in the scene\n- Video extend chains enable building longer narratives — up to 148 seconds total\n\n## CLI tips\n\n```bash\n# Inspect the live input schema before running (fields, enums, defaults)\nwavespeed run google/veo3.1-fast/text-to-video -h\n\n# Quote the price first\nwavespeed price google/veo3.1-fast/text-to-video -p \"...\" -i key=value\n\n# Save outputs to disk instead of only printing URLs\nwavespeed run google/veo3.1-fast/text-to-video -p \"...\" --json --download \"./out/{index}.{ext}\"\n\n# Local files: prefix the path with @ and the CLI uploads it and passes the hosted URL\nwavespeed run google/veo3.1-fast/text-to-video -i <field>=@./local-file.png --json\n\n# Recover a result if the run was interrupted (the id is in the --json output)\nwavespeed show <id>\n```\n\n`run --json` prints `{ id, model, prompt, outputs: [url, ...], saved: [path, ...], elapsed_ms, raw }`. Read `outputs[0]` for the result URL.\n\n## Security constraints\n\n- **Never ask for the key in chat**: `wavespeed login` handles auth; if `wavespeed status` says signed out, ask the user to run it.\n- **Local files only via `@`**: bare paths are passed through untouched and the model will reject them. Only `@`-prefixed values upload.\n- **No arbitrary URL loading**: only pass media URLs the user provided or that came back from a previous run.\n- **Input validation**: only pass parameters documented above; confirm with `wavespeed run <model> -h` when unsure.\n\nFile v2.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn733k72mbe41a710dd1kfpg2s8257bs\",\n  \"slug\": \"wavespeed-veo-31-fast\",\n  \"version\": \"2.0.0\",\n  \"publishedAt\": 1788624974516\n}\n\nFile v2.0.0:skill-card.md\n\n## Description:\n\nGenerate and extend videos using Google's Veo 3.1 Fast model via WaveSpeed AI for text-to-video, image-to-video, and video extension with up to 4K resolution, optional audio, and chained extensions up to 148 seconds.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[chengzeyi](https://clawhub.ai/user/chengzeyi)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal creators, developers, and agents use this skill to generate videos from text or images, extend Veo-generated videos, and choose the correct WaveSpeed CLI or MCP parameters for those workflows.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: WaveSpeed API credentials could be exposed if pasted into chat or shared broadly through CI environments.\n\nMitigation: Use WaveSpeed login or a least-privileged environment variable, and keep credentials out of chat and unrelated CI jobs.\n\nRisk: Installing unpinned WaveSpeed CLI or MCP packages can introduce unreviewed dependency changes.\n\nMitigation: Pin reviewed versions of @wavespeed/cli or @wavespeed/mcp before installing in controlled environments.\n\nRisk: Local files and media URLs supplied to the skill may be uploaded or sent to WaveSpeed for generation.\n\nMitigation: Upload only intended local files with the documented @path marker and pass only user-provided media URLs or outputs from prior WaveSpeed runs.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/chengzeyi/skills/wavespeed-veo-31-fast)\n- [WaveSpeed MCP server](https://github.com/WaveSpeedAI/mcp-server)\n- [WaveSpeed access key setup](https://wavespeed.ai/accesskey)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with bash command examples and parameter tables]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Includes WaveSpeed model IDs, required and optional inputs, pricing notes, CLI/MCP setup, and security constraints.]\n\n## Skill Version(s):\n\n2.0.0 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.0: 3 files, 4514 bytes\n\nFiles: skill-card.md (2457b), SKILL.md (9383b), _meta.json (140b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: wavespeed-veo-31-fast\ndescription: Generate and extend videos using Google's Veo 3.1 Fast model via WaveSpeed AI. Supports text-to-video, image-to-video, and video extension. Features up to 4K resolution, audio generation, and chained extensions up to 148 seconds. Use when the user wants to create videos from text or images, or extend existing Veo-generated videos.\nmetadata:\n  author: wavespeedai\n  version: \"1.0\"\n---\n\n# WaveSpeedAI Veo 3.1 Fast Video Generation\n\nGenerate and extend videos using Google's Veo 3.1 Fast model via the WaveSpeed AI platform. Supports text-to-video, image-to-video, and video extension with up to 4K resolution and optional audio generation.\n\n## Authentication\n\n```bash\nexport WAVESPEED_API_KEY=\"your-api-key\"\n```\n\nGet your API key at [wavespeed.ai/accesskey](https://wavespeed.ai/accesskey).\n\n## Quick Start\n\n### Text-to-Video\n\n```javascript\nimport wavespeed from 'wavespeed';\n\nconst output_url = (await wavespeed.run(\n  \"google/veo3.1-fast/text-to-video\",\n  { prompt: \"A drone shot flying over a lush tropical island at sunrise\" }\n))[\"outputs\"][0];\n```\n\n### Image-to-Video\n\nThe `image` parameter accepts an image URL. If you have a local file, upload it first with `wavespeed.upload()` to get a URL.\n\n```javascript\nimport wavespeed from 'wavespeed';\n\nconst imageUrl = await wavespeed.upload(\"/path/to/photo.png\");\n\nconst output_url = (await wavespeed.run(\n  \"google/veo3.1-fast/image-to-video\",\n  {\n    image: imageUrl,\n    prompt: \"The flowers sway gently in the breeze\"\n  }\n))[\"outputs\"][0];\n```\n\n### Video Extend\n\nExtend a Veo-generated video by 7 seconds per run (up to 20 extensions, 148 seconds total):\n\n```javascript\n// First, generate a video\nconst video_url = (await wavespeed.run(\n  \"google/veo3.1-fast/text-to-video\",\n  { prompt: \"A cat walking through a garden\" }\n))[\"outputs\"][0];\n\n// Then extend it\nconst extended_url = (await wavespeed.run(\n  \"google/veo3.1-fast/video-extend\",\n  {\n    video: video_url,\n    prompt: \"The cat jumps onto a fence and looks around\"\n  }\n))[\"outputs\"][0];\n```\n\n## API Endpoints\n\n### Text-to-Video\n\n**Model ID:** `google/veo3.1-fast/text-to-video`\n\nGenerate videos from text prompts with optional audio.\n\n#### Parameters\n\n| Parameter | Type | Required | Default | Description |\n|-----------|------|----------|---------|-------------|\n| `prompt` | string | Yes | -- | Text description of the video to generate |\n| `aspect_ratio` | string | No | `16:9` | Aspect ratio. One of: `16:9`, `9:16` |\n| `duration` | integer | No | `8` | Duration in seconds. One of: `4`, `6`, `8` |\n| `resolution` | string | No | `1080p` | Video resolution. One of: `720p`, `1080p`, `4k` |\n| `generate_audio` | boolean | No | `true` | Generate accompanying audio |\n| `negative_prompt` | string | No | -- | Text describing unwanted elements |\n| `seed` | integer | No | -- | Random seed for reproducibility. Range: -1 to 2147483647 |\n\n#### Example\n\n```javascript\nimport wavespeed from 'wavespeed';\n\nconst output_url = (await wavespeed.run(\n  \"google/veo3.1-fast/text-to-video\",\n  {\n    prompt: \"A timelapse of a city skyline transitioning from day to night, cinematic\",\n    negative_prompt: \"blurry, low quality\",\n    aspect_ratio: \"16:9\",\n    duration: 8,\n    resolution: \"1080p\",\n    generate_audio: true\n  }\n))[\"outputs\"][0];\n```\n\n### Image-to-Video\n\n**Model ID:** `google/veo3.1-fast/image-to-video`\n\nAnimate a source image into a video. Optionally provide an end-frame reference image.\n\n#### Parameters\n\n| Parameter | Type | Required | Default | Description |\n|-----------|------|----------|---------|-------------|\n| `image` | string | Yes | -- | URL of the source image (clear, high-quality still image) |\n| `prompt` | string | Yes | -- | Text description of the desired motion/animation |\n| `last_image` | string | No | -- | URL of an end-frame reference image |\n| `aspect_ratio` | string | No | `16:9` | Aspect ratio. One of: `16:9`, `9:16` |\n| `duration` | integer | No | `8` | Duration in seconds. One of: `4`, `6`, `8` |\n| `resolution` | string | No | `1080p` | Video resolution. One of: `720p`, `1080p`, `4k` |\n| `generate_audio` | boolean | No | `true` | Generate accompanying audio |\n| `negative_prompt` | string | No | -- | Text describing unwanted elements |\n| `seed` | integer | No | -- | Random seed for reproducibility. Range: -1 to 2147483647 |\n\n#### Example\n\n```javascript\nimport wavespeed from 'wavespeed';\n\nconst imageUrl = await wavespeed.upload(\"/path/to/landscape.png\");\n\nconst output_url = (await wavespeed.run(\n  \"google/veo3.1-fast/image-to-video\",\n  {\n    image: imageUrl,\n    prompt: \"Clouds drift slowly across the sky, water ripples gently\",\n    resolution: \"1080p\",\n    duration: 8,\n    generate_audio: true\n  }\n))[\"outputs\"][0];\n```\n\n#### With End-Frame Reference\n\n```javascript\nconst startUrl = await wavespeed.upload(\"/path/to/start-frame.png\");\nconst endUrl = await wavespeed.upload(\"/path/to/end-frame.png\");\n\nconst output_url = (await wavespeed.run(\n  \"google/veo3.1-fast/image-to-video\",\n  {\n    image: startUrl,\n    last_image: endUrl,\n    prompt: \"Smooth transition from day to night\"\n  }\n))[\"outputs\"][0];\n```\n\n### Video Extend\n\n**Model ID:** `google/veo3.1-fast/video-extend`\n\nExtend a Veo-generated video by 7 seconds per run. Input must be a Veo-generated video.\n\n#### Parameters\n\n| Parameter | Type | Required | Default | Description |\n|-----------|------|----------|---------|-------------|\n| `video` | string | Yes | -- | URL of the Veo-generated video to extend. Max 141 seconds. |\n| `prompt` | string | No | -- | Text guidance for the extension |\n| `resolution` | string | No | `1080p` | Video resolution. One of: `720p`, `1080p` |\n| `negative_prompt` | string | No | -- | Text describing unwanted elements |\n| `seed` | integer | No | -- | Random seed for reproducibility. Range: -1 to 2147483647 |\n\n#### Constraints\n\n- Input video **must be Veo-generated** (will not work with arbitrary videos)\n- Each run adds **+7 seconds** to the video\n- Maximum **20 extensions** in a chain\n- Maximum final video length: **148 seconds**\n- Output is a single MP4 (original + extension appended)\n- Aspect ratio and resolution are inherited from the input video\n\n#### Example\n\n```javascript\nimport wavespeed from 'wavespeed';\n\n// Generate an initial video\nconst video_url = (await wavespeed.run(\n  \"google/veo3.1-fast/text-to-video\",\n  {\n    prompt: \"A surfer catches a wave at golden hour\",\n    duration: 8\n  }\n))[\"outputs\"][0];\n\n// Extend it twice\nconst extended_once = (await wavespeed.run(\n  \"google/veo3.1-fast/video-extend\",\n  {\n    video: video_url,\n    prompt: \"The surfer rides the wave toward shore\"\n  }\n))[\"outputs\"][0];\n\nconst extended_twice = (await wavespeed.run(\n  \"google/veo3.1-fast/video-extend\",\n  {\n    video: extended_once,\n    prompt: \"The surfer steps off the board and walks on the beach\"\n  }\n))[\"outputs\"][0];\n```\n\n## Advanced Usage\n\n### Without Audio\n\n```javascript\nconst output_url = (await wavespeed.run(\n  \"google/veo3.1-fast/text-to-video\",\n  {\n    prompt: \"A silent timelapse of stars rotating over a desert\",\n    generate_audio: false\n  }\n))[\"outputs\"][0];\n```\n\n### Custom Client with Retry Configuration\n\n```javascript\nimport { Client } from 'wavespeed';\n\nconst client = new Client(\"your-api-key\", {\n  maxRetries: 2,\n  maxConnectionRetries: 5,\n  retryInterval: 1.0,\n});\n\nconst output_url = (await client.run(\n  \"google/veo3.1-fast/text-to-video\",\n  { prompt: \"Ocean waves crashing on a rocky shore at dawn\" }\n))[\"outputs\"][0];\n```\n\n### Error Handling with runNoThrow\n\n```javascript\nimport { Client, WavespeedTimeoutException, WavespeedPredictionException } from 'wavespeed';\n\nconst client = new Client();\nconst result = await client.runNoThrow(\n  \"google/veo3.1-fast/text-to-video\",\n  { prompt: \"A rocket launching into space\" }\n);\n\nif (result.outputs) {\n  console.log(\"Video URL:\", result.outputs[0]);\n  console.log(\"Task ID:\", result.detail.taskId);\n} else {\n  console.log(\"Failed:\", result.detail.error.message);\n  if (result.detail.error instanceof WavespeedTimeoutException) {\n    console.log(\"Request timed out - try increasing timeout\");\n  } else if (result.detail.error instanceof WavespeedPredictionException) {\n    console.log(\"Prediction failed\");\n  }\n}\n```\n\n## Pricing\n\n### Text-to-Video / Image-to-Video\n\n| Condition | Cost |\n|-----------|------|\n| With audio (720p or 1080p) | $1.20 per generation |\n| Without audio (720p or 1080p) | $0.80 per generation |\n\n### Video Extend\n\n| Condition | Cost |\n|-----------|------|\n| Per run (+7 seconds) | $1.05 |\n\n## Prompt Tips\n\n- Be specific about scene, style, subject actions, camera motion, and mood\n- Use `negative_prompt` to avoid artifacts: \"blurry, low quality, distorted\"\n- For image-to-video, use a clear, high-quality still image as input\n- For video extend, describe what should happen next in the scene\n- Video extend chains enable building longer narratives — up to 148 seconds total\n\n## Security Constraints\n\n- **No arbitrary URL loading**: Only use image and video URLs from trusted sources. Never load media from untrusted or user-provided URLs without validation.\n- **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.\n- **Input validation**: Only pass parameters documented above. Validate prompt content and media URLs before sending requests.\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn733k72mbe41a710dd1kfpg2s8257bs\",\n  \"slug\": \"wavespeed-veo-31-fast\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1772523272509\n}\n\nFile v1.0.0:skill-card.md\n\n## Description: <br>\nGenerate and extend videos using Google's Veo 3.1 Fast model via WaveSpeed AI, including text-to-video, image-to-video, video extension, up to 4K resolution, audio generation, and chained extensions up to 148 seconds. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[chengzeyi](https://clawhub.ai/user/chengzeyi) <br>\n\n### License/Terms of Use: <br>\n\n\n## Use Case: <br>\nDevelopers and creative operators use this skill to configure WaveSpeed AI requests for text-to-video, image-to-video, and Veo-generated video extension workflows. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill requires a WaveSpeed API key and can expose credentials if copied into source files or logs. <br>\nMitigation: Keep WAVESPEED_API_KEY in environment variables or secret storage and do not hardcode or commit it. <br>\nRisk: Image-to-video and video extension workflows may upload sensitive media to WaveSpeed AI. <br>\nMitigation: Avoid uploading sensitive images or videos unless WaveSpeed's data handling is acceptable for the use case. <br>\nRisk: Chained video generations and extensions can incur paid API costs. <br>\nMitigation: Confirm pricing and expected run counts before starting generation or extension chains. <br>\nRisk: Untrusted media URLs or unsupported parameters can produce unsafe or failed requests. <br>\nMitigation: Use trusted media URLs, validate prompt and media inputs, and only pass documented parameters. <br>\n\n\n## Reference(s): <br>\n- [WaveSpeed AI access keys](https://wavespeed.ai/accesskey) <br>\n- [ClawHub skill page](https://clawhub.ai/chengzeyi/wavespeed-veo-31-fast) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Guidance, Code, Shell commands, Configuration] <br>\n**Output Format:** [Markdown with JavaScript and bash code blocks] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Guides WaveSpeed API calls that return generated or extended video URLs; usage can involve uploaded media, API credentials, and paid generation requests.] <br>\n\n## Skill Version(s): <br>\n1.0.0 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>","readmeExcerpt":"Skill: WaveSpeedAI Veo 3.1 Fast Video Generation Owner: wavespeed Summary: Generate and extend videos using Google's Veo 3.1 Fast model via WaveSpeed AI. Supports text-to-video, image-to-video, and video extension. Features up to 4K resolution, audio generation, and chained extensions up to 148 seconds. Use when the user wants to create videos from text or images, or extend existing Veo-generated videos. Tags: latest","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"npm install -g @wavespeed/cli\nwavespeed login          # opens https://wavespeed.ai/accesskey and stores the key\nwavespeed status         # confirms you are signed in"},{"language":"bash","snippet":"OUTPUT_URL=$(wavespeed run google/veo3.1-fast/text-to-video \\\n  -p \"A drone shot flying over a lush tropical island at sunrise\" \\\n  --json | jq -r '.outputs[0]')"},{"language":"bash","snippet":"OUTPUT_URL=$(wavespeed run google/veo3.1-fast/image-to-video \\\n  -i image=@./photo.png \\\n  -p \"The flowers sway gently in the breeze\" \\\n  --json | jq -r '.outputs[0]')"},{"language":"bash","snippet":"# First, generate a video\nVIDEO_URL=$(wavespeed run google/veo3.1-fast/text-to-video \\\n  -p \"A cat walking through a garden\" \\\n  --json | jq -r '.outputs[0]')\n\n# Then extend it\nEXTENDED_URL=$(wavespeed run google/veo3.1-fast/video-extend \\\n  -i video=\"$VIDEO_URL\" \\\n  -p \"The cat jumps onto a fence and looks around\" \\\n  --json | jq -r '.outputs[0]')"},{"language":"bash","snippet":"OUTPUT_URL=$(wavespeed run google/veo3.1-fast/text-to-video \\\n  -p \"A timelapse of a city skyline transitioning from day to night, cinematic\" \\\n  -i negative_prompt=\"blurry, low quality\" \\\n  -i aspect_ratio=\"16:9\" \\\n  -i duration=8 \\\n  -i resolution=\"1080p\" \\\n  -i generate_audio=true \\\n  --json | jq -r '.outputs[0]')"},{"language":"bash","snippet":"OUTPUT_URL=$(wavespeed run google/veo3.1-fast/image-to-video \\\n  -i image=@./landscape.png \\\n  -p \"Clouds drift slowly across the sky, water ripples gently\" \\\n  -i resolution=\"1080p\" \\\n  -i duration=8 \\\n  -i generate_audio=true \\\n  --json | jq -r '.outputs[0]')"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: wavespeed-veo-31-fast\ndescription: Generate and extend videos using Google's Veo 3.1 Fast model via WaveSpeed AI. Supports text-to-video, image-to-video, and video extension. Features up to 4K resolution, audio generation, and chained extensions up to 148 seconds. Use when the user wants to create videos from text or images, or extend existing Veo-generated videos.\nmetadata:\n  author: wavespeedai\n  version: \"2.0\"\n---\n\n# WaveSpeedAI Veo 3.1 Fast Video Generation\n\nGenerate and extend videos using Google's Veo 3.1 Fast model via the WaveSpeed AI platform. Supports text-to-video, image-to-video, and video extension with up to 4K resolution and optional audio generation.\n\n## Setup\n\nInstall the open-source CLI once and sign in; the CLI stores the key, so never ask the user to paste an API key into the chat:\n\n```bash\nnpm install -g @wavespeed/cli\nwavespeed login          # opens https://wavespeed.ai/accesskey and stores the key\nwavespeed status         # confirms you are signed in\n```\n\nFor CI or one-off shells, `WAVESPEED_API_KEY` in the environment also works.\n\nPrefer MCP tools over shell commands? The same platform is exposed by [`@wavespeed/mcp`](https://github.com/WaveSpeedAI/mcp-server) (`npx -y @wavespeed/mcp`; tools `search_models`, `get_model_schema`, `get_price`, `upload_file`, `run_model`, `get_prediction`). It shares the CLI's stored login. Every example below maps one-to-one onto `run_model` with the same model id and input fields.\n\n## Quick Start\n\n### Text-to-Video\n\n```bash\nOUTPUT_URL=$(wavespeed run google/veo3.1-fast/text-to-video \\\n  -p \"A drone shot flying over a lush tropical island at sunrise\" \\\n  --json | jq -r '.outputs[0]')\n```\n\n### Image-to-Video\n\nThe `image` parameter accepts an image URL. If you have a local file, pass it with the `@path` marker and the CLI uploads it and substitutes the hosted URL.\n\n```bash\nOUTPUT_URL=$(wavespeed run google/veo3.1-fast/image-to-video \\\n  -i image=@./photo.png \\\n  -p \"The flowers sway gently in the breeze\" \\\n  --json | jq -r '.outputs[0]')\n```\n\n### Video Extend\n\nExtend a Veo-generated video by 7 seconds per run (up to 20 extensions, 148 seconds total):\n\n```bash\n# First, generate a video\nVIDEO_URL=$(wavespeed run google/veo3.1-fast/text-to-video \\\n  -p \"A cat walking through a garden\" \\\n  --json | jq -r '.outputs[0]')\n\n# Then extend it\nEXTENDED_URL=$(wavespeed run google/veo3.1-fast/video-extend \\\n  -i video=\"$VIDEO_URL\" \\\n  -p \"The cat jumps onto a fence and looks around\" \\\n  --json | jq -r '.outputs[0]')\n```\n\n## API Endpoints\n\n### Text-to-Video\n\n**Model ID:** `google/veo3.1-fast/text-to-video`\n\nGenerate videos from text prompts with optional audio.\n\n#### Parameters\n\n| Parameter | Type | Required | Default | Description |\n|-----------|------|----------|---------|-------------|\n| `prompt` | string | Yes | -- | Text description of the video to generate |\n| `aspect_ratio` | string | No | `16:9` | Aspect ratio. One of: `16:9`, `9:16` |\n| `duration` | integer | No | `8` | Duration in second"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn733k72mbe41a710dd1kfpg2s8257bs\",\n  \"slug\": \"wavespeed-veo-31-fast\",\n  \"version\": \"2.0.1\",\n  \"publishedAt\": 1788625749552\n}"},{"path":"skill-card.md","content":"## Description:\n\nGenerate and extend videos using Google's Veo 3.1 Fast model via WaveSpeed AI. Supports text-to-video, image-to-video, and video extension. Features up to 4K resolution, audio generation, and chained extensions up to 148 seconds.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[wavespeed](https://clawhub.ai/user/wavespeed)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and creators use this skill to generate videos from text prompts or source images, extend existing Veo-generated videos, quote pricing, and save outputs through WaveSpeed AI tooling.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Prompts and selected media files are sent to WaveSpeed's remote service.\n\nMitigation: Use only prompts and media approved for that service and confirm the destination before upload or generation.\n\nRisk: WaveSpeed credentials may be stored by the CLI or provided through WAVESPEED_API_KEY.\n\nMitigation: Authenticate through the CLI where possible, avoid pasting keys into chat, and store environment credentials only in approved secret stores.\n\nRisk: The skill relies on unpinned WaveSpeed npm tooling.\n\nMitigation: Prefer pinned, reviewed package versions for the CLI or MCP server and run them as a normal user.\n\nRisk: Video generation and extension can incur per-run costs and may download files to local paths.\n\nMitigation: Quote pricing before runs and confirm download paths before saving generated outputs.\n\n## Reference(s):\n\n- [WaveSpeedAI Veo 3.1 Fast Video Generation on ClawHub](https://clawhub.ai/wavespeed/skills/wavespeed-veo-31-fast)\n- [WaveSpeed MCP Server](https://github.com/WaveSpeedAI/mcp-server)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Shell commands, Configuration, API calls]\n\n**Output Format:** [Markdown with inline bash commands and parameter guidance]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Outputs guide remote video generation, media upload, pricing checks, and MP4 download workflows.]\n\n## Skill Version(s):\n\n2.0.1 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1195,"uniquenessScore":42,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T15:35:26.211Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T15:35:26.211Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-11T17:42:17.691Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}