跳转到正文
报告库
用途分类 / 其他用途

Image To Video Skill 安全审计

作者说它能做什么(原文)

>

第三方安全检查结论

先别安装或运行

已检查文件
1
发现的风险
5
会不会运行危险命令?检查是否下载程序后直接运行、让他人远程控制电脑,或藏起要运行的命令。发现 1 项风险
中风险

安装步骤会执行远程 npm/npx 软件并进行全局安装

原文依据:3 处
发现了什么

说明要求通过 npm 全局安装 RunComfy CLI,且展示的 Skill 安装命令使用 npx 从外部仓库获取并执行软件。这些包不固定版本或提交,因此实际执行内容可能随上游变化。

为什么需要注意

若包、仓库、依赖或发布账户遭篡改,安装代码可能以当前用户权限读取文件、访问凭据或修改系统级用户环境。全局安装还会产生超出当前项目的持久变更。

文档要求全局安装未固定版本的 RunComfy npm 包,并展示通过 npx 从未固定提交的外部仓库安装 Skill。执行这些步骤会运行并持久安装当时上游提供的代码;全局安装还扩大其本机影响范围。用户可要求固定包版本和仓库提交,并在隔离环境中检查后安装。

SKILL.md:27来自说明文档打开原文件
```bashnpx skills add agentspace-so/runcomfy-skills --skill image-to-video -g```
查看另外 2 个位置
SKILL.md:48来自说明文档打开原文件
1. **RunComfy CLI** — `npm i -g @runcomfy/cli`2. **RunComfy account** — `runcomfy login` opens a browser device-code flow.
SKILL.md:46来自说明文档打开原文件
## Prerequisites1. **RunComfy CLI** — `npm i -g @runcomfy/cli`2. **RunComfy account** — `runcomfy login` opens a browser device-code flow.3. **CI / containers** — set `RUNCOMFY_TOKEN=<token>`.4. **A source image URL** — JPEG/PNG/WebP, min 300px, ≤10MB; aspect 1:2.5 to 2.5:1 (HappyHorse) — other models have similar specs.
会不会泄露文件和密钥?检查是否发送含密码或密钥的文件,以及代码里是否直接写了密钥。发现 1 项风险
高风险

人物图像、声音和参考视频会交给第三方 RunComfy 服务处理

原文依据:3 处
发现了什么

调用会把包含 image_url、video_url 或 audio_url 的 JSON 发送到 RunComfy Model API,随后由其服务器取得这些媒体。人脸、声音、未发布产品素材或带访问令牌的私有 URL 都可能因此离开用户控制的环境。

为什么需要注意

第三方可能获得敏感媒体及 URL 中携带的访问参数;这可能带来隐私、生物特征、保密资料或授权范围方面的风险。文档声称无遥测,但所给材料没有 CLI 实现可供独立核验。

实际调用会把含媒体 URL 的 JSON 发给 RunComfy,并由其服务器获取媒体。因此,只要用户提供人脸、声音、参考视频或可访问私有资源的 URL,这些内容就会由第三方处理。文档未说明保留期限或后续使用政策;用户可限制为非敏感、短期有效且最小权限的 URL,并向作者索要数据处理条款。

SKILL.md:144来自说明文档打开原文件
| `prompt` | string | yes | — | CN ≤500 chars OR EN ≤1000 words. || `image_url` | array | yes (for i2v) | `[]` | 0–9 images. **First is the primary subject.** || `video_url` | array | no | `[]` | 0–3 reference clips (MP4/MOV), 2–15s each. || `audio_url` | array | no | `[]` | 0–3 reference audio (WAV/MP3), 2–15s, < 15MB each. || `aspect_ratio` | enum | no | `adaptive` | `adaptive`, `16:9`, `9:16`, `4:3`, `3:4`, `1:1`, `21:9`. |
查看另外 2 个位置
SKILL.md:197来自说明文档打开原文件
The skill picks one of HappyHorse 1.0 I2V / Wan 2.7 t2v+audio / Seedance 2.0 Pro based on user intent and invokes `runcomfy run <model_id>` with the matching JSON body. The CLI POSTs to the Model API, polls the request, fetches the result, and downloads any `.runcomfy.net`/`.runcomfy.com` URL into `--output-dir`. `Ctrl-C` cancels the remote request before exit.
SKILL.md:203来自说明文档打开原文件
- **Input boundary**: the user prompt is passed as a JSON string to the CLI via `--input`. The CLI does NOT shell-expand the prompt; it transmits the JSON body directly to the Model API over HTTPS. No shell injection surface from prompt content.- **Third-party content**: image / mask / video URLs you pass are fetched by the RunComfy model server, not by the CLI on your machine. Treat external URLs as untrusted; image-based prompt injection is a known risk for any image-edit / video-edit model.- **Outbound endpoints**: only `model-api.runcomfy.net` (request submission) and `*.runcomfy.net` / `*.runcomfy.com` (download whitelist for generated outputs). No telemetry, no callbacks.- **Generated-file size cap**: the CLI aborts any single download > 2 GiB to prevent disk-fill from a malicious or runaway model output.
会不会删除文件或一直在后台运行?检查是否大范围删除文件、改写磁盘,或设置自动启动。发现 1 项风险
低风险

