Install
openclaw skills install viduGenerate AI videos using Vidu — featuring text-to-video, image-to-video, reference-to-video, and start-end-to-video with up to 1080p resolution, anime style...
openclaw skills install viduGenerate AI videos using Vidu Q3-Pro and Vidu 2.0 — featuring text-to-video, image-to-video, reference-based generation, and start-end frame interpolation with up to 1080p resolution, anime style support, and synchronized audio generation.
Vidu Q3-Pro is the latest flagship model with cinematic motion quality, smooth animation, optional audio/BGM generation, and multiple style modes (general/anime). Vidu 2.0 adds specialized capabilities including reference-to-video (character-consistent generation) and start-end-to-video (keyframe interpolation).
Data usage note: This skill sends text prompts, image URLs, and video data to the Atlas Cloud API (
api.atlascloud.ai) for video generation. No data is stored locally beyond the downloaded output files. API usage incurs charges per second based on the model selected.
export ATLASCLOUD_API_KEY="your-key"The API key is tied to your Atlas Cloud account and its pay-as-you-go balance. All usage is billed to this account. Atlas Cloud does not currently support scoped keys — the key grants access to all models available on your account.
This skill includes a Python script for video generation. Zero external dependencies required.
python scripts/generate_video.py list-models
python scripts/generate_video.py generate \
--model "MODEL_ID" \
--prompt "Your prompt here" \
--output ./output \
duration=5 resolution=720p
python scripts/generate_video.py generate \
--model "MODEL_ID" \
--image "https://example.com/photo.jpg" \
--prompt "Animate this scene" \
--output ./output
python scripts/generate_video.py upload ./local-file.jpg
Run python scripts/generate_video.py generate --help for all options. Extra model params can be passed as key=value (e.g. duration=10 shot_type=multi_camera).
All prices are per second of video generated. Atlas Cloud pricing varies by resolution.
| Resolution | fal.ai | Atlas Cloud | Savings |
|---|---|---|---|
| 540p | $0.07/s | $0.06/s | 14% off |
| 720p | $0.154/s | $0.15/s | 3% off |
| 1080p | $0.154/s | $0.16/s | - |
Applies to both vidu/q3-pro/text-to-video and vidu/q3-pro/image-to-video.
| Model | Atlas Cloud | Type |
|---|---|---|
vidu/image-to-video-2.0 | $0.075/video | Image-to-Video |
vidu/start-end-to-video-2.0 | $0.075/video | Start-End Interpolation |
vidu/reference-to-video-2.0 | $0.2/video | Reference-to-Video (character consistent) |
vidu/reference-to-video-q1 | $0.4/video | Reference-to-Video Q1 (highest quality) |
fal.ai pricing sourced from fal.ai/models/fal-ai/vidu/q3-pro/text-to-video.
| Parameter | Type | Required | Default | Options |
|---|---|---|---|---|
prompt | string | Yes | - | Video description (max 1500 chars) |
style | string | No | general | general, anime |
resolution | string | No | 720p | 540p, 720p, 1080p |
duration | number | No | 5 | Duration in seconds |
aspect_ratio | string | No | 4:3 | 16:9, 9:16, 4:3, 3:4, 1:1 |
movement_amplitude | string | No | auto | auto, small, medium, large |
generate_audio | boolean | No | true | Generate synchronized audio |
bgm | boolean | No | true | Generate background music |
seed | integer | No | random | For reproducible results (-1 for random) |
Same as Q3-Pro text-to-video (without style and aspect_ratio), plus:
| Parameter | Type | Required | Description |
|---|---|---|---|
image | string | Yes | URL of the source image |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prompt | string | Yes | - | Video description (max 1500 chars) |
image | string | Yes | - | Start frame image URL (PNG/JPEG/WebP, max 50MB, ratio < 4:1) |
duration | integer | No | 4 | 4 or 8 seconds |
movement_amplitude | string | No | auto | auto, small, medium, large |
seed | integer | No | 0 | For reproducible results |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prompt | string | Yes | - | Video description (max 1500 chars) |
images | array | Yes | - | Exactly 2 images: [start_frame, end_frame] (similar pixel density, ratio 0.8-1.25) |
duration | integer | No | 4 | 4 or 8 seconds |
movement_amplitude | string | No | auto | auto, small, medium, large |
seed | integer | No | 0 | For reproducible results |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prompt | string | Yes | - | Video description (max 1500 chars) |
images | array | Yes | - | 1-3 reference images (PNG/JPEG/WebP, min 128×128, max 50MB) |
aspect_ratio | string | No | 16:9 | 16:9, 9:16, 1:1 |
movement_amplitude | string | No | auto | auto, small, medium, large |
seed | integer | No | 0 | For reproducible results |
# Step 1: Submit
curl -s -X POST "https://api.atlascloud.ai/api/v1/model/generateVideo" \
-H "Authorization: Bearer $ATLASCLOUD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "vidu/q3-pro/text-to-video",
"prompt": "A samurai walks through a bamboo forest at dawn, mist rising from the ground, cinematic lighting",
"style": "general",
"resolution": "1080p",
"duration": 5,
"aspect_ratio": "16:9",
"movement_amplitude": "medium",
"generate_audio": true,
"bgm": true
}'
# Returns: { "code": 200, "data": { "id": "prediction-id" } }
# Step 2: Poll (every 5 seconds until completed)
curl -s "https://api.atlascloud.ai/api/v1/model/prediction/{prediction-id}" \
-H "Authorization: Bearer $ATLASCLOUD_API_KEY"
# Returns: { "code": 200, "data": { "status": "completed", "outputs": ["https://...video-url..."] } }
# Step 3: Download
curl -o output.mp4 "VIDEO_URL_FROM_OUTPUTS"
curl -s -X POST "https://api.atlascloud.ai/api/v1/model/generateVideo" \
-H "Authorization: Bearer $ATLASCLOUD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "vidu/q3-pro/image-to-video",
"image": "https://example.com/landscape.jpg",
"prompt": "The camera slowly zooms in as clouds drift across the sky and leaves rustle in the wind",
"resolution": "720p",
"duration": 5,
"movement_amplitude": "small",
"generate_audio": true
}'
curl -s -X POST "https://api.atlascloud.ai/api/v1/model/generateVideo" \
-H "Authorization: Bearer $ATLASCLOUD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "vidu/q3-pro/text-to-video",
"prompt": "An anime girl with flowing hair runs through a cherry blossom garden, petals swirling around her",
"style": "anime",
"resolution": "1080p",
"duration": 5,
"aspect_ratio": "16:9"
}'
curl -s -X POST "https://api.atlascloud.ai/api/v1/model/generateVideo" \
-H "Authorization: Bearer $ATLASCLOUD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "vidu/start-end-to-video-2.0",
"images": ["https://example.com/start-frame.jpg", "https://example.com/end-frame.jpg"],
"prompt": "Iron Man transforms into a sports car with smooth morphing animation",
"duration": 4,
"movement_amplitude": "large"
}'
curl -s -X POST "https://api.atlascloud.ai/api/v1/model/generateVideo" \
-H "Authorization: Bearer $ATLASCLOUD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "vidu/reference-to-video-2.0",
"images": ["https://example.com/character-ref1.jpg", "https://example.com/character-ref2.jpg"],
"prompt": "The girl walks from the painting to the room and puts the coffee cup on the table",
"aspect_ratio": "16:9",
"movement_amplitude": "auto"
}'
processing / starting / running → wait 5s, retry (typically takes ~60-120s)completed / succeeded → done, get URL from data.outputs[]failed → error, read data.errorIf the Atlas Cloud MCP server is configured, use built-in tools:
atlas_generate_video(model="vidu/q3-pro/text-to-video", params={...})
atlas_get_prediction(prediction_id="...")
Determine task type:
Choose model:
Extract parameters:
Execute: POST to generateVideo API → poll result → download MP4
Present result: show file path, offer to play
style: "anime" + anime-specific prompts: "An anime warrior charges forward, energy aura glowing..."small for talking heads/subtle scenes, large for action/sports