Skip to content

Latest commit

 

History

History
250 lines (186 loc) · 11.5 KB

README.zh.adoc

File metadata and controls

250 lines (186 loc) · 11.5 KB

ComfyUI Windows 多节点整合包

界面截图

中文 | English

类似 ComfyUI 官方的 Standalone Portable 整合包,但是更大。

特点

  • 预装了 30+ 自定义节点,包括:

  • 包含 240+ 版本兼容的 Python 包,包括:

    • 需要编译安装的 insightfacedlibCLIP

    • Comfy 官方包里没带的 xFormers,细节参见 关于 xFormers.

  • 仅预置了少量会卡程序启动的功能性模型,绘图模型还请用户自行下载。

  • 使用 GitHub 流水线打包,方便 DIY。用户无需配置 CI/CD,只需在 GitHub 上 Fork 仓库,即可运行打包脚本。 【操作方法】

如何使用

  1. 仅支持 NVIDIA 显卡,最好先装好最新驱动

  2. 在发布页面下载整合包:

  3. 将 SD 模型放到 ComfyUI\models\checkpoints

    • 可以随意建立子目录,便于分类

  4. 编辑启动脚本

    • 大陆地区用户推荐先将 中文脚本 目录下的文件复制到主目录,并编辑 run_cn.bat

    • 如用户可直接访问 GitHub,编辑 run_nvidia_gpu.bat 即可

    • 如果不想自动打开浏览器,在启动脚本中添加启动参数 --disable-auto-launch

    • 如果正在用 40 系及未来的 GPU,可尝试添加启动参数 --fast,有 魔法

  5. 执行启动脚本。启动后程序会自动打开浏览器,也可手动访问: http://localhost:8188/

  6. 点击 ComfyUI 页面右上角的 齿轮(⚙)图标可修改设置,找到 AGL 可以修改语言(默认 English)。

运行 3D-Pack 前置条件

  1. 安装 Visual Studio Build Tools 2022 ( 下载页面 | 安装程序 ), 选择安装“桌面C++开发”,可选项仅需这两个:

    • MSVC 生成工具(最新即可)

    • 用于 Windows 的 C++ CMake 工具

    • 注:3D 工作流需要 JIT 编译 PyTorch C++ 扩展,所以需要编译工具。如已安装 Visual Studio C++ 工作负载,不必重复安装。

  2. 安装 CUDA Toolkit 12.4.1, 只需安装 Libraries 与 Compilers

  3. 编辑 run_nvidia_gpu.bat,根据你的 GPU 架构 来精简 TORCH_CUDA_ARCH_LIST,以节约运行时的 JIT 编译耗时。

在成功启动 ComfyUI 并加载 ComfyUI-3D-Pack 后,推荐先执行 TripoSR 工作流,该工作流所需模型文件较小,执行较快,且成功率高。

此外请注意,Comfy3D 还会在执行各节点时下载所需模型,而访问 HuggingFace 可能需要挂代理。中文脚本默认走国内代理。

使用技巧

  1. 如果在其他位置已经保存了模型文件,且不想移动,可以配置程序加载:

    • ComfyUI 目录下的 extra_model_paths.yaml.example 重命名为 extra_model_paths.yaml

    • 编辑 extra_model_paths.yaml,根据不同的目录结构,编辑掉对应的注释

    • base_path 外的条目都可以随意增删,用于映射新加的子目录,程序会全部加载

  2. 如果需要挂代理,编辑 run_nvidia_gpu.bat,在开头加上:

    set HTTP_PROXY=http://localhost:1081
    set HTTPS_PROXY=http://localhost:1081
  3. 善加利用 ComfyUI-Manager (ComfyUI 页面右下角 Manager 按钮),可用它来安装更多自定义节点,或更新 ComfyUI 及节点,也可以禁用不需要的节点。

    • 如果觉得一些用不到的节点影响了启动时间,可以将其禁用。

  4. 如何大更新:ComfyUI-Manager 可以完成大部分的更新,但如果想要“翻新式”更新,可以先删除 python_embeded 目录,再将新版压缩包中的同名目录解压到原来位置即可。可能需要额外在 ComfyUI-Manager 中“try fix”。

细节

预置自定义节点列表

Table 1. 工作空间

ComfyUI Manager

ComfyUI 翻译

Crystools

ComfyUI-to-Python-Extension

