mcpField
I
image-to-video

image-to-video

github.com/genmedia-labs创意与媒体27839.1k 次安装7 周前更新
代码仓库

关于 image-to-video

这是一项面向 Agent 的技能,可按需求将图像转视频任务路由到 RunComfy 模型,涵盖人像或产品动画、自定义音轨口型同步和多参考素材合成。它通过 RunComfy CLI 提交任务并下载结果。

主要功能

  1. 01按意图选择模型
  2. 02HappyHorse 图像动画
  3. 03Wan 2.7 自定义音轨口型同步
  4. 04Seedance 多参考素材生成
  5. 05调用 RunComfy CLI

适用场景

  1. 01在保持身份特征的同时制作人像动画
  2. 02让视频口型匹配指定配音
  3. 03结合主体、场景和音频参考素材

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/genmedia-labs/skills --skill image-to-video

安装后在 Claude Code 中输入/image-to-video确认已加载。

详细介绍

图像转视频 — RunComfy 专业版

runcomfy.com · HappyHorse I2V · Wan 2.7 · Seedance 2.0 Pro · GitHub

意图路由的图像转视频。 这项技能不会将你限定在某个模型上,而是根据用户的实际需求,从 RunComfy 目录中选择合适的 i2v 模型:人像动画、自定义配音口型同步,或多模态合成。

npx skills add agentspace-so/runcomfy-skills --skill image-to-video -g

根据用户意图选择合适的模型

用户意图模型原因
为人像制作动画 — 保持身份稳定HappyHorse 1.0 I2VArtificial Analysis Arena 排名第 1(Elo 1392);面部保真度高
产品展示 / 360 度旋转 / 微距运动HappyHorse 1.0 I2V保持几何形状 + 平滑的镜头运动
一次生成原生同步环境音频HappyHorse 1.0 I2V在生成过程中合成音频
制作动画并与自定义配音音轨进行口型同步Wan 2.7 + audio_url接受你自己的 MP3/WAV(3–30 秒,≤15MB),并据此驱动口型同步
多语言配音版本(同一图像,每次调用使用不同音频)Wan 2.7 + audio_url使用同一镜头,每种语言替换对应的 audio_url
多模态 — 同时使用图像 + 参考视频 + 参考音频Seedance 2.0 Pro最多支持 9 张参考图、3 段参考视频(每段 2–15 秒)、3 段参考音频
保持品牌一致性的叙事,包含角色参考 + 场景参考 + 声音参考Seedance 2.0 Pro图像保持身份,视频保持场景,音频保持声音
未指定时的默认选项HappyHorse 1.0 I2V综合品质最佳 + 原生音频

Agent 会读取此表,对用户意图进行分类,并选择下方对应的小节。

先决条件

  1. RunComfy CLI — npm i -g @runcomfy/cli
  2. RunComfy 账户 — runcomfy login 会打开浏览器设备代码验证流程。
  3. CI / 容器 — 设置 RUNCOMFY_TOKEN=<token>。
  4. 源图像 URL — JPEG/PNG/WebP,最小 300px,≤10MB;宽高比为 1:2.5 到 2.5:1(HappyHorse)——其他模型的规格也类似。

路由 1:HappyHorse 1.0 I2V — 人像 / 产品 / 通用动画的默认选项

模型:happyhorse/happyhorse-1-0/image-to-video · 竞技场排名:第 1(Elo 1392)

参数规范
字段类型必填默认值说明
image_urlstring是—JPEG/JPG/PNG/WEBP。最小 300px。宽高比 1:2.5–2.5:1。≤10MB。
promptstring是—≤5000 个非 CJK 字符或 2500 个 CJK 字符。描述运动 / 镜头 / 光线。
resolutionenum否1080P720P 或 1080P。
durationint否53–15 秒。
seedint否0可复用以比较不同版本。
watermarkbool否true提供商水印开关。

输出宽高比 = 输入宽高比。不支持独立重新取景。

