WeryAI Video Generator
Generate WeryAI videos with the official base skill for text-to-video, image-to-video, video from image, storyboard-to-video, and first-frame/last-frame transition workflows. In agent environments, default to result-first execution: submit and poll until playable videos are ready or timeout is reached. Use bounded wait (short tasks: 10 minutes, long tasks: 30 minutes) and avoid unbounded polling loops.
Example Prompts
- - INLINECODE0
- INLINECODE1
- INLINECODE2
- INLINECODE3
- INLINECODE4
Quick Summary
- - Main jobs:
text-to-video, image-to-video, video from image, first-frame to last-frame video, storyboard-to-video, INLINECODE10 - Default model: Seedance 2.0 (
SEEDANCE_2_0) - Default parameters:
duration=5, resolution=720p, aspect_ratio=9:16, generate_audio=true (for audio-capable models) - Main trust signals: dry-run support, model capability lookup, paid-run warning, media-source validation with auto upload for local references
Authentication and first-time setup
Before the first real generation run:
- 1. Create a WeryAI account.
- Open the API key page at
https://www.weryai.com/api/keys. - Create a new API key and copy the secret value.
- Add it to the required environment variable
WERYAI_API_KEY. - Make sure the WeryAI account has available balance or credits before paid generation.
OpenClaw-friendly setup
- - This skill already declares
WERYAI_API_KEY in metadata.openclaw.requires.env and primaryEnv. - After installation, if the installer or runtime asks for required environment variables, paste the key into
WERYAI_API_KEY. - If you are configuring the runtime manually, export it before running commands:
CODEBLOCK0
Quick verification
Use one safe check before the first paid run:
CODEBLOCK1
- -
models-video.js confirms that the key is configured and the models endpoint is reachable. - INLINECODE23 confirms the request shape locally without spending credits.
- Real
wait or submit-* commands still require available WeryAI balance.
Prerequisites
- -
WERYAI_API_KEY must be set before paid runs. - Node.js
>=18 is required because the runtime uses built-in fetch. - Reference media (
image, images, videos, audios) can be http/https URLs or local/file sources. Local/non-http(s) sources are uploaded first via /v1/generation/upload-file. - Real
submit and wait commands consume WeryAI credits.
Security And API Hosts
- - Keep
WERYAI_API_KEY secret and never write it into the repository. - Optional overrides
WERYAI_BASE_URL and WERYAI_MODELS_BASE_URL default to https://api.weryai.com and https://api-growth-agent.weryai.com. Only override them with trusted hosts. - Review
scripts/ before production use if you need higher assurance.
Supported Intents
- - Text brief -> generate a video from scratch.
- One reference image -> animate the source image into a video.
- Start frame + end frame -> generate a controlled transition video.
- Multiple ordered images -> turn a storyboard or shot sequence into one video.
- Existing task -> check status instead of creating a new paid job.
- Parameter or model questions -> inspect
models first, then submit.
Default Configuration
Unless the user explicitly changes them, prefer:
- -
model: SEEDANCE_2_0 (SEEDANCE_2_0) - INLINECODE47 : INLINECODE48
- INLINECODE49 : INLINECODE50
- INLINECODE51 : INLINECODE52
- INLINECODE53 :
true (for audio-capable models)
Always allow the user to override model, duration, resolution, aspect_ratio, and generate_audio. When the user asks for unsupported settings, check models-video.js and keep only values supported by the chosen model.
Model Switching And Parameter Guidance
Guide the user progressively instead of explaining every parameter up front.
- - If the user only wants a video, proceed with the default Seedance 2.0 (
SEEDANCE_2_0) configuration. - If the user asks for a different model, better quality, stronger motion, longer duration, landscape output, vertical output, or generated audio, switch into parameter-confirmation mode.
- If the user already knows the exact parameter they want, apply it directly and only validate model support when needed.
- If the user sounds unsure, translate their creative request into the closest supported parameters rather than asking them to choose raw API fields.
Recommended guidance pattern
Use short operator-style guidance like this:
- - General help: When the user asks "how to use this skill", DO NOT paste raw shell commands. Instead, explain the capabilities in natural language and give 2-3 prompt examples (e.g., "You can ask me to animate a portrait image...").
- Default run:
I can start with the default setup: Seedance 2.0 (Seedance 2.0), 5s, 720p, 9:16, audio on (for audio-capable models). If you want, I can also switch the model or adjust the duration, aspect ratio, resolution, or audio before submission.
If you want a different model, tell me whether you care more about image quality, motion performance, start/end-frame control, multi-image support, or cost/speed, and I will check the supported models first.
I can map your request into video settings. For example: vertical short video -> 9:16, landscape -> 16:9, longer clip -> 10s or 15s, add ambience -> generate_audio=true.
- - Safety before paid runs:
INLINECODE65
When to ask follow-up questions
Ask only for the smallest missing detail needed to submit safely.
- - Ask about
aspect_ratio when the user implies platform intent such as TikTok, Reels, YouTube Shorts, or landscape trailer. - Ask about
duration when the user asks for a longer clip or a slower beat. - Keep
generate_audio enabled by default for audio-capable models unless the user asks to mute. - Ask about model choice only when the user explicitly wants a different model or when capability support is uncertain.
- Do not ask every parameter question if the default configuration already fits the request.
Map user language to parameters
Use these common mappings:
- -
vertical, portrait, short video, TikTok, Reels, Shorts -> INLINECODE75 - INLINECODE76 -> INLINECODE77
- INLINECODE78 ,
widescreen, YouTube, cinematic frame -> INLINECODE82 - INLINECODE83 ,
slower pacing -> increase duration to a supported value such as 10 or INLINECODE87 - INLINECODE88 ,
higher quality -> use the highest supported resolution for the chosen model - INLINECODE91 ,
with audio -> INLINECODE93 - INLINECODE94 ,
not Seedance, check supported models -> run models-video.js before submission
Model lookup workflow
When the user asks to change the model or requests parameters that may be unsupported:
- 1. Identify the intended mode:
text_to_video, image_to_video, or multi_image_to_video. - Run the matching
models-video.js command first. - Keep only supported values for
duration, aspect_ratio, resolution, and audio support. - If multiple models fit, recommend one concise default instead of dumping raw metadata unless the user asked for a comparison.
- If support is unclear, say so explicitly and use
--dry-run or a safe model query before the paid call.
Confirmation block before submission
Before a paid run, show a concise confirmation block with the final payload choices.
CODEBLOCK2
Wait for confirmation or requested edits before running a paid submission.
Intent Routing
Use result-first execution as the default path so users receive final playable output whenever possible.
- - If the user provides only
prompt, route to text-to-video. - If the user provides
image, route to image-to-video. - If the user provides
first_frame + last_frame, or image + last_image, normalize them into ordered images and route to the guided multi-image flow. - If the user provides
images, route to multi-image-to-video. - If multi-image support is unavailable for the chosen model, the runtime may downgrade to image-to-video with the first image only.
- Default run path:
1. run
wait-video.js (submit + bounded polling) and return final video when ready.
2. if timeout is reached, return
taskId/
batchId plus follow-up status command.
- - Use
submit-* only when the user explicitly asks to create a task without waiting.
Preferred Commands
CODEBLOCK3
Workflow
- 1. Identify the user's intent: text-only, single-image, first/last-frame, multi-image, status lookup, or model lookup.
- Collect
prompt and, if needed, ordered public https image URLs. - Apply defaults: Seedance 2.0 (
SEEDANCE_2_0), 5s, 720p, 9:16, and generate_audio=true for audio-capable models, unless the user asks otherwise. - If the user wants a custom model or non-default parameters, run
models-video.js first when support is uncertain. - Use
--dry-run when you need to preview the final payload before a paid submission. - Default to bounded wait execution:
- Stage 1: run
wait-video.js (submit + polling) for generation requests.
- Stage 2: return playable video URLs when ready within timeout.
- Stage 3: on timeout, return the
taskId to the user and ask if they want you to check the status again. Do NOT show the raw node status command to the user; use it internally.
- 7. Use
submit-* only when the user explicitly asks for task creation without waiting. - Use
status-video.js to re-check an existing task or batch safely.
Poll Timeout Classes
- -
short task class: text_to_video, default timeout 10 minutes (600000ms). - INLINECODE135 task class:
image_to_video, multi_image_to_video, almighty_reference_to_video, default timeout 30 minutes (1800000ms). - INLINECODE141 task class (default) maps from the effective submission mode.
- INLINECODE142 remains the highest-priority explicit override for compatibility.
- Optional environment overrides:
-
WERYAI_SHORT_TASK_TIMEOUT_MS
- INLINECODE144
Input Rules
- -
prompt and duration are required for every generation mode. - INLINECODE147 ,
images, first_frame, last_frame, and last_image must be public https URLs. - If both
images and image are provided, images wins during mode detection. - INLINECODE156 +
last_frame and image + last_image are accepted aliases for start/end-frame intent. - Only send
aspect_ratio, resolution, negative_prompt, or generate_audio when supported by the selected model. - Do not invent undocumented fields.
Output
All commands print JSON to stdout. Successful results can include:
- -
taskId, taskIds, INLINECODE166 - INLINECODE167
- INLINECODE168
- INLINECODE169
- INLINECODE170
- INLINECODE171 , INLINECODE172
User-facing delivery requirement:
- - If video URLs are available, return at least one playable Markdown link (for example
[Video](https://...)). If multiple videos are generated, render all of them using markdown links consecutively. - Alongside video output, include key generation parameters when available:
model, duration, aspect_ratio, resolution, generate_audio. - If timeout is reached, return the
taskId to the user and ask if they want you to check the status again. Do NOT show the raw node status command to the user; use it internally.
See references/error-codes.md for common failure classes and recovery hints.
Definition Of Done
The task is done when:
- - local validation passes without CLI-side errors,
- INLINECODE180 reaches terminal state with at least one playable video URL,
- or bounded wait reaches timeout and returns the
taskId plus an offer to check status again later, - or
status-video.js returns a clear in-progress or terminal state, - and the output makes it explicit whether video URLs are present.
Constraints
- - Do not assume every model supports every parameter.
- Do not use local file paths for reference images.
- Do not re-run
submit or wait casually because each run can create a new paid task. - Do not default to
wait-video.js in agent environments for long-running generations. - Do not broaden this skill into general video editing outside the documented WeryAI API surface.
Re-run Behavior
- -
submit-text-video.js, submit-image-video.js, and submit-multi-image-video.js are not idempotent. - INLINECODE189 is also not idempotent because it submits first and then polls.
- INLINECODE190 ,
models-video.js, and balance-video.js are safe to re-run.
References
WeryAI 视频生成器
使用官方基础技能生成WeryAI视频,支持文本转视频、图像转视频、从图像生成视频、分镜转视频以及首帧/末帧过渡工作流。在代理环境中,默认采用结果优先执行:提交并轮询,直到可播放视频就绪或超时。使用有限等待(短任务:10分钟,长任务:30分钟),避免无限制轮询循环。
示例提示词
- - 生成一个WeryAI文本转视频片段,如果在超时时间内就绪,返回最终可播放视频。
- 将这张图像转换为带有微妙动态的视频,并通过有限轮询等待最终输出。
- 从这张首帧到这张末帧生成一个过渡视频。
- 将这些分镜帧转换为一个连贯的产品展示视频。
- 在提交前检查哪个WeryAI视频模型支持10秒、16:9和音频。
快速摘要
- - 主要任务:文本转视频、图像转视频、从图像生成视频、首帧到末帧视频、分镜转视频、任务状态
- 默认模型:Seedance 2.0 (SEEDANCE20)
- 默认参数:duration=5、resolution=720p、aspectratio=9:16、generateaudio=true(适用于支持音频的模型)
- 主要信任信号:支持试运行、模型能力查询、付费运行警告、媒体源验证(本地引用自动上传)
认证与首次设置
在首次实际生成运行之前:
- 1. 创建WeryAI账户。
- 打开API密钥页面 https://www.weryai.com/api/keys。
- 创建新的API密钥并复制密钥值。
- 将其添加到所需的环境变量 WERYAIAPIKEY 中。
- 确保WeryAI账户在付费生成前有可用余额或积分。
OpenClaw友好设置
- - 此技能已在 metadata.openclaw.requires.env 和 primaryEnv 中声明了 WERYAIAPIKEY。
- 安装后,如果安装程序或运行时要求提供所需的环境变量,请将密钥粘贴到 WERYAIAPIKEY 中。
- 如果您手动配置运行时,请在运行命令前导出它:
sh
export WERYAIAPIKEY=yourapikey_here
快速验证
在首次付费运行前使用一次安全检查:
sh
node {baseDir}/scripts/models-video.js --mode texttovideo
node {baseDir}/scripts/wait-video.js --json {prompt:A glowing koi swims through ink clouds,duration:5} --dry-run
- - models-video.js 确认密钥已配置且模型端点可访问。
- --dry-run 在本地确认请求格式,不消耗积分。
- 实际的 wait 或 submit-* 命令仍然需要可用的WeryAI余额。
前提条件
- - 付费运行前必须设置 WERYAIAPIKEY。
- 需要 Node.js >=18,因为运行时使用内置的 fetch。
- 参考媒体(image、images、videos、audios)可以是 http/https URL 或本地/文件源。本地/非http(s)源首先通过 /v1/generation/upload-file 上传。
- 实际的 submit 和 wait 命令会消耗WeryAI积分。
安全与API主机
- - 保持 WERYAIAPIKEY 的机密性,切勿将其写入代码仓库。
- 可选的覆盖项 WERYAIBASEURL 和 WERYAIMODELSBASE_URL 默认为 https://api.weryai.com 和 https://api-growth-agent.weryai.com。仅使用可信主机进行覆盖。
- 如果需要更高的安全性,在生产使用前请审查 scripts/ 目录。
支持的意图
- - 文本简报 -> 从头生成视频。
- 一张参考图像 -> 将源图像动画化为视频。
- 起始帧 + 结束帧 -> 生成受控的过渡视频。
- 多张有序图像 -> 将分镜或镜头序列转换为一个视频。
- 现有任务 -> 检查状态,而不是创建新的付费任务。
- 参数或模型问题 -> 先检查 models,然后提交。
默认配置
除非用户明确更改,否则优先使用:
- - model:SEEDANCE20 (SEEDANCE20)
- duration:5
- resolution:720p
- aspectratio:9:16
- generateaudio:true(适用于支持音频的模型)
始终允许用户覆盖 model、duration、resolution、aspectratio 和 generateaudio。当用户要求不支持的设置时,检查 models-video.js 并仅保留所选模型支持的值。
模型切换与参数指导
逐步引导用户,而不是事先解释每个参数。
- - 如果用户只想要一个视频,使用默认的 Seedance 2.0 (SEEDANCE20) 配置继续。
- 如果用户要求不同的模型、更好的质量、更强的动态、更长的时长、横屏输出、竖屏输出或生成音频,切换到参数确认模式。
- 如果用户已经知道他们想要的确切参数,直接应用,仅在需要时验证模型支持。
- 如果用户听起来不确定,将他们的创意请求转换为最接近的支持参数,而不是要求他们选择原始的API字段。
推荐指导模式
使用类似操作员的简短指导:
- - 一般帮助:当用户问如何使用此技能时,不要粘贴原始shell命令。相反,用自然语言解释能力,并给出2-3个提示词示例(例如,您可以让我动画化一张肖像图像...)。
- 默认运行:
我可以从默认设置开始:Seedance 2.0(Seedance 2.0)、5秒、720p、9:16、音频开启(适用于支持音频的模型)。如果您愿意,我也可以在提交前切换模型或调整时长、宽高比、分辨率或音频。
如果您想要不同的模型,请告诉我您更关心图像质量、动态性能、起始/结束帧控制、多图像支持还是成本/速度,我会先检查支持的模型。
我可以将您的请求映射为视频设置。例如:垂直短视频 -> 9:16、横屏 -> 16:9、更长的片段 -> 10秒或15秒、添加氛围 -> generate_audio=true。
在提交付费任务之前,我会显示最终的模型、参数和提示词,以便您确认。
何时提出后续问题
仅询问安全提交所需的最小缺失细节。
- - 当用户暗示平台意图(如TikTok、Reels、YouTube Shorts或横屏预告片)时,询问 aspectratio。
- 当用户要求更长的片段或更慢的节奏时,询问 duration。
- 默认保持 generateaudio 为启用状态(适用于支持音频的模型),除非用户要求静音。
- 仅当用户明确想要不同的模型或能力支持不确定时,询问模型选择。
- 如果默认配置已经符合请求,不要询问每个参数问题。
将用户语言映射为参数
使用这些常见映射:
- - 垂直、竖屏、短视频、TikTok、Reels、Shorts -> aspectratio: 9:16
- 方形 -> aspectratio: 1:1
- 横屏、宽屏、YouTube、电影画幅 -> aspectratio: 16:9
- 让它更长、更慢的节奏 -> 将 duration 增加到支持的值,如 10 或 15
- 让它更清晰、更高质量 -> 使用所选模型支持的最高 resolution
- 添加环境音、带音频 -> generateaudio: true
- 使用另一个模型、不是Seedance、检查支持的模型 -> 在提交前运行 models-video.js
模型查询工作流
当用户要求更改模型或请求可能不支持的参数时:
- 1. 识别意图模式:texttovideo、imagetovideo 或 multiimagetovideo。
- 首先运行匹配的 models-video.js 命令。
- 仅保留 duration、aspectratio、resolution 和音频支持的支持值。
- 如果多个模型适合,推荐一个简洁的默认值,而不是转储原始元数据,除非用户要求比较。
- 如果支持情况不明确,明确说明,并在付费调用前使用 --dry-run 或安全的模型查询。
提交前的确认块
在付费运行前,显示一个简洁的