图片动图生成

👤 陈剑术 ✓ 已认证 📦 v1.0.0 ⭐ 4.3 ⬇️ 52 下载
🎨 设计多媒体

📖 技能介绍


name: 图片动图生成 description: "付费图片动图生成助手:根据文字或一张参考图生成 3x3 九宫格连续帧,再在本地合成为 GIF/WebP;当用户要求图片生成动图、照片做成 GIF、让人物/商品/宠物动起来、图生动图、文生动图或微信动图时使用。" tags: [图片, 动图, GIF, 媒体]


图片动图生成

你负责把文字或参考图片变成可下载的循环动图。付费服务只生成九宫格帧图,GIF/WebP 必须在本地用 easygif 处理。绝不能把九宫格中间图作为最终结果返回。

元数据与价格

字段
skill_id ixhlink-skills-image-gif-gen
skill_version 1.0.0
product_id ixhlink-skills-image-gif-gen
model_key ixhlink-skills-image-gif-gen
capability image_generation
服务价格 1 元/次100 分)

价格以 SkillHub 后台产品配置为最终准。在命中生成意图后,应先向用户展示“图片动图生成,1 元/次”,获得确认后再发起调用。一次付费包含首次九宫格生成,以及质量校验失败时的一次免费修正重试;本地切帧、合成和导出不重复收费。

输入

{
  "model": "ixhlink-skills-image-gif-gen",
  "capability": "image_generation",
  "payload": {
    "prompt": "让人物自然眨眼并逐渐露出微笑,首尾可平滑循环",
    "images": [{"url": "https://example.com/reference.png"}],
    "size": "1024x1024",
    "response_format": "url"
  }
}

images 可省略(文生动图),首版最多一张且支持 urlb64。向上游 prompt 追加:输出无边框、无文字、按时间顺序排列的 3x3 九宫格连续帧,主体和构图保持一致。

本地选项:platformgeneral(默认)或 wechatmotion_strengthsubtlemediumstrong,默认 medium。这些选项不传给上游 API。

调用与支付

Base URL:https://iskills.ixhlink.com。调用 POST /api/v1/llm/invokeimage_generation 默认异步;取 data.task.id 后每 2–5 秒轮询 /api/v1/llm/tasks/{id},成功结果读取 data.result.data[].url

付费前置检查

调用前必须确认 Agent 已安装 weixinpay extension。已安装时先向用户展示“图片动图生成,1 元/次”并获得确认;未安装时提示“当前 Agent 暂不支持付费创作能力”,不要发起请求。

402 触发与订单传递

价格大于 0 且未支付时,首次请求返回 HTTP 402。读取 WeixinPay-Required Header(payment_code)、X-Payment-Id Header(payment_id)以及 Body 中的 WeixinPay 对象,然后执行:

首次 invoke → 402 → weixinpay_pay(payment_code) → 支付成功 → 原样重试 invoke

重试必须保持 modelcapabilitypayload 完全不变,并在 Header 传回原 WeixinPay-RequiredX-Payment-Id;不要把订单号写入业务 payload。同一 payment_id 只消费一次。

订单异常与退款

  • 支付插件缺失、用户取消、支付码缺失:停止,不重试、不创建新订单。
  • 支付成功后仍返回 402、订单过期、已消费或签名失败:只使用原订单排查一次,禁止重复扣费,提示订单异常。
  • 任务失败或上游不可用:不新建订单;只允许同一支付履约内的一次质量修正重试。仍失败时提示按订单申请退款/补偿。
  • 退款中或已退款订单不可再次调用,必须重新确认并支付。

生产环境应将 amount_fen 配置为 100(1 元);金额为 0 时才可跳过支付。

本地处理

轮询成功后,取第一张结果图 URL,执行以下命令完成最终文件(不要停在展示九宫格):

.venv/bin/python skills/image-gif-gen/scripts/grid_to_gif.py \\
  --grid-url "<data.result.data[0].url>" \\
  /tmp/image-gif-gen.gif --platform general

下载九宫格并完成合成后:

  1. 确认图片可读且宽高可被 3 整除,按从左到右、从上到下切出 9 帧。
  2. 优先调用 easygif 的 scripts/compose_gif.py / scripts/finalize_gif.py 或等价 CLI;不可用时使用 Pillow 保底。

    7w4.net小葱技能站,你的AI助手技能库。

  3. general 输出约 3 秒、最长边 720px;wechat 输出最长边 480px 并控制体积。
  4. 校验帧数、动画标记、文件大小和可播放性,再返回 GIF/WebP。

质量校验失败时,仅在同一支付履约内用修正原因免费重试一次;第二次失败应停止并返回原因,不输出未验证文件。首版不支持视频、多参考图、任意网格或逐帧编辑。

返回

向用户返回最终本地文件或可访问 URL,并附:格式、平台、9 帧、尺寸、时长、文件大小。若本地工具缺失,提示安装 easygif/Pillow,不要伪造成功。

🤖 AI 评测

这个 Skill 质量不错,能完整实现从图片生成循环 GIF 的功能。文档清晰、流程完整,有付费处理机制和错误提示,本地处理脚本也够用。不过缺少使用说明文档,而且仅用 Pillow 合成 GIF,在格式和画质优化上可能不如专业工具。如果你需要把图片变成动图,这个 Skill 能满足基本需求,但复杂场景可能需要更强的动图处理能力。

📊 多维度评分

适应性4.8
规范性3.9
有效性4
可靠性4.2
可信度5

📁 包含文件 (3 个)

📄 SKILL.md 4.7 KB
📄 scripts/grid_to_gif.py 2.5 KB
📄 test.py 1.8 KB