Stable Diffusion 1.5:从零搭建文生图工作流
从空白画布开始,一步步搭建 Stable Diffusion 1.5 文生图工作流:放好模型文件、修复缺失的模型并运行。
Stable Diffusion 1.5:从零搭建文生图工作流
从空白画布开始,一步步搭建 Stable Diffusion 1.5 文生图工作流:放好模型文件、修复缺失的模型并运行。
在本教程中,你将在空白画布上构建一个文生图工作流并运行它。你输入一段对画面的描述,ComfyUI 便会使用 Stable Diffusion 1.5 模型据此生成一张 512 × 512 的图像。每个节点都由你自己添加并连接。每一步都会说明该节点做什么,以及如何判断这一步是否成功。
本教程使用你自己电脑上的 ComfyUI:Comfy Desktop、ComfyUI Portable 或手动安装。开始之前,请先安装 ComfyUI 并打开它。
[!TIP] 若想无需安装、直接在浏览器中使用 ComfyUI,请在 Comfy Cloud 中打开 Z-Image-Turbo 文生图模板。
了解工作流的组成部分
工作流是由连线连接的一组节点。每个节点执行一项任务:
- 输入是节点左侧的圆点。它们从其他节点接收数据。
- 输出是节点右侧的圆点。它们将数据发送到其他节点。
- 控件是节点内部的设置,例如文本框、数字或列表。
- 连线是从某一输出将数据传送到相同类型输入的线,例如从
CLIP输出到clip输入。
本教程中的工作流包含七个节点,共六种类型。最后一列是每个节点在添加节点菜单中的位置;添加节点一节对此进行了说明。
| 节点 | 功能 | 添加节点路径 |
|---|---|---|
Load Checkpoint | 加载模型文件。其输出为模型(MODEL)、文本编码器(CLIP)和图像解码器(VAE)。 | 模型 > 加载器 |
CLIP Text Encode (Prompt) | 将文本提示词转换为引导模型的数据。你需要添加两个:一个用于你希望出现的内容,一个用于你不希望出现的内容。 | 模型 > 条件 |
Empty Latent Image | 创建空白的起始图像,并设置其宽度和高度。 | 模型 > Latent |
KSampler | 使用模型和两个提示词,逐步将空白的起始图像变成你的图像。 | 模型 > 采样 |
VAE Decode | 将 KSampler 的结果转换为普通图像。 | 模型 > Latent |
Save Image | 显示图像并将其保存到输出文件夹。 | 图像 |
下载模型
Load Checkpoint 节点需要一个模型文件。本教程使用 v1-5-pruned-emaonly-fp16.safetensors。
- 从 Hugging Face 下载
v1-5-pruned-emaonly-fp16.safetensors。

将模型放入 checkpoints 文件夹
只有当文件位于 ComfyUI 会读取的 checkpoints 文件夹中时,ComfyUI 才会列出该 checkpoint。请将你下载的文件移动到你所安装版本对应的文件夹中。
[tab] Comfy Desktop 默认情况下,每个 Comfy Desktop 实例都会读取共享模型文件夹。Comfy Desktop 会将下载的模型保存在标记为 Downloads 的共享模型文件夹中。 1. 在 Comfy Desktop 的标题栏中,点击菜单,然后选择桌面设置。 2. 选择存储选项卡。 3. 在共享模型下,点击标记为 Downloads 的文件夹路径。该文件夹会在你的文件管理器中打开。 4. 将v1-5-pruned-emaonly-fp16.safetensors移动到其中的checkpoints文件夹。如果没有checkpoints文件夹,请创建一个。
[tab] ComfyUI Portable * 将v1-5-pruned-emaonly-fp16.safetensors移动到ComfyUI_windows_portable\ComfyUI\models\checkpoints。
[tab] 手动安装 1. 打开你安装 ComfyUI 的文件夹,即包含main.py的那个文件夹。 2. 将v1-5-pruned-emaonly-fp16.safetensors移动到其中的models/checkpoints文件夹。
如果 ComfyUI 已经打开,请按 R,让它重新读取模型文件夹。
打开空白工作流
画布是用于放置节点的大面积区域。如果画布上已经显示了一个工作流,请打开一个空白工作流:
- 在左侧边栏顶部,点击 ComfyUI 标志(菜单)。
- 选择新建。

