章节介绍:本文将带您详细解析 ComfyUI 工作流的核心目录结构,逐一介绍各个目录的作用及其在工作流中的位置和作用,帮助您快速掌握 ComfyUI 的基本框架和使用方法。无论是新手还是有经验的开发者,通过本文,您都能更加轻松地配置、扩展和定制 ComfyUI,实现高效的 AI 生成工作流。
其目录结构相对复杂,每个目录都对应特定的功能模块,例如模型管理、配置文件、输入输出文件夹、以及扩展插件等。
本文将带您详细解析 ComfyUI 工作流的核心目录结构,逐一介绍各个目录的作用及其在工作流中的位置和作用,帮助您快速掌握 ComfyUI 的基本框架和使用方法。无论是新手还是有经验的开发者,通过本文,您都能更加轻松地配置、扩展和定制 ComfyUI,实现高效的 AI 生成工作流。
一、主目录结构及说明:
序号 | 目录名称 | 说明 |
---|---|---|
1 | .ci/ | CI(持续集成)目录,通常包含自动化测试和部署的脚本,用于在代码提交时触发测试、构建和部署等流程。 |
2 | .git/ | Git 版本控制的隐藏文件夹,存储项目的版本历史、配置文件和其他 Git 数据。 |
3 | .github/ | GitHub 特定配置目录,通常包含 GitHub Actions 工作流文件(用于持续集成/部署自动化)、Issue 模板、PR 模板等。 |
4 | pycache/ | Python 缓存目录,存放编译后的 .pyc 文件,目的是加快 Python 脚本的加载速度。 |
5 | api_server/ | 用于实现 API 服务器的目录,可能包含用于处理 HTTP 请求的代码,实现前端与后端的交互。 |
6 | app/ | 包含主应用的代码或前端代码,例如 UI、业务逻辑等。 |
7 | comfy/ | 核心代码文件夹,通常存放项目的主代码库和核心功能模块。 |
8 | comfy_execution/ | 包含 ComfyUI 的执行逻辑或与任务调度相关的代码。 |
9 | comfy_extras/ | 额外功能目录,可能包含插件、扩展模块或附加的非核心功能。 |
10 | custom_nodes/ | 存放自定义节点的文件夹,用于添加特定功能的节点,允许用户扩展 ComfyUI 的默认功能 |
11 | input/ | 用于存放输入文件的目录,例如图像、文本或其他供处理的资源。 |
12 | model_filemanager/ | 模型文件管理器,可能用于管理机器学习或深度学习模型文件,包括加载、保存和更新模型。 |
13 | models/ | 存放模型文件的目录,通常包含训练好的深度学习模型(如 .pt、.ckpt 文件等)。 |
14 | notebooks/ | Jupyter Notebook 文件的目录,可能包含用于调试、实验或教程的代码。 |
15 | output/ | 输出文件夹,存储生成的图像、日志或其他输出文件。 |
16 | script_examples/ | 存放示例脚本的文件夹,用于演示如何使用项目中的功能或 API。 |
17 | temp/ | 临时文件夹,存放临时文件和缓存文件,通常用于存储中间数据或缓存。 |
18 | tests/ | 测试目录,包含项目的单元测试、集成测试或其他测试代码。 |
19 | tests-unit/ | 单元测试目录,专门用于测试项目中的独立模块或函数。 |
20 | user/ | 存储用户配置、用户数据或用户特定文件的目录。 |
21 | utils/ | 工具函数目录,包含一些辅助代码或通用工具模块,通常用于支持主应用功能。 |
22 | web/ | 前端文件夹,可能包含 HTML、CSS、JavaScript 文件,用于构建用户界面或 Web 前端。 |
另外最常接触的文件有两个:
extra_model_paths.yaml.example(文件):如果你安装了stable-diffusion-webui,要进行模型的共享,就要修改这个文件里的base_path,可以做到模型的复用,节约硬盘空间,修改完后,保存文件,并将文件扩展名后面的“.example”去掉即可。
requirements.txt(文件):这个文件是项目的依赖文件,可以在这里查看相关依赖的库及版本号。
二、子目录结构说明:
我们最常用也是平时操作最为频繁的目录只有两个,下面将这个目录说明如下:
主目录 | 子目录 | 目录说明 |
custom_nodes/ | 存放自定义节点的文件夹,用于添加特定功能的节点,允许用户扩展 ComfyUI 的默认功能。 | |
models/ | BiRefNet/ | 可能用于双向参考网络(Bidirectional Reference Network)相关的模型,通常用于参考图像的双向匹配或比对任务。 |
checkpoints | 存放模型的检查点文件,例如 .ckpt 或 .pt 文件。这些文件通常保存了训练好的模型权重,可以在不同的阶段恢复模型状态。 | |
clip或clip_vision | 用于存放 OpenAI 的 CLIP(Contrastive Language–Image Pretraining)模型。clip_vision 可能是 CLIP 模型的视觉处理部分,专注于图像理解。 | |
configs/ | 存放模型的配置文件,通常是 .yaml 或 .json 格式,用于指定模型结构和参数设置。 | |
controlnet/ | 存放 ControlNet 模型,用于在生成过程中提供额外的控制信号。它是一种增强稳定扩散(Stable Diffusion)的模型,允许用户更细粒度地控制生成的图像内容。 | |
diffusers/ | 存放扩散模型(Diffusion Models)的目录。扩散模型是一种生成式模型,常用于图像生成、去噪等任务 | |
diffusion_models/ | 扩散模型的存储目录,可能与 diffusers/ 类似,包含不同类型的扩散模型。 | |
embeddings/ | 存放文本嵌入(Text Embeddings)文件,用于将文本转化为向量,以便模型理解和处理。通常用于文本到图像生成任务中。 | |
gligen/ | 基于生成模型的图像生成相关,GLIGEN 是一种生成模型,允许用户控制生成图像的结构或布局。 | |
hypernetworks/ | 超网络(Hypernetwork)模型目录,通常用于动态调整模型参数,以在特定上下文中生成更高质量的输出。 | |
loras/ | LoRA(Low-Rank Adaptation)模型,用于微调主模型的一种技术,通常在少量数据或特定任务上进行微调。 | |
style_models/ | 风格迁移或图像风格化的模型,允许用户将特定的艺术风格应用到图像中。 | |
unet/ | U-Net 模型,是一种常用于图像分割的深度学习模型结构,尤其适用于医学图像和生成式任务。 | |
upscale_models/ | 图像放大模型目录,包含用于超分辨率或图像放大(提升清晰度)的模型。 | |
vae/ 和 vae_approx/ | VAE(Variational Autoencoder)模型,用于调整生成图像的颜色、细节和质量。 |