从零跑通一个「文生图」工作流:6 个核心节点逐步拆解

上一篇(ComfyUI 系列第 2 篇)我们把 SDXL 环境在 ComfyUI Desktop 上彻底搭好:模型就位、显存确认、首次启动成功。但环境只是舞台,真正的主角是「工作流」。这一篇,我们把 ComfyUI 默认的文生图工作流逐节点、逐参数拆开讲透,让你不只是「点一下 Queue 蹦出一张图」,而是明白每个节点在数据流中的位置、每个参数背后的原理。读懂这一篇,你就掌握了 ComfyUI 的思维模型,后面学图生图、局部重绘、放大,都只是在这张图上加节点。

实测环境:Mac mini M4(32G 统一内存)+ ComfyUI Desktop + SDXL 基础模型,以下所有参数均在此环境下验证。

一、先建立核心概念:工作流是一张数据流图

ComfyUI 的本质是一张有向无环图(DAG)。每个节点(Node)封装一个独立功能——加载模型、编码文字、采样、解码;每个节点有输入端口输出端口;节点之间用**连线(Wire)**连接,连线就是数据流动的管道。你按下 Queue Prompt 后,ComfyUI 从终点节点(Save Image)反向追溯依赖,确定执行顺序,依次运行每个节点,把上游输出作为下游输入,最终产出图像。

理解了「数据从左往右流」,看懂任何工作流都不难:左侧是原料(模型、文字、空白画布),中间是加工(采样),右侧是成品(解码、保存)。

打开方式:ComfyUI Desktop 启动后,默认会加载内置的文生图工作流(Workflow 模板里的 "Text to Image")。若是空白画布,点菜单 Sidebar → Templates,选择文生图模板即可。此时画布上应该正好出现我们接下来要拆解的六个节点。

二、六个核心节点逐个拆解

1. Load Checkpoint:一切从模型开始

这个节点负责把 SDXL 的 checkpoint 文件(.safetensors,通常 6.5GB 左右)从硬盘加载进内存。它有三个输出端口,对应 Stable Diffusion 架构的三个组件:

一个 checkpoint 内部打包了这三样东西,所以一个模型节点就能喂饱整条工作流。参数只有 ckpt_name 一个,选择你的 SDXL 模型文件(如 sd_xl_base_1.0.safetensors)。注意:若列表为空,说明模型没放进 models/checkpoints 目录,或放错了子目录。

2. CLIP Text Encode(正向与负向两个实例):告诉模型你要什么

工作流里有两个一模一样的节点,一个接正向提示词(positive),一个接负向提示词(negative)。它们做的事相同:把文本经 CLIP 编码成条件向量,交给采样器——正向是「我要什么」,负向是「我不要什么」。

SDXL 与 SD1.5 的一个重要区别:SDXL 训练时使用了大量自然语言描述(类似 LAION 的图文对),因此短标签堆砌(1girl, masterpiece, ultra detailed)不再是唯一解,写成完整的自然语句往往效果更好。要点:

示例(正向):a young woman in a light summer dress standing on a sunny beach, gentle ocean waves in the background, golden hour lighting, soft bokeh, shot on 85mm lens, photorealistic

示例(负向):blurry, lowres, bad anatomy, extra fingers, watermark, text

3. Empty Latent Image:生成前先铺一张「空画布」

扩散模型不是直接画图,而是在潜空间(Latent Space)里从一团随机噪声开始逐步去噪。这个节点生成那团初始噪声,参数三个:

4. KSampler:整个工作流的心脏

采样器接收模型、正负向条件、初始噪声,执行去噪循环。参数最多,逐个说:

5. VAE Decode:从潜空间到肉眼可见

KSampler 输出的仍是一组 128×128 的潜空间张量(四通道的压缩数学表示),人眼看不了,也没法存成 PNG。VAE Decode 用 VAE 的解码器把潜数据还原回 1024×1024 的 RGB 图像。这就是为什么 Load Checkpoint 的 VAE 输出要单独拉一根线到这个节点。没有它,工作流跑不通「保存」这一步。

6. Save Image:落盘

接收解码后的图像并写入硬盘。filename_prefix 是文件名前缀,默认 ComfyUI,生成的文件形如 ComfyUI_00001_.png,序号自动递增。保存目录在 ComfyUI Desktop 的 output 文件夹内,建议按主题改前缀(如 sdxl_beach)方便日后翻找。值得强调:PNG 里内嵌了完整的工作流与参数元数据,把图拖回 ComfyUI 画布即可还原整张工作流——这是排查「这张图当时怎么生成的」的利器。

