Vidu Video and Image Generation Skill
Generate AI videos and images with Vidu via vidu-cli: text-to-image, text-to-video, image-to-video, start/end-frame video, reference-based generation, reusable elements, TTS, lip-sync, and compose.
Execution Model
All execution uses the vidu-cli CLI. Use CLI flags, not raw JSON request bodies. Use argv arrays; do not wrap commands in shell strings.
Vidu creator tasks are async: submit returns task_id; poll with vidu-cli task get <task_id> and download with vidu-cli task get <task_id> -o <dir>.
Environment:
VIDU_TOKEN (required): Vidu API token.
VIDU_BASE_URL (optional): default https://service.vidu.cn; use https://service.vidu.com for overseas.
VIDU_DEBUG=1 (optional): print full response body to stderr for debugging.
For installation, token setup, and first-run checks, read references/setup.md only when the user is setting up the skill or the CLI is missing.
Decision Table
| User intent |
Use this command shape |
Notes |
| Create reusable subject/character from existing image |
vidu-cli element create --name ... --image ... [--description ...] [--style ...] |
Returns id, version; no duration. |
| Generate reference image from prompt/images |
vidu-cli task submit --type reference2image --prompt ... --image ... --duration 0 --model-version ... --resolution ... |
Use when no reusable element exists yet. |
| Generate character/reference video |
vidu-cli task submit --type character2video --prompt ... (--image ...|--material name:id:version) --duration ... --model-version ... --resolution 1080p |
Image/material total must be 1-7. |
| Generate narration/audio |
vidu-cli task tts --prompt ... --voice-id ... [--speed ...] |
Use --voice-id, never --voice. |
| Compose final video |
vidu-cli task compose --timeline <json> ... |
Read references/compose.md first. |
| Query/download task |
vidu-cli task get <task_id> [-o <dir>] |
--output only belongs on task get. |
Do Not Invent
Never use these:
vidu-cli reference ...
vidu-cli reference create-image-reference
vidu-cli task submit --type tts
vidu-cli task tts --voice ...
vidu-cli task submit --output ...
vidu-cli task download
vidu-cli task submit --material "a:id:ver,b:id:ver"
sh -c "vidu-cli ..."
Minimal Rules
- Every async creator command (
task submit, task tts, task compose, task lip-sync) must go through provider_batch, even for one item.
- Use direct argv arrays; put every flag and value in separate argv entries.
- Repeat
--image, --material, --audio, and --video once per item. Do not comma-join.
reference2image and character2video require non-empty prompt plus 1-7 total references (--image + --material).
- Image tasks use
--duration 0; reusable element create has no duration.
- For
character2video with 3.2_a, duration must be an explicit 4-15; for other models, check references/parameters.md.
- Download successful media with
vidu-cli task get <task_id> --output <dir>; when subtitle_uri is present, this also downloads subtitle JSON.
- Report CLI/API errors from JSON fields exactly; do not infer hidden causes.
Common Shapes
vidu-cli element create --name "角色A" --image /path/a.png --description "..." --style "..."
vidu-cli task submit --type reference2image --prompt "..." --image /path/a.png --duration 0 --model-version 3.2_image_2 --resolution 1080p
vidu-cli task submit --type character2video --prompt "[@角色A] walks into office" --material "角色A:ID:VERSION" --duration 5 --model-version 3.2_a --resolution 1080p
vidu-cli task tts --prompt "旁白文本" --voice-id "Chinese (Mandarin)_Gentleman" --speed 1.3
Load References Only When Needed
references/parameters.md: exact model matrix, durations, flags, examples, validation details.
references/compose.md: required before building compose timeline JSON.
references/errors_and_retry.md: lifecycle states, retry behavior, polling edge cases.
references/setup.md: installation, environment variables, first-run checks, and external-user setup notes.
If local CLI help conflicts with this file, trust vidu-cli <subcommand> --help and update this skill afterward.
1---2name: vidu-skills3description: Generate video and images by calling the official Vidu API via vidu CLI. Use when the user wants text-to-image, text-to-video, image-to-video, head-tail-image-to-video, reference-to-image, reference-to-video, lip-sync, text-to-speech, video-compose, Create References, or to submit or check Vidu tasks. Requires VIDU_TOKEN and optional VIDU_BASE_URL.4---56# Vidu Video and Image Generation Skill78Generate AI videos and images with Vidu via `vidu-cli`: text-to-image, text-to-video, image-to-video, start/end-frame video, reference-based generation, reusable elements, TTS, lip-sync, and compose.910## Execution Model1112All execution uses the `vidu-cli` CLI. Use CLI flags, not raw JSON request bodies. Use argv arrays; do not wrap commands in shell strings.1314Vidu creator tasks are async: submit returns `task_id`; poll with `vidu-cli task get <task_id>` and download with `vidu-cli task get <task_id> -o <dir>`.1516Environment:1718- `VIDU_TOKEN` (required): Vidu API token.19- `VIDU_BASE_URL` (optional): default `https://service.vidu.cn`; use `https://service.vidu.com` for overseas.20- `VIDU_DEBUG=1` (optional): print full response body to stderr for debugging.2122For installation, token setup, and first-run checks, read `references/setup.md` only when the user is setting up the skill or the CLI is missing.2324## Decision Table2526| User intent | Use this command shape | Notes |27|---|---|---|28| Create reusable subject/character from existing image | `vidu-cli element create --name ... --image ... [--description ...] [--style ...]` | Returns `id`, `version`; no `duration`. |29| Generate reference image from prompt/images | `vidu-cli task submit --type reference2image --prompt ... --image ... --duration 0 --model-version ... --resolution ...` | Use when no reusable element exists yet. |30| Generate character/reference video | `vidu-cli task submit --type character2video --prompt ... (--image ...\|--material name:id:version) --duration ... --model-version ... --resolution 1080p` | Image/material total must be 1-7. |31| Generate narration/audio | `vidu-cli task tts --prompt ... --voice-id ... [--speed ...]` | Use `--voice-id`, never `--voice`. |32| Compose final video | `vidu-cli task compose --timeline <json> ...` | Read `references/compose.md` first. |33| Query/download task | `vidu-cli task get <task_id> [-o <dir>]` | `--output` only belongs on `task get`. |3435## Do Not Invent3637Never use these:3839- `vidu-cli reference ...`40- `vidu-cli reference create-image-reference`41- `vidu-cli task submit --type tts`42- `vidu-cli task tts --voice ...`43- `vidu-cli task submit --output ...`44- `vidu-cli task download`45- `vidu-cli task submit --material "a:id:ver,b:id:ver"`46- `sh -c "vidu-cli ..."`4748## Minimal Rules4950- Every async creator command (`task submit`, `task tts`, `task compose`, `task lip-sync`) must go through `provider_batch`, even for one item.51- Use direct argv arrays; put every flag and value in separate argv entries.52- Repeat `--image`, `--material`, `--audio`, and `--video` once per item. Do not comma-join.53- `reference2image` and `character2video` require non-empty prompt plus 1-7 total references (`--image` + `--material`).54- Image tasks use `--duration 0`; reusable `element create` has no `duration`.55- For `character2video` with `3.2_a`, duration must be an explicit `4-15`; for other models, check `references/parameters.md`.56- Download successful media with `vidu-cli task get <task_id> --output <dir>`; when `subtitle_uri` is present, this also downloads subtitle JSON.57- Report CLI/API errors from JSON fields exactly; do not infer hidden causes.5859## Common Shapes6061```bash62vidu-cli element create --name "角色A" --image /path/a.png --description "..." --style "..."6364vidu-cli task submit --type reference2image --prompt "..." --image /path/a.png --duration 0 --model-version 3.2_image_2 --resolution 1080p6566vidu-cli task submit --type character2video --prompt "[@角色A] walks into office" --material "角色A:ID:VERSION" --duration 5 --model-version 3.2_a --resolution 1080p6768vidu-cli task tts --prompt "旁白文本" --voice-id "Chinese (Mandarin)_Gentleman" --speed 1.369```7071## Load References Only When Needed7273- `references/parameters.md`: exact model matrix, durations, flags, examples, validation details.74- `references/compose.md`: required before building compose timeline JSON.75- `references/errors_and_retry.md`: lifecycle states, retry behavior, polling edge cases.76- `references/setup.md`: installation, environment variables, first-run checks, and external-user setup notes.7778If local CLI help conflicts with this file, trust `vidu-cli <subcommand> --help` and update this skill afterward.