Hair makeover video generation
That satisfying snip—blades close, long hair drops, clean short lines appear. No VO needed; the frame is the hook. Lion from messy mane to sharp groom, puppy afro to sleek cut, cat in pink-to-blue gradient: that’s the core visual every run targets.
Dependencies: scripts/video_gen.js in this directory + WERYAI_API_KEY + Node.js 18+. No dependency on other Cursor skills.
Prerequisites
- -
WERYAI_API_KEY must be set in the environment before running video_gen.js. - Node.js 18+ is required. Image inputs must be public
https URLs (no local file paths). - Each successful
wait run consumes WeryAI credits; re-running 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. Only WERYAI_API_KEY is read from the environment—do not rely on URL-related environment variables. - 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.
Prompt expansion (mandatory)
INLINECODE14 does not expand prompts. Before every wait --json, turn the user's short or vague brief into a full English production prompt.
When: The user gives only keywords, one line, or loose intent—or asks for richer video language. Exception: They paste a finished long prompt within the model's prompt_length_limit and ask you not to rewrite; still show the full text in the confirmation table.
Always add (video language): shot scale and angle; camera move or lock-off; light quality and motivation; subject action paced to duration; one clear payoff for this niche; state 9:16 vertical when this skill defaults to vertical.
Length: Obey prompt_length_limit for the chosen model_key when this doc lists it; trim filler adjectives before removing core action, lens, or light clauses.
Confirmation: The pre-submit table must include the full expanded prompt (never a one-line summary). Wait for confirm or edits.
Niche checklist
- - Transform arc: before → cut/color/style → after reveal; salon or natural light; strand motion and silhouette change.
- Camera: mirror, chair spin, or profile comparison; 9:16 if default vertical.
- Species/character: if anthropomorphic, keep grooming readable and on-brief.
### Example prompts at the top of this file are short triggers only—always expand from the user's actual request.
Workflow
- 1. Confirm the user request matches this skill's scenario (text-to-video and/or image-to-video as documented).
- Collect the user's brief, optional image URL(s), tier (best / good / fast) or an explicit
model key. - Expand prompt (mandatory): Unless the user supplied a finished long prompt and explicitly asked not to rewrite it, expand the brief into a full English production
prompt using ## Prompt expansion (mandatory) below. Do not call the API with only the user's minimal words. - Check the expanded
prompt against the selected model's prompt_length_limit in the frozen tables in this document (when present); shorten if needed. - Verify
duration, aspect_ratio, resolution, generate_audio, negative_prompt, and other fields against the frozen tables and API notes in this SKILL.md. - Show the pre-submit parameter table including the full expanded
prompt; wait for confirm or edits. - After confirmation, run
node {baseDir}/scripts/video_gen.js wait --json '...' with the expanded prompt. - Parse stdout JSON and return video URLs; on failure, surface
errorCode / errorMessage and suggest parameter fixes.
CLI reference
CODEBLOCK0
Definition of done
Done when the user receives at least one playable video URL from the API response, or a clear failure explanation with next steps. All parameters used must fall within the selected model's allowed sets in this document. The submitted prompt must be the expanded production prompt unless the user explicitly supplied a finished long prompt and asked not to rewrite it.
Boundaries (out of scope)
- - Does not review platform compliance, copyright, or portrait rights; does not guarantee commercial usability of outputs.
- Does not provide non-WeryAI offline rendering, traditional edit timelines, or API field combinations not documented here.
- Does not hard-code absolute paths in the skill doc;
{baseDir} means the skill package root (same level as SKILL.md).
Example prompts
- - INLINECODE40
- INLINECODE41
- INLINECODE42
- INLINECODE43
Default parameters
| Field | Value |
|---|
| Model | KLINGV30_PRO |
| Aspect ratio |
9:16 (fixed vertical) |
| Duration | 5 seconds (
duration: 5—tight peak beat) |
| Audio | Off |
| Visual style | Side or front medium; salon lighting; scissor / brush close-ups; clear strand texture; before/after in one frame or hard cut |
API validity (default KLING_V3_0_PRO): Text-to-video duration only 5 / 10 / 15; aspect_ratio only 9:16, 1:1, 16:9. Image-to-video aspect_ratio only 9:16, 16:9, 1:1. No resolution field—do not send it. For fast tier with VEO: text-to-video VEO_3_1_FAST, image-to-video CHATBOT_VEO_3_1_FAST, with duration fixed at 8, aspect_ratio only 9:16 or 16:9. When switching model_key, follow the allowed sets in this section’s model/API constraints and the API validity note above; do not send resolution to models that do not support it.
Anthropomorphic character haircut glow-up
High completion pattern: big hair / messy mane in the chair → decisive cut → locks fall → camera follows strands down then reveals the full new look.
The user should provide:
- - Character (lion / puppy / cat / bunny / custom)
- Before state (afro / tangled long / messy fur / bangs covering eyes)
- Target style (sharp short / sleek bob / minimal buzz / layered editorial cut)
Generation flow:
- 1. Collect character, before state, target style.
- Build the prompt around the snip as the climax—slow-motion falling hair and a clear vibe shift after.
- Show parameters and wait:
You must show all parameters in a table and wait for explicit user confirmation before submitting:
> 📋 Ready to generate—please confirm:
>
> | Parameter | This run | Notes |
> |-----------|----------|-------|
> | model | KLING_V3_0_PRO | Best default; fast: text VEO_3_1_FAST, image CHATBOT_VEO_3_1_FAST (duration 8); good → KLING_V3_0_STA; or name a model |
> | aspect_ratio | 9:16 | Default KLING: 9:16, 1:1, 16:9 |
> | duration | 5s | KLING: 5 / 10 / 15; VEO fast: 8 only |
> | generate_audio | false | Whether to auto-generate audio |
> | prompt | Full expanded English prompt (entire text for this run) | Revise before confirm |
> | Loop seam | No | Reply “loop” for seamless loop |
>
> Reply “confirm” to start, or list what to change.
- 4. After confirmation (
{baseDir} is skill root):
CODEBLOCK1
Match table to JSON; add resolution only if supported. Parse stdout videos.
Parameter configuration:
| Field | Value |
|---|
| model | KLINGV30PRO |
| aspectratio |
9:16 |
| duration | 5 |
| generate_audio | false |
Expanded prompt: Compose at generation time per ## Prompt expansion (mandatory) from the user's actual brief—do not reuse fixed sample paragraphs.
Expected outcome: Snip in slow-mo as the peak, readable strand texture, strong before/after vibe—tight, satisfying pacing for transformation edits.
Dye color change close-up
Color is the star: base (white / black / brown) through process to vivid / gradient / candy tones—saturation and material read matter more than cut shape.
The user should provide: character, starting color, target colors (e.g. “mint ombré,” “all-over flame red,” “silver with gold money piece”)
Build a color-forward prompt; show confirmation; submit.
Parameters are shown before generation; wait for confirmation before submit.
Expanded prompt: Compose at generation time per ## Prompt expansion (mandatory) from the user's actual brief—do not reuse fixed sample paragraphs.
Core hook vocabulary
Cut satisfaction: decisive scissor cut in slow motion, hair strands cascade downward, satisfying snip sound, INLINECODE78
Color payoff: vivid color saturation reveal, luminous gradient color shift, color payoff immediate and intense, INLINECODE82
Vibe flip: from chaotic to sophisticated, before-after energy, complete character transformation, INLINECODE86
Tip: For a “one-cut climax,” add the decisive first cut is the climax of the video so pacing clusters on that beat instead of evenly spacing every step.
发型改造视频生成
那令人满足的剪发声——刀片合拢,长发落下,干净利落的短发线条显现。无需画外音;画面本身就是钩子。从凌乱鬃毛到利落造型的狮子,从爆炸头到顺滑发型的狗狗,从粉色渐变到蓝色的猫咪:这是每次运行都瞄准的核心视觉。
依赖项:此目录中的 scripts/videogen.js + WERYAIAPI_KEY + Node.js 18+。不依赖其他Cursor技能。
前置条件
- - 运行 videogen.js 前,必须在环境中设置 WERYAIAPI_KEY。
- 需要 Node.js 18+。图片输入必须是公开的 https URL(不支持本地文件路径)。
- 每次成功的 wait 运行都会消耗 WeryAI 积分;重新运行会创建新的付费任务。
安全、密钥和API主机
- - WERYAIAPIKEY:视为机密。仅在你信任此技能来源时配置;它在 OpenClaw 元数据中被列为 requires.env / primaryEnv,以便安装程序知道它在运行时是强制性的(切勿将其提交到技能包内)。
- API主机(固定在 videogen.js 中):视频任务使用 https://api.weryai.com;模型列表使用 https://api-growth-agent.weryai.com。仅从环境读取 WERYAIAPIKEY——不要依赖与URL相关的环境变量。
- 更高保障:在短期或隔离环境(独立账户或容器)中运行生成,并在生产使用前审查 scripts/videogen.js(HTTPS提交+轮询循环)。
提示词扩展(强制)
video_gen.js 不扩展提示词。在每次 wait --json 之前,将用户的简短或模糊需求转化为完整的英文制作 prompt。
何时: 用户只给出关键词、一行或模糊意图——或要求更丰富的视频语言。例外: 他们粘贴了模型 promptlengthlimit 内的完整长提示词,并要求你不要重写;仍需在确认表中显示完整文本。
始终添加(视频语言): 镜头景别和角度;相机运动或锁定;光线质量和动机;主体动作与 duration 同步;为此细分领域设定一个明确的亮点;当此技能默认为竖屏时,注明 9:16 竖屏。
长度: 当本文档列出时,遵守所选 modelkey 的 promptlength_limit;在移除核心动作、镜头或光线从句之前,先修剪填充性形容词。
确认: 提交前表格必须包含完整扩展后的 prompt(绝不能是一行摘要)。等待确认或编辑。
细分领域检查清单
- - 转变弧线: 之前 → 剪裁/颜色/造型 → 之后展示;沙龙或自然光;发丝运动和轮廓变化。
- 镜头: 镜子、椅子旋转或侧面对比;如果默认为竖屏则用 9:16。
- 物种/角色: 如果是拟人化,保持造型可读且符合需求。
### 示例提示词 在此文件顶部仅为简短触发词——始终从用户的实际请求进行扩展。
工作流程
- 1. 确认用户请求匹配此技能场景(文本转视频和/或图片转视频,如文档所述)。
- 收集用户的需求、可选的图片URL、档次(最佳 / 良好 / 快速)或明确的 model 键。
- 扩展提示词(强制): 除非用户提供了完整的长时间提示词并明确要求不重写,否则使用下方的 ## 提示词扩展(强制) 将需求扩展为完整的英文制作 prompt。不要仅用用户的简短词语调用API。
- 对照本文档中冻结表格(如有)中选定模型的 promptlengthlimit 检查扩展后的 prompt;必要时缩短。
- 对照此 SKILL.md 中的冻结表格和API说明,验证 duration、aspectratio、resolution、generateaudio、negativeprompt 等字段。
- 显示包含完整扩展后 prompt 的提交前参数表;等待确认或编辑。
- 确认后,使用扩展后的提示词运行 node {baseDir}/scripts/videogen.js wait --json ...。
- 解析 stdout JSON 并返回视频URL;失败时,显示 errorCode / errorMessage 并建议参数修复。
CLI参考
sh
node {baseDir}/scripts/videogen.js wait --json {model:…,prompt:…,duration:5,aspectratio:9:16}
node {baseDir}/scripts/video_gen.js wait --json … --dry-run
node {baseDir}/scripts/video_gen.js status --task-id
完成定义
当用户从API响应中收到至少一个可播放的视频URL,或收到带有后续步骤的明确失败说明时,即视为完成。使用的所有参数必须在本文档中选定模型的允许范围内。提交的 prompt 必须是扩展后的制作提示词,除非用户明确提供了完整的长时间提示词并要求不重写。
边界(范围外)
- - 不审查平台合规性、版权或肖像权;不保证输出的商业可用性。
- 不提供非WeryAI的离线渲染、传统编辑时间线或本文档未记录的API字段组合。
- 不在技能文档中硬编码绝对路径;{baseDir} 表示技能包根目录(与 SKILL.md 同级)。
示例提示词
- - 兔子理发:剪刀咔嚓,发梢落下,前后氛围转变,竖屏时尚蜕变
- 使用这张素颜角色图片:从深色到浅金色的染发过程
- 5秒吹风+卷发棒,以甩发慢动作结束
- 发型改造蜕变 9:16,一个竖屏片段中的前后对比
默认参数
9:16(固定竖屏) |
| 时长 | 5秒(duration:5——紧凑峰值节拍) |
| 音频 | 关闭 |
| 视觉风格 | 侧面或正面中景;沙龙灯光;剪刀/刷子特写;清晰发丝纹理;一帧内或硬切的前后对比 |
API有效性(默认 KLINGV30PRO): 文本转视频 duration 仅 5 / 10 / 15;aspectratio 仅 9:16, 1:1, 16:9。图片转视频 aspectratio 仅 9:16, 16:9, 1:1。无 resolution 字段——不要发送。 对于使用 VEO 的快速档次:文本转视频 VEO31FAST,图片转视频 CHATBOTVEO31FAST,duration 固定为 8,aspectratio 仅 9:16 或 16:9。切换 modelkey 时,遵循本节模型/API约束和上述API有效性说明中的允许集;不要向不支持的模型发送 resolution。
拟人角色发型改造蜕变
高完成度模式:椅子上蓬松头发/凌乱鬃毛 → 果断剪裁 → 发束落下 → 镜头跟随发丝下落,然后展示全新造型。
用户应提供:
- - 角色(狮子/小狗/猫/兔子/自定义)
- 之前状态(爆炸头/凌乱长发/蓬乱毛发/遮眼刘海)
- 目标风格(利落短发/顺滑波波头/极简寸头/层次感编辑剪裁)
生成流程:
- 1. 收集角色、之前状态、目标风格。
- 围绕剪裁动作作为高潮构建提示词——慢动作落发和之后的明显氛围转变。
- 显示参数并等待:
你必须在表格中显示所有参数,并在提交前等待用户明确确认:
> 📋 准备生成——请确认:
>
> | 参数 | 本次运行 | 说明 |
> |-----------|----------|-------|
> | model | KLINGV30PRO | 最佳默认;快速:文本 VEO31FAST,图片 CHATBOTVEO31FAST(duration 8);良好 → KLINGV30_STA;或指定模型 |
> | aspect_