ComfyUI-OpenClaw:安全优先的ComfyUI自动化扩展,LLM辅助+API+Webhook全支持

插件4小时前发布 小马良
1 0

想给ComfyUI加自动化能力,又怕远程访问、密钥泄露、接口滥用?ComfyUI-OpenClaw就是答案——这是一套以安全优先为核心的自定义节点包,既能实现LLM辅助创作、Webhook触发、计划任务等自动化功能,又通过严格的默认安全策略,守住管理员边界,避免通用自动化工具的安全隐患。

它不做“万能助手平台”,而是专注让ComfyUI成为可靠的自动化目标,所有功能都围绕“安全+可控”设计,适合需要自动化但重视权限和数据安全的用户。

ComfyUI-OpenClaw:安全优先的ComfyUI自动化扩展,LLM辅助+API+Webhook全支持

核心安全立场:和“便利优先”工具的本质区别

ComfyUI-OpenClaw的安全策略全是“默认拒绝”,只有手动配置才开放,从根源降低风险:

  • 默认仅限localhost访问,远程访问需手动开启;
  • 所有写入操作(保存配置、密钥存储等)需验证Admin Token;
  • Webhooks默认拒绝调用,必须配置认证才能使用;
  • 严格防范SSRF攻击(自定义LLM基础URL+回调白名单);
  • 密钥绝不存浏览器,服务器端存储也仅限本地单用户场景。

安装方式:两种方案,新手推荐Manager

方案1:ComfyUI-Manager(推荐)

  1. 打开ComfyUI的Manager → Custom Nodes Manager;
  2. 搜索“ComfyUI-OpenClaw”安装;
  3. 重启ComfyUI即可。

方案2:Git手动安装

# 克隆仓库到custom_nodes目录
git clone <仓库地址> ComfyUI/custom_nodes/comfyui-openclaw
# 重启ComfyUI

若UI加载成功但接口返回404,说明Python部分未加载,需看文末“故障排除”。

快速入门:最小配置就能用

1. 配置LLM密钥(核心功能必需)

至少设置以下一种密钥(优先用环境变量,避免明文存储):

  • OPENCLAW_LLM_API_KEY(通用密钥);
  • 特定提供商密钥(推荐,参考services/providers/catalog.py)。

可选:本地单用户便捷存储

若仅本地使用,可在OpenClaw面板的“Settings → UI Key Store”存储密钥(会写入服务器端{STATE_DIR}/secrets.json),但环境变量始终优先级更高。

2. 配置Webhook认证(使用/webhook*接口必需)

Webhooks默认禁用,需设置以下任一认证方式:

# Bearer令牌认证
OPENCLAW_WEBHOOK_AUTH_MODE=bearer
OPENCLAW_WEBHOOK_BEARER_TOKEN=你的令牌

# 或HMAC认证
OPENCLAW_WEBHOOK_AUTH_MODE=hmac
OPENCLAW_WEBHOOK_HMAC_SECRET=你的密钥

# 或同时支持两种
OPENCLAW_WEBHOOK_AUTH_MODE=bearer_or_hmac

# 可选:开启重放保护
OPENCLAW_WEBHOOK_REQUIRE_REPLAY_PROTECTION=1

3. 可选(推荐):设置Admin Token

管理员操作(保存配置、测试LLM、密钥存储)需验证Admin Token,避免未授权访问:

# 设置服务器端Admin Token
OPENCLAW_ADMIN_TOKEN=你的管理员令牌
  • 客户端调用需在请求头添加X-OpenClaw-Admin-Token: 你的令牌
  • 未设置Token时,仅localhost允许管理员操作(禁止在共享/公网环境使用此模式);
  • 若需远程管理(风险高),需手动设置OPENCLAW_ALLOW_REMOTE_ADMIN=1

Windows环境变量设置(新手友好)

PowerShell(仅当前会话)

$env:OPENCLAW_LLM_API_KEY="你的API密钥"
$env:OPENCLAW_ADMIN_TOKEN="你的管理员令牌"

PowerShell(持久化,新会话生效)

setx OPENCLAW_LLM_API_KEY "你的API密钥"
setx OPENCLAW_ADMIN_TOKEN "你的管理员令牌"

CMD/便携启动器

# CMD当前会话
set OPENCLAW_LLM_API_KEY=你的API密钥

# Portable .bat启动器(ComfyUI启动前添加)
set OPENCLAW_ADMIN_TOKEN=你的管理员令牌

核心功能:节点+扩展UI+API

1. 实用自定义节点

在ComfyUI中显示为openclaw:*,核心节点包括:

  • openclaw: Prompt Planner:LLM辅助规划提示词;
  • openclaw: Prompt Refiner:优化提示词细节;
  • openclaw: Image to Prompt:图像转提示词;
  • openclaw: Batch Variants:批量生成变体。

