ComfyUI-Login 安装与鉴权教程
本文介绍了 ComfyUI-Login 插件的安装与鉴权配置方法。针对公网暴露的 ComfyUI 实例,通过安装该插件可设置密码登录,并为脚本和 HTTP API 提供 Token 鉴权。文章详细说明了 git clone 与 ZIP 两种安装方式、首次登录设置、API Token 的三种获取途径(启动日志、PASSWORD 文件、浏览器 Cookie),以及 API 调用时的鉴权方式与 curl 自测示例。
面向 已安装好 ComfyUI 环境 的机器。ComfyUI 默认无登录,公网暴露时任何人可访问。安装 ComfyUI-Login 后可设密码,并为脚本 / HTTP API 提供 Token 鉴权。
下文路径相对于 ComfyUI 根目录(记为 ComfyUI/),请换成你的实际路径。
| 项目 | 路径 / 说明 |
|---|---|
| 登录插件 | ComfyUI/custom_nodes/ComfyUI-Login/ |
| 密码与 token 存储 | ComfyUI/login/PASSWORD(首行常为 API token) |
| 登录页 | http://<主机>:<端口>/login |
| 工作流主页 | http://<主机>:<端口>/(需先登录) |
0. 为什么要装
| 场景 | 不装 Login | 装 Login 后 |
|---|---|---|
| 云 GPU 公网 IP | 谁都能打开 ComfyUI、排队生图 | 需账号密码才能进网页 |
| 脚本 / 客户端调 API | 无法鉴权或只能裸奔 | 用token 或 Cookie 调 POST /prompt |
| 多人共用一台机 | 难区分、难回收权限 | 统一密码 + 固定 token |
API 对接请优先用 Token(启动后写入 login/PASSWORD 或日志里 token=$2b$...)。浏览器 Cookie 适合临时手工 curl,易过期,不适合长期保存在脚本里。
1. 安装 ComfyUI-Login
插件必须在 ComfyUI/custom_nodes/ComfyUI-Login,不要 clone 到 ComfyUI 根目录。
1.1 git clone(推荐)
cd ComfyUI/custom_nodes
git clone https://github.com/liusida/ComfyUI-Login.git
cd ComfyUI-Login
pip3 install -r requirements.txt
GitHub 较慢可用镜像:
cd ComfyUI/custom_nodes
git clone https://ghproxy.net/https://github.com/liusida/ComfyUI-Login.git ComfyUI-Login
cd ComfyUI-Login && pip3 install -r requirements.txt
1.2 安装失败时:ZIP 方式
cd ComfyUI/custom_nodes
wget -O ComfyUI-Login.zip https://ghproxy.net/https://github.com/liusida/ComfyUI-Login/archive/refs/heads/main.zip
unzip ComfyUI-Login.zip
mv ComfyUI-Login-main ComfyUI-Login
rm -f ComfyUI-Login.zip
cd ComfyUI-Login && pip3 install -r requirements.txt
1.3 安装后必做
完整重启 ComfyUI(结束旧进程再启动)。仅刷新浏览器不会加载插件。
cd ComfyUI
python3 main.py --listen 0.0.0.0 --port 8188
本机调试可将 0.0.0.0 改为 127.0.0.1。远程访问需防火墙 / 安全组放行对应 TCP 端口。
2. 首次登录(网页)
- 浏览器打开:
http://<主机IP或域名>:<端口>/login例:http://127.0.0.1:8188/login、http://139.x.x.x:6889/login - 首次访问无默认账号,按页面提示 自行设置用户名和密码。
- 登录成功后跳转到 ComfyUI 主界面,可正常 Load 工作流、Queue Prompt。
- 未登录直接访问
/会被重定向到/login。
忘记密码
rm -f ComfyUI/login/PASSWORD
然后 重启 ComfyUI,再打开 /login 重新设置用户名和密码(会生成新的 token)。
3. 获取 API Token(给脚本 / API 调用)
Token 形如 $2b$12$...(bcrypt 相关字符串),与浏览器 Cookie 里 gAAAA... 不是同一种东西。
3.1 方法一:看启动日志(常用)
重启 ComfyUI 后,在 SSH 终端 或日志文件中查找:
For direct API calls, use token=$2b$12$xxxxxxxx...
复制 $2b$12$ 开头到行末 的整段(含 $),不要带前缀 token= 以外的多余文字。
示例:
cd ComfyUI
python3 main.py --listen 0.0.0.0 --port 8188 2>&1 | tee comfyui.log
# 另开终端:
grep "use token=" comfyui.log
若用平台脚本启动(如 launch_comfy_ui.sh),查平台日志:
grep "use token=" /var/log/sd_service.log | tail -1
3.2 方法二:读 login/PASSWORD 文件
设置过登录密码后,插件会把 token 写在:
ComfyUI/login/PASSWORD
第一行 通常就是 API token:
head -n 1 ComfyUI/login/PASSWORD
输出应类似 $2b$12$...。请 勿将文件内容提交到 git 或发给他人。
3.3 方法三:浏览器 Cookie(临时调试,不推荐长期配置)
- 浏览器已登录 ComfyUI 主站
- F12 → Application(应用)→ Cookies → 你的 ComfyUI 域名
- 找到
AIOHTTP_SESSION,复制 Value(一般以gAAAA开头)
调用 API 时请求头:
Cookie: AIOHTTP_SESSION=你复制的Value
Cookie 会随登出、换密码、重启策略失效,批量任务请用 Token。
4. API 调用说明
4.1 Token 方式(推荐)
请求头:
Authorization: Bearer $2b$12$你的token整段
Content-Type: application/json
或 在 JSON body 里带 token 字段(ComfyUI-Login 常用方式):
{
"prompt": { },
"client_id": "任意唯一字符串",
"token": "$2b$12$你的token整段"
}
4.2 最小 curl 自测
先准备 API Format 工作流 workflow_api.json(界面 Save API Format 导出),再组 request.json:
{
"prompt": { },
"client_id": "test-001",
"token": "$2b$12$你的token"
}
(将 prompt 换成真实工作流对象。)
URL="http://127.0.0.1:8188"
curl -s -X POST "$URL/prompt" \
-H "Content-Type: application/json" \
-d @request.json
成功时返回含 prompt_id 的 JSON。远程把 127.0.0.1 换成公网 IP,并确认安全组已放行端口。
4.3 鉴权对照
| 方式 | 从哪里拿 | 用法 | 稳定性 |
|---|---|---|---|
| Token | 启动日志 /login/PASSWORD 首行 |
Authorization: Bearer 或 JSON token 字段 |
高,推荐 |
| Cookie | 浏览器AIOHTTP_SESSION |
请求头Cookie: |
低,易过期 |
5. 常见问题
| 现象 | 处理 |
|---|---|
没有/login 页面 |
确认插件在custom_nodes/ComfyUI-Login;完整重启 ComfyUI |
日志里没有use token= |
先浏览器打开/login 设一次密码;或查看 login/PASSWORD 是否生成 |
| API 返回 401 / 未登录 | token 抄错、过期;换PASSWORD 首行;勿把 Cookie 当 token 混用 |
| 浏览器能登录,curl 不行 | curl 未带 token/Cookie;检查 URL 端口与http |
| 改密码后旧 token 失效 | 用新启动日志或新PASSWORD 第一行,更新客户端里保存的 token |
| clone Login TLS 失败 | 用 §1.2 ZIP;或换ghproxy.net 镜像地址 |
6. 参考
- 插件仓库:liusida/ComfyUI-Login
- ComfyUI 官方 API:comfyanonymous/ComfyUI