调用
runcomfy run happyhorse/happyhorse-1-0/image-to-video \
  --input '{
    "image_url": "https://.../portrait.jpg",
    "prompt": "Gentle camera drift around the subject'\''s face, subtle breathing motion, identity-stable features, soft natural light."
  }' \
  --output-dir <absolute/path>
提示词技巧
  • 以运动动词开头: “漂移”、“推近”、“环绕”、“上仰”、“显现”、“眨眼”、“呼吸”。优先说明正在运动的对象。
  • 不要重复描述图像 — 模型能看到图像。将提示词重点放在发生变化的内容上。
  • 明确说明保留要求:“身份特征保持稳定”、“包装保持不变”、“背景几何结构保持稳定”。
  • 描述光线变化:“轮廓光逐渐增强”、“镜头升高时阴影逐渐缩短”。
  • 每段片段只安排一个节拍 — 只包含一个主要运动(环绕或推近或倾斜或角色动作)。

路线 2:Wan 2.7 + audio_url — 用户有自定义配音时

模型:wan-ai/wan-2-7/text-to-video(不是 /image-to-video——Wan 2.7 的 t2v 端点接受用于驱动口型同步的 audio_url)

关于使用 Wan 2.7 进行 i2v 的说明:此处没有专用端点用于 Wan 2.7 的主要 i2v 动画。对于纯 i2v(仅由运动提示词驱动的图像动画),优先选择 HappyHorse i2v。仅当用户有自定义音轨,并希望将其与生成的谈话人头部片段进行口型同步时,才使用 Wan 2.7。

Schema(带音频的 Wan 2.7 t2v)
字段类型必填默认值说明
promptstring是—最多约 5000 个字符。描述谈话人头部镜头:构图、光线、运动。
audio_urlstring是(用于口型同步)—WAV/MP3,3–30 秒,≤15MB。用于驱动口型同步。
aspect_ratioenum否16:916:9、9:16、1:1、4:3、3:4。
resolutionenum否1080p720p 或 1080p。
durationenum否52–15(整秒)。与音频时长匹配。
negative_promptstring否—具体说明要避免的问题(例如“无字幕、无闪烁”)。
seedint否—用于复现结果。
调用
runcomfy run wan-ai/wan-2-7/text-to-video \
  --input '{
    "prompt": "Medium close-up of a confident spokesperson in a softly-lit recording booth, leaning slightly toward the camera, locked tripod, shallow DOF, warm key light from camera-left.",
    "audio_url": "https://.../voiceover-en.mp3",
    "duration": 12,
    "aspect_ratio": "9:16"
  }' \
  --output-dir <absolute/path>
提示词技巧
  • 描述谈话人头部镜头——构图、光线、镜头质感。音频驱动口型同步;提示词则构建与之匹配的视觉画面。
  • 让 duration 与音频时长匹配——如果片段太长,音频结束后画面会静音。
  • 用 negative_prompt 指定要避免的问题:"no subtitles, no flicker, no distorted hands"。
  • 制作多语言配音——提示词保持不变,每次调用时替换 audio_url。锁定 seed,确保不同语言版本的画面一致。

路线 3:Seedance 2.0 Pro — 多模态动画(图像 + 参考视频 + 参考音频)

模型:bytedance/seedance-v2/pro

当用户希望生成一个片段,同时结合主体图像、参考视频中的场景和参考音频中的语气时使用。

