Werydance 2.0 video generator (almighty-ready)
Generate Werydance 2.0 videos on WeryAI with one skill for text-to-video, image-to-video, first-frame/last-frame transition video, multi-image storyboard video, and almighty mixed-reference video generation.
Animate and transform scenes from single images, storyboard frames, or mixed references while keeping subject and motion continuity.
Dependencies: scripts/video_gen.js at the skill package root (alongside SKILL.md) + WERYAI_API_KEY + Node.js 18+. No other Cursor skills are required.
- - text-only generation
- single-image animation
- multi-image storyboard generation
- first-frame/last-frame compatibility aliases
- almighty mixed references (
images + videos + audios + prompt)
Runtime secret: only WERYAI_API_KEY.
Core upgrade
This skill now supports four input modalities for richer control:
- - Image reference: composition, character, and detail lock
- Video reference: camera language, action rhythm, effect imitation
- Audio reference: mood and timing guidance
- Text prompt: intent and constraints
Smart routing policy:
- - If payload includes
videos or audios, route to POST /v1/generation/almighty-reference-to-video. - Otherwise keep legacy routing (
text-to-video, image-to-video, multi-image-to-video).
Prerequisites
- -
WERYAI_API_KEY must be set. - Node.js 18+.
- Prefer public
https URLs for media. - Local files are supported and auto-uploaded by this skill via
POST /v1/generation/upload-file.
CODEBLOCK0
Quick checks
CODEBLOCK1
Modes and input shapes
| Mode | Trigger | API route | Key fields |
|---|
| Text | no media refs | INLINECODE14 | INLINECODE15 , duration, optional aspect_ratio, resolution, INLINECODE19 |
| Single image |
image only |
/v1/generation/image-to-video |
image,
prompt, plus common fields |
| Multi image |
images only |
/v1/generation/multi-image-to-video |
images,
prompt, plus common fields |
| Almighty | has
videos or
audios |
/v1/generation/almighty-reference-to-video |
images,
videos,
audios,
prompt,
video_number, plus common fields |
Compatibility aliases still supported:
- -
first_frame + last_frame -> normalized to ordered INLINECODE37 - INLINECODE38 -> normalized to ordered INLINECODE39
Almighty constraints
Almighty validations in this skill:
- -
prompt max 500 chars - INLINECODE41 <= 9
- INLINECODE42 <= 3
- INLINECODE43 <= 3
- mixed file total (
images + videos + audios) <= 12 - at least one of
images or INLINECODE46 - INLINECODE47 must be 5-15 seconds
- INLINECODE48 must be 1-4
Notes:
- - Backend enforces media-duration constraints for reference clips.
- Per current OpenAPI contract, almighty duration floor is 5s.
Local upload behavior
Supported local files before generation submit:
- - Images:
jpg/jpeg/png/webp/gif, max 10MB - Videos:
mp4/mov, max 50MB - Audios:
mp3/wav, max 50MB
Upload endpoint used by this skill:
- - Shot scale, angle, and lens feel.
- Camera movement or a clear lock-off choice.
- Lighting direction, material response, and overall mood.
- Subject motion paced to the selected
duration. - One clear visual payoff in the final shot.
- Output framing such as
9:16 vertical when using the default aspect ratio. - Audio (default-on): Add a labeled
Audio: block (ambience, layered SFX, subtle foley—generic, non-copyrighted) even if the user never mentioned sound. JSON generate_audio defaults to true for models that support audio; use false and omit Audio: only when the user explicitly wants silent output.
Dry-run behavior:
- -
--dry-run never uploads local files - output includes
uploadPreview to show which local paths would be uploaded
Prompt workflow (mandatory)
Before paid submit, expand brief into production prompt:
- 1. Decide mode.
- Map each media to explicit role.
- Build 2-4 timeline beats by duration.
- Write one action arc + one final payoff.
- Add minimal constraints for continuity.
Always show full prompt and all params before submit, then wait for explicit confirmation.
@asset layered referencing
Use explicit role mapping in prompt drafts:
- - Visual anchor:
@图片1 / INLINECODE62 - Camera/motion style: INLINECODE63
- Action rhythm: INLINECODE64
- Music/sound bed: INLINECODE65
Good:
Bad:
High-value templates
Video extend
- - INLINECODE68
- Set
duration to the added segment length.
Video fusion
- 1. Decide which path fits the request:
text, image, multi-image, or first-frame/last-frame. - Collect the user's brief,
duration, optional aspect_ratio, optional resolution, generate_audio (default true unless the user wants silent), and reference image URLs if the mode uses assets (prefer public https). - Expand the prompt with the rules from
## Prompt expansion (mandatory). If the request needs tighter control, read references/seedance-prompt-optimization.md and explicitly decide mode, asset mapping, timeline beats, and negative constraints before writing the final prompt. - If you are unsure about current multi-image support or field limits, run
node scripts/video_gen.js models --mode multi_image_to_video before a paid request. - Show a confirmation table with the full expanded prompt, model, duration, aspect ratio, resolution, audio choice, and any image URLs.
- After explicit confirmation, run
node scripts/video_gen.js wait --json '...'. - Return the JSON result. On success, surface the video URLs. On failure, report
errorCode and errorMessage and suggest the likely parameter fix.
CLI reference
CODEBLOCK2
Poll timeout classes
- -
task_class=short: default 5 minutes (300000ms), intended for text-to-video. - INLINECODE89 : default
20 minutes (1200000ms), intended for image/multi-image/almighty. - INLINECODE92 (default): infer from effective mode.
- INLINECODE93 remains the highest-priority explicit override.
Compliance notice
- - Do not store
WERYAI_API_KEY in repository files. - Platform compliance for realistic human face references is handled by backend policy; this skill does not implement client-side blocking.
Definition of done
Done when the user receives at least one playable video URL, or a clear failure with errorCode / errorMessage and a concrete next step. The submitted payload must stay within the selected model's supported field set. With default generate_audio: true, the prompt should include Audio: prose unless the user requested silent generation.
Boundaries (out of scope)
- - Do not use local file paths for references unless you have reviewed the assembled
scripts/video_gen.js and explicitly consent to local read-and-upload to WeryAI; otherwise prefer public https URLs. - Do not invent undocumented API fields beyond the JSON surface in this skill.
- Do not assume multi-image or first/last-frame support without checking live metadata when the behavior matters.
- Do not store the secret value of
WERYAI_API_KEY inside the repository. - Do not copy parameter names blindly from another provider without checking the normalized fields in this document.
Model & API constraints (frozen for this skill)
Frozen from the repository's current WeryAI capability snapshots. Re-run node scripts/video_gen.js models after platform upgrades.
Text-to-video (WERYDANCE_2_0)
| modelkey | durations | aspectratios | resolutions | Audio | negative_prompt | Prompt max |
|---|
| INLINECODE106 | 5, 10, 15 | 9:16, 1:1, 16:9 | 480p, 720p | Yes | No | 2000 |
Image-to-video (WERYDANCE_2_0)
| modelkey | durations | aspectratios | resolutions | Audio | negativeprompt | uploadimage_limit |
|---|
| INLINECODE108 | 5, 10, 15 | 9:16, 1:1, 16:9 | 480p, 720p | Yes | No | 3 |
Multi-image and first-frame / last-frame
- - Use the
images array for multi-image generation. - Use either
images with ordered URLs, first_frame + last_frame, or image + last_image for start/end-frame control. - Before a paid submission where multi-image support matters, run
node scripts/video_gen.js models --mode multi_image_to_video and confirm support_multiple_images, support_first_last_frame, upload_image_limit, and allowed output fields on the live account. - If the live registry says the model cannot take multiple images, the runtime falls back to the first image only.
Default parameters
| Field | Value |
|---|
| Model | INLINECODE119 |
| Aspect ratio |
9:16 |
| Duration |
5 |
| Resolution |
720p |
| Audio |
true by default; expanded
prompt must include
Audio: unless the user wants silent |
| Prompt style | concise cinematic English prompt with one clear motion beat and one final payoff |
Text brief -> Seedance video
Use this when the user has only an idea and wants Werydance 2.0 to generate the clip from scratch.
Need from the user:
- - Subject or scene
- Motion beat
- Preferred aspect ratio or platform
- Optional duration and resolution
Flow:
- 1. Expand the brief into a full English prompt.
- Keep
model at WERYDANCE_2_0 unless the user explicitly wants another model. - Show a confirmation table:
> 📋 Ready to generate - please confirm
>
> | Field | This run | Notes |
> |-------|----------|-------|
> | model | WERYDANCE_2_0 | Override only if the user explicitly requests another model |
> | aspect_ratio | 9:16 | Must stay inside the Seedance row |
> | duration | 5 | Allowed: 5 / 10 / 15 |
> | resolution | 720p | Allowed: 480p / 720p |
> | generate_audio | true | Default on; Audio: in prompt unless user wants silent |
> | prompt | full expanded prompt | Never show only a summary |
- 4. After confirmation, run:
CODEBLOCK3
Single reference image -> Seedance motion
Use this when the user already has one reference image and wants subtle or medium motion while preserving the subject.
Need from the user:
- - One reference image URL (prefer public
https) - Desired motion direction
- Optional duration, aspect ratio, and audio
Flow:
- 1. Expand the prompt around preservation plus motion.
- Add
image to the JSON body. - Confirm parameters and URL, then run:
CODEBLOCK4
Multiple reference images -> Seedance storyboard clip
Use this when the user wants several frames turned into one coherent shot or short sequence.
Need from the user:
- - Ordered reference image URLs (prefer public
https) - Desired transition logic
- Optional duration and aspect ratio
Flow:
- 1. Treat the image order as meaningful story order.
- If support is uncertain, check
models --mode multi_image_to_video first. - Confirm the final prompt plus ordered
images, then run:
CODEBLOCK5
First frame + last frame -> controlled transition
Use this when the user wants tighter motion control from a known opening frame to a known ending frame.
Need from the user:
- - One reference start-frame URL (prefer public
https) - One reference end-frame URL (prefer public
https) - A prompt that explains the in-between action
Flow:
- 1. Expand the prompt so it explicitly bridges the first frame to the last frame.
- Use either
first_frame / last_frame, image / last_image, or pass the same two URLs through images in order. - Confirm both URLs and the full prompt, then run:
CODEBLOCK6
- 4. If the live registry rejects multi-image routing, reduce expectations: the runtime will fall back to single-image behavior with the first frame.
Werydance 2.0 视频生成器(全能就绪版)
使用单一技能在 WeryAI 上生成 Werydance 2.0 视频,支持文生视频、图生视频、首帧/尾帧过渡视频、多图分镜视频以及全能混合参考视频生成。
从单张图片、分镜帧或混合参考中制作动画并转换场景,同时保持主体和动作的连续性。
依赖项: 技能包根目录下的 scripts/videogen.js(与 SKILL.md 同级)+ WERYAIAPI_KEY + Node.js 18+。无需其他 Cursor 技能。
- - 纯文本生成
- 单张图片动画
- 多图分镜生成
- 首帧/尾帧兼容性别名
- 全能混合参考(图片 + 视频 + 音频 + 提示词)
运行时密钥:仅 WERYAIAPIKEY。
核心升级
本技能现支持四种输入模式,实现更丰富的控制:
- - 图片参考:构图、角色和细节锁定
- 视频参考:镜头语言、动作节奏、效果模仿
- 音频参考:情绪和节奏引导
- 文本提示词:意图和约束
智能路由策略:
- - 如果负载包含 videos 或 audios,则路由至 POST /v1/generation/almighty-reference-to-video。
- 否则保持传统路由(text-to-video、image-to-video、multi-image-to-video)。
前提条件
- - 必须设置 WERYAIAPIKEY。
- Node.js 18+。
- 媒体文件优先使用公共 https URL。
- 本技能支持本地文件,并通过 POST /v1/generation/upload-file 自动上传。
sh
export WERYAIAPIKEY=yourapikey_here
快速检查
sh
node scripts/videogen.js models --mode textto_video
node scripts/videogen.js wait --json {model:WERYDANCE20,prompt:A glowing koi swims through ink clouds,duration:5,aspectratio:9:16,resolution:720p,generate_audio:true} --dry-run
模式与输入格式
| 模式 | 触发条件 | API 路由 | 关键字段 |
|---|
| 文本 | 无媒体参考 | /v1/generation/text-to-video | prompt、duration、可选 aspectratio、resolution、generateaudio |
| 单张图片 |
仅 image | /v1/generation/image-to-video | image、prompt、加公共字段 |
| 多张图片 | 仅 images | /v1/generation/multi-image-to-video | images、prompt、加公共字段 |
| 全能模式 | 包含 videos 或 audios | /v1/generation/almighty-reference-to-video | images、videos、audios、prompt、video_number、加公共字段 |
兼容性别名仍受支持:
- - firstframe + lastframe -> 标准化为有序 images
- image + last_image -> 标准化为有序 images
全能模式约束
本技能中的全能模式验证:
- - prompt 最多 500 字符
- images <= 9
- videos <= 3
- audios <= 3
- 混合文件总数(images + videos + audios)<= 12
- 至少包含 images 或 videos 之一
- duration 必须为 5-15 秒
- video_number 必须为 1-4
注意:
- - 后端对参考片段强制执行媒体时长约束。
- 根据当前 OpenAPI 合同,全能模式的最短时长为 5 秒。
本地上传行为
在提交生成前支持的本地文件:
- - 图片:jpg/jpeg/png/webp/gif,最大 10MB
- 视频:mp4/mov,最大 50MB
- 音频:mp3/wav,最大 50MB
本技能使用的上传端点:
- - 镜头景别、角度和镜头感。
- 摄像机运动或明确的锁定选择。
- 光照方向、材质响应和整体氛围。
- 主体动作节奏与所选 duration 匹配。
- 最终镜头中有一个清晰的视觉亮点。
- 输出构图,例如使用默认宽高比时的 9:16 竖屏。
- 音频(默认开启): 添加一个标注的 Audio: 块(环境音、分层音效、细微拟音——通用、无版权)即使使用者从未提及声音。JSON 中的 generate_audio 默认为支持音频的模型设置为 true;仅当使用者明确要求静音输出时,才使用 false 并省略 Audio:。
试运行行为:
- - --dry-run 从不上传本地文件
- 输出包含 uploadPreview,显示哪些本地路径将被上传
提示词工作流程(强制)
在付费提交前,将简要描述扩展为生产级提示词:
- 1. 确定模式。
- 将每个媒体映射到明确的角色。
- 按时长构建 2-4 个时间线节拍。
- 编写一个动作弧线 + 一个最终亮点。
- 添加最少的连续性约束。
在提交前始终显示完整的提示词和所有参数,然后等待明确确认。
@资产分层引用
在提示词草稿中使用明确的角色映射:
- - 视觉锚点:@图片1 / @图1
- 摄像机/运动风格:参考@视频1运镜
- 动作节奏:参考@视频2动作节奏
- 音乐/音轨:@音频1用于配乐
好的示例:
- - @图1为首帧,参考@视频1的跑步动作,镜头从正面切到侧面,@音频1做节奏底。
不好的示例:
高价值模板
视频延长
- - 将@视频1延长 5s,新增段落为...,保持人物与场景连续。
- 将 duration 设置为新增片段的长度。
视频融合
- 1. 确定哪个路径适合请求:text、image、multi-image 或 first-frame/last-frame。
- 收集使用者的简要描述、duration、可选 aspectratio、可选 resolution、generateaudio(除非使用者想要静音,否则默认 true),以及参考图片 URL(如果模式使用资产,优先使用公共 https)。
- 使用 ## 提示词扩展(强制) 中的规则扩展提示词。如果请求需要更严格的控制,请阅读 references/seedance-prompt-optimization.md,并在编写最终提示词前明确决定模式、资产映射、时间线节拍和负面约束。
- 如果不确定当前的多图支持或字段限制,请在付费请求前运行 node scripts/videogen.js models --mode multiimagetovideo。
- 显示一个确认表格,包含完整扩展后的提示词、模型、时长、宽高比、分辨率、音频选择以及任何图片 URL。
- 在明确确认后,运行 node scripts/video_gen.js wait --json ...。
- 返回 JSON 结果。成功时,展示视频 URL。失败时,报告 errorCode 和 errorMessage,并建议可能的参数修复。
CLI 参考
sh
检查实时模型元数据
node scripts/video_gen.js models
node scripts/video
gen.js models --mode textto_video
node scripts/video
gen.js models --mode imageto_video
node scripts/video
gen.js models --mode multiimage
tovideo
文生视频(模型非空;默认音频开启)
node scripts/video
gen.js wait --json {model:WERYDANCE2
0,prompt:A paper crane unfolds into a real bird, cinematic lighting, 9:16 vertical. Audio: soft paper rustle, gentle whoosh, quiet room tone.,duration:5,aspectratio:9:16,resolution:720p,generate_audio:true}
单张图片转视频
node scripts/video
gen.js wait --json {model:WERYDANCE2
0,prompt:Animate this portrait with subtle hair and cloth movement. Audio: faint fabric rustle, subtle room ambience.,image:https://example.com/frame.png,duration:5,aspectratio:9:16,resolution:720p,generate_audio:true}
多张图片转视频
node scripts/video_gen