🧪 Skills

magic-image2video

根据用户提供的文本和图片(支持图片URL和本地路径)生成视频任务,并使用API Key提交到远程视频服务。

v1.0.0
❤️ 0
⬇️ 20
👁 1
Share

Description


name: magic-image2video description: "根据用户提供的文本和图片(支持图片URL和本地路径)生成视频任务,并使用API Key提交到远程视频服务。" homepage: "" metadata: { "openclaw": { "emoji": "🎬", "requires": { "bins": ["python"], "env":["MAGIC_API_KEY"], "primaryEnv":"MAGIC_API_KEY" } } }

文本和图片转视频技能

基于提供的文本内容和图片创建一个视频生成任务。任务会立即提交,系统会自动轮询任务状态,并获取视频链接。

使用场景

推荐用于以下情境:

  • “将这张图片按我的描述变成视频”
  • “请帮我用这张图片做一个视频”
  • “使用这张图生成一个视频”

不适用场景

不要用于以下情境:

  • 用户要求视频剪辑、裁剪或添加特效 → 请使用视频编辑工具
  • 用户要求屏幕录制或捕捉 → 请使用屏幕录制工具
  • 用户仅想查询现有视频任务进度 → 请引导其在文件或相关系统中查询

前置条件

export MAGIC_API_KEY="your-key"

MAGIC_API_KEY 是远程视频服务客户端所需的环境变量。


整体流程(Agent 指南)

  1. 从用户消息中提取完整文本(记为TEXT)与图片地址或路径(记为IMAGE)。
  2. 使用 video-create 子命令创建任务,读取 stdout 的 JSON 输出,并提取 task_id
  3. 在聊天中明确告知用户 task_id(可选:包含原始 JSON 以供调试)。
  4. 使用 video-wait 子命令,通过 --task-id 轮询任务,直到任务完成。任务状态等于 2 视为成功。
  5. video-wait 命令的 stdout 中提取 video_url
  6. 在聊天中明确告知用户最终视频链接 video_url,如果timeout也在聊天中展示。

Python 客户端(分步示例及聊天输出)

步骤 1:创建视频任务并在聊天中展示 task_id

  1. 获取用户需要生成视频的文本,存入 TEXT;获取图片地址,存入 IMAGE

    • 如果文本中含有双引号 ",请务必进行转义(如将 " 替换为 \"),以免命令行解析报错。
  2. 执行如下命令(由 agent 工具调用;{baseDir} 会被 Skill 目录替换):

python3 {baseDir}/scripts/media_gen_client.py video-create \
  --text  "TEXT" --image "IMAGE"
  1. 读取此命令的标准输出(stdout),输出为 JSON,例如:
   {
    "biz_code": 10000,
    "msg": "Success",
    "data": {
        "task_id": "2032443088023777280"
    },
    "trace_id": "664c6e22-1edd-11f1-bf4c-8262dce7d13f"
  }
  1. 从 JSON 解析 task_id(如 "abc-123"),并在聊天中告知用户: “视频生成任务已创建,任务ID:abc-123。我会持续查询任务状态,等视频链接准备好会及时通知你。”

步骤 2:轮询任务状态并输出最终 video_url 至聊天

  1. 使用上一步获取的 task_id

  2. 执行以下命令(每 10 秒轮询一次,最多等待 600 秒;超时请稍后重试):

python3 {baseDir}/scripts/media_gen_client.py video-wait --task-id YOUR_TASK_ID --poll 10 --timeout 600
  1. 读取标准输出。成功时输出的 JSON 示例:
   {
    "biz_code": 10000,
    "msg": "Success",
    "data": {
        "task_id": "1234567890",
        "task_status": 2,
        "video_url": "https://www.magiclight.com/examplevideo.mp4"
    },
    "trace_id": "c89aeca8-1edd-11f1-bf4c-8262dce7d13f"
}
  1. 解析输出中的关键字段:
  • 任务状态(如 task_status: 2),状态为 2 表示成功
  • 视频链接(如 video_url: "https://example.com/path/to/video.mp4"
  1. 推荐的聊天回复流程如下:
  1. 若结果显示任务失败或超时(如 successfalse 或无 video_url 为空 或 errortimeout),
  • 请说明失败原因(如有错误信息请包含),并告知用户可稍后重试或检查输入、配额等问题。

脚本输出约定

  • Agent 必须始终:
    • 解析 stdout JSON。
    • 在聊天中清晰告知用户任务ID和视频链接。
    • 如需调试,可以将原生 JSON 数据用代码块输出。

Reviews (0)

Sign in to write a review.

No reviews yet. Be the first to review!

Comments (0)

Sign in to join the discussion.

No comments yet. Be the first to share your thoughts!

Compatible Platforms

Pricing

Free

Related Configs