CLI 会持久保存登录令牌并向用户指定目录写入生成文件

原文依据:4 处
发现了什么

设备登录被描述为把 API 令牌写入用户配置目录;每次运行还会把远程结果下载到 --output-dir。虽然文档声称令牌权限为 0600 且单文件下载有 2 GiB 上限,这些仍是本机持久写入。

为什么需要注意

令牌会一直存在直至被撤销或删除,并可能被同一账户下的软件读取。选错输出目录、文件名冲突或大量调用可能占用空间或影响现有文件;材料未说明现有同名文件如何处理。

这段代码的正常用途

这些是完成登录和保存用户所请求结果的正常、明确披露的写入:令牌位置固定且声称使用仅所有者可读写的 0600 权限,也可用环境变量避免令牌文件;输出写入调用者明确提供的目录,并设有单文件 2 GiB 上限。现有证据未显示任意目录覆盖、额外文件收集或隐藏持久化。用户仍应选择专用输出目录并保护环境变量。

这项判断针对展示的代码和适用条件,不表示风险已经实际发生。
SKILL.md:197来自说明文档打开原文件
The skill picks one of HappyHorse 1.0 I2V / Wan 2.7 t2v+audio / Seedance 2.0 Pro based on user intent and invokes `runcomfy run <model_id>` with the matching JSON body. The CLI POSTs to the Model API, polls the request, fetches the result, and downloads any `.runcomfy.net`/`.runcomfy.com` URL into `--output-dir`. `Ctrl-C` cancels the remote request before exit.
查看另外 3 个位置
SKILL.md:201来自说明文档打开原文件
- **Token storage**: `runcomfy login` writes the API token to `~/.config/runcomfy/token.json` with mode 0600 (owner-only read/write). Set `RUNCOMFY_TOKEN` env var to bypass the file entirely in CI / containers.- **Input boundary**: the user prompt is passed as a JSON string to the CLI via `--input`. The CLI does NOT shell-expand the prompt; it transmits the JSON body directly to the Model API over HTTPS. No shell injection surface from prompt content.
SKILL.md:205来自说明文档打开原文件
- **Outbound endpoints**: only `model-api.runcomfy.net` (request submission) and `*.runcomfy.net` / `*.runcomfy.com` (download whitelist for generated outputs). No telemetry, no callbacks.- **Generated-file size cap**: the CLI aborts any single download > 2 GiB to prevent disk-fill from a malicious or runaway model output.
SKILL.md:204来自说明文档打开原文件
- **Third-party content**: image / mask / video URLs you pass are fetched by the RunComfy model server, not by the CLI on your machine. Treat external URLs as untrusted; image-based prompt injection is a known risk for any image-edit / video-edit model.- **Outbound endpoints**: only `model-api.runcomfy.net` (request submission) and `*.runcomfy.net` / `*.runcomfy.com` (download whitelist for generated outputs). No telemetry, no callbacks.- **Generated-file size cap**: the CLI aborts any single download > 2 GiB to prevent disk-fill from a malicious or runaway model output.
会不会绕过安全保护?检查是否跳过网站安全验证、开放过多文件权限,或取消操作前的确认。发现 1 项风险
低风险

安装命令没有固定依赖版本

原文依据:2 处
发现了什么

安装命令没有指定依赖版本。同样的命令以后可能下载不同代码,你实际安装的内容可能与这次检查时不同。

为什么需要注意

即使命令和报告没变,以后安装时也可能下载到另一份代码。

