← 返回 Skills 市场
baidu-xiling

keevx-image-to-video

作者 baidu-xiling · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
255
总下载
9
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install keevx-image-to-video
功能描述
Convert images to videos using Keevx API with support for multiple models, resolutions up to 4K, audio generation, and batch processing.
使用说明 (SKILL.md)

Keevx Image-to-Video Skill

Convert images to high-quality videos via the Keevx API.

Prerequisites

Set the environment variable KEEVX_API_KEY, obtained from https://www.keevx.com/main/home. Documentation: https://docs.keevx.com

export KEEVX_API_KEY="your_api_key_here"

API Endpoints

  • Base URL: https://api.keevx.com/v1
  • Upload image: POST /figure-resource/upload/file (Content-Type: multipart/form-data)
  • Create task: POST /image_to_video (Content-Type: application/json)
  • Query status: GET /image_to_video/{task_id}
  • Auth: All endpoints use Authorization: Bearer $KEEVX_API_KEY
  • Source identifier: All endpoints require the source: skill Header

Model Selection

Parameter Model V (General, Recommended) Model KL (Multi-Reference)
prompt ✅ Required, max 1000 chars ✅ Required
image_url Required for single-image mode, max 20MB ❌ Not supported
reference_images Required for multi-image mode, max 3 images, each max 20MB ✅ Required, max 7 images, each max 20MB
aspect_ratio ✅ 16:9 / 9:16 ✅ 16:9 / 9:16
aspect_resolution 720p / 1080p / 4k 720p / 1080p
duration Single-image: 4/6/8s, Multi-image: fixed 8s 5 / 10s
generate_audio ✅ Supported, default false ❌ Not supported
generate_count Optional 1-4 Optional 1-4
callback_url Optional Optional

Model Selection Guide

  • Choose Model V: When audio is needed, 4K resolution required, single or multi-image input, high quality requirements
  • Choose Model KL: When multiple reference images are available (2-7), multi-angle showcase needed, product demo videos

Model-Specific Request Bodies

Model V

{
  "model": "V",
  "prompt": "Video description (required, max 1000 chars)",
  "image_url": "https://... (required for single-image mode)",
  "reference_images": ["https://..."],
  "aspect_ratio": "16:9",
  "aspect_resolution": "720p | 1080p | 4k",
  "duration": 4,
  "generate_audio": true,
  "generate_count": 1
}

Model KL

{
  "model": "KL",
  "prompt": "Video description (required)",
  "reference_images": ["https://..."],
  "aspect_ratio": "16:9",
  "aspect_resolution": "720p | 1080p",
  "duration": 5,
  "generate_count": 1
}

Image Input Handling

User-provided images may be URLs or local file paths, handle accordingly:

  • URL (starts with http:// or https://): Use directly as image_url or reference_images
  • Local file path: Upload via the upload endpoint first, then use the returned URL

Upload Local File

curl --location 'https://api.keevx.com/v1/figure-resource/upload/file' \
  --header 'Authorization: Bearer $KEEVX_API_KEY' \
  --header 'source: skill' \
  --form 'file=@"/path/to/local/image.png"'

Response example:

{
  "code": 0,
  "success": true,
  "message": { "global": "success" },
  "result": {
    "url": "https://storage.googleapis.com/..../image.png",
    "fileId": "c5a4676a-...",
    "fileName": "image.png"
  }
}

Extract the image URL from result.url for use as image_url or reference_images. For multiple local files, upload each one and collect all URLs.

Quick Examples

Single Image Generation (Model V)

curl -X POST "https://api.keevx.com/v1/image_to_video" \
  -H "Authorization: Bearer $KEEVX_API_KEY" \
  -H "source: skill" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "V",
    "prompt": "Waves crashing on the beach at sunset",
    "image_url": "https://example.com/beach.jpg",
    "aspect_ratio": "16:9",
    "aspect_resolution": "1080p",
    "duration": 6,
    "generate_audio": true
  }'

Multi-Reference Image Generation (Model KL)

curl -X POST "https://api.keevx.com/v1/image_to_video" \
  -H "Authorization: Bearer $KEEVX_API_KEY" \
  -H "source: skill" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "KL",
    "prompt": "City night timelapse, neon lights flickering",
    "reference_images": [
      "https://example.com/city1.jpg",
      "https://example.com/city2.jpg",
      "https://example.com/city3.jpg"
    ],
    "aspect_ratio": "16:9",
    "aspect_resolution": "1080p",
    "duration": 10,
    "generate_count": 2
  }'

Query Task Status

curl -X GET "https://api.keevx.com/v1/image_to_video/i2v-xxxxxxxx" \
  -H "Authorization: Bearer $KEEVX_API_KEY" \
  -H "source: skill"

Response Format

Task Created Successfully

{
  "code": 0,
  "msg": "ok",
  "data": {
    "task_ids": ["i2v-d6b6472bcf724d0399e06d1390cb964e"]
  }
}

Task Query Success

{
  "code": 0,
  "msg": "ok",
  "data": {
    "task_id": "i2v-d6b6472bcf724d0399e06d1390cb964e",
    "status": "SUCCEEDED",
    "video_url": "https://storage.googleapis.com/.../sample_0.mp4",
    "thumbnail_url": "https://storage.googleapis.com/.../thumbnail.webp",
    "error_message": "",
    "duration": 6,
    "width": 1920,
    "height": 1080
  }
}

Status Values

PENDING (queued) / PROCESSING (in progress) / SUCCEEDED (completed) / FAILED (failed)

Failure Response

{
  "code": 100001,
  "msg": "Parameter error: prompt cannot be empty"
}

Callback Notification

Provide callback_url when creating a task. The system will send a POST request to that URL upon task completion:

{
  "code": 0,
  "msg": "ok",
  "task_type": "image_to_video",
  "data": {
    "task_id": "i2v-d6b6472bcf724d0399e06d1390cb964e",
    "status": "SUCCEEDED",
    "video_url": "https://storage.googleapis.com/.../sample_0.mp4",
    "thumbnail_url": "https://storage.googleapis.com/.../thumbnail.webp",
    "error_message": ""
  }
}

Polling Strategy

Video generation may take up to 20 minutes. Recommended: 30-second intervals, max 40 retries.

MAX_RETRIES=40
INTERVAL=30

for i in $(seq 1 $MAX_RETRIES); do
  status=$(curl -s -X GET "$API_BASE/image_to_video/$TASK_ID" \
    -H "Authorization: Bearer $KEEVX_API_KEY" \
    -H "source: skill" | jq -r '.data.status')

  if [ "$status" = "SUCCEEDED" ]; then echo "Success"; break
  elif [ "$status" = "FAILED" ]; then echo "Failed"; break; fi

  sleep $INTERVAL
done

Error Codes

HTTP Status Code Description
200 Success
400 Parameter error
401 Authentication failed
404 Resource not found
413 Request body too large
429 Rate limit exceeded
500 Internal server error
Business Error Code Description Solution
100001 Parameter error Check parameter format and required fields
100002 Invalid token Verify API Key is correct and active
100003 Task not found Verify task_id is correct
100004 Image size exceeded Compress image to under 20MB
100005 Prompt too long Shorten prompt to within 1000 characters
100006 Image URL inaccessible Ensure image URL is publicly accessible
100007 Unsupported image format Use common formats such as JPG, PNG

Notes

  • Generated video/thumbnail URLs are retained for 7 days only; download promptly
  • Max image size: 20MB, supported formats: JPG/PNG/WebP
  • Max prompt length: 1000 characters
  • 429 error: retry after 30s; 500 error: retry after 10s; network error: retry immediately, max 3 times
  • Prompt tips: describe subject, scene, action, mood; include visual details (lighting, color, texture)
  • Narration script: to add narration to the video, use Speak "narration content" in the prompt, e.g. Speak "Welcome to our channel"
  • Image tips: use high-resolution, subject-focused, evenly-lit, well-composed images
