Cake decorating & dessert video generation
That one pass of the offset spatula—rough sides turning glass-smooth—is often the most satisfying frame. One rotation of the piping tip and you have a rose. Glaze flows top-down and the gradient spreads on the curve. Bear / bunny / cat doing the work: the sweet spot of the dessert niche is that handmade satisfaction.
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). - Optional URL overrides (
WERYAI_BASE_URL, WERYAI_MODELS_BASE_URL): video_gen.js defaults to https://api.weryai.com and https://api-growth-agent.weryai.com. Overrides are intended for testing or approved alternate endpoints. If these variables are set in your environment, confirm they point to hosts you trust—otherwise prompts, images, and your bearer token could be sent elsewhere. - 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)
INLINECODE15 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
- - Decor beats: crumb coat → piping → toppings → hero reveal; macro sweet light; satisfying squeeze, drip, or spin.
- Scale & texture: frosting gloss, air bubbles, sprinkles; 9:16 portrait food framing.
- Motion: steady hand, turntable, or slow push on the final slice or full cake.
### 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
- - INLINECODE41
- INLINECODE42
- INLINECODE43
- INLINECODE44
Default parameters
| Field | Value |
|---|
| Model | KLINGV30_PRO |
| Aspect ratio |
9:16 (fixed) |
| Duration | 5 seconds (
duration: 5—tight focus on piping beats) |
| Audio | Off |
| Visual style | ~45° close-up, soft food-photography light, saturated cream colors, pale or wood background; final cake fully in frame |
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.
Buttercream cake decorating
The user should provide:
- - Character type (bear / bunny / cat / custom)
- Cake theme (birthday / strawberry / cloud cream / fairy tale / glow / holiday)
- Decorating preference (floral piping / minimal smooth coat / icing details / drip gradient / tall stack)
Generation flow:
- 1. Gather character, theme, and decorating style.
- Build the prompt with three beats: smoothing, main piping action, final hero shot—emphasize silky cream texture and strong color appeal.
- Show defaults and wait for confirmation:
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 fixed 8); good → KLING_V3_0_STA; or name a model |
> | aspect_ratio | 9:16 | Default KLING: 9:16, 1:1, 16:9; if you change model, check that model’s row |
> | 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, run (
{baseDir} is skill root):
CODEBLOCK1
Fields must match the table; 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: Clear silky cream, fluid piping, final shot that reads as premium dessert content—good for food / handmade / cozy accounts.
Dessert texture hero beats
No character—pure material moments: mirror-jelly reflections, chocolate drip arcs, strawberry cross-section gradients. Texture is the story.
Describe the material beat; build the prompt:
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.
Texture & color keywords
Smooth buttercream: glass-smooth buttercream finish, perfect flat surface revealed by spatula pull, no streaks no ridges, INLINECODE79
Full piping: three-dimensional piped rosettes, voluminous whipped cream peaks, defined petal layers visible, INLINECODE83
Color / mood: pastel gradient transitions seamlessly, saturated berry tones against white cream, color harmony in every tier, INLINECODE87
Tip: Background color pairing is easy to miss. Name the background in the prompt (cream marble countertop, dark void background, pastel pink linen backdrop) so the cake pops.
蛋糕装饰与甜品视频生成
抹刀划过的那一下——粗糙的侧面变得如玻璃般光滑——往往是最令人满足的画面。裱花嘴旋转一圈,一朵玫瑰便诞生了。淋面自上而下流淌,渐变在曲面上铺展开来。小熊/小兔/小猫在操作:甜品领域的甜蜜点在于那份手工制作的满足感。
依赖项:此目录中的 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,以便安装者知道它在运行时是必需的(切勿将其提交到技能包内)。
- 可选 URL 覆盖(WERYAIBASEURL、WERYAIMODELSBASEURL):videogen.js 默认使用 https://api.weryai.com 和 https://api-growth-agent.weryai.com。覆盖设置仅用于测试或经批准的替代端点。如果在环境中设置了这些变量,请确认它们指向你信任的主机——否则提示词、图片和你的 bearer token 可能会被发送到其他地方。
- 更高保障:在短期或隔离环境(独立账户或容器)中运行生成任务,并在投入生产使用前审查 scripts/video_gen.js(HTTPS 提交 + 轮询循环)。
提示词扩展(强制要求)
video_gen.js 不会扩展提示词。在每次 wait --json 之前,将用户的简短或模糊描述转化为完整的英文制作 prompt。
适用场景: 用户仅提供关键词、一行描述或模糊意图——或要求更丰富的视频语言。例外情况: 用户粘贴了完整的、符合模型 promptlengthlimit 的长提示词,并要求你不要重写;但仍需在确认表中展示完整文本。
始终添加(视频语言): 镜头景别和角度;相机运动或固定;光线质量和动机;主体动作与 duration 节奏匹配;一个明确的亮点;当此技能默认为竖屏时,注明 9:16 竖屏。
长度: 当本文档列出 promptlengthlimit 时,遵守所选 model_key 的限制;在删除核心动作、镜头或光线描述之前,先删减填充性形容词。
确认: 提交前的表格必须包含完整的扩展后 prompt(绝不能是一行摘要)。等待确认或修改。
细分领域检查清单
- - 装饰节奏: 抹面 → 裱花 → 装饰 → 主角亮相;微距甜点光线;令人满足的挤压、滴落或旋转。
- 比例与质感: 糖霜光泽、气泡、糖针;9:16 竖屏美食构图。
- 运镜: 稳定的手部、转盘、或缓慢推进至最终切片或完整蛋糕。
### 示例提示词 位于本文档顶部,仅为简短触发词——始终根据用户的实际请求进行扩展。
工作流程
- 1. 确认用户请求符合此技能的场景(文本转视频和/或图片转视频,如文档所述)。
- 收集用户的简要描述、可选的图片 URL、等级(最佳 / 良好 / 快速)或明确的 model 键。
- 扩展提示词(强制要求): 除非用户提供了完整的、要求不重写的长提示词,否则使用下方的 ## 提示词扩展(强制要求) 将简要描述扩展为完整的英文制作 prompt。不要仅用用户的简短词语调用 API。
- 将扩展后的 prompt 与本文档固定表格中选定模型的 promptlengthlimit 进行核对(如有);必要时缩短。
- 对照 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 同级)。
示例提示词
- - 小熊制作奶油蛋糕:抹刀一次抹平侧面,然后裱一朵玫瑰,竖屏治愈氛围
- 使用这张裸蛋糕图片:淋面从顶部流下,带有色彩渐变
- 短视频甜品:拟人小兔裱奶油;最终切面必须美观
- 蛋糕装饰令人满足的9:16,顺滑糖霜抹面后裱玫瑰
默认参数
9:16(固定) |
| 时长 | 5 秒(duration:5——聚焦裱花节奏) |
| 音频 | 关闭 |
| 视觉风格 | ~45° 特写,柔和的美食摄影光线,饱和的奶油色,浅色或木质背景;最终蛋糕完整入画 |
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 | KLINGV30_PRO | 最佳默认值;快速: