工作流文件依赖于其他文件
我们经常从社区获取各种工作流文件,但常常在加载之后发现工作流无法直接运行。这是因为一个工作流文件除了工作流本身之外,还依赖其他文件,例如媒体资产输入、模型、自定义节点、相关的 Python 依赖等。 只有当所有相关依赖都得到满足时,ComfyUI 工作流才能正常运行。 ComfyUI 工作流的依赖主要分为以下几类:- 资产(媒体文件,包括音频、视频、图像以及其他输入)
- 自定义节点
- Python 依赖
- 模型(如 Stable Diffusion 模型等)
资产
AI 模型是资产的一个例子。在媒体制作中,资产是提供输入数据的媒体文件。例如,视频编辑程序对存储在磁盘上的视频文件进行操作。编辑程序的项目文件保存着对这些视频文件资产的链接,从而允许在不更改原始视频文件的情况下进行非破坏性编辑。 ComfyUI 的工作方式相同。只有在找到并加载所有必需的资产后,工作流才能运行。生成式 AI 模型、图像、视频和声音是工作流可能依赖的资产的一些例子。因此,这些资产被称为依赖资产或资产依赖项。自定义节点
自定义节点是 ComfyUI 的重要组成部分,可扩展其功能。它们由社区创建,安装后可以为你的工作流添加新功能。Python 依赖项
ComfyUI 是一个基于 Python 的项目。我们构建了一个独立的 Python 环境来运行 ComfyUI,并且所有相关依赖项都安装在这个隔离的 Python 环境中。ComfyUI 依赖项
你可以在 requirements.txt 文件中查看 ComfyUI 当前的依赖项:comfyui-frontend-package 依赖版本。如果你需要切换到不同的前端版本,可以在此处查看版本信息。
自定义节点依赖项
得益于 ComfyUI 社区中众多作者的辛勤付出,我们可以通过使用不同的自定义节点来扩展 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 实例就可以共享同一个模型库,从而减少磁盘占用。