用途
face-swap 是一个面向 RunComfy 平台的换脸技能,用来把一张人脸或角色替换进静态图片或视频中。它本身不直接实现换脸,而是通过 runcomfy CLI 调用平台上已有的多个模型 API 端点,并根据用户的实际意图在这些路由之间选择。
主要能力与路由
技能会先对用户意图做分类:静态图还是视频、保留运动还是保留身份、单张还是批量、写实还是风格化,然后从五条路由中选择一条:
- Wan 2-2 Animate(community/wan-2-2-animate/api):视频路由的默认选择。属于 RunComfy 在 /feature/character-swap 下的特色端点,采用音频驱动的全身角色动画,输入新身份的一张参考图加音频,输出由该角色驱动的视频。适合替换场景中的角色、配音片段,写实与风格化均可。不适合需要保留特定源视频运动的场景。
- Kling 2-6 Motion Control Pro(kling/kling-2-6/motion-control-pro):输入参考表演视频与目标角色图,让目标角色执行参考视频中的运动,换脸是附带效果。适合需要精确保留源视频运动或走位、以及风格化角色的情况。
- Nano Banana 2 Edit(google/nano-banana-2/edit):默认保留身份,单次调用支持 1–20 张输入图,尊重空间语言描述。适合同一身份在多帧中保持一致,例如 SKU 图、A/B 变体、叙事分镜。
- GPT Image 2 Edit(openai/gpt-image-2/edit):最多 10 张参考图,支持图像内多语言文字重写,可执行精确的构图指令。适合需要把肖像中的确切人脸放进场景的主视觉图,并显式指定各图角色。
- FLUX Kontext Pro(blackforestlabs/flux-1-kontext/pro/edit):单张源图、单条声明式指令,对被编辑目标之外的所有内容保持最高保真度。适合用文字描述新面孔、且没有参考图的场景。限制为单源图、单次调用单次编辑。
若要处理音频驱动的说话头像身份替换(人脸与声音一次完成),文档建议使用 ai-avatar-video 技能,由 OmniHuman 同时处理人脸与音频。
使用方式
- 安装 CLI(详见 runcomfy-cli 技能):
npm i -g @runcomfy/cli,或npx -y @runcomfy/cli --version。 - 登录:
runcomfy login;在 CI 中可改为export RUNCOMFY_TOKEN=<token>。 - 执行换脸:
runcomfy run <model_id> --input '<JSON>' --output-dir ./out。
安装本技能的命令为:npx skills add agentspace-so/runcomfy-agent-skills --skill face-swap -g。
各路由的参数形态不同:视频路由使用 image_url + audio_url 或 reference_video_url + character_image_url;GPT Image 2 Edit 使用 prompt、images(最多 10 个 HTTPS 参考 URL)、size;Nano Banana Edit 使用 prompt、image_urls(1–20 张)、aspect_ratio、resolution;Flux Kontext 使用 prompt 与 image。
工作流程为:技能分类意图后选择路由,调用 runcomfy run <model_id> 并传入对应 JSON,CLI 向 Model API 发起请求、轮询状态、获取结果,并把 .runcomfy.net / .runcomfy.com 的 URL 下载到 --output-dir。
适用场景
文档列出的常见模式包括:把品牌代言人植入现有素材(Route 1)、同一身份贯穿 SKU 图库(Route 4)、风格化角色进入实拍镜头(Route 2)、广告主视觉中把肖像里的确切人脸放入场景(Route 3)、以及没有参考图时用文字描述新面孔(Route 5)。
限制与注意事项
- 同意与披露:face-swap 属双用途工具。调用前需确认拥有目标人脸与源视频/图片的权利,且输出平台允许合成媒体(很多平台要求披露标签)。技能本身不做门禁,模型 API 会执行任何输入,责任由操作者承担。若请求涉及未经同意使用真人,或可能用于诽谤、色情或其他有害合成媒体,应拒绝。
- 安装来源:仅通过经过验证的包管理器安装,不要将任意远程安装脚本管道进 shell。
- 令牌存储:
runcomfy login会把 API 令牌写入 ~/.config/runcomfy/token.json,权限为 0600;CI/容器中可用 RUNCOMFY_TOKEN 环境变量绕过文件。 - 输入边界:prompt 与素材 URL 通过 --input 以 JSON 字符串传入,CLI 不做 shell 展开,无 shell 注入面。
- 间接提示注入:参考图/音频/视频 URL 属不可信内容,换脸流水线是参考素材注入的已知目标。缓解措施包括:只摄取用户为本次换脸明确提供的 URL;当换脸行为与 prompt 不符时怀疑参考素材;出站端点仅限 model-api.runcomfy.net 与 *.runcomfy.net / *.runcomfy.com,无遥测;单个下载文件超过 2 GiB 会被中止。
- 权限范围:声明的 allowed-tools 为 Bash(runcomfy *),技能不会指示代理运行 runcomfy 子命令以外的任何内容。
- 退出码:0 成功、64 CLI 参数错误、65 输入 JSON 或 schema 不匹配、69 上游 5xx、75 可重试(超时/429)、77 未登录或令牌被拒。完整参考见 docs.runcomfy.com/cli/troubleshooting。
- 文档提到,RunComfy 上许多换脸工作流以完整 ComfyUI 节点图形式存在(ReActor、Flux PuLID、ACE++、Flux Klein head-swap),这些不能由本 CLI 直接访问,但可在平台上作为工作流运行。
相关信息
参见 runcomfy-cli、ai-avatar-video、ai-video-generation、video-edit、image-edit、lipsync 等技能。分类表中未提供与换脸直接对应的分类,且该技能核心用途为图像/视频生成与编辑而非通用办公或编程,故归入 other-ai-tools。