安全使用建议
Before installing, note that the skill's documentation requires you to provide KEEVX_API_KEY even though the registry metadata omits it — that's an incoherence you should address. Confirm the skill's source and homepage (keevx.com and docs.keevx.com are referenced in the SKILL.md) and verify the domain and API documentation yourself. Only provide an API key with minimal privileges and avoid using sensitive or private images. Be careful with callback_url: if you supply a callback endpoint, ensure it is your controlled, HTTPS endpoint to avoid exfiltration. If possible, ask the publisher to update the registry metadata to declare KEEVX_API_KEY (and provide provenance) before trusting the skill. If you can't verify the publisher, treat it as higher risk and test with throwaway credentials and non-sensitive content first.
功能分析
Type: OpenClaw Skill Name: keevx-image-to-video Version: 1.0.0 The skill bundle provides standard instructions for an AI agent to interact with the Keevx API (api.keevx.com) for image-to-video conversion. It includes legitimate API documentation, example curl commands for file uploads and task creation, and a bash-based polling strategy for status checks, all of which align with the stated purpose without any signs of malicious intent or data exfiltration.
能力评估
Purpose & Capability
The SKILL.md describes an image-to-video converter using the Keevx API and the name/description align with that purpose. However, the runtime instructions require an external API key (KEEVX_API_KEY) and specific API endpoints, while the registry metadata lists no required environment variables or primary credential — an inconsistency between claimed requirements and declared metadata.
Instruction Scope
The instructions are narrowly scoped to uploading images, creating/querying image-to-video tasks, and optionally using callback URLs. They do not instruct reading unrelated system files or additional environment variables. Handling of local files (upload then use returned URL) and use of a callback URL are expected for async processing, but the callback mechanism could be abused if set to an attacker-controlled endpoint.
Install Mechanism
This is an instruction-only skill with no install spec or code files, so nothing is written to disk or automatically installed. That reduces installer-related risk.
Credentials
The SKILL.md clearly requires a single API credential (KEEVX_API_KEY) to call the Keevx API, which is proportionate to the described functionality. However, the registry metadata does not declare any required env vars or a primary credential — this mismatch is concerning because it hides the need to provide a secret. The skill otherwise does not request additional unrelated credentials.
Persistence & Privilege
The skill is not always-enabled and does not request special agent-wide configuration or persistent system privileges. Autonomous invocation is allowed (platform default) and is not by itself a problem here.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install keevx-image-to-video
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /keevx-image-to-video 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
Keevx Image-to-Video Skill 1.0.0 – Initial Release - Enables conversion of images to videos using the Keevx API. - Supports both Model V (general use, single/multi-image, audio, 4K) and Model KL (multi-reference images, up to 7). - Allows various resolutions (720p, 1080p, 4K), adjustable duration, batch generation, and optional audio/narration. - Handles both image URLs and local file uploads with clear API and error handling instructions. - Includes task creation, status querying, robust polling recommendations, and callback notification support. - Provides sample API requests, response formats, and practical usage tips.
元数据
Slug keevx-image-to-video
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

keevx-image-to-video 是什么?

Convert images to videos using Keevx API with support for multiple models, resolutions up to 4K, audio generation, and batch processing. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 255 次。

如何安装 keevx-image-to-video?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install keevx-image-to-video」即可一键安装,无需额外配置。

keevx-image-to-video 是免费的吗?

是的,keevx-image-to-video 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

keevx-image-to-video 支持哪些平台?

keevx-image-to-video 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 keevx-image-to-video?

由 baidu-xiling(@baidu-xiling)开发并维护,当前版本 v1.0.0。

💬 留言讨论