通过 WeryAI 生成 Werydance 2.0 视频,支持文字转视频、图片转视频、多图视频以及首帧/末帧过渡。适用于需要...
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.sh
export WERYAI_API_KEY="your_api_key_here"
sh
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
ModeTriggerAPI routeKey fieldsTextno media refs/v1/generation/text-to-video``prompt, duration, optional aspect_ratio, resolution, generate_audioSingle imageimage only/v1/generation/image-to-video``image, prompt, plus common fieldsMulti imageimages only/v1/generation/multi-image-to-video``images, prompt, plus common fieldsAlmightyhas 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.sh
# 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 modelsafter platform upgrades.
WERYDANCE_2_0)#model_keydurationsaspect_ratiosresolutionsAudionegative_promptPrompt maxWERYDANCE_2_05, 10, 159:16, 1:1, 16:9480p, 720pYesNo2000
WERYDANCE_2_0)#model_keydurationsaspect_ratiosresolutionsAudionegative_promptupload_image_limitWERYDANCE_2_05, 10, 159:16, 1:1, 16:9480p, 720pYesNo3
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.FieldValueModelWERYDANCE_2_0Aspect ratio9:16Duration5Resolution720pAudio**true** by default; expanded prompt must include Audio: unless the user wants silentPrompt styleconcise 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:
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
FieldThis runNotes
model``WERYDANCE_2_0Override only if the user explicitly requests another modelaspect_ratio``9:16Must stay inside the Seedance rowduration``5Allowed: 5 / 10 / 15resolution``720pAllowed: 480p / 720pgenerate_audio``trueDefault on;Audio:inpromptunless user wants silentpromptfull expanded promptNever show only a summary
After confirmation, run: 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:
Expand the prompt around preservation plus motion.
Add image to the JSON body.
Confirm parameters and URL, then run: 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:
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:
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:
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: 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}'
If the live registry rejects multi-image routing, reduce expectations: the runtime will fall back to single-image behavior with the first frame.