工作流文件依赖于其他文件
我们经常可以从社区里获取到各种各样的工作流文件,但往往在运行之后发现工作流无法直接运行,这是因为一个工作流文件除了工作流自身之外还要依赖于其它文件,比如媒体资产的输入、模型、自定义节点、相关的 Python 依赖等等。 ComfyUI 的工作流只有在所有相关依赖条件都被满足的情况下才能正常运行。 ComfyUI 工作流的运行依赖主要分为以下几类:- 资产(媒体文件包括音频、视频、图像等等输入)
- 自定义节点
- Python 依赖
- 模型(如:Stable Diffusion 模型等)
工作流文件依赖其他文件
我们经常从社区获取各种工作流文件,但往往发现工作流在加载之后无法直接运行。这是因为工作流文件除了自身之外,还依赖其他文件,例如媒体资产输入、模型、自定义节点、相关的 Python 依赖关系等。 只有当所有相关依赖关系都得到满足时,ComfyUI 工作流才能正常运行。 ComfyUI 工作流依赖关系主要分为以下几类:- 资产(媒体文件,包括音频、视频、图像和其他输入)
- 自定义节点
- Python 依赖关系
- 模型(例如 Stable Diffusion 模型等)
资产
AI 模型就是资产的一个示例。在媒体制作中,资产是提供输入数据的媒体文件。例如,视频编辑程序处理存储在磁盘上的影片文件。编辑程序的项目文件保存了指向这些影片文件资产的链接,从而实现不会修改原始影片文件的非破坏性编辑。 ComfyUI 的工作方式与此相同。只有找到并加载所有必填资产后,工作流才能运行。生成式 AI 模型、图像、影片和声音都是工作流可能依赖的资产示例。因此,这些资产被称为依赖资产或资产依赖。自定义节点
自定义节点是 ComfyUI 的重要组成部分,可扩展其功能。它们由社区创建,安装后可以为你的工作流添加新的功能。Python 依赖
ComfyUI 是一个基于 Python 的项目。我们构建了一个独立的 Python 环境来运行 ComfyUI,所有相关依赖都会安装在这个隔离的 Python 环境中。ComfyUI 的依赖
你可以在 requirements.txt 文件中查看 ComfyUI 当前的依赖:comfyui-frontend-package 依赖版本,如果你需要切换不同的前端版本,你可以在这里查看对应的版本信息。
自定义节点的依赖
感谢 ComfyUI 社区众多作者的努力,使得我们可以通过使用不同的自定义节点(Custom Nodes)来扩展 ComfyUI 的功能,实现令人赞叹的创意。 通常,每个自定义节点都会有自己的依赖,并且每个自定义节点都会有一个独立的requirements.txt 文件。
如果你使用 ComfyUI Manager 来安装自定义节点,那么通常 ComfyUI Manager 会自动帮你安装对应的依赖。
当然也有一些情况需要你手动安装依赖。目前,所有的自定义节点都会被安装至 ComfyUI/custom_nodes 目录下。
你需要在你的 ComfyUI Python 环境中进入对应插件的目录,然后执行 pip install -r requirements.txt 来安装对应的依赖。
如果你使用的是 Windows 便携版,你可以在便携版的 ComfyUI_windows_portable 目录下使用以下指令:
依赖冲突
依赖冲突是我们在使用 ComfyUI 时经常遇到的问题。你可能会发现在安装或更新某个自定义节点之后,之前安装的一些自定义节点在 ComfyUI 的节点库中找不到了,或者出现了错误弹窗,其中一个可能的原因就是依赖冲突。 依赖冲突的原因可能有很多,比如:- 自定义节点的版本锁定
open_clip_torch==2.26.1),而其他插件可能要求更高的版本(如 open_clip_torch>=2.29.0),导致无法同时满足两种版本要求。
解决方法:你可以试着把对应的固定版本依赖改为范围约束,例如 open_clip_torch>=2.26.1,然后重新安装依赖来解决这些问题。
- 环境污染
PyTorch,但要求的是不同的 CUDA 版本,后安装的插件会破坏原有的环境。
解决方法:
- 你可以试着在 Python 虚拟环境中手动安装特定版本的依赖,来解决这类问题。
- 或者为不同的插件创建不同的 Python 虚拟环境,来解决这类问题。
- 试着逐个安装插件,在安装完每个插件之后,重新启动 ComfyUI 来观察是否会出现依赖冲突。
- 自定义节点依赖版本与 ComfyUI 依赖版本不兼容
模型
模型是 ComfyUI 的重要资产依赖。各类自定义节点和工作流都围绕特定模型构建,例如 Stable Diffusion 系列、Flux 系列、LTXV 等。 这些模型是使用 ComfyUI 进行创作的重要基础,因此我们需要确保使用的模型正常可用。通常,模型会保存在ComfyUI/models/ 目录的对应子目录中。当然,你也可以通过修改模板创建 extra_model_paths.yaml,让 ComfyUI 识别额外的模型路径。
这样可以实现多个 ComfyUI 实例共享同一个模型库,从而减少磁盘占用。
软件
像 ComfyUI 这样的高级应用也有软件依赖关系。这些是应用运行所必需的编程代码和数据库。自定义节点就是软件依赖关系的示例。在更基础的层面上,Python 编程环境是 ComfyUI 最根本的依赖。运行特定版本的 ComfyUI 需要正确版本的 Python。Python、ComfyUI 和自定义节点的更新都可以在 ComfyUI Manager 窗口中处理。