第一次生图:默认工作流逐节点讲透
装好了 ComfyUI、放好了模型,接下来就是这节课的目标:跑通你的第一次 ComfyUI 文生图,并且不是「照着点一遍就完」,而是把屏幕上那条默认工作流一个节点一个节点讲透——每个方块干什么、参数什么意思、数据怎么流动。
先说清一件事,免得你对不上号:官方入门教程用的示例工作流,和当前版本 ComfyUI 内置的默认工作流,不是同一套。
- 官方入门文档教的经典工作流:SD1.5 六节点(Load Checkpoint → CLIP Text Encode → Empty Latent Image → KSampler → VAE Decode → Save Image,官方教程按六类节点讲,正负两个 CLIP Text Encode 算一类),一个 checkpoint 文件搞定,上节课你放进
checkpoints的v1-5-pruned-emaonly-fp16.safetensors就是给它用的 - 当前版本(v0.41.0 起)内置的默认工作流:基于 Z-Image-Turbo 的十节点工作流,模型拆成三个文件分别加载,出图 1024×1024
两套本页都会逐节点讲透。它们的骨架完全一样:加载模型 → 编码提示词 → 造一块空画布 → 去噪采样 → 解码成图片 → 保存。学会一套,ComfyUI 所有文生图工作流你都能看懂。
学完你能做什么
- 独立完成第一次 ComfyUI 文生图:加载工作流 → 补齐模型 → 写提示词 → 点 Run → 保存图片
- 说得出经典六节点工作流里每个节点的职责:Load Checkpoint、CLIP Text Encode、Empty Latent Image、KSampler、VAE Decode、Save Image
- 看懂当前版本内置的 Z-Image-Turbo 默认工作流,知道它和经典工作流的节点差异
- 会写正向/负向提示词,会用
(关键词:1.2)权重语法加强某个词 - 会调 KSampler 的 steps、cfg、denoise、seed,知道每个参数动一下会发生什么
你现在的困境
- 打开 ComfyUI,满屏方块和连线,不知道从哪里下手,生怕点错弄坏什么
- 节点上飘着红色警告说缺模型,不知道该下哪个文件、放进哪个文件夹
- 照着网上教程找节点,发现界面里的工作流和教程截图对不上,越看越懵
什么时候用这一招
当你需要:
- 跑出第一张 AI 生成的图,确认整套环境没问题
- 看懂节点式生图的流水线,而不是只会「按教程连线」
- 给后面学 Z-Image-Turbo、Qwen-Image、FLUX 这些模型工作流打好地基
而且不想:
- 换一个模型、换一套工作流就完全不知所措
- 一遇到红色报错就想重装
🎒 开始前的准备
- 装好并能启动 ComfyUI:Windows 便携包看 安装:Windows 便携包,桌面版 / macOS / Linux 看 备用安装
- 完成了上节课 模型放哪里:
models/checkpoints/里已经有v1-5-pruned-emaonly-fp16.safetensors(官方入门模型,约 4GB) - 显存别太紧张:官方文档说 SD1.5 约 4GB 大小、6GB 显存的消费级显卡就能流畅跑;Z-Image-Turbo 路线建议 16GB 显存
- 网络能访问 Hugging Face:缺模型时自动下载从 Hugging Face 拉文件,国内网络可能需要代理(下载慢不是你操作错了)
💡 界面是中文的
ComfyUI 支持中文界面:打开 Settings,在 Comfy → Locale 里选中文即可。本页提到的按钮名以英文界面为准,中文名基本能对上。
核心思路
文生图就是「委托作画」。 官方文档的比喻很直白:你把要求(正向提示词 = 想要什么,负向提示词 = 不想要什么)告诉一位画家(生图模型),画家照着要求创作。技术上,扩散模型做的是反向扩散:从一块纯高斯噪声出发,一步步去噪,最终「显影」成符合提示词的图片。
去噪发生在潜空间(latent space),不是像素空间。 潜空间是图像的压缩表示,可以理解成建筑师的图纸:在图纸上改设计,比直接在建成的大楼上改便宜得多。所以流水线是「噪声潜空间 → KSampler 逐步去噪 → VAE 解码 → 像素图片」,模型全程在「图纸」上工作,最后一步才变成你看得见的图。
工作流 = 流水线。 画布上每个节点是一道工序,连线是数据流向。文生图工作流的骨架六道工序:
加载模型 → 编码提示词 → 造空画布 → 去噪采样 → 解码成图 → 保存一个 checkpoint 里装着三样东西。 经典工作流用 Load Checkpoint 加载一个文件,但这个文件内部是三件套:
| 组件 | 干什么 |
|---|---|
| MODEL(UNet) | 扩散模型本体,负责预测噪声、逐步去噪出图 |
| CLIP | 文本编码器,把你的提示词翻译成模型能懂的语义向量 |
| VAE | 编码器/解码器,在像素空间和潜空间之间互相转换 |
新模型(Z-Image-Turbo、FLUX、Wan2.2……)大多不再打包成单个 checkpoint,而是把这三件拆成独立文件、用各自的 loader 分别加载——这就是两套工作流节点数不同的原因。
两套工作流对照(本页两套都会逐节点讲):
| 经典教学工作流(官方入门文档) | 内置默认工作流(v0.41.0 起) | |
|---|---|---|
| 模型 | SD1.5 单个 checkpoint | Z-Image-Turbo 三个文件 |
| 加载节点 | Load Checkpoint 一个 | UNETLoader + CLIPLoader + VAELoader 三个 |
| 画布节点 | Empty Latent Image(512×512) | EmptySD3LatentImage(1024×1024) |
| 采样参数 | 20 步、cfg 8、euler / normal | 8 步、cfg 1、res_multistep / simple |
| 特有节点 | — | ModelSamplingAuraFlow(shift 调节) |
| 其余节点 | CLIP Text Encode ×2、KSampler、VAE Decode、Save Image | 相同 |
v0.41.0 起服务器新增了默认工作流路由(/default_workflow),内置默认工作流随版本更新——你启动时看到的节点如果和本页有出入,多半是版本差异,不影响学。
跟我做
第 1 步:启动 ComfyUI 并加载文生图工作流
为什么:ComfyUI 文生图的一切都发生在画布上的工作流里,先保证画布上有一条完整的文生图工作流。
操作:启动 ComfyUI(便携包双击 run_nvidia_gpu.bat,桌面版双击图标),浏览器打开 127.0.0.1:8188。官方文档说明:ComfyUI 启动时通常会自动加载默认文生图工作流——全新安装的当前版本,加载的就是上面表格里那套 Z-Image-Turbo 工作流。
想跟着官方入门教程走经典 SD1.5 六节点工作流(本页第 3 步以它为主线逐节点讲),三种加载方式任选:
方式 A:拖入示例图(推荐)
ComfyUI 生成的每张图片都带工作流元数据,把图片拖进画布就能还原工作流。官方教程提供了现成示例图:text-to-image-workflow.png,下载后直接拖进 ComfyUI 窗口。
方式 B:打开工作流 JSON
官方文档提供了经典工作流的 JSON 文件:text-to-image.json,下载后用菜单 Workflows → Open 打开。
方式 C:从模板库加载
侧栏 Workflows 面板里浏览官方模板库,一键加载各类工作流,缺模型还能自动下载——具体用法见 模板库。
你应该看到:画布上出现一排用线连着的节点,从左边的模型加载节点一直连到右边的 Save Image。
- 画布上有一条完整的文生图工作流(六节点经典版或十节点默认版)
第 2 步:补齐模型——缺什么下什么、放对位置
为什么:ComfyUI 安装包不含模型。工作流引用的模型文件不存在时,对应节点会显示红色缺失警告,直接点 Run 只会报错。
操作:看节点上的警告。官方入门文档的流程是:先看到缺模型警告 → 点开警告,看到缺哪个文件和下载链接 → 补齐。
路线 A:经典工作流(SD1.5,一个文件)
上节课你已经把 v1-5-pruned-emaonly-fp16.safetensors 放进了 models/checkpoints/。在画布上按 r 刷新节点定义,Load Checkpoint 的下拉列表里选中它即可。还没下载的,去 Hugging Face 官方存档页手动下载。
路线 B:默认工作流(Z-Image-Turbo,三个文件)
默认工作流引用三个文件,官方教程给的下载地址和存放位置:
| 文件 | 放进哪个子目录 | 下载地址 |
|---|---|---|
z_image_turbo_bf16.safetensors | models/diffusion_models/ | Hugging Face |
qwen_3_4b.safetensors | models/text_encoders/ | Hugging Face |
ae.safetensors | models/vae/ | Hugging Face |
放好后按 r 刷新,三个 loader 节点的下拉列表里分别选中对应文件。哪个文件该进哪格不确定的话,回看 模型放哪里 的对照表。
自动下载怎么触发
点开缺模型警告里的 Download 按钮,两种安装方式行为不同(官方文档说明):
- Comfy Desktop:自动下载并存进
ComfyUI/models/对应子目录,侧栏模型面板能看进度 - ComfyUI Portable:触发浏览器下载,下完自己把文件挪进对应子目录
⚠️ 下载不动?
自动下载从 Hugging Face 拉文件,官方文档提醒要保证网络能稳定连上 Hugging Face。长时间没进度就复制下载链接手动下载,或配置代理后重试。
你应该看到:所有红色缺失警告消失,每个 loader 节点的下拉列表里都能选中文件名(不是空的,也不显示 null)。
- 工作流里没有红色缺失警告,loader 节点都选中了正确的模型文件
第 3 步:逐节点讲透 ComfyUI 文生图工作流
为什么:这是本课的核心。看懂每个节点的职责和参数,你才算真正会「ComfyUI 怎么生成图片」,而不是人肉复读机。
先看经典 SD1.5 六节点工作流(数据从左往右流):
Load Checkpoint ──┬── MODEL ──────────────────→ KSampler ──→ VAE Decode ──→ Save Image
├── CLIP ──→ CLIP Text Encode(正向)──→ KSampler
│ └→ CLIP Text Encode(负向)──→ KSampler
└── VAE ──────────────────────────→ VAE Decode
Empty Latent Image ─────────────────────────→ KSamplerLoad Checkpoint:一个文件装三样东西
加载生图模型。一个 checkpoint 内部含 MODEL(UNet,负责去噪)、CLIP(文本编码器)、VAE(潜空间↔像素转换)三件套,所以它有三个输出口,分别接给下游不同节点。下拉列表列出 models/checkpoints/ 里的所有文件——上节课的目录规则就体现在这里:放错子目录的文件不会出现在这个列表里。
CLIP Text Encode(×2):把提示词翻译给模型
模型读不懂人话。这个节点用 Load Checkpoint 输出的 CLIP 组件,把你写的提示词编码成语义向量(官方叫「条件」,CONDITIONING)。工作流里有两个:
- 接到 KSampler positive 输入口的:正向提示词,想要什么
- 接到 KSampler negative 输入口的:负向提示词,不想要什么
Empty Latent Image:定一块空画布
生成一块纯噪声的潜空间,输出给 KSampler 当去噪起点。它决定最终图片的尺寸——官方示例工作流里是 512×512、批次 1,正好是 SD1.5 的舒适区(它在 512×512 分辨率上训练)。想出多大的图,在这里改。
KSampler:去噪核心,全工作流的心脏
整个反向扩散在这里发生:以 seed 为随机源造初始噪声,按 steps 指定的步数迭代去噪,每一步参考正向/负向两组条件,最终输出一块「干净」的潜空间。参数怎么调,第 5 步里有一张全参数表。
VAE Decode:潜空间 → 像素
把 KSampler 输出的潜空间图像解码成你看得见的像素图片。用的 VAE 就是 Load Checkpoint 输出的那一路。没有这一步,屏幕上只是一堆数字。
Save Image:预览并保存
显示解码后的图片,并把它存进 ComfyUI/output/ 文件夹。filename_prefix 是文件名前缀,默认 ComfyUI。右键图片可以另存到别处。
再看当前版本内置的 Z-Image-Turbo 默认工作流,逐节点对照:
| 节点 | 作用 | 默认工作流里的关键参数 |
|---|---|---|
| UNETLoader | 只加载扩散模型(三件套拆开的第一件) | z_image_turbo_bf16.safetensors |
| CLIPLoader | 只加载文本编码器 | qwen_3_4b.safetensors,类型 lumina2 |
| VAELoader | 只加载 VAE | ae.safetensors |
| ModelSamplingAuraFlow | 给模型加噪声调度补丁,shift 控制噪声分布 | shift = 3 |
| CLIP Text Encode ×2 | 同经典工作流:正向 / 负向 | 负向默认 low quality, bad anatomy, extra digits... |
| EmptySD3LatentImage | 同 Empty Latent Image 的角色 | 1024×1024、批次 1 |
| KSampler | 同经典工作流,参数更「Turbo」 | 8 步、cfg 1、res_multistep / simple、denoise 1 |
| VAEDecode | 同经典工作流 | — |
| SaveImage | 同经典工作流 | 前缀 ComfyUI |
看懂六节点经典版,这张表就是「换了加载方式 + 多一个调度补丁」,其余原样。Z-Image-Turbo 是蒸馏模型,官方教程说它 8 步就能出图、适配 16GB 显存的消费级设备,还擅长中英双语文字渲染——想深入玩它,看 Z-Image-Turbo 文生图。
你应该看到:对着画布从左到右,你能说出每个节点干什么、连线里流的是什么数据。
- 我能说出自家画布上每个节点的职责(六节点版或十节点版)
第 4 步:写正负提示词——告诉模型画什么
为什么:提示词是你和模型唯一的沟通渠道。写在哪、怎么写,直接决定出什么图。
操作:找到两个 CLIP Text Encode 节点,按连线确认哪个接 KSampler 的 positive(正向)、哪个接 negative(负向),然后填词。
官方教程给 SD1.5 的提示词五原则:
- 尽量用英文(SD1.5 对英文理解最好)
- 词组之间用英文逗号
,分隔 - 用短语,不写长句子
- 描述要具体(「红色丝绸长裙」好过「漂亮的衣服」)
- 想加强某个词,用权重语法
(golden hour:1.2)——括号里是关键词,冒号后是权重,官方文档明说这样能让它更容易出现在图里;masterpiece, best quality, 4k这类质量词可以提升出图质量
官方教程的三组示例提示词,直接抄去试:
动漫风
正向:anime style, 1girl with long pink hair, cherry blossom background, studio ghibli aesthetic, soft lighting, intricate details, masterpiece, best quality, 4k
负向:low quality, blurry, deformed hands, extra fingers写实人像
正向:(ultra realistic portrait:1.3), (elegant woman in crimson silk dress:1.2), full body, soft cinematic lighting, (golden hour:1.2), (fujifilm XT4:1.1), shallow depth of field, (skin texture details:1.3), (film grain:1.1), gentle wind flow, warm color grading, (perfect facial symmetry:1.3)
负向:(deformed, cartoon, anime, doll, plastic skin, overexposed, blurry, extra fingers)插画风格
正向:fantasy elf, detailed character, glowing magic, vibrant colors, long flowing hair, elegant armor, ethereal beauty, mystical forest, magical aura, high detail, soft lighting, fantasy portrait, Artgerm style
负向:blurry, low detail, cartoonish, unrealistic anatomy, out of focus, cluttered, flat lighting💡 中文提示词写在哪?
SD1.5 时代请写英文。走 Z-Image-Turbo 默认工作流的话,官方说明它支持中英文提示词、还能把图里的中英文字渲染准——中文需求直接写就行。
你应该看到:两个 CLIP Text Encode 的文本框里分别填好了正向、负向提示词。
- 正负提示词已填好,且确认没填反(看连线指向 KSampler 的哪个口)
第 5 步:点 Run 生成你的第一张图
为什么:前面全是准备,这一步才真正「生成」——ComfyUI 把整条流水线入队执行。
操作:
- 检查一遍:loader 选中了模型、提示词填好、尺寸没问题
- 点画布上方的 Run 按钮,或按快捷键
Ctrl + Enter - 等待执行:Run bar 会显示队列里的任务情况(active jobs 计数),需要中止就点旁边的 Cancel
- 出图后,在 Save Image 节点里看结果;右键图片可以保存到本地(文件同时已存进
ComfyUI/output/)
你应该看到:Run bar 的任务计数动起来,执行完成后 Save Image 节点里出现你的第一张图。
💡 不满意就再跑
官方教程的原话:不满意就多跑几次。示例工作流的 seed 控制是 randomize,每次执行 KSampler 都会换一个随机种子,出的图各不相同。
点 Run 之前,值得花两分钟认识 KSampler 的每个参数(官方教程全参数表,两套工作流通用):
| 参数 | 作用 | 怎么理解 |
|---|---|---|
| model | 接哪个扩散模型 | 决定画风和质量的根本 |
| positive | 正向条件 | 引导生成你想要的元素 |
| negative | 负向条件 | 抑制你不想要的内容 |
| latent_image | 待去噪的潜空间 | 噪声初始化的载体(尺寸在这里定) |
| seed | 随机种子 | 控制随机性;同 seed 同参数 = 复现同一张图 |
| control_after_generate | 生成后的种子策略 | randomize 每次换、fixed 固定不动 |
| steps | 去噪步数 | 步数越多细节越足,也越慢 |
| cfg | 提示词引导强度 | 越高越听话,官方提醒过高会过拟合 |
| sampler_name | 采样算法 | 去噪路径的数学方法(euler、res_multistep……) |
| scheduler | 调度器 | 控制噪声衰减节奏和步长分配(normal、simple……) |
| denoise | 去噪强度 | 0.0 保留原始输入,1.0 从纯噪声全量去噪 |
第一次跑,什么都别改,先用默认参数出一张图。之后可以自己实验:改提示词再跑、把 steps 从 20 调到 30 对比细节、把 seed 固定住只改提示词看因果。Z-Image-Turbo 工作流的 8 步 + cfg 1 是蒸馏模型的推荐配置,别照搬 SD1.5 的 20 步 + cfg 8 去改它。
- 我的 Save Image 节点里出现了第一张图,并保存到了本地
检查点 ✅
- 我跑通了第一次 ComfyUI 文生图:加载工作流 → 补模型 → 写提示词 → Run → 保存
- 我能对着画布说出每个节点的职责,包括 Load Checkpoint 里的 MODEL / CLIP / VAE 三件套各干什么
- 我知道正向提示词接 KSampler 的 positive、负向接 negative,会用
(关键词:1.2)加权重 - 我知道 steps / cfg / denoise / seed 各管什么,改参数前能预判效果
- 我知道当前版本内置默认工作流(Z-Image-Turbo)和官方教程经典工作流(SD1.5)的区别
踩坑提醒
❌ Load Checkpoint 显示 null 或下拉列表是空的
官方排错顺序:确认模型在正确的子目录(checkpoint 在 models/checkpoints/)→ 画布上按 r 刷新 → 重启 ComfyUI。还不行就是文件本身的问题,看 模型加载失败。目录规则不熟的话回 模型放哪里。
❌ 节点上一堆红色警告,不出图
红色 = 缺模型或节点参数无效,不补齐就没法正常出图。按第 2 步的流程点开警告看缺什么文件,补齐后警告自动消失。缺的模型国内下载不动,配代理或手动下载后放进对应子目录。
❌ 我的界面和教程截图完全不一样
大概率不是你错了:官方入门教程的截图是经典 SD1.5 工作流,而 v0.41.0 起 ComfyUI 内置的默认工作流换成了 Z-Image-Turbo,节点数量和名字都不一样。对照本页第 3 步的两套节点表确认你加载的是哪套;想加载特定工作流,用拖图、打开 JSON 或模板库三种方式之一。
❌ 出图糊、手崩,狂点 Run 碰运气
SD1.5 的官方已知短板:手部和复杂光影容易崩、直接生成 1024×1024 质量会下降(它在 512×512 上训练)。与其连点 Run,不如固定 seed、调整提示词(负向加 deformed hands, extra fingers)、必要时用放大工作流二次处理——放大玩法见 商品图高清放大。
进阶技巧(可选)
🔧 Run bar 不止一个 Run 按钮:顶部悬浮 Run bar 上还有批次(batch count,一次入队跑几遍,默认 1)、队列模式(Run 只在点击时入队;Run (On Change) 工作流一变就自动再跑;Run (Instant) 当前任务一结束立刻再跑)、Cancel(取消当前任务)。按住 Shift 点 Run 可以把任务插到队首。
🔧 图片就是工作流的存档:ComfyUI 生成的图片自带工作流元数据,把任何一张自己生成的图拖回画布,就能还原当时的工作流和参数。想主动导出,用菜单 Workflows → Export 存成 JSON 文件。
🔧 一次出多张对比:把 batch count 调大,或把 Empty Latent Image 的 batch 参数改大,一次 Run 出多张图挑最好的。
🔧 快捷键不止 Ctrl+Enter:r 刷新节点定义、Ctrl+O 打开工作流,完整键位表看 快捷键与界面速查。
本课小结
✅ ComfyUI 文生图的骨架:加载模型 → 编码提示词 → 造空画布 → KSampler 去噪 → VAE 解码 → 保存。所有文生图工作流都是这个骨架的变体。
✅ 一个 checkpoint 三件套:MODEL(UNet)管去噪、CLIP 管理解提示词、VAE 管潜空间和像素互转;新模型把三件拆开分别加载。
✅ 两套工作流都认识:官方教程的经典 SD1.5 六节点(20 步 / cfg 8 / 512×512),v0.41.0 起内置的 Z-Image-Turbo 默认工作流(8 步 / cfg 1 / 1024×1024,三个文件分开装)。
✅ 提示词会写了:正向接 positive、负向接 negative;英文短语逗号分隔;(关键词:1.2) 权重语法加强关键词。
✅ ComfyUI 怎么生成图片:Run 或 Ctrl + Enter 入队,结果在 Save Image 节点,右键保存,文件落在 ComfyUI/output/。
关键参数回顾(第一次跑建议保持默认):
| 参数 | 经典 SD1.5 工作流 | Z-Image-Turbo 默认工作流 | 说明 |
|---|---|---|---|
| steps | 20 | 8 | 蒸馏模型步数少是特性,不是偷懒 |
| cfg | 8 | 1 | Turbo 类模型 cfg 就是 1 |
| sampler / scheduler | euler / normal | res_multistep / simple | 跟着工作流走 |
| denoise | 1.0 | 1.0 | 文生图从纯噪声开始,固定 1.0 |
| seed | randomize | fixed | 想复现就固定,想抽卡就随机 |
| 尺寸 | 512×512 | 1024×1024 | SD1.5 别直接拉到 1024 |
下一课预告
第一次生图只是热身。ComfyUI 真正的玩法是「选对模型再开工」:不同模型擅长完全不同的任务。下一课 模型×任务总览 带你把整个模型库逛一遍。
你会学到:
- Z-Image-Turbo、Qwen-Image、FLUX、Wan2.2、LTX 各自擅长什么、要多少显存
- 同一个任务(文生图 / 修图 / 生视频)该选哪个模型的工作流
- 从官方模板库一键加载对应工作流的方法
- 电商图、视频这些实战场景分别用哪条路线