Schema(Seedance 2.0 Pro 中与 i2v 相关的字段)
字段类型必填默认值说明
promptstring是—中文 ≤500 字,或英文 ≤1000 词。
image_urlarray是(用于 i2v)[]0–9 张图像。第一张是主要主体。
video_urlarray否[]0–3 个参考片段(MP4/MOV),每个 2–15 秒。
audio_urlarray否[]0–3 段参考音频(WAV/MP3),每段 2–15 秒、< 15MB。
aspect_ratioenum否adaptiveadaptive、16:9、9:16、4:3、3:4、1:1、21:9。
durationint否54–15(整秒)。
resolutionenum否720p480p 或 720p。
generate_audiobool否true在生成过程中同步生成语音、音效或音乐。
seedint否—用于复现结果。
调用
runcomfy run bytedance/seedance-v2/pro \
  --input '{
    "prompt": "Subject from image 1 walks through the café in video 1, voice tone matches audio 1. Medium close-up, slow push-in, warm light, gentle ambience.",
    "image_url": ["https://.../subject.jpg"],
    "video_url": ["https://.../cafe-locked-shot.mp4"],
    "audio_url": ["https://.../voice-tone.mp3"],
    "duration": 8
  }' \
  --output-dir <absolute/path>
提示词技巧
  • 区分图像与文本的作用——对于必须保持稳定的内容(面部、服装、品牌),使用 image_url;对于需要变化的内容(动作、情绪、光线),使用 prompt。
  • 在提示词中为参考素材编号:"subject from image 1, lighting from video 1, voice from audio 1"。Seedance 会正确匹配这些提示信息。
  • 参考媒体规格——视频和音频时长必须为 2–15 秒;音频 < 15MB。
  • 不要混用风格差异极大的素材——如果图像 1 是水彩风格,而视频 1 是写实风格,输出效果会发生偏移。

限制

  • 每条路线都受其模型限制约束。 HappyHorse:最长 15 秒,输出宽高比与输入一致。Wan 2.7:最长 15 秒,音频 3–30 秒/15MB。此模板中的 Seedance:最高 720p,最长 15 秒。
  • 不支持混合多条路线。 此技能每次调用只选择一个模型。如果用户希望在同一片段中结合 HappyHorse 动画和 Wan 风格的口型同步,需要调用两次并拼接(不在此处讨论范围内)。
  • 品牌特定的覆盖规则——如果用户指定了此处未列出的特定模型变体(例如 Wan 2.6、Seedance 1.5),请改用对应的品牌技能(wan-2-7、seedance-v2),而不是强行通过此技能处理。

退出代码

code含义
0成功
64CLI 参数错误
65输入 JSON 错误 / 架构不匹配
69上游 5xx
75可重试:超时 / 429
77未登录或令牌被拒绝

完整参考:docs.runcomfy.com/cli/troubleshooting。

工作原理

该技能会根据用户意图选择 HappyHorse 1.0 I2V / Wan 2.7 t2v+audio / Seedance 2.0 Pro 之一,并使用对应的 JSON 请求体调用 runcomfy run <model_id>。CLI 会向 Model API 发送 POST 请求、轮询请求状态、获取结果,并将任何 .runcomfy.net/.runcomfy.com URL 下载到 --output-dir。Ctrl-C 会在退出前取消远程请求。

安全与隐私

  • 令牌存储:runcomfy login 会将 API 令牌写入 ~/.config/runcomfy/token.json,权限模式为 0600(仅所有者可读写)。在 CI / 容器中设置 RUNCOMFY_TOKEN 环境变量即可完全跳过该文件。
  • 输入边界:用户提示词会作为 JSON 字符串通过 --input 传递给 CLI。CLI 不会对提示词进行 shell 展开,而是直接通过 HTTPS 将 JSON 请求体发送到 Model API。提示词内容不会造成 shell 注入风险。
  • 第三方内容:你提供的图像 / 蒙版 / 视频 URL 由 RunComfy 模型服务获取,而不是由你本机上的 CLI 获取。请将外部 URL 视为不可信;基于图像的提示词注入是任何图像编辑 / 视频编辑模型都已知的风险。
  • 出站端点:仅使用 model-api.runcomfy.net(提交请求)和 *.runcomfy.net / *.runcomfy.com(生成结果的下载白名单)。没有遥测,也没有回调。
  • 生成文件大小上限:CLI 会中止任何大于 2 GiB 的单个下载,以防恶意或失控的模型输出占满磁盘。

评论

支持 Markdown