Install
openclaw skills install ai-image-video-generationGenerate images and videos using the VibeVideo API. Use when the user asks to create AI images or videos, check generation status, list available models, or calculate credit costs.
openclaw skills install ai-image-video-generationVIBEVIDEO_API_KEY must be set with a valid API keyThis skill always uses the official VibeVideo API endpoint: https://vibevideo.app
Create an image generation task:
curl -s -X POST https://vibevideo.app/api/ai/generate \
-H "Authorization: Bearer $VIBEVIDEO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"mediaType": "image",
"scene": "text-to-image",
"model": "nano-banana-2",
"prompt": "A cat sitting on a rainbow",
"options": {
"aspect_ratio": "1:1",
"quality": "2K"
}
}'
For image-to-image, set "scene": "image-to-image" and add "image_url": "..." in options.
Response:
{ "code": 0, "data": { "id": "task_id", "status": "pending", "taskId": "...", "costCredits": 5 } }
Create a video generation task:
curl -s -X POST https://vibevideo.app/api/ai/generate \
-H "Authorization: Bearer $VIBEVIDEO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"mediaType": "video",
"scene": "text-to-video",
"model": "seedance-2-0",
"prompt": "A dog playing in a park",
"options": {
"resolution": "720p",
"duration": "5s",
"aspect_ratio": "16:9"
}
}'
For image-to-video, set "scene": "image-to-video" and add "image_url": "..." in options.
For frames-to-video, add "start_image_url": "..." and "end_image_url": "..." in options.
Tasks are asynchronous. Poll until status is success, failed, or canceled:
curl -s -X POST https://vibevideo.app/api/ai/query \
-H "Authorization: Bearer $VIBEVIDEO_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "taskId": "YOUR_TASK_ID" }'
Response includes status, taskInfo, taskResult, and taskUrls (JSON string of media URLs).
Check credit cost before generating:
curl -s -X POST https://vibevideo.app/api/ai/cost \
-H "Authorization: Bearer $VIBEVIDEO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2-0",
"mediaType": "video",
"scene": "text-to-video",
"options": { "resolution": "720p", "duration": "5s" }
}'
curl -s -X DELETE https://vibevideo.app/api/ai/tasks/YOUR_TASK_ID \
-H "Authorization: Bearer $VIBEVIDEO_API_KEY"
success/failed/canceled)taskUrls from the response and report the media URL(s) to the usercode is not 0, handle the error (see Error Handling below)| ID | Label | Vendor | Scenes | Qualities |
|---|---|---|---|---|
| nano-banana-2 | Nano Banana 2 | text-to-image, image-to-image | 1K, 2K, 4K | |
| gpt-image-1-5 | GPT Image 1.5 | OpenAI | text-to-image, image-to-image | Medium, High |
| grok-imagine | Grok Imagine | Grok | text-to-image, image-to-image | — |
| seedream-5-0 | Seedream 5.0 | ByteDance | text-to-image, image-to-image | Basic, High |
| qwen-image | Qwen Image | Qwen | text-to-image, image-to-image | — |
| wan-2-7-image | Wan 2.7 Image | Qwen/Alibaba | text-to-image, image-to-image | 1K, 2K |
| wan-2-7-image-pro | Wan 2.7 Image Pro | Qwen/Alibaba | text-to-image, image-to-image | 1K, 2K, 4K |
Default for text-to-image: nano-banana-2
| ID | Label | Vendor | Scenes | Resolutions | Durations |
|---|---|---|---|---|---|
| seedance-2-0 | Seedance 2.0 | ByteDance | text-to-video, image-to-video, frames-to-video, reference-to-video | 720p, 1080p | 5s, 10s, 15s |
| seedance-2-0-fast | Seedance 2.0 Fast | ByteDance | text-to-video, image-to-video, frames-to-video, reference-to-video | 720p, 1080p | 5s, 10s, 15s |
| seedance-1-5-pro | Seedance 1.5 Pro | ByteDance | text-to-video, image-to-video | 480p, 720p, 1080p | 4s, 8s, 12s |
| grok-imagine | Grok Imagine | Grok | text-to-video, image-to-video | 480p, 720p | 6s, 10s, 15s |
| kling-2-6 | Kling 2.6 | Kling | text-to-video, image-to-video | — | 5s, 10s |
| runway | Runway | Runway | text-to-video, image-to-video | 720p, 1080p | 5s, 10s |
| veo-3-1 | Veo 3.1 | text-to-video, image-to-video, frames-to-video, reference-to-video | 720p, 1080p, 4k | — | |
| veo-3-1-fast | Veo 3.1 Fast | text-to-video, image-to-video, frames-to-video, reference-to-video | 720p, 1080p, 4k | — | |
| seedence-1-0-pro | Seedence 1.0 Pro | ByteDance | text-to-video, image-to-video | 480p, 720p, 1080p | 5s, 10s |
| seedence-1-0-pro-fast | Seedence 1.0 Pro Fast | ByteDance | image-to-video | 720p, 1080p | 5s, 10s |
| seedence-1-0-lite | Seedence 1.0 Lite | ByteDance | text-to-video, image-to-video | 480p, 720p, 1080p | 5s, 10s |
Default for text-to-video: seedance-2-0
code: -1 with "no auth": User's API key is missing or invalid. Remind them to set VIBEVIDEO_API_KEY.code: -1002 with "insufficient credits": User needs to purchase credits at VibeVideo dashboard.code: -1 with "invalid": Wrong model ID, scene, or mediaType. Check against the model tables above.All endpoints return:
{ "code": 0, "message": "ok", "data": { ... } }
code: 0 means success. Non-zero code means error (check message).