> ## Documentation Index
> Fetch the complete documentation index at: https://docs.comfy.org/llms.txt
> Use this file to discover all available pages before exploring further.

# 依赖关系

> 了解 ComfyUI 中的依赖关系

## 工作流文件依赖于其他文件

我们经常可以从社区里获取到各种各样的工作流文件，但往往在运行之后发现工作流无法直接运行，这是因为一个工作流文件除了工作流自身之外还要依赖于其它文件，比如媒体资产的输入、模型、自定义节点、相关的 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](https://github.com/Comfy-Org/ComfyUI/blob/master/requirements.txt) 文件中查看 ComfyUI 当前的依赖：

```text theme={null}
comfyui-frontend-package==1.32.9
comfyui-workflow-templates==0.7.25
comfyui-embedded-docs==0.3.1
torch
torchsde
torchvision
torchaudio
numpy>=1.25.0
einops
transformers>=4.50.3
tokenizers>=0.13.3
sentencepiece
safetensors>=0.4.2
aiohttp>=3.11.8
yarl>=1.18.0
pyyaml
Pillow
scipy
tqdm
psutil
alembic
SQLAlchemy
av>=14.2.0

#non essential dependencies:
kornia>=0.7.1
spandrel
pydantic~=2.0
pydantic-settings~=2.0
```

随着 ComfyUI 的不断发展，我们可能会相应地调整依赖，例如添加新的依赖或移除不再需要的依赖。
因此，如果你使用 Git 来更新 ComfyUI，那么在拉取最新更新之后，你需要在对应的环境中运行以下指令：

```bash theme={null}
pip install -r requirements.txt
```

这将确保 ComfyUI 的依赖保持最新，以便正常运行。你也可以修改特定软件包的依赖版本，来升级或降级某些依赖。

另外，ComfyUI 的前端 [ComfyUI\_frontend](https://github.com/Comfy-Org/ComfyUI_frontend) 目前是作为一个独立的项目来进行维护，我们会在对应版本稳定之后更新对应的 `comfyui-frontend-package` 依赖版本，如果你需要切换不同的前端版本，你可以在[这里](https://pypi.org/project/comfyui-frontend-package/#history)查看对应的版本信息。

### 自定义节点的依赖

感谢 ComfyUI 社区众多作者的努力，使得我们可以通过使用不同的自定义节点（Custom Nodes）来扩展 ComfyUI 的功能，实现令人赞叹的创意。

通常，每个自定义节点都会有自己的依赖，并且每个自定义节点都会有一个独立的 `requirements.txt` 文件。
如果你使用 [ComfyUI Manager](https://github.com/Comfy-Org/ComfyUI-Manager) 来安装自定义节点，那么通常 ComfyUI Manager 会自动帮你安装对应的依赖。

当然也有一些情况需要你手动安装依赖。目前，所有的自定义节点都会被安装至 `ComfyUI/custom_nodes` 目录下。

你需要在你的 ComfyUI Python 环境中进入对应插件的目录，然后执行 `pip install -r requirements.txt` 来安装对应的依赖。

如果你使用的是 [Windows 便携版](/zh/installation/comfyui_portable_windows)，你可以在便携版的 `ComfyUI_windows_portable` 目录下使用以下指令：

```
python_embeded\python.exe -m pip install -r ComfyUI\custom_nodes\<custom_node_name>\requirements.txt
```

来安装对应节点的依赖。

### 依赖冲突

依赖冲突是我们在使用 ComfyUI 时经常遇到的问题。你可能会发现在安装或更新某个自定义节点之后，之前安装的一些自定义节点在 ComfyUI 的节点库中找不到了，或者出现了错误弹窗，其中一个可能的原因就是依赖冲突。

依赖冲突的原因可能有很多，比如：

1. 自定义节点的版本锁定

有些插件可能会固定依赖库的精确版本（如 `open_clip_torch==2.26.1`），而其他插件可能要求更高的版本（如 `open_clip_torch>=2.29.0`），导致无法同时满足两种版本要求。

**解决方法**：你可以试着把对应的固定版本依赖改为范围约束，例如 `open_clip_torch>=2.26.1`，然后重新安装依赖来解决这些问题。

2. 环境污染

在执行自定义节点依赖安装的过程中，可能会覆盖其他插件已经安装的库的版本。例如，多个插件可能都依赖 `PyTorch`，但要求的是不同的 CUDA 版本，后安装的插件会破坏原有的环境。

**解决方法**：

* 你可以试着在 Python 虚拟环境中手动安装特定版本的依赖，来解决这类问题。
* 或者为不同的插件创建不同的 Python 虚拟环境，来解决这类问题。
* 试着逐个安装插件，在安装完每个插件之后，重新启动 ComfyUI 来观察是否会出现依赖冲突。

3. 自定义节点依赖版本与 ComfyUI 依赖版本不兼容

这类依赖冲突的问题可能较难解决，你可能需要通过升级/降级 ComfyUI 或者更改自定义节点的依赖版本，来解决这类问题。

**解决方法**：这类依赖冲突的问题可能较难解决，你可能需要通过升级/降级 ComfyUI 或者更改自定义节点的依赖版本，来解决这类问题。

## 模型

模型是 ComfyUI 的重要资产依赖。各类自定义节点和工作流都围绕特定模型构建，例如 Stable Diffusion 系列、Flux 系列、LTXV 等。
这些模型是使用 ComfyUI 进行创作的重要基础，因此我们需要确保使用的模型正常可用。通常，模型会保存在 `ComfyUI/models/` 目录的对应子目录中。当然，你也可以通过修改模板创建 [extra\_model\_paths.yaml](https://github.com/Comfy-Org/ComfyUI/blob/master/extra_model_paths.yaml.example)，让 ComfyUI 识别额外的模型路径。
这样可以实现多个 ComfyUI 实例共享同一个模型库，从而减少磁盘占用。

## 软件

像 ComfyUI 这样的高级应用也有***软件依赖关系***。这些是应用运行所必需的编程代码和数据库。自定义节点就是软件依赖关系的示例。在更基础的层面上，Python 编程环境是 ComfyUI 最根本的依赖。运行特定版本的 ComfyUI 需要正确版本的 Python。Python、ComfyUI 和自定义节点的更新都可以在 **ComfyUI Manager** 窗口中处理。

<img src="https://mintcdn.com/dripart/Rig0_LOInmwVbVSB/images/concepts/core-concepts_dependecies_custom-nodes-manager.png?fit=max&auto=format&n=Rig0_LOInmwVbVSB&q=85&s=835aa06ad002a4231415f525c0a88b7c" alt="ComfyUI 自定义节点管理器" width="1920" height="1080" data-path="images/concepts/core-concepts_dependecies_custom-nodes-manager.png" />
