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

Image To Video Skill 安全审计

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

>

第三方安全检查结论

发现安全风险

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

安装步骤会以用户权限执行并全局安装第三方 npm 软件

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

文档要求运行 `npm i -g @runcomfy/cli`,且其自安装示例使用 `npx`。npm/npx 软件包在安装或首次运行时可能执行包内脚本;所提供源码没有 CLI 实现可供核验。

为什么需要注意

若软件包、其依赖或发布账户被攻破,安装代码可能读取或修改当前用户可访问的文件和凭据。全局安装还会留下持续可调用的程序。

文档要求全局安装 `@runcomfy/cli`,技能自身的安装示例也通过 `npx` 获取并运行第三方包。所给来源只有技能说明,没有这些包的实现或固定版本,因而无法从材料中核验安装时实际运行的代码。执行条件是用户采用这些安装命令;其权限与用户运行 npm/npx 时相同。可要求锁定版本并先审查包及安装脚本。

SKILL.md:27来自说明文档打开原文件
```bashnpx skills add agentspace-so/runcomfy-skills --skill image-to-video -g```
查看另外 3 个位置
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.
SKILL.md:28来自说明文档打开原文件
```bashnpx skills add agentspace-so/runcomfy-skills --skill image-to-video -g```
SKILL.md:48来自说明文档打开原文件
1. **RunComfy CLI** — `npm i -g @runcomfy/cli`2. **RunComfy account** — `runcomfy login` opens a browser device-code flow.
会不会泄露文件和密钥?检查是否发送含密码或密钥的文件,以及代码里是否直接写了密钥。发现 1 项风险
中风险

人像、声音和参考媒体会交给 RunComfy 的远程服务器

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

图片、视频及音频 URL 不是只在本机处理;文档明确说服务器会获取这些 URL,CLI 还会把提示词和任务 JSON 发给模型 API。

为什么需要注意

如果 URL 指向私密、带签名或尚未发布的素材,第三方服务将能够取得内容。人脸、声音、产品和品牌参考可能属于敏感或受合同限制的数据。

执行任务时,提示词和任务 JSON 会提交给 RunComfy Model API;所填的图片、视频和音频 URL 则由 RunComfy 服务器获取。因此,人像、声音、品牌素材及 URL 中可访问的数据会离开本机。用户应只提交获准交给 RunComfy 的媒体,并向作者或服务商确认保存期限、训练用途和删除政策。

SKILL.md:143来自说明文档打开原文件
|---|---|---|---|---|| `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`. || `duration` | int | no | 5 | 4–15 (whole seconds). || `resolution` | enum | no | `720p` | `480p` or `720p`. || `generate_audio` | bool | no | true | In-pass synchronized speech / SFX / music. || `seed` | int | no | — | Reproducibility. |
查看另外 3 个位置
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.
SKILL.md:159来自说明文档打开原文件
    "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  }' \
会不会删除文件或一直在后台运行?检查是否大范围删除文件、改写磁盘,或设置自动启动。未发现风险
会不会绕过安全保护?检查是否跳过网站安全验证、开放过多文件权限,或取消操作前的确认。发现 2 项风险
低风险

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

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

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

为什么需要注意

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

安装示例从 GitHub 仓库按技能名安装,但没有提交哈希、标签或版本号。用户日后执行同一命令时,取得的内容可能随上游仓库变化,未必就是本次审计所展示的文件。可要求作者提供固定提交或带版本的安装方式,并在安装前核对下载内容。

SKILL.md:28来自说明文档打开原文件
```bashnpx skills add agentspace-so/runcomfy-skills --skill image-to-video -g```
低风险

登录令牌会作为长期凭据保存在用户目录中

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

浏览器登录会把 API 令牌写入 `~/.config/runcomfy/token.json`。0600 权限可阻止其他普通本地账户读取,但拥有该用户权限的进程仍可访问。

为什么需要注意

在共享、受感染或备份范围过大的机器上,取得该用户权限的一方可能复制令牌并以用户账户提交远程任务。

交互式登录会把 API 令牌持久写入用户目录。文档称文件权限为 0600,这限制其他普通账户,但同一用户权限下运行的程序仍可能读取它;账户被入侵时该令牌也可能被利用。用户可改用仅为当前任务注入的 `RUNCOMFY_TOKEN`,并要求服务商说明令牌范围、有效期与撤销方法。

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.
查看另外 2 个位置
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:49来自说明文档打开原文件
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.
会不会误导 AI 或隐藏内容?检查工作说明是否要求 AI 忽略你的指令、干扰检查结果,或夹带看不见的文字。未发现风险
会不会偷偷改推广链接或收款方?检查是否强制替换推广链接或收款对象,同时要求隐瞒更改。发现 1 项风险
中风险

“图片加自定义配音”路线实际上不把源图片发送给 Wan

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

路由表将“动画并按自定义音轨口型同步”分配给 Wan,但文档随后说明该端点是文生视频;其调用只包含提示词和音频 URL,没有 `image_url`。

为什么需要注意

用户可能基于“让这张图说话”的预期批准调用,却得到重新生成的人物,而不是保留原图身份的动画。这可能浪费模型调用,并对代言人、品牌角色或身份一致性的决策造成误导。

路由表把“动画并按自定义配音口型同步”描述成 Wan 路线,但后文明确说该路线调用文生视频端点,并称它生成 talking-head;示例请求只有提示词和 `audio_url`,没有源图片字段。因此用户要求保留原图人物身份时,这条路线可能生成新人物而非动画化该图片。用户应要求作者更正能力描述,或在发送付费任务前确认端点确实支持源图。

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 || Multi-modal — image + reference video + reference audio together | **Seedance 2.0 Pro** | Up to 9 image refs, 3 video refs (2–15s each), 3 audio refs |
查看另外 4 个位置
SKILL.md:93来自说明文档打开原文件
## Route 2: Wan 2.7 + `audio_url` — when the user has a custom voiceover**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:113来自说明文档打开原文件
```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.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: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 个说明模块

该技能本身是模型路由说明:它根据意图选择 HappyHorse、Wan 2.7 或 Seedance,并让本地 RunComfy CLI 向远程模型 API 提交任务、轮询结果及下载生成文件。

查看原文
SKILL.md:195来自说明文档打开原文件
## How it worksThe 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.

默认路线会把图片 URL 和动作提示交给 HappyHorse;包含自定义配音时会改用 Wan 的文生视频端点;同时包含图片、视频和音频参考时则交给 Seedance。

查看原文
SKILL.md:35来自说明文档打开原文件
|---|---|---|| Animate a portrait — keep identity stable | **HappyHorse 1.0 I2V** | #1 on Artificial Analysis Arena (Elo 1392); strong facial fidelity || Product reveal / 360 / macro motion | **HappyHorse 1.0 I2V** | Geometry preservation + smooth camera moves || 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 || Multi-modal — image + reference video + reference audio together | **Seedance 2.0 Pro** | Up to 9 image refs, 3 video refs (2–15s each), 3 audio refs || Brand-consistent narrative with character ref + scene ref + voice ref | **Seedance 2.0 Pro** | Image holds identity, video holds scene, audio holds voice || Default if unspecified | **HappyHorse 1.0 I2V** | Best all-round quality + native audio |

使用前需要安装第三方全局 CLI,并通过浏览器登录或设置环境变量令牌;登录模式会把令牌持久化到用户配置目录。

查看原文
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.
SKILL.md:199来自说明文档打开原文件
## Security & Privacy- **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.- **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.

输出会写入调用方指定的绝对目录;文档称单个下载超过 2 GiB 时 CLI 会中止。

查看原文
SKILL.md:74来自说明文档打开原文件
```bashruncomfy 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>```
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.
从这里开始 · 工作说明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