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.
images + videos + audios + prompt)Runtime secret: only WERYAI_API_KEY.
This skill now supports four input modalities for richer control:
Smart routing policy:
videos or audios, route to POST /v1/generation/almighty-reference-to-video.text-to-video, image-to-video, multi-image-to-video).WERYAI_API_KEY must be set.https URLs for media.POST /v1/generation/upload-file.export WERYAI_API_KEY="your_api_key_here"
node scripts/video_gen.js models --mode text_to_video
node scripts/video_gen.js wait --json '{"model":"WERYDANCE_2_0","prompt":"A glowing koi swims through ink clouds","duration":5,"aspect_ratio":"9:16","resolution":"720p","generate_audio":true}' --dry-run
| Mode | Trigger | API route | Key fields |
|---|---|---|---|
| --- | --- | --- | --- |
| Text | no media refs | /v1/generation/text-to-video | prompt, duration, optional aspect_ratio, resolution, generate_audio |
| 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 imagesimage + last_image -> normalized to ordered imagesAlmighty validations in this skill:
prompt max 500 charsimages <= 9videos <= 3audios <= 3images + videos + audios) <= 12images or videosduration must be 5-15 secondsvideo_number must be 1-4Notes:
Supported local files before generation submit:
jpg/jpeg/png/webp/gif, max 10MBmp4/mov, max 50MBmp3/wav, max 50MBUpload endpoint used by this skill:
duration.9:16 vertical when using the default aspect ratio.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 filesuploadPreview to show which local paths would be uploadedBefore paid submit, expand brief into production prompt:
Always show full prompt and all params before submit, then wait for explicit confirmation.
Use explicit role mapping in prompt drafts:
@图片1 / @图1参考@视频1运镜参考@视频2动作节奏@音频1用于配乐Good:
@图1为首帧,参考@视频1的跑步动作,镜头从正面切到侧面,@音频1做节奏底。Bad:
用这些素材生成一个视频。将@视频1延长 5s,新增段落为...,保持人物与场景连续。duration to the added segment length.text, image, multi-image, or first-frame/last-frame.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).## 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.node scripts/video_gen.js models --mode multi_image_to_video before a paid request.node scripts/video_gen.js wait --json '...'.errorCode and errorMessage and suggest the likely parameter fix.# Check live model metadata
node scripts/video_gen.js models
node scripts/video_gen.js models --mode text_to_video
node scripts/video_gen.js models --mode image_to_video
node scripts/video_gen.js models --mode multi_image_to_video
# Text-to-video (non-empty model required; default audio on)
node scripts/video_gen.js wait --json '{"model":"WERYDANCE_2_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,"aspect_ratio":"9:16","resolution":"720p","generate_audio":true}'
# Single image to video
node scripts/video_gen.js wait --json '{"model":"WERYDANCE_2_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,"aspect_ratio":"9:16","resolution":"720p","generate_audio":true}'
# Multi-image to video
node scripts/video_gen.js wait --json '{"model":"WERYDANCE_2_0","prompt":"Turn these storyboard frames into one coherent reveal shot. Audio: light transition whooshes, soft underscore.","images":["https://example.com/1.png","https://example.com/2.png","https://example.com/3.png"],"duration":5,"aspect_ratio":"9:16","resolution":"720p","generate_audio":true}'
# First-frame / last-frame guided video
node scripts/video_gen.js wait --json '{"model":"WERYDANCE_2_0","prompt":"Start on the first frame and transition naturally to the last frame with the same subject and environment. Audio: smooth morph tone, airy ambience.","first_frame":"https://example.com/start.png","last_frame":"https://example.com/end.png","duration":5,"aspect_ratio":"9:16","resolution":"720p","generate_audio":true}'
# WaveSpeed-style compatibility alias
node scripts/video_gen.js wait --json '{"model":"WERYDANCE_2_0","prompt":"Transition smoothly from the start image to the end image. Audio: soft blend whoosh, quiet room.","image":"https://example.com/start.png","last_image":"https://example.com/end.png","duration":5,"aspect_ratio":"9:16","resolution":"720p","generate_audio":true}'
# Preview without spending credits
node scripts/video_gen.js wait --json '{"model":"WERYDANCE_2_0","prompt":"A glowing koi swims through ink clouds. Audio: water shimmer, subtle chime.","duration":5,"aspect_ratio":"9:16","resolution":"720p","generate_audio":true}' --dry-run
# Poll an existing task
node scripts/video_gen.js status --task-id <task-id>
task_class=short: default 5 minutes (300000ms), intended for text-to-video.task_class=long: default 20 minutes (1200000ms), intended for image/multi-image/almighty.task_class=auto (default): infer from effective mode.WERYAI_POLL_TIMEOUT_MS remains the highest-priority explicit override.WERYAI_API_KEY in repository files.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.
scripts/video_gen.js and explicitly consent to local read-and-upload to WeryAI; otherwise prefer public https URLs.WERYAI_API_KEY inside the repository.> Frozen from the repository's current WeryAI capability snapshots. Re-run node scripts/video_gen.js models after platform upgrades.
WERYDANCE_2_0)| model_key | durations | aspect_ratios | resolutions | Audio | negative_prompt | Prompt max |
|---|---|---|---|---|---|---|
| ----------- | ----------- | --------------- | ------------- | ------- | ----------------- | ------------ |
WERYDANCE_2_0 | 5, 10, 15 | 9:16, 1:1, 16:9 | 480p, 720p | Yes | No | 2000 |
WERYDANCE_2_0)| model_key | durations | aspect_ratios | resolutions | Audio | negative_prompt | upload_image_limit |
|---|---|---|---|---|---|---|
| ----------- | ----------- | --------------- | ------------- | ------- | ----------------- | ------------------- |
WERYDANCE_2_0 | 5, 10, 15 | 9:16, 1:1, 16:9 | 480p, 720p | Yes | No | 3 |
images array for multi-image generation.images with ordered URLs, first_frame + last_frame, or image + last_image for start/end-frame control.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.| Field | Value |
|---|---|
| ------- | ------- |
| Model | WERYDANCE_2_0 |
| 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 |
Use this when the user has only an idea and wants Werydance 2.0 to generate the clip from scratch.
Need from the user:
Flow:
model at WERYDANCE_2_0 unless the user explicitly wants another model.> 📋 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 |
```sh
node scripts/video_gen.js wait --json '{"model":"WERYDANCE_2_0","prompt":"...","duration":5,"aspect_ratio":"9:16","resolution":"720p","generate_audio":true}'
```
Use this when the user already has one reference image and wants subtle or medium motion while preserving the subject.
Need from the user:
https)Flow:
image to the JSON body.```sh
node scripts/video_gen.js wait --json '{"model":"WERYDANCE_2_0","prompt":"...","image":"https://example.com/input.png","duration":5,"aspect_ratio":"9:16","resolution":"720p","generate_audio":true}'
```
Use this when the user wants several frames turned into one coherent shot or short sequence.
Need from the user:
https)Flow:
models --mode multi_image_to_video first.images, then run:```sh
node scripts/video_gen.js wait --json '{"model":"WERYDANCE_2_0","prompt":"...","images":["https://example.com/1.png","https://example.com/2.png","https://example.com/3.png"],"duration":5,"aspect_ratio":"9:16","resolution":"720p","generate_audio":true}'
```
Use this when the user wants tighter motion control from a known opening frame to a known ending frame.
Need from the user:
https)https)Flow:
first_frame / last_frame, image / last_image, or pass the same two URLs through images in order.```sh
node scripts/video_gen.js wait --json '{"model":"WERYDANCE_2_0","prompt":"...","first_frame":"https://example.com/start.png","last_frame":"https://example.com/end.png","duration":5,"aspect_ratio":"9:16","resolution":"720p","generate_audio":true}'
```
共 1 个版本