工作流模型管理
工作流模型管理 - 扫描工作流中引用的模型,自动从 HuggingFace、CivitAI 等来源解析并下载缺失模型,支持目录自动识别、来源校验与断点续传。
ComfyUI 工作流模型管理
英文名:ComfyUI Workflow Model Manager ComfyUI Registry node id:
comfyui-workflow-model-manager
自动扫描工作流里引用的模型,从 HuggingFace、ModelScope(魔搭)、CivitAI 等来源解析出可用下载地址,实测测速选出最快的源,并把缺失的模型下载到 ComfyUI 真正会去读的目录里。
界面为中文,定位是上游节点的中文优化版。
这是什么:上游版本的两个致命问题
本项目 fork 自 slahiri/ComfyUI-Workflow-Models-Downloader(MIT 协议,原作者 Siddhartha Lahiri)。
上游 1.8.1 有两个在真实使用中几乎让人放弃的问题:
1. 扫不出模型 —— 搜不到来源
工作流里明明写着 moss\qwen3.5_9b_int8_convrot.safetensors,插件却报告"未找到来源"。原因:
- 带子目录前缀的工作流引用(
moss\xxx.safetensors)查表时匹配不上 - 同一个模型在表格里出现两行,其中一行是"幽灵行",目标目录还判错成
checkpoints - 缺失模型的来源解析完全依赖用户手动点"搜索",插件自己不会去后台找
结果就是:扫出来一堆"缺链接 / 未知",用户只能一个一个手动搜。对新手来说基本等于不可用。
2. 下载不能续传 —— 大文件从头再来
下载一断,缓冲区被丢弃,从 0 开始重下。9GB 的模型断一次就是 9GB 的流量和耐心。加上进度循环里还有一个 NameError(progress_window 未定义),会让每一次下载都异常中断并陷入无限重试。
对一个主要用途就是下大模型的插件来说,这两点是致命的。
我们做了什么改进
搜索:自动找源,且能找到
| 改进 | 说明 |
|---|---|
| 后台自动解析来源 | 扫出缺失模型后自动在后台并发查询 HuggingFace 候选,不需要用户手动点搜索 |
| 带目录前缀的引用能查表 | moss\xxx.safetensors 这类引用现在能正确匹配到模型 |
| 消除幽灵行 | 同一模型不再显示两行,之前那条目录判错的"重复行"已移除 |
| 来源依据可见 | 每个模型标注 ✓ 已校验(客观校验通过)或 ≈ 最佳猜测(只是最佳候选),并展示判定依据:远端文件大小匹配、目标目录匹配、官方发布者命名空间 |
| 解析结果持久化 | 选定的来源跨重启保留,重新扫描不再显示"无链接" |
| 可手动覆盖 | 任何模型都可以用自己的 URL 覆盖自动选择 |
| 扫描纯本地 | 扫描不再联网,模型表格几乎瞬间出现(上游冷启动要等约 10 秒) |
实测:扫描 10.01s → 0.071s(热缓存 0.008s);单模型找源 3.14s → 候选全量 3.12s。
续传:真的能续
| 改进 | 说明 |
|---|---|
| 断点续传保留每个字节 | 下载中断不再丢弃缓冲,从断点继续,而不是从头再来 |
| 修掉中断下载的 NameError | 删除了导致每次下载异常中断、陷入无限重试的 progress_window 未定义错误 |
| 按 safetensors header 校验大小 | 期望大小从文件头读取,半下载状态也能正确比对,不会因为"当前大小"误判 |
| 正确的目标目录 | 模型被保存到加载节点实际读取的 ComfyUI 目录(如 diffusion_models/、text_encoders/),不是拍脑袋猜的分类 |
实测:9.75GB 的 qwen 模型从 61% 平滑续传到 100%,最终字节数与 safetensors header 推导值完全一致。
网络适应:多源测速选优 + 镜像 + 加速
针对国内网络环境,插件内置了三层应对策略:
1. ModelScope(魔搭)作为长期通用选优源
不是为某个工作流临时加的,而是做成了通用架构——魔搭是常驻的第二选源:
- 优先级顺序:内置精选源表(
KNOWN_GOOD_SOURCES)→ 魔搭 → HuggingFace / CivitAI - 命中规则(按优先级):精选源表里显式写的
modelscope_repo→ 按模型名/目录命中的仓库提示表(Comfy-Org/MiniMax-H3、Comfy-Org、Wan-AI、qwen、Comfy-Org/flux、Comfy-Org/stable-diffusion-3、Comfy-Org/stable-diffusion-xl)→ 兜底整个Comfy-Org命名空间 - 只接受精确文件名匹配(
basename全等),不猜相似名——这是修复上游"模糊匹配把taeh3错配到 FLUX 私有库导致 401 死循环"的核心约束 - 目录映射覆盖 23 种:
diffusion_models、text_encoders、vae、loras、controlnet、clip_vision、embeddings、upscale_models、animatediff_models、ipadapter、instantid、pulid、sams、model_patches等 - 实测:魔搭上有若干模型 HuggingFace 根本没有(只有魔搭能提供);对同一模型魔搭实测 2.13 MB/s vs HF,测速后自动选中魔搭
2. HuggingFace 镜像
- 设置项:ComfyUI → 设置 → 工作流模型管理 → 启用镜像 / 镜像域名(默认
hf-mirror.com) - 优先级:插件设置 > 环境变量
HF_ENDPOINT/HF_MIRROR/HF_HUB_ENDPOINT> 直连 - 绘世/Aki 启动器虽然能注入
HF_ENDPOINT,但本插件之前不读它——现在读了 - 镜像同时作用于 HF API 搜索和实际下载,存储的仍是规范 URL
- ⚠️ Windows 上
curl直连镜像可能报CRYPT_E_REVOCATION_OFFLINE(证书吊销检查离线),这是 Windows schannel 的问题不是镜像挂了;插件用 Pythonrequests不受影响,aria2 走--check-certificate=false
3. aria2 多线程加速
- 检测到
aria2c即自动启用(shutil.which),未安装则回落到 Python 下载 - 参数:
--continue=true(续传)、--max-connection-per-server=4、--split=4、--min-split-size=1M、--file-allocation=none --check-certificate=false是必需的:不加会因 Windows 证书吊销检查离线导致每次 TLS 握手失败- 下载面板实时显示速度(MB/s)与剩余时间
4. 真实测速选优
不是"哪个源先返回就用哪个",而是真的拉一段数据测速:
- 每个候选源实际下载 1MB 计时,按速度降序排列
- 候选全部失败时返回"无精确匹配",并给出同族推荐列表(token 重叠匹配,忽略量化词/包装词,排序 = 相似度 → 覆盖度 → 体积接近度)
高分屏画布错位修复
Windows 显示缩放 125% + 浏览器缩放 90%/100% 时,ComfyUI 画布会出现节点与背景网格错位、画布缩在一角。
根因不在前端,而在 comfyui-mixlab-nodes:它覆盖了 LGraphCanvas.drawBackCanvas,用"在压缩后的源码里检索 window.devicePixelRatio 字面量"这种脆弱方式探测设备像素比。新版前端压缩后该字面量已不存在,于是背景网格被永久锁定为 1 倍绘制,而节点按真实 DPR 渲染。
插件内置的 web 扩展会修正背景画布的缩放倍率,使其与前景一致,并跟随浏览器缩放实时变化——不需要改 MixLab,也不需要改前端包。删除 js/wmd_dpr_fix.js 即可完全回滚。
其他
- 中文界面:全部界面、提示、帮助文档均为中文
- 注册表合规:移除了运行时
pip install(Registry 安全政策禁止),依赖由 ComfyUI-Manager 统一安装 - 镜像支持:可配置 HuggingFace 镜像域名,大陆网络直连不稳定时推荐开启
安装
方式一:ComfyUI-Manager(推荐)
在 ComfyUI-Manager 中搜索 "Workflow Models Downloader" 或 "工作流模型管理" 并安装。
本节点在 Registry 上的发布者为
@yezhangdeng,node id 为comfyui-workflow-model-manager。 上游原版(slahiri/comfyui-workflow-models-downloader)仍独立存在,继续服务1.8.1。
方式二:手动安装
cd ComfyUI/custom_nodes
git clone https://github.com/yezhangdeng01/ComfyUI-Workflow-Models-Downloader.git
pip install -r ComfyUI-Workflow-Models-Downloader/requirements.txt
安装后重启 ComfyUI。
使用
- 在 ComfyUI 中打开任意工作流
- 点击顶部菜单的 「工作流模型管理」 按钮
- 查看自动扫描出的模型清单与状态(已存在 / 缺失 / 可下载)
- 对缺失模型点击 下载,或用 下载全部缺失 批量处理
找不到来源的模型
- 插件会自动在后台解析来源,稍等片刻即可看到结果
- 标注
≈ 最佳猜测的表示尚未通过客观校验,可点 模糊匹配 找相似模型,或 高级搜索(Tavily)扩大范围 - 仍然拿不到时,在 工作流 页签可直接粘贴来源链接覆盖
直链下载
- 进入 下载 页签
- 粘贴模型 URL(HuggingFace、CivitAI 或直链)
- 点 检查链接 自动识别文件名与类型
- 按需调整文件名 / 目录
- 点 下载
界面说明
| 页签 | 用途 | |---|---| | 工作流模型 | 扫描当前工作流所需模型,显示状态、来源与依据 | | 下载 | 直链下载、进行中的任务、历史记录 | | 本地模型 | 按目录浏览已安装模型,查看路径、修改时间、删除 | | 工作流 | 三栏布局:工作流列表 → 该工作流的模型 → 模型详情与来源管理 | | 帮助 | 内置 FAQ 与排障说明 |
支持的模型类型
- Checkpoints(SD1.5 / SDXL / SD3 / Flux)
- Diffusion Models(Wan / LTX / HunyuanVideo / MOSS 等)
- VAE
- LoRA / LoHa / LoKr
- Text Encoders(T5 / CLIP / Qwen 等)
- CLIP Vision
- ControlNet
- IP-Adapter
- Upscalers(ESRGAN 等)
- SAM / SAM2
- 以及更多……
环境要求
- ComfyUI
- Python 3.10+
requestshuggingface_hub
可选(用于加速下载)
- aria2 —— 约 4 倍速下载,支持自动续传
API 密钥
在 设置 页签(ComfyUI 菜单 → 设置 → 工作流模型管理)中配置:
| 设置项 | 用途 | 说明 |
|---|---|---|
| HuggingFace 令牌 | 下载门控模型(Flux、SD3 等)必需 | huggingface.co/settings/tokens |
| CivitAI API 密钥 | 下载 CivitAI 模型必需 | civitai.com/user/account |
| Tavily API 密钥 | 可选,开启 AI 高级搜索 | tavily.com |
| 启用镜像 | 可选,大陆网络直连 HF 不稳时开启 | 改写 HF API 与下载请求到镜像域名 |
| 镜像域名 | 镜像地址 | 默认 hf-mirror.com |
| 最大并行下载数 | 同时下载几个模型 | 默认 8 |
| 启用高级搜索 | 开启 Tavily 搜索 | 默认开启 |
插件的 7 个设置项都注册在 ComfyUI 原生设置面板里,分类为「工作流模型管理」,重启 ComfyUI 后生效。
后续维护
这是一个持续维护的中文优化分支。使用中遇到问题会继续修复更新。
完整改动记录见 CHANGELOG.md / CHANGELOG.zh.md。
致谢与许可
- 上游作者:slahiri/ComfyUI-Workflow-Models-Downloader —— MIT 协议,原版权声明保留
- 本分支改进与维护:yezhangdeng01
MIT License