Table 2. 综合

Comfyroll Studio

ComfyUI Essentials by cubiq

Derfuu Modded Nodes

Custom Scripts by pythongosssss

Efficiency Nodes by jags111

KJNodes

Mikey Nodes

rgthree Nodes

smZ(shiimizu) Nodes

Use Everywhere

WAS Node Suite

ComfyUI-Easy-Use

Table 3. 控制

Advanced ControlNet

ControlNet Auxiliary Preprocessors

Impact Pack

Inspire Pack

InstantID by cubiq

IPAdapter plus

PuLID by cubiq

LayerDiffuse

Portrait Master

ReActor Node

SD Dynamic Thresholding

SDXL Prompt Styler

Segment Anything

Table 4. 视频

AnimateAnyone Evolved

AnimateDiff Evolved

FizzNodes

Frame Interpolation (VFI)

MTB Nodes

Video Helper Suite

Table 5. 更多

3D Pack by MrForExample

Face Analysis by cubiq

Image Selector

Ultimate SD Upscale

WD 1.4 Tagger

ComfyUI-GGUF

依赖项难伺候的热门节点基本都兼容了,而且依然可以正常通过 ComfyUI-Manager 安装其他节点。

如遇兼容性问题,可以尝试在 ComfyUI-Manager 中禁用冲突节点。

关于 xFormers

xFormers 作为优化 PyTorch 性能(交叉注意力机制)的组件出现, 但 PyTorch 自 2.2 版本以来在 Windows 下性能表现已经足够出色,且更具一致性(细微体现), 因此完全可以理解 ComfyUI 官方包为什么选择不带 xFormers。

但是 3D 与视频相关组件对 xFormers 依然有强需求,故出于兼容性保留。

如需禁用 xFormers,在 ComfyUI 启动参数中添加 --use-pytorch-cross-attention 即可。

两者性能高低无定论,需要具体测试。

我也想生成整合包!

GitHub 工作流状态

本仓库使用流水线构建整合包,直接 fork 本仓库即可开始执行 GitHub Workflow。代码库中不含特化配置,也不需要额外配置访问权限。

  1. Fork 后,在页面中找到 Actions

  2. 找到 Build & Upload Package

    • 比如我代码库里的页面长 这样

  3. 找到 Run Workflow,点击运行。

  4. 等待执行完毕(20~40分钟)

    • 如果想要减少压缩耗时,编辑 stage3.sh 并修改参数为 -mx=3 -mfb=32 -md=4m, 总耗时将降至15分钟内,代价是压缩包体积更大。

  5. 找到仓库的 releases 页面,里面会有刚生成的草稿,即可下载或编辑发布。

临时文件

file diff

在 Sandboxie 中监测到的文件变化如图,注册表尚不清楚。

如需配置沙盒,建议在“资源访问”中将程序目录(ComfyUI 上级目录)配置为“完全访问”。

吐槽

个人体验,用沙盒倒不是为了安全考量,主要是避免各种 Python 包运行时乱下文件。尤其是 Huggingface Hub 喜欢下载到 %USERPROFILE%\.cache 下,而有些糙快猛的节点会直接调用其下载器,下载下来的又是 Git LFS blob 文件而非单个模型文件,既不直观又不方便拷贝复用。当然吐槽归吐槽,出图没问题,套沙盒主要还是方便清理临时文件。

广告

Linux/WSL2 用户不妨看看我的 ComfyUI-Docker ,和 Windows 整合包的“又大又全,不易更新”截然相反,我是带着洁癖的眼光来设计 Docker 镜像的,精心挑选了一系列互不冲突且版本最新的依赖项,且本着 KISS 原则仅自带 ComfyUI-Manager,节点繁简交给用户决定,更不用说容器运行本身带来的易于升级、易于清理、安全隔离。

开发理念

代码原本是抄的 ComfyUI 的 GitHub workflow ,后来发现实在是难调试,就重写了一遍脚本。

但打包理念都差不多,都是自带一个免安装的 Python Embedded,半绿色,可移植,依赖项完备,解压即可运行。

不同之处在于,我没有像 comfyanonymous 一样先下载 wheel,再批量安装。因为依赖关系太棘手,我是直接走的 pip install,以便 pip 解析。

感谢

感谢 ComfyUI GitHub workflow ,我的灵感来源于此,一开始的代码也是抄的这个。