三、连线实战:按数据流顺序接六根线

默认模板已连好,但请务必亲手从空白重建一次。推荐按数据流顺序连线:

  1. Load Checkpoint 的 MODEL → KSampler 的 model
  2. Load Checkpoint 的 CLIP → 正向 CLIP Text Encode 的 clip;同一 CLIP 再拉一根 → 负向 CLIP Text Encode 的 clip(一个输出可以连多个下游)
  3. 正向 CLIP Text Encode 的 CONDITIONING → KSampler 的 positive;负向的 → negative
  4. Empty Latent Image 的 LATENT → KSampler 的 latent_image
  5. KSampler 的 LATENT → VAE Decode 的 samples
  6. Load Checkpoint 的 VAE → VAE Decode 的 vae;VAE Decode 的 IMAGE → Save Image 的 images

新手最常见的三类连线错误:一是把 CLIP 输出直接连到 KSampler——端口类型不匹配,ComfyUI 会拒绝或转接,出图常常完全不像提示词;二是把 VAE Decode 的 IMAGE 又接回 KSampler——数据流倒灌,逻辑混乱;三是漏掉 Load Checkpoint 到 VAE Decode 的 VAE 线,导致解码失败或报错。连完之后检查一遍:所有节点的输入端口是否都有对应的线,有没有悬空的端口(灰点或红框)。

四、参数与提示词实战:一个完整的例子

我们用一个「夏日海边女孩」的完整例子把上面所有参数串起来。正向提示词用自然语言描述:

a young woman in a light summer dress standing on a sunny beach, gentle ocean waves in the background, golden hour lighting, soft bokeh, shot on 85mm lens, photorealistic

负向提示词:

blurry, lowres, bad anatomy, extra fingers, watermark, text

参数设置:seed 固定(比如 12345)、steps 30、cfg 7、sampler dpmpp_2m、scheduler karras、denoise 1.0、尺寸 1024×1024、batch 1。点 Queue 生成。

这里的关键是学会「单变量实验」:只改一个参数,观察效果。比如:

一次只动一个变量,你才能真正建立「哪个参数控制什么」的手感,而不是盲目乱调。

五、保存与复用工作流

工作流本身就是可保存、可复用的资产,这是 ComfyUI 相对其它工具最实用的地方之一。

保存:菜单 Workflow → Save,会存成一个 .json 文件,包含画布上所有节点的位置、参数和连线关系。

导出/分享:Workflow → Export,导出 json 给别人;别人用 Import 导入即可还原。很多社区分享的「工作流文件」就是这么来的。

为什么重要:一套调好的参数组合,改一个提示词就能批量产出不同内容。这也是后续做批量出图、固定风格交付的基础——把工作流存好,等于把你验证过的方法固化下来,随时复用。

六、避坑指南

节点红框 / 报错:某个节点变红框通常是该节点的代码或配置出错。悬停看错误信息,最常见的两类:一是端口类型不匹配(如把 IMAGE 连到 MODEL 口),删掉重连;二是缺依赖节点或模型文件路径错误。

生成全黑图:多半是 VAE 没接对,或 VAE 缺失。检查 Load Checkpoint 的 VAE 是否正确连到 VAE Decode;若用的模型版本裁掉了 VAE,需要单独加载 sdxl_vae.safetensors

画面与提示词完全不符:先检查 CLIP 那根线是不是接到了正确的正向/负向节点,再确认 conditioning 端口连对了;其次看是否误用了 SD1.5 的提示词写法(标签堆砌)导致 SDXL 理解偏差。

尺寸异常 / 重复肢体:Empty Latent 尺寸设回 512 会出现 SD1.5 时代的畸形;设到 1536 以上则可能重复人物。SDXL 就坚持 1024 附近(或 896×1152 等总量接近 100 万像素的尺寸)。

内存不足被 killed:生成前关掉大应用,batch 保持 1,必要时开低显存模式(--lowvram)。

相关资源

下一篇进入进阶:图生图 / 局部重绘(Inpaint)/ 放大(Upscale)——这是修图接单的核心技能组合。会用这几招,你就能把一张普通照片修成客户想要的样子,也是从「能出图」走向「能交付」的关键一步。

← 返回文章列表