Steampunk brass & gears style transform (Seedance 2.0)
Heavy romantic industry: gears peek through sets, steam vents rhythmically, materials read brass and lacquered wood, actions feel weighty and clockwork-driven.
Dependencies: WERYAI_API_KEY + Node.js 18+. This skill uses only SEEDANCE_2_0. When you run the CLI, scripts/video_gen.js must exist; WERYAI_VIDEO_API.md must exist under resources/ (supply both via publish or pre-use assembly). Full commands and JSON fields: see resources/WERYAI_VIDEO_API.md. No other Cursor skills required.
Prerequisites
- -
WERYAI_API_KEY must be set before running video_gen.js. - Node.js 18+; prefer public
https image URLs. If the assembled scripts/video_gen.js accepts local paths, review/verify the script and explicitly consent before local read-and-upload to WeryAI. - Model (caller / agent): The bundled
video_gen.js requires a non-empty model in JSON—if model is missing or blank, the CLI exits with MISSING_PARAM (no default model). The script does not enforce this skill's allowed model in code: you must set "model":"SEEDANCE_2_0" for this package and show it in the confirmation table before submit—see WERYAI_VIDEO_API.md (model row). - Each
wait run may consume credits; re-run creates new paid tasks.
Security, secrets, and API hosts
- -
WERYAI_API_KEY: Treat as a secret. Only configure it if you trust this skill's source; it is listed in OpenClaw metadata as requires.env / primaryEnv so installers know it is mandatory at runtime (never commit it inside the skill package). - API hosts (fixed in
video_gen.js): Video tasks use https://api.weryai.com; the models list uses https://api-growth-agent.weryai.com. Child skills must not document or rely on URL environment-variable overrides—only WERYAI_API_KEY is read from the environment. - Local image handling disclosure: Prefer public
https image URLs. If the assembled scripts/video_gen.js supports local file paths, it may read a local image and upload it to WeryAI to obtain a public URL; require review / verification and explicit consent before using that path. - Higher assurance: Run generation in a short-lived or isolated environment (separate account or container), and review
scripts/video_gen.js (HTTPS submit + poll loop) before production use. Verify whether the runtime can read local image files and upload them to WeryAI, and obtain explicit consent before using that path.
Prompt expansion (mandatory)
INLINECODE28 does not expand prompts. Before every wait --json, turn the user's short or vague brief into a full English production prompt that re-styles the described event into this skill's look.
When: User input is short, vague, or missing cinematic detail. Exception: They supply a finished long prompt within 2000 characters and ask you not to rewrite—still show the full text in the confirmation table.
Always add: shot size and angle; camera move; lighting and color grade aligned to this skill; subject action paced to duration; one clear payoff; platform framing (9:16 unless user chose another allowed ratio); if generate_audio is true, describe ambience / SFX in generic words (no copyrighted music references).
Length: Stay within prompt_length_limit 2000 for SEEDANCE_2_0; trim adjectives before losing the core transformation beat.
Confirmation: The pre-submit table must include the full expanded prompt.
Style transformation checklist
- - Visible mechanics: pistons, flywheels, gauge clusters—support the main action, don’t bury it.
- Brass & wood: patina highlights, rivets, parquet or workshop benches.
- Steam beats: timed puffs on motion accents—avoid obscuring faces long.
- Set dressing: boilers, pipe runs, gaslight—vertical framing with depth.
- Motion: deliberate, slightly overslung weight; crank-turn parallels.
- Sound (if on): hiss, tick-tock, low machinery rumble—prompt-level only.
Fits: Retro machinery love, industrial beauty, theatrical pacing, world-building shorts.
### Example prompts below are richness targets only—always derive from the user's actual brief.
Workflow
- 1. Confirm the request matches this skill (text-to-video and/or single image-to-video).
- Collect the user's brief, optional
image URL, and tier (best / good / fast)—all map to SEEDANCE_2_0 with different duration defaults (see Recommended models). - Expand prompt (mandatory): Unless the user opted out with a finished long prompt, expand using
## Prompt expansion (mandatory). Do not submit only the user's minimal words. - Validate
model is SEEDANCE_2_0 only; validate duration, aspect_ratio, resolution, generate_audio against the frozen tables. - Show the confirmation table with the full expanded
prompt; wait for confirm or edits. - Run
node scripts/video_gen.js wait --json '...'. - Parse stdout JSON; return
videos URLs or explain errors. - When presenting playable URLs to the user, use Markdown inline links only (e.g.
[Video](https://...)). Do not wrap user-facing links in code fences.
CLI reference
~~~sh
node scripts/videogen.js wait --json '{"model":"SEEDANCE20","prompt":"…","duration":10,"aspectratio":"9:16","resolution":"720p","generate_audio":true}'
~~~
Full reference: WERYAI_VIDEO_API.md.
Definition of done
Done when the user gets at least one playable Video-style link, or a clear failure with next steps. Submitted prompt must be the expanded prompt unless the user explicitly opted out. Never use another model_key in this skill.
Boundaries (out of scope)
- - Do not use any model other than
SEEDANCE_2_0 for this package. - Do not link to
weryai-model-capabilities.md or shared ../references/ paths; use resources/WERYAI_VIDEO_API.md for CLI/API details. - Prefer public
https for image when easy; OpenClaw / chat attachments are often a local path—if video_gen.js can read it, pass it as image and the script uploads first (use an absolute path if a relative path fails). Never embed the secret value of WERYAI_API_KEY in files. - Do not invent API fields; do not send
negative_prompt (not supported for this model). - Do not wrap user-facing playable URLs in Markdown code fences.
Example prompts
- - INLINECODE63
- INLINECODE64
- INLINECODE65
Model and API constraints (frozen for this skill)
Derived from node scripts/video_gen.js models alignment at authoring time; re-run models after platform upgrades. This skill is locked to SEEDANCE_2_0 only.
Text-to-video
| modelkey | durations | aspectratios | resolutions | Audio | negative_prompt | prompt limit |
|---|
| INLINECODE69 | 5, 10, 15 | 9:16, 1:1, 16:9 | 480p, 720p | Yes | No (do not send) | 2000 |
Image-to-video (single image)
| modelkey | durations | aspectratios | resolutions | Audio | negativeprompt | uploadimage_limit |
|---|
| INLINECODE71 | 5, 10, 15 | 9:16, 1:1, 16:9 | 480p, 720p | Yes | No (do not send) | 3 |
Recommended models
| Tier | model_key | Notes |
|---|
| ⭐ Best (default) | INLINECODE72 | Prefer duration 10 or 15, resolution 720p, generate_audio true for fullest mood |
| 👍 Good |
SEEDANCE_2_0 | Balanced:
duration 10,
resolution 720p, audio per user |
| ⚡ Fast |
SEEDANCE_2_0 | Snappy:
duration 5,
resolution 480p or
720p, audio optional |
Tier only changes duration / resolution / audio defaults—never the model.
Default parameters
| Field | Value |
|---|
| Model | INLINECODE82 (fixed) |
| Aspect ratio |
9:16 |
| Duration |
10 (use
5 for punchy;
15 for slower ceremony) |
| Resolution |
720p (
480p allowed) |
| Audio |
true unless user wants silent |
Scenario: Text-to-video style transform
Flow
- 1. Capture the user's mundane event in one or two sentences.
- Expand into English with the Style transformation checklist; keep identity generic unless user names a character.
- Confirmation table → user confirm.
- Execute:
~~~sh
node scripts/videogen.js wait --json '{"model":"SEEDANCE20","prompt":"","duration":10,"aspectratio":"9:16","resolution":"720p","generate_audio":true}'
~~~
- 5. Return
[Video](url) links.
Scenario: Image-to-video style transform
Before use: Prefer a public https:// URL reachable from the internet. Local paths (e.g. OpenClaw attachment paths) work when the Node process can read them—video_gen.js uploads then submits; use absolute paths if needed. Do not use plain http:// remote URLs.
- 1. Plan how the still re-styles in motion (props, light, environment) without breaking likeness if the user requests preservation.
- Expand prompt; add
image to the confirmation table. - After confirm:
~~~sh
node scripts/videogen.js wait --json '{"model":"SEEDANCE20","prompt":"","image":"https://…","duration":10,"aspectratio":"9:16","resolution":"720p","generate_audio":true}'
~~~
- 4. Return
[Video](url) links.
Loop seam (optional)
If the user asks for a seamless loop, append a short English trio at the end of the expanded prompt: seamless loop, perfect loop, ends where it begins—no separate API flag.
Generated for skill steampunk-transform-video-gen-seedance2.0.
蒸汽朋克黄铜与齿轮风格转换 (Seedance 2.0)
重型浪漫工业风: 齿轮在布景中若隐若现,蒸汽通风口有节奏地喷吐,材质呈现黄铜和漆木质感,动作感觉沉重且由发条驱动。
依赖项: WERYAIAPIKEY + Node.js 18+。此技能仅使用 SEEDANCE20。运行 CLI 时,scripts/videogen.js 必须存在;WERYAIVIDEOAPI.md 必须位于 resources/ 目录下(通过发布或使用前组装提供)。完整命令和 JSON 字段:请参阅 resources/WERYAIVIDEOAPI.md。无需其他 Cursor 技能。
前置条件
- - 运行 videogen.js 之前必须设置 WERYAIAPIKEY。
- Node.js 18+;优先使用公开的 https 图片 URL。如果组装的 scripts/videogen.js 接受本地路径,请审查/验证脚本并在本地读取上传至 WeryAI 前明确同意。
- 模型(调用者/代理): 捆绑的 videogen.js 要求 JSON 中的 model 非空——如果 model 缺失或为空,CLI 将以 MISSINGPARAM 退出(无默认模型)。脚本未在代码中强制执行此技能允许的模型:您必须为此包设置 model:SEEDANCE20 并在提交前的确认表中显示——请参阅 WERYAIVIDEO_API.md(model 行)。
- 每次 wait 运行可能消耗积分;重新运行会创建新的付费任务。
安全、密钥和 API 主机
- - WERYAIAPIKEY:视为机密。仅当您信任此技能来源时才进行配置;它在 OpenClaw 元数据中列为 requires.env / primaryEnv,以便安装程序知道它在运行时是必需的(切勿将其提交到技能包内)。
- API 主机(在 videogen.js 中固定):视频任务使用 https://api.weryai.com;模型列表使用 https://api-growth-agent.weryai.com。子技能不得记录或依赖 URL 环境变量覆盖——仅从环境读取 WERYAIAPIKEY。
- 本地图片处理披露:优先使用公开的 https 图片 URL。如果组装的 scripts/videogen.js 支持本地文件路径,它可能读取本地图片并上传至 WeryAI 以获取公开 URL;使用该路径前需要审查/验证并明确同意。
- 更高保障:在短期或隔离环境(单独账户或容器)中运行生成,并在生产使用前审查 scripts/video_gen.js(HTTPS 提交 + 轮询循环)。验证运行时是否可以读取本地图片文件并上传至 WeryAI,并在使用该路径前获得明确同意。
提示词扩展(强制)
video_gen.js 不扩展提示词。在每次 wait --json 之前,将用户的简短或模糊描述转换为完整的英文制作 prompt,将所述事件重新风格化为此技能的视觉效果。
何时执行: 用户输入简短、模糊或缺少电影细节时。例外: 他们提供了 2000 字符内的完整长提示词并要求您不要重写——仍需在确认表中显示完整文本。
始终添加: 镜头尺寸和角度;摄像机运动;与此技能对齐的灯光和色彩分级;与 duration 匹配的主体动作节奏;一个明确的亮点;平台画幅(9:16,除非用户选择了其他允许的比例);如果 generate_audio 为 true,用通用词汇描述环境/音效(无版权音乐引用)。
长度: 保持在 SEEDANCE20 的 promptlengthlimit 2000 内;在失去核心转换节拍前修剪形容词。
确认: 提交前表格必须包含完整的扩展 prompt。
风格转换检查清单
- - 可见机械结构: 活塞、飞轮、仪表组——支持主要动作,不要掩盖它。
- 黄铜与木材: 铜绿高光、铆钉、拼花地板或工作台。
- 蒸汽节拍: 在动作重音上定时喷出——避免长时间遮挡面部。
- 布景装饰: 锅炉、管道、煤气灯——具有深度的垂直构图。
- 运动: 刻意、略微过重的质感;曲柄转动般的节奏。
- 音效(如果开启): 嘶嘶声、滴答声、低沉的机械轰鸣——仅限提示词层面。
适用场景: 复古机械爱好者、工业美学、戏剧化节奏、世界观构建短片。
### 示例提示词 下方仅为丰富度目标——始终从用户的实际描述出发。
工作流程
- 1. 确认请求与此技能匹配(文本转视频和/或单图转视频)。
- 收集用户的描述、可选的 image URL 和等级(最佳 / 良好 / 快速)——所有都映射到 SEEDANCE20,具有不同的时长默认值(请参阅推荐模型)。
- 扩展提示词(强制): 除非用户选择退出并提供了完整的长提示词,否则使用 ## 提示词扩展(强制) 进行扩展。不要只提交用户的最简词汇。
- 验证 model 仅为 SEEDANCE20;对照固定表格验证 duration、aspectratio、resolution、generateaudio。
- 显示包含完整扩展 prompt 的确认表;等待确认或编辑。
- 运行 node scripts/videogen.js wait --json ...。
- 解析 stdout JSON;返回 videos URL 或解释错误。
- 向用户呈现可播放 URL 时,仅使用 Markdown 内联链接(例如 Video)。不要将面向用户的链接包裹在代码块中。
CLI 参考
~~~sh
node scripts/videogen.js wait --json {model:SEEDANCE20,prompt:…,duration:10,aspectratio:9:16,resolution:720p,generate_audio:true}
~~~
完整参考: WERYAIVIDEO_API.md。
完成定义
当用户获得至少一个可播放的 Video 格式链接,或获得明确的失败信息及后续步骤时完成。提交的 prompt 必须是扩展后的提示词,除非用户明确选择退出。切勿在此技能中使用其他 modelkey。
边界(范围外)
- - 此包不得使用除 SEEDANCE20 之外的任何模型。
- 不要链接到 weryai-model-capabilities.md 或共享的 ../references/ 路径;使用 resources/WERYAIVIDEOAPI.md 获取 CLI/API 详情。
- 在方便时优先使用公开的 https 作为 image;OpenClaw / 聊天附件通常是本地路径——如果 videogen.js 可以读取,将其作为 image 传递,脚本会先上传(如果相对路径失败,使用绝对路径)。切勿将 WERYAIAPIKEY 的机密值嵌入文件中。
- 不要发明 API 字段;不要发送 negativeprompt(此模型不支持)。
- 不要将面向用户的可播放 URL 包裹在 Markdown 代码块中。
示例提示词
- - 倒茶 → 黄铜茶炊,蒸汽通过齿轮窗卷曲,暖色钨丝灯,9:16
- 在笔记本电脑上打字 → 重新想象为黄铜打字机,真空管脉动
- HTTPS 工作间自拍 → 在墙壁上添加齿轮覆盖层,轻柔蒸汽,缓慢推进
模型和 API 约束(此技能固定)
编写时从 node scripts/videogen.js models 对齐得出;平台升级后重新运行 models。此技能锁定仅使用 SEEDANCE2_0。
文本转视频
| modelkey | 时长 | 宽高比 | 分辨率 | 音频 | 负面提示词 | 提示词限制 |
|---|
| SEEDANCE2_0 |