简介
学习目标
- 了解ComfyUI工作流的基本结构
- 学会添加和连接节点
- 掌握参数设置方法
- 成功生成第一张图像
预计学习时间
15分钟
前置知识
- 已完成ComfyUI安装
- 了解基本的界面操作
工作流概述
我们将创建一个基础的文生图(Text-to-Image)工作流,包含以下节点:
- CheckpointLoaderSimple: 加载Stable Diffusion模型
- CLIPTextEncode: 编码提示词(正向和负向)
- EmptyLatentImage: 创建空白潜在空间
- KSampler: 采样生成图像
- VAEDecode: 解码潜在空间为图像
- SaveImage: 保存生成的图像
创建步骤
工作流创建步骤
下图展示了创建工作流的四个基本步骤:
这个图展示了创建工作流的核心步骤: - 添加节点: 双击画布添加所需节点 - 连接节点: 从输出端口拖动到输入端口 - 设置参数: 配置节点的各项参数 - 执行工作流: 点击Queue Prompt执行生成
步骤1: 添加模型加载节点
- 打开ComfyUI
- 启动ComfyUI
-
访问 http://localhost:8188
-
添加CheckpointLoaderSimple节点
- 在画布空白处双击
- 搜索"CheckpointLoaderSimple"
-
选择并添加节点
-
选择模型
- 点击"ckpt_name"下拉菜单
- 选择已下载的模型(如v1-5-pruned-emaonly.ckpt)
访问 http://localhost:8188
添加CheckpointLoaderSimple节点
选择并添加节点
选择模型
步骤2: 添加文本编码节点
- 添加正向提示词节点
- 双击画布
- 搜索"CLIPTextEncode"
-
添加节点
-
设置正向提示词
-
在"text"文本框中输入:
beautiful landscape, mountains, sunset, 4k, detailed -
连接CLIP输出
- 从CheckpointLoaderSimple的"CLIP"输出端口
-
拖动到CLIPTextEncode的"clip"输入端口
-
添加负向提示词节点
- 再次添加一个CLIPTextEncode节点
-
在"text"文本框中输入:
ugly, blurry, low quality -
连接CLIP输出
- 从CheckpointLoaderSimple的"CLIP"输出端口
- 拖动到第二个CLIPTextEncode的"clip"输入端口
添加节点
设置正向提示词
在"text"文本框中输入: beautiful landscape, mountains, sunset, 4k, detailed
连接CLIP输出
拖动到CLIPTextEncode的"clip"输入端口
添加负向提示词节点
在"text"文本框中输入: ugly, blurry, low quality
连接CLIP输出
步骤3: 添加潜在空间节点
- 添加EmptyLatentImage节点
- 双击画布
- 搜索"EmptyLatentImage"
-
添加节点
-
设置图像尺寸
- width: 512
- height: 512
- batch_size: 1
添加节点
设置图像尺寸
步骤4: 添加采样器节点
- 添加KSampler节点
- 双击画布
- 搜索"KSampler"
-
添加节点
-
设置采样参数
- seed: 123456789(或点击随机按钮)
- steps: 20
- cfg: 8
- sampler_name: euler
- scheduler: normal
-
denoise: 1
-
连接节点
- model: 连接到CheckpointLoaderSimple的"MODEL"输出
- positive: 连接到正向CLIPTextEncode的"CONDITIONING"输出
- negative: 连接到负向CLIPTextEncode的"CONDITIONING"输出
- latent_image: 连接到EmptyLatentImage的"LATENT"输出
添加节点
设置采样参数
denoise: 1
连接节点
步骤5: 添加VAE解码节点
- 添加VAEDecode节点
- 双击画布
- 搜索"VAEDecode"
-
添加节点
-
连接节点
- samples: 连接到KSampler的"LATENT"输出
- vae: 连接到CheckpointLoaderSimple的"VAE"输出
添加节点
连接节点
步骤6: 添加保存节点
- 添加SaveImage节点
- 双击画布
- 搜索"SaveImage"
-
添加节点
-
设置保存参数
-
filename_prefix: ComfyUI
-
连接节点
- images: 连接到VAEDecode的"IMAGE"输出
添加节点
设置保存参数
filename_prefix: ComfyUI
连接节点
完整工作流
工作流应该如下连接:
CheckpointLoaderSimple
├── MODEL ──────────────┐
├── CLIP ───┬────────────┼── KSampler ─── VAEDecode ─── SaveImage
└── VAE ────┴────────────┘ │
└── samples ──┘
CLIPTextEncode (positive) ─── positive ──┘
CLIPTextEncode (negative) ─── negative ──┘
EmptyLatentImage ─── latent_image ───────┘
执行工作流
- 检查连接
- 确保所有节点正确连接
-
检查没有红色警告
-
执行工作流
- 点击"Queue Prompt"按钮
-
或按
Ctrl+Enter -
等待完成
- 查看底部进度条
-
等待执行完成
-
查看结果
- 生成的图像将显示在右侧
- 图像保存在
output/目录
检查没有红色警告
执行工作流
或按Ctrl+Enter
等待完成
等待执行完成
查看结果
工作流JSON
以下是完整的工作流JSON代码:
{
"3": {
"inputs": {
"seed": 123456789,
"steps": 20,
"cfg": 8,
"sampler_name": "euler",
"scheduler": "normal",
"denoise": 1,
"model": ["4", 0],
"positive": ["6", 0],
"negative": ["7", 0],
"latent_image": ["5", 0]
},
"class_type": "KSampler"
},
"4": {
"inputs": {
"ckpt_name": "v1-5-pruned-emaonly.ckpt"
},
"class_type": "CheckpointLoaderSimple"
},
"5": {
"inputs": {
"width": 512,
"height": 512,
"batch_size": 1
},
"class_type": "EmptyLatentImage"
},
"6": {
"inputs": {
"text": "beautiful landscape, mountains, sunset, 4k, detailed",
"clip": ["4", 1]
},
"class_type": "CLIPTextEncode"
},
"7": {
"inputs": {
"text": "ugly, blurry, low quality",
"clip": ["4", 1]
},
"class_type": "CLIPTextEncode"
},
"8": {
"inputs": {
"samples": ["3", 0],
"vae": ["4", 2]
},
"class_type": "VAEDecode"
},
"9": {
"inputs": {
"filename_prefix": "ComfyUI",
"images": ["8", 0]
},
"class_type": "SaveImage"
}
}
参数说明
KSampler参数
- seed: 随机种子,相同种子生成相同图像
- steps: 采样步数,越高质量越好但越慢
- cfg: 提示词相关性,通常7-12
- sampler_name: 采样器类型(euler, ddim, etc.)
- scheduler: 调度器类型(normal, karras, etc.)
- denoise: 去噪强度,1.0为完全生成
图像尺寸
- width: 图像宽度,建议512或1024
- height: 图像高度,建议512或1024
- batch_size: 批处理大小,1为单张
实验与调整
修改提示词
尝试不同的提示词:
a futuristic city, cyberpunk style, neon lights, night
调整参数
- 增加steps: 尝试30或40步
- 调整cfg: 尝试6或10
- 改变尺寸: 尝试768x768或1024x512
- 更换采样器: 尝试ddim或heun
修改种子
- 点击seed参数的随机按钮
- 或手动输入不同的数字
常见问题
Q1: 工作流执行失败
A: 检查节点连接是否正确,确保所有必需参数都已设置。
Q2: 生成的图像质量差
A: 尝试增加steps,调整cfg,或改进提示词。
Q3: 执行速度慢
A: 检查GPU是否正常工作,减少steps或batch_size。
Q4: 如何保存工作流?
A: 点击"File" > "Save",保存为JSON文件。
Q5: 如何加载工作流?
A: 点击"File" > "Load",选择JSON文件。
扩展练习
练习1: 生成不同风格的图像
尝试使用不同的提示词生成: - 肖像画 - 动漫风格 - 抽象艺术
练习2: 调整图像比例
尝试不同的图像比例: - 512x768(纵向) - 768x512(横向) - 1024x1024(高清)
练习3: 批量生成
将batch_size设置为4,一次生成多张图像。
练习4: 保存不同版本
修改filename_prefix,保存不同版本的图像。
下一步
完成第一个工作流后,您可以:
相关资源
更新日志
- 2026-01-26: 初始版本创建