此时画布为空。

[!TIP] 在顶栏中,已打开工作流标签页旁边的加号(+)按钮也可用于新建空白工作流。
添加节点
添加节点有三种方式。后续步骤会说明使用哪一种。
使用添加节点菜单
- 在画布的空白处右键点击。将打开一个菜单。
- 选择添加节点,然后按照该节点的添加节点路径依次选择每个类别。节点表 列出了本教程中每个节点的路径。
- 选择该节点。它会出现在你右键点击的位置。

搜索节点库
- 按
N,或点击左侧边栏中的节点。将打开节点库。 - 如果节点库显示多个标签页,选择全部节点。
- 在\\搜索节点...\\框中输入节点名称。
- 在结果中点击该节点,然后在画布上你想要放置它的位置点击。节点会出现在那里。

将连线拖到空白画布
将连线拖到空白画布,可一步完成添加节点并连接。
- 从已放置节点的输出圆点开始拖动。
- 在画布的空白处释放。默认会在该处打开节点搜索框。
- 输入节点名称,然后选择该节点。ComfyUI 会添加该节点,并将它连接到你拖出的输出。

要在释放时打开菜单而不是搜索框,请在释放时按住 Shift。
连接两个节点
连线将数据从一个节点的输出传送到另一个节点的输入。
- 从一个节点上的输出圆点开始拖动。
- 在另一个节点的输入圆点上释放。两个圆点之间会出现一条连线。
以下规则适用于每一条连线:
- 一个输出可以供给多个输入。
- 一个输入只接受一条连线。连接到某个输入的新连线会替换其原有连线。
- 连线连接的是相同类型的输出和输入。ComfyUI 不会在不同类型之间绘制连线。
添加 Load Checkpoint 节点
Load Checkpoint 节点用于加载模型文件。
- 使用添加节点菜单添加
Load Checkpoint节点:模型 > 加载器 >Load Checkpoint(菜单中显示为 Checkpoint加载器(简易))。 - 在该节点中,点击
ckpt_name控件,然后选择v1-5-pruned-emaonly-fp16.safetensors。
该节点右侧显示三个输出:MODEL、CLIP 和 VAE。

如果 ckpt_name 列表中没有显示该文件,请参阅模型不在 Checkpoint 列表中。
添加 KSampler 节点
KSampler 节点负责执行生成。它需要四条连线:模型、两个提示词,以及空白的起始图像。
- 通过节点库添加一个
KSampler节点:搜索KSampler(菜单中显示为 K采样器)。 - 将
Load Checkpoint上的MODEL输出连接到KSampler上的model输入。

其余三条连线将在接下来的两节中绘制。
将 KSampler 的控件保持为默认值。例如,steps 为 20,cfg 为 8.0。
添加提示词节点
提示词用于描述图像。正向提示词说明你想要看到的内容,负向提示词说明你不想要的内容。
- 使用 添加节点 菜单(模型 > 条件)或 节点库 添加一个
CLIP Text Encode (Prompt)节点(菜单中显示为 CLIP文本编码)。 - 点击它的文本框,输入正向提示词,例如
beautiful scenery nature glass bottle landscape, purple galaxy bottle。 - 右键点击该节点,然后选择 复制。此时会出现第二个
CLIP Text Encode (Prompt)节点。 - 点击第二个节点的文本框,输入负向提示词,例如
text, watermark。

连接提示词:
- 将
Load Checkpoint上的CLIP输出连接到每个CLIP Text Encode (Prompt)节点上的clip输入。两个提示词节点共用同一个CLIP输出。 - 将正向提示词节点上的
CONDITIONING输出连接到KSampler上的positive输入。 - 将负向提示词节点上的
CONDITIONING输出连接到KSampler上的negative输入。
设置图像尺寸
Empty Latent Image 节点用于设置图像尺寸。它的 width 和 height 初始值为 1024。本工作流使用 512,即从图像加载工作流中的示例工作流所用尺寸。
- 通过添加节点菜单添加一个
Empty Latent Image节点:模型 > Latent >Empty Latent Image(菜单中显示为 空Latent图像)。 - 将
width设置为512。 - 将
height设置为512。 - 将
batch_size保持为1。 - 连接其
LATENT输出到KSampler上的latent_image输入。

KSampler 的四个输入现在都已具有连线。