2. 扩展UI面板

OpenClaw面板集成在ComfyUI中,支持配置管理、密钥存储、包管理等,所有操作优先调用/api/openclaw/*后端接口,确保安全。

3. 完整API体系(安全可控)

基础路径

支持新前缀/openclaw/*和旧前缀/moltbot/*,浏览器/前端建议用/api/openclaw/*

核心API分类

接口类型示例接口权限/说明
可观测性(只读)/openclaw/health(状态)、/openclaw/logs/tail(日志)本地允许,远程需OBSERVABILITY_TOKEN
LLM配置/openclaw/config(获取/更新)、/openclaw/llm/test(测试连接)更新/测试需Admin Token
Webhooks/openclaw/webhook/submit(提交队列)需配置认证,支持幂等/重放保护
触发器/审批/openclaw/triggers/fire(触发模板)、/openclaw/approvals/approve(审批)需Admin Token
计划任务/openclaw/schedules(增删改查)需Admin Token
预设/包管理/openclaw/presets(预设)、/openclaw/packs/import(包导入)写入需Admin Token

Webhook请求示例(最小配置)

{
  "version": 1,
  "template_id": "portrait_v1",
  "profile_id": "SDXL-v1",
  "inputs": { "requirements": "画面中央是一位古风女性" },
  "job_id": "可选任务ID",
  "trace_id": "可选跟踪ID",
  "callback": { "url": "https://example.com/callback" }
}

远程控制:Connector进程(安全不暴露端口)

OpenClaw自带独立的Connector进程,可通过Telegram/Discord远程控制ComfyUI,核心优势是仅出站连接,无需开放入站端口

  • 远程查看任务状态、队列进度;
  • 通过聊天命令/run提交模板(支持自由文本/key=value模式);
  • 手机端审批/拒绝暂停的工作流;
  • 全程安全,不暴露ComfyUI公网端口。

/run命令示例

# 自由文本模式(自动映射到提示字段)
/run z 画面中央是一位年轻女性… seed=-1

# Key=value显式模式
/run z positive_prompt="a cat" seed=-1

seed=-1为随机种子,固定数值可重现输出。

故障排除:常见问题解决

1. UI显示“Backend Not Loaded”/接口404

原因:ComfyUI未加载Python部分或路由注册失败。
解决步骤:

  1. 查看ComfyUI启动日志,搜索openclaw/ModuleNotFoundError
  2. 确认包文件夹在custom_nodes/下且含__init__.py
  3. 运行烟雾测试:
    python scripts/openclaw_smoke_import.py --verbose
    
  4. 手动验证基础接口:GET /api/openclaw/health

2. Webhooks返回403 auth_not_configured

解决:配置OPENCLAW_WEBHOOK_AUTH_MODE等环境变量,重启ComfyUI。

3. Admin Token不生效

注意:OPENCLAW_ADMIN_TOKEN服务器端环境变量,UI仅能用于认证请求,无法设置/保存服务器端令牌。

其他关键配置

执行预算(防止资源滥用)

通过环境变量限制并发/渲染大小:

# 总并发上限(默认2)
OPENCLAW_MAX_INFLIGHT_SUBMITS_TOTAL=2
# 单Webhook并发(默认1)
OPENCLAW_MAX_INFLIGHT_SUBMITS_WEBHOOK=1
# 最大渲染工作流大小(默认512KB)
OPENCLAW_MAX_RENDERED_WORKFLOW_BYTES=524288

LLM故障转移(提升可用性)

# 故障转移模型/提供商(CSV格式)
OPENCLAW_FALLBACK_MODELS=claude-3-sonnet,gemini-pro
OPENCLAW_FALLBACK_PROVIDERS=anthropic,google

状态目录与日志

  • 默认状态目录:Windows(%LOCALAPPDATA%\comfyui-openclaw\)、macOS(~/Library/Application Support/comfyui-openclaw/)、Linux(~/.local/share/comfyui-openclaw/);
  • 日志文件:openclaw.log(兼容旧版moltbot.log);
  • 自定义状态目录:OPENCLAW_STATE_DIR=/自定义路径

⚠️ 安全与免责:必看!

  1. 密钥处理:优先用环境变量,定期轮换,切勿提交到版本控制;
  2. 部署加固:
    • 本地/单用户:避免浏览器长期存储密钥;
    • 局域网/共享:强制Admin Token、限制IP;
    • 公网/隧道:开启HTTPS、严格白名单、最小权限;
  3. 免责声明:本项目按“现状”提供,用户需自行负责密钥管理、配置安全、网络暴露等,维护者不承担未授权访问、数据丢失等责任。
© 版权声明

相关文章

暂无评论

none
暂无评论...