教程目录
第5节 ComfyUI工作流目录结构详解
2024-11-08 14:25:09 30 人
章节介绍:本文将带您详细解析 ComfyUI 工作流的核心目录结构,逐一介绍各个目录的作用及其在工作流中的位置和作用,帮助您快速掌握 ComfyUI 的基本框架和使用方法。无论是新手还是有经验的开发者,通过本文,您都能更加轻松地配置、扩展和定制 ComfyUI,实现高效的 AI 生成工作流。

其目录结构相对复杂,每个目录都对应特定的功能模块,例如模型管理、配置文件、输入输出文件夹、以及扩展插件等。

本文将带您详细解析 ComfyUI 工作流的核心目录结构,逐一介绍各个目录的作用及其在工作流中的位置和作用,帮助您快速掌握 ComfyUI 的基本框架和使用方法。无论是新手还是有经验的开发者,通过本文,您都能更加轻松地配置、扩展和定制 ComfyUI,实现高效的 AI 生成工作流。

000.jpg


一、主目录结构及说明:


序号目录名称说明
1.ci/CI(持续集成)目录,通常包含自动化测试和部署的脚本,用于在代码提交时触发测试、构建和部署等流程。
2
.git/Git 版本控制的隐藏文件夹,存储项目的版本历史、配置文件和其他 Git 数据。
3.github/GitHub 特定配置目录,通常包含 GitHub Actions 工作流文件(用于持续集成/部署自动化)、Issue 模板、PR 模板等。
4pycache/Python 缓存目录,存放编译后的 .pyc 文件,目的是加快 Python 脚本的加载速度。
5api_server/用于实现 API 服务器的目录,可能包含用于处理 HTTP 请求的代码,实现前端与后端的交互。
6app/包含主应用的代码或前端代码,例如 UI、业务逻辑等。
7comfy/核心代码文件夹,通常存放项目的主代码库和核心功能模块。
8comfy_execution/包含 ComfyUI 的执行逻辑或与任务调度相关的代码。
9comfy_extras/额外功能目录,可能包含插件、扩展模块或附加的非核心功能。
10
custom_nodes/存放自定义节点的文件夹,用于添加特定功能的节点,允许用户扩展 ComfyUI 的默认功能
11input/用于存放输入文件的目录,例如图像、文本或其他供处理的资源。
12model_filemanager/模型文件管理器,可能用于管理机器学习或深度学习模型文件,包括加载、保存和更新模型。
13models/存放模型文件的目录,通常包含训练好的深度学习模型(如 .pt、.ckpt 文件等)。
14notebooks/Jupyter Notebook 文件的目录,可能包含用于调试、实验或教程的代码。
15output/输出文件夹,存储生成的图像、日志或其他输出文件。
16script_examples/存放示例脚本的文件夹,用于演示如何使用项目中的功能或 API。
17temp/临时文件夹,存放临时文件和缓存文件,通常用于存储中间数据或缓存。
18tests/测试目录,包含项目的单元测试、集成测试或其他测试代码。
19tests-unit/单元测试目录,专门用于测试项目中的独立模块或函数。
20user/存储用户配置、用户数据或用户特定文件的目录。
21utils/工具函数目录,包含一些辅助代码或通用工具模块,通常用于支持主应用功能。
22web/前端文件夹,可能包含 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)模型,用于调整生成图像的颜色、细节和质量。