解码并保存图像
KSampler 输出的是 Latent,不是图像。VAE Decode 将其转换为图像,Save Image 则负责存储图像。
- 通过节点库添加
VAE Decode节点:搜索VAE Decode(菜单中显示为 VAE解码)。 - 连接
KSampler上的LATENT输出到VAE Decode上的samples输入。 - 将
Load Checkpoint上的VAE输出连接到VAE Decode上的vae输入。 - 通过将连线拖到空白画布添加
Save Image节点:从VAE Decode上的IMAGE输出拖动,在空白画布上释放,然后选择Save Image(菜单中显示为 保存图像)。其images输入已链接到IMAGE。


你的工作流包含七个节点和九条连线。

[!TIP] 在未选中任何节点时,按 . 可使整个工作流适应屏幕。
运行工作流
运行工作流会将其加入队列,随后 ComfyUI 生成图像。
- 点击 运行,或按
Ctrl+Enter(macOS 上为Cmd+Enter)。

如果 ComfyUI 显示 缺少必需输入,请参阅缺少必需输入。
找到生成的图像
运行结束后,图像会出现在 Save Image 节点中。要从左侧边栏打开它:
- 点击资产,然后选择已生成选项卡。

Save Image 还会将图像以 PNG 文件的形式写入输出文件夹,文件名为 ComfyUI_00001_.png。每生成一张新图像,编号就会递增。在 ComfyUI Portable 和手动安装版本中,输出文件夹为 ComfyUI/output。
从图像加载工作流
默认情况下,Save Image 写出的每个 PNG 文件都包含生成该图像的工作流。加载下面的示例图像,将其工作流与你构建的工作流进行对比。
- 将此图像保存到你的计算机:

- 将 PNG 文件拖到画布上。你也可以点击左侧边栏中的 ComfyUI 标志(菜单),选择 文件 > 打开,然后选择该文件。
图像中的工作流会打开。如果出现的是 Load Image 节点,说明你拖入的文件中没有保存工作流。
修复缺失的模型
当你加载的工作流所用的模型文件不在你的模型文件夹中时,ComfyUI 会显示一条提示,指出缺失的模型,例如 v1-5-pruned-emaonly-fp16.safetensors is missing。
- 点击查看详情。右侧面板会打开问题标签页,并在缺失模型下列出该文件。文件应放入的文件夹(例如
checkpoints)会显示在文件名下方。 - 如果该行有下载按钮,请点击它。
- Comfy Desktop:Comfy Desktop 会将文件下载到你DOWNLOADS 模型文件夹中的
checkpoints文件夹。 - ComfyUI Portable 和手动安装:浏览器会下载该文件。请将其移动到
checkpoints文件夹,参见将模型放入 checkpoints 文件夹。 - 如果该行没有下载按钮,请自行获取文件:
- 点击文件名旁的链接图标。该链接图标会复制下载链接(复制链接);当工作流没有链接时,则复制文件名(复制模型名称)。
- 下载该文件。本教程使用的模型请参见下载模型。
- 将文件移动到文件名下方标注的文件夹中,例如
checkpoints。 - 点击缺失模型标题栏中的刷新(圆形箭头),或按
R,让 ComfyUI 重新检查模型文件夹。
只要满足以下任一条件,缺失模型的行就不会显示下载按钮:
- 工作流没有该模型的下载链接。从图像加载工作流中的示例图像就属于这类工作流。
- 下载链接不是 Hugging Face 或 Civitai 链接。
- 文件名不以
.safetensors、.sft、.ckpt、.pth或.pt结尾。 - 工作流未说明该文件应放入哪个模型文件夹。
[!NOTE] Comfy Cloud 对缺失模型从不显示下载,而是显示导入,以便你将模型导入 Comfy Cloud。由不支持导入模型的节点所使用的模型会列在不支持导入下。
故障排除
当运行失败或模型文件无法加载时,请参考以下条目。
缺少必需输入
某个输入没有连线。提示消息会指明节点和输入的名称,例如 KSampler is missing a required input: latent_image。请连接消息中提到的输入,然后再次运行工作流。
模型不在 checkpoint 列表中
该文件不在 ComfyUI 读取的 checkpoints 文件夹中。请将其移动到该文件夹,具体操作参见将模型放入 checkpoints 文件夹,然后按下 R。

