ComfyUI工作流介绍
ComfyUI作为Stable Diffusion的新一代图形化工作流工具,相比WebUI提供了更灵活的节点式操作方式。让我们深入了解如何充分利用这个强大的工具。
安装与基础配置
1. 基础环境准备 # 克隆仓库
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
# 创建并激活虚拟环境
conda create -n comfyui python=3.10
conda activate comfyui
# 安装依赖
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
pip install -r requirements.txt2. 模型下载与放置
将下载的模型文件放置在对应目录:# 创建必要的目录
mkdir -p models/checkpoints
mkdir -p models/vae
mkdir -p models/loras
mkdir -p models/embeddings
• 基础模型(.safetensors/.ckpt) → models/checkpoints/ • VAE文件 → models/vae/ • LoRA文件 → models/loras/ • Textual Inversion文件 → models/embeddings/
python main.py
启动后访问 http://localhost:8188 即可打开WebUI界面。工作流设计原理
ComfyUI的核心是基于节点的工作流系统,主要包含以下几类节点:
1. 加载节点
• CheckpointLoaderSimple:加载基础模型 • VAELoader:加载VAE模型 • LoraLoader:加载LoRA模型 • CLIPTextEncode:处理提示词
• KSampler:核心采样器节点 • ImageScale:图像缩放 • ConditioningCombine:合并条件 • VAEDecode:VAE解码
• SaveImage:保存图像 • PreviewImage:预览图像
常用节点详解
1. 文本编码节点(CLIPTextEncode) # 正向提示词示例
positive_prompt = "masterpiece, best quality, ultra detailed, photograph, 8k uhd"
# 负向提示词示例
negative_prompt = "lowres, bad anatomy, bad hands, missing fingers"2. 采样器节点(KSampler)
• Steps:20-30适合大多数场景 • CFG Scale:建议值7-9 • Sampler:推荐Euler a或DPM++ 2M Karras • Scheduler:推荐Karras或Simple
# VAE编码和解码流程
vae_encode = VAEEncode()
latent = vae_encode(image)
vae_decode = VAEDecode()
result = vae_decode(latent)
实用工作流示例
1. 基础图像生成工作流 {
"last_node_id": 8,
"last_link_id": 8,
"nodes": [
{
"id": 1,
"type": "CheckpointLoaderSimple",
"pos": [100, 100],
"properties": {
"ckpt_name": "v1-5-pruned.safetensors"
}
},
{
"id": 2,
"type": "CLIPTextEncode",
"pos": [400, 100],
"properties": {
"text": "masterpiece, best quality, ultra detailed, (photorealistic:1.2), 8k uhd, beautiful landscape"
}
},
{
"id": 3,
"type": "CLIPTextEncode",
"pos": [400, 250],
"properties": {
"text": "lowres, bad anatomy, text, watermark, signature, blurry"
}
},
{
"id": 4,
"type": "KSampler",
"pos": [700, 100],
"properties": {
"steps": 25,
"cfg": 8,
"sampler_name": "euler_ancestral",
"scheduler": "karras",
"seed": 123456789
}
},
{
"id": 5,
"type": "VAEDecode",
"pos": [1000, 100]
},
{
"id": 6,
"type": "SaveImage",
"pos": [1300, 100],
"properties": {
"filename_prefix": "comfyui_output"
}
}
],
"links": [
[1, "MODEL", 2, "MODEL"],
[1, "MODEL", 3, "MODEL"],
[1, "MODEL", 4, "MODEL"],
[2, "CONDITIONING", 4, "POSITIVE"],
[3, "CONDITIONING", 4, "NEGATIVE"],
[4, "LATENT", 5, "LATENT"],
[5, "IMAGE", 6, "IMAGE"]
]
}2. ControlNet引导工作流
• 添加ControlNet预处理节点 • 将控制图像与原始提示词结合 • 通过权重调节控制强度
• 使用图像放大节点 • 添加后处理效果 • 合并多个生成结果
性能优化技巧
1. 内存管理
• 使用合适的批处理大小 • 及时清理未使用的节点 • 适当降低采样步数
• 启用xformers优化 • 使用半精度推理 • 选择高效的采样器
• 模块化设计工作流 • 使用队列管理批量任务 • 保存常用工作流模板
常见问题解决
1. 显存不足 # 修改启动参数
python main.py --cpu-only # CPU模式
python main.py --lowvram # 低显存模式2. 模型加载失败
• 检查模型文件完整性 • 确认目录结构正确 • 验证模型兼容性
• 检查数据类型匹配 • 确保节点顺序正确 • 验证必要节点是否缺失
ComfyUI的强大之处在于其灵活性和可扩展性。通过掌握这些基础知识和进阶技巧,你可以构建出适合自己需求的高效工作流。建议从基础工作流开始,逐步添加复杂功能,最终建立起自己的工作流模板库。