安装命令使用未指定版本或提交的外部仓库引用。用户日后运行同一命令时,npx 获取并执行的内容可能已被上游更新;安装前可要求作者提供固定提交或版本及其校验方式。

SKILL.md:28来自说明文档打开原文件
```bashnpx skills add agentspace-so/runcomfy-skills --skill image-to-video -g```
查看另外 1 个位置
SKILL.md:27来自说明文档打开原文件
```bashnpx skills add agentspace-so/runcomfy-skills --skill image-to-video -g```
会不会误导 AI 或隐藏内容?检查工作说明是否要求 AI 忽略你的指令、干扰检查结果,或夹带看不见的文字。发现 1 项风险
中风险

“自定义配音的图生视频”路由实际未提交源图像

原文依据:4 处
发现了什么

路由表声称 Wan 2.7 会用于“动画并对自定义配音做口型同步”,但指定的是 text-to-video 端点,其 schema 和调用示例只有文本与音频,没有 image_url。说明本身也承认该端点不是主要图生视频端点。

为什么需要注意

用户要求保留原图人物身份时,代理可能仍生成一个仅由文本和音频驱动的新人物镜头,造成身份不符、错误成片,或消耗一次不符合请求的远程生成调用。

路由表把“动画并按自定义配音口型同步”描述为图生视频用途,但对应 Wan 调用明确使用 text-to-video 端点,schema 和示例均没有 image_url。文档随后也承认它生成的是 talking-head clip。因此选择此路由时,用户的源图不会被提交,结果可能不保留原人物身份或画面;用户应在调用前确认是否接受纯文本生成,或选择真正接收源图的端点。

SKILL.md:38来自说明文档打开原文件
| Native synchronized ambient audio in one pass | **HappyHorse 1.0 I2V** | In-pass audio synthesis || Animate **and** lip-sync to a **custom voiceover track** | **Wan 2.7 + `audio_url`** | Accepts your own MP3/WAV (3–30s, ≤15MB) and drives lip-sync to it || Multi-language dub variants (same image, different audio per call) | **Wan 2.7 + `audio_url`** | Same shot, swap `audio_url` per language |
查看另外 3 个位置
SKILL.md:95来自说明文档打开原文件
**Model**: `wan-ai/wan-2-7/text-to-video` (NOT `/image-to-video` — Wan 2.7's t2v endpoint accepts an `audio_url` that drives lip-sync)**Note on i2v with Wan 2.7**: Wan 2.7's primary i2v animation isn't on a dedicated endpoint here. For pure i2v (image animated by motion prompt only), prefer **HappyHorse i2v**. Use Wan 2.7 specifically when the user has a custom audio track they want lip-synced to a generated talking-head clip.
SKILL.md:103来自说明文档打开原文件
|---|---|---|---|---|| `prompt` | string | yes | — | Up to ~5000 chars. Describe the talking-head shot: framing, lighting, motion. || `audio_url` | string | yes (for lip-sync) | — | WAV/MP3, 3–30s, ≤15MB. **Drives lip-sync.** || `aspect_ratio` | enum | no | `16:9` | `16:9`, `9:16`, `1:1`, `4:3`, `3:4`. |
SKILL.md:114来自说明文档打开原文件
```bashruncomfy 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>```
会不会偷偷改推广链接或收款方?检查是否强制替换推广链接或收款对象,同时要求隐瞒更改。未发现风险

Skill 逻辑拆解

8 个说明模块

该 Skill 是一个 RunComfy 模型路由说明:它根据用户意图在 HappyHorse、Wan 2.7 和 Seedance 2.0 Pro 中选择一个模型,并通过本地 RunComfy CLI 提交请求。

查看原文
SKILL.md:44来自说明文档打开原文件
The agent reads this table, classifies the user's intent, and picks the matching subsection below.
SKILL.md:197来自说明文档打开原文件
The skill picks one of HappyHorse 1.0 I2V / Wan 2.7 t2v+audio / Seedance 2.0 Pro based on user intent and invokes `runcomfy run <model_id>` with the matching JSON body. The CLI POSTs to the Model API, polls the request, fetches the result, and downloads any `.runcomfy.net`/`.runcomfy.com` URL into `--output-dir`. `Ctrl-C` cancels the remote request before exit.

使用前要求安装第三方 CLI、登录 RunComfy 或提供 API 令牌,并准备可由服务端访问的源媒体 URL。

查看原文
SKILL.md:48来自说明文档打开原文件
1. **RunComfy CLI** — `npm i -g @runcomfy/cli`2. **RunComfy account** — `runcomfy login` opens a browser device-code flow.3. **CI / containers** — set `RUNCOMFY_TOKEN=<token>`.4. **A source image URL** — JPEG/PNG/WebP, min 300px, ≤10MB; aspect 1:2.5 to 2.5:1 (HappyHorse) — other models have similar specs.

生成由远程 Model API 完成;远程服务会取得提交的媒体 URL,CLI 随后轮询并把结果下载到指定目录。

查看原文
SKILL.md:197来自说明文档打开原文件
The skill picks one of HappyHorse 1.0 I2V / Wan 2.7 t2v+audio / Seedance 2.0 Pro based on user intent and invokes `runcomfy run <model_id>` with the matching JSON body. The CLI POSTs to the Model API, polls the request, fetches the result, and downloads any `.runcomfy.net`/`.runcomfy.com` URL into `--output-dir`. `Ctrl-C` cancels the remote request before exit.
SKILL.md:203来自说明文档打开原文件
- **Input boundary**: the user prompt is passed as a JSON string to the CLI via `--input`. The CLI does NOT shell-expand the prompt; it transmits the JSON body directly to the Model API over HTTPS. No shell injection surface from prompt content.- **Third-party content**: image / mask / video URLs you pass are fetched by the RunComfy model server, not by the CLI on your machine. Treat external URLs as untrusted; image-based prompt injection is a known risk for any image-edit / video-edit model.- **Outbound endpoints**: only `model-api.runcomfy.net` (request submission) and `*.runcomfy.net` / `*.runcomfy.com` (download whitelist for generated outputs). No telemetry, no callbacks.
从这里开始 · 工作说明SKILL.md
image-to-video
连线表示工作说明包含的模块,不是实际运行顺序。点击模块可查看原文。 另有 1 个章节,可在原文件中查看。
文件与检查记录1 个文件

检查范围与遗漏

逐文件查看涉及的内容

下方列出本次涉及的原文范围;纳入检查不代表已查清所有问题。

  • SKILL.md已纳入全文

这份报告只针对上方版本。我们看了拿到的代码和说明文件,没有实际运行 Skill,也没有检查它另外安装的软件包。因此,这不是“保证安全”的承诺;换了版本或使用环境,结果也可能不同。

  • SKILL.md工作说明

代码和说明中提到的操作

连接外部网站
SKILL.md:17来自说明文档打开原文件
  this move", or any explicit ask to turn a still into video.homepage: https://www.runcomfy.comlicense: MIT
SKILL.md:23来自说明文档打开原文件
[runcomfy.com](https://www.runcomfy.com/?utm_source=skills.sh&utm_medium=skill&utm_campaign=image-to-video) · [HappyHorse I2V](https://www.runcomfy.com/models/happyhorse/happyhorse-1-0/image-to-video?utm_source=skills.sh&utm_medium=skill&utm_campaign=image-to-video) · [Wan 2.7](https://www.runcomfy.com/models/wan-ai/wan-2-7/text-to-video?utm_source=skills.sh&utm_medium=skill&utm_campaign=image-to-video) · [Seedance 2.0 Pro](https://www.runcomfy.com/models/bytedance/seedance-v2/pro?utm_source=skills.sh&utm_medium=skill&utm_campaign=image-to-video) · [GitHub](https://github.com/agentspace-so/runcomfy-skills/tree/main/image-to-video)
SKILL.md:77来自说明文档打开原文件
  --input '{    "image_url": "https://.../portrait.jpg",    "prompt": "Gentle camera drift around the subject'\''s face, subtle breathing motion, identity-stable features, soft natural light."
运行命令
SKILL.md:27来自说明文档打开原文件
```bashnpx skills add agentspace-so/runcomfy-skills --skill image-to-video -g
SKILL.md:74来自说明文档打开原文件
```bashruncomfy run happyhorse/happyhorse-1-0/image-to-video \
SKILL.md:113来自说明文档打开原文件
```bashruncomfy run wan-ai/wan-2-7/text-to-video \
安装其他软件包
SKILL.md:28来自说明文档打开原文件
```bashnpx skills add agentspace-so/runcomfy-skills --skill image-to-video -g```
读取了多少行
206
文件校验值(用于核对版本)
a8f617611ed267cf21683e39c76b9514ec0f12e2f3e02e5f916c143bf8c3aa1b