Install
openclaw skills install voooaiShort drama & webtoon production, text-to-image, image-to-image, storyboard design, text-to-video, image-to-video, video edit, style transfer, batch generati...
openclaw skills install voooaiVoooAI is a multi-media creative platform with 70+ built-in AI skills. The Agent acts as a relay (搬运工) — forwarding user requests to VoooAI's backend, which handles all creative decisions via its multi-role AI system (Analyst + Expert + Reviewer).
Core Capabilities:
| User Type | Use Cases |
|---|---|
| Content Creators | Marketing videos, social media content, product showcases, promotional materials |
| Designers | Design assets, style variants, visual concepts, mood boards |
| Studios | Multi-step creative pipelines (script → storyboard → video + music) |
| Businesses | Advertising, e-commerce product videos, corporate training content |
| Game Developers | Game art assets, character concept art, cutscene animations |
| Educators | Tutorial videos, course illustrations, animated demonstrations |
| One-Person Companies | Full-stack content creation (posters, videos, music — all-in-one) |
This skill is exclusively for creative workflow operations. The following are explicitly out of scope:
For these operations, direct users to https://voooai.com
vooai_ prefix + 40 random alphanumeric characters (46 total)vooai_abc123def456ghi789jkl012mno345pqrs678check_capabilities.py)upload_file.py)generate_workflow.py)execute_workflow.py, execute_single_node.py)get_status.py)download_results.py)export VOOOAI_ACCESS_KEY="vooai_..."If user requests these, inform them to visit voooai.com directly:
Content Moderation (Explicit Deny List)
Content Safety Note: Digital human and talking-head features are intended for legitimate creative use cases (marketing presenters, educational hosts, fictional characters). Users must label AI-generated content per applicable synthetic media regulations.
This section provides a clear table-based definition of what this skill can and cannot do.
| Operation | Supported | Script | Example |
|---|---|---|---|
| Capability discovery | ✅ | check_capabilities.py | Check available skills and points balance |
| File upload | ✅ | upload_file.py | Upload reference image/video/audio (max 200MB) |
| Workflow generation | ✅ | generate_workflow.py | Generate workflow from natural language description |
| Workflow execution | ✅ | execute_workflow.py | Run generated workflow |
| Single node execution | ✅ | execute_single_node.py | Retry specific failed node |
| Status query | ✅ | get_status.py | Check execution progress |
| Result download | ✅ | download_results.py | Download generated files to local |
| Operation | Reason |
|---|---|
| User authentication / registration | Out of scope — handled by web frontend |
| Payment / billing / subscription | Out of scope — user manages directly at voooai.com |
| Account settings / profile | Out of scope — user manages directly |
| Analytics / usage statistics | Out of scope — not creative workflow |
| Admin panel / system config | Out of scope — admin only |
| Homepage / dashboard features | Out of scope — not workflow related |
| Direct API calls bypassing scripts | Security risk — use provided scripts only |
| Manual workflow JSON construction | Quality risk — use generate_workflow.py only |
| Deepfakes / non-consensual facial or voice mimicry | Content safety — violates ethical guidelines |
| Impersonating real individuals without consent | Content safety — privacy and legal concerns |
| Political disinformation / election interference | Content safety — harmful content prohibition |
All scripts located at {baseDir}/scripts/. Required env: VOOOAI_ACCESS_KEY.
Discover platform capabilities and points balance.
python3 {baseDir}/scripts/check_capabilities.py
python3 {baseDir}/scripts/check_capabilities.py --summary
Upload image/video/audio file (max 200MB).
python3 {baseDir}/scripts/upload_file.py /path/to/file.png
python3 {baseDir}/scripts/upload_file.py /path/to/video.mp4
Generate workflow from natural language description.
python3 {baseDir}/scripts/generate_workflow.py "生成一个咖啡产品宣传视频"
python3 {baseDir}/scripts/generate_workflow.py "基于这张图生成视频" --reference-urls https://example.com/ref.jpg
python3 {baseDir}/scripts/generate_workflow.py "生成分镜图" --skill-id storyboard-basic
python3 {baseDir}/scripts/generate_workflow.py "测试描述" --analyze-only # analysis only
Execute a generated workflow.
python3 {baseDir}/scripts/execute_workflow.py '{"nodes": [...], "connections": [...]}'
python3 {baseDir}/scripts/execute_workflow.py /path/to/workflow.json
cat workflow.json | python3 {baseDir}/scripts/execute_workflow.py --from-stdin
python3 {baseDir}/scripts/execute_workflow.py workflow.json --set-param node_1.prompt="新提示词"
Execute/retry a single node (for debugging or partial retry).
python3 {baseDir}/scripts/execute_single_node.py workflow.json --node-id node_1
cat workflow.json | python3 {baseDir}/scripts/execute_single_node.py --from-stdin --node-id node_2
python3 {baseDir}/scripts/execute_single_node.py workflow.json --node-id node_1 --set-param node_1.prompt="修改后的提示词"
Query execution status.
python3 {baseDir}/scripts/get_status.py exec_abc123 # single query
python3 {baseDir}/scripts/get_status.py exec_abc123 --poll # poll until complete
python3 {baseDir}/scripts/get_status.py exec_abc123 --poll --timeout 600 # custom timeout
Download execution results to local.
python3 {baseDir}/scripts/download_results.py exec_abc123
python3 {baseDir}/scripts/download_results.py exec_abc123 --output-dir ~/Downloads/project
python3 {baseDir}/scripts/download_results.py exec_abc123 --prefix "storyboard"
python3 {baseDir}/scripts/download_results.py exec_abc123 --no-download # list URLs only
python3 {baseDir}/scripts/download_results.py --urls https://a.com/1.png # direct URL download
This section describes common trigger patterns to help the Agent understand when and how to invoke VoooAI.
User expressions:
Execution flow:
check_capabilities → generate_workflow → execute_workflow → get_status (poll) → download_results
User expressions:
Execution flow:
upload_file → generate_workflow (with --reference-urls) → execute_workflow → get_status (poll) → download_results
User expressions:
Execution flow:
generate_workflow (backend handles decomposition) → execute_workflow → get_status (poll, may take 3-5+ min) → download_results
User expressions:
Execution flow:
get_status (identify failed node) → execute_single_node (with --set-param if needed) → get_status (poll) → download_results
User expressions:
Execution flow:
check_capabilities → present results to user
# 1. Check capabilities and points
python3 {baseDir}/scripts/check_capabilities.py --summary
# 2. Generate workflow (user confirms points_cost before proceeding)
python3 {baseDir}/scripts/generate_workflow.py "一个宇航员在月球上弹吉他"
# → Review estimated_points, ask user to confirm
# 3. Execute workflow
python3 {baseDir}/scripts/execute_workflow.py '<template_data_json>'
# 4. Poll status
python3 {baseDir}/scripts/get_status.py EXEC_ID --poll
# 5. Download results
python3 {baseDir}/scripts/download_results.py EXEC_ID --output-dir ./output
python3 {baseDir}/scripts/generate_workflow.py "根据这张图生成视频" \
--reference-urls https://example.com/reference.jpg
# Then execute, poll, download as above
# 1. Upload local file first
python3 {baseDir}/scripts/upload_file.py /path/to/reference.png
# → Returns file_url
# 2. Generate workflow with uploaded URL
python3 {baseDir}/scripts/generate_workflow.py "基于这张图生成视频" \
--reference-urls <file_url_from_upload>
# Then execute, poll, download as above
# 1. Check which node failed
python3 {baseDir}/scripts/get_status.py EXEC_ID
# → Identify failed node_id from node_statuses
# 2. Retry single node (optionally adjust params)
python3 {baseDir}/scripts/execute_single_node.py workflow.json \
--node-id failed_node_id \
--set-param failed_node_id.some_param="adjusted_value"
# 3. Poll new execution
python3 {baseDir}/scripts/get_status.py NEW_EXEC_ID --poll
# Complex workflow: script → storyboard → video + music (all handled by backend)
# Example: "帮我做个咖啡产品广告,从脚本到成片"
# 1. Check capabilities and points (complex workflows cost more)
python3 {baseDir}/scripts/check_capabilities.py --summary
# 2. Generate multi-step workflow (backend auto-decomposes)
python3 {baseDir}/scripts/generate_workflow.py "制作一个30秒的咖啡产品广告,包含脚本、分镜、视频和背景音乐"
# → Backend returns multi-node workflow (script → storyboard → video → music → composite)
# → Review estimated_points (typically 80-200+ for complex pipelines), ask user to confirm
# 3. Execute full pipeline
python3 {baseDir}/scripts/execute_workflow.py '<template_data_json>'
# 4. Poll status (complex workflows take 3-5+ minutes)
python3 {baseDir}/scripts/get_status.py EXEC_ID --poll --timeout 600
# 5. Download all outputs (storyboard images, video clips, music, final composite)
python3 {baseDir}/scripts/download_results.py EXEC_ID --output-dir ./output/product_ad
When generate_workflow.py returns points_warning or estimated_points:
Example interaction:
Agent: "This workflow will cost approximately 45 points. You have 50 points available. Proceed? (yes/no)"
User: "yes"
Agent: [Then execute]
When backend returns multiple plans or options:
When user description is vague:
When execution fails:
Agent MUST NOT make any points-consuming decision on behalf of the user.
get_status.py EXEC_ID to get detailed error infofailed_nodes list and error_messagenode_statuses for per-node status| Strategy | When to Use | Command |
|---|---|---|
| Single-node retry | One node failed, others succeeded | execute_single_node.py --node-id <failed_node> |
| Parameter adjustment | Engine rejected params | Add --set-param to modify |
| Full retry | Multiple nodes failed or workflow error | Re-run execute_workflow.py |
| Error Code | Cause | Resolution |
|---|---|---|
INSUFFICIENT_POINTS | Not enough credits | User adds credits at voooai.com/subscription |
ENGINE_TIMEOUT | Engine took too long | Retry, or try different engine |
INVALID_PARAMS | Bad parameters | Adjust params with --set-param |
CONTENT_BLOCKED | Content safety filter | Modify description to comply with guidelines |
ENGINE_UNAVAILABLE | Engine temporarily down | Wait and retry, or use alternative engine |
check_capabilities.py: {success, points_balance, points_warning, available_engines, available_skills}
generate_workflow.py: {success, template_data, explanation, metadata: {node_count, engine_nodes, estimated_points}, points_warning}
execute_workflow.py: {success, execution_id, status, message}
get_status.py: {success, execution_id, status, progress, result_urls[]}
Status values: pending | running | completed | failed
download_results.py: {success, output_dir, downloaded_files[], total_count}
generate_workflow.pyVoooAI's PlannerAgent (Analyst + Expert + Reviewer) handles:
points_warning before executionstatus: "completed" → results in outputsstatus: "failed" → check error_messageHTTP Codes: 400 (bad request) | 401 (unauthorized) | 403 (forbidden) | 429 (rate limit) | 500 (server error)
Error Codes:
INVALID_ACCESS_KEY — Key must start with vooai_INSUFFICIENT_POINTS — Add credits at voooai.com/subscriptionMEMBERSHIP_REQUIRED — Engine requires higher tierRATE_LIMIT_EXCEEDED — Wait and retryENGINE_UNAVAILABLE — Try alternative engineWebsite: https://voooai.com | Support: support@voooai.com