找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1128

积分

0

好友

146

主题
发表于 昨天 03:21 | 查看: 1| 回复: 0

想用 ComfyUI 画出第一张图却不知从何下手?这篇文章将带你用最少的8个核心节点,完成从加载模型到保存PNG的完整流程。我们不止于“怎么做”,更会解释每个节点背后的数据流转与显存占用,为后续替换模型、接入LoRA打下坚实的理解基础。

核心工作流一览:不可或缺的8个节点

一个最基本的文生图(Text-to-Image)工作流,离不开以下8个节点。它们构成了Stable Diffusion在ComfyUI中的骨架:

  1. Load Checkpoint – 加载模型
  2. CLIP Text Encode (Prompt+) – 编码正向提示词
  3. CLIP Text Encode (Prompt−) – 编码负向提示词
  4. Empty Latent Image – 创建初始潜空间图像
  5. KSampler – 核心采样器
  6. VAE Decode – 将潜变量解码为像素图像
  7. Save Image – 保存图像到磁盘
  8. Preview Image (可选) – 在界面中实时预览

ComfyUI节点工作流界面概览

节点详解与参数设置:知其然,亦知其所以然

1. Load Checkpoint (加载检查点)

作用:将 .ckpt.safetensors 格式的模型文件,拆解为 MODEL (U-Net)、CLIP (文本编码器) 和 VAE (变分自编码器) 三个输出。
操作:在节点库搜索 “checkpoint” 并选择 “Load Checkpoint (简易版)”。
端口颜色与含义

  • MODEL (紫色圆点):去噪U-Net模型,流向KSampler。
  • CLIP (黄色圆点):文本编码器,流向CLIP Text Encode节点。
  • VAE (红色圆点):编解码器,流向VAE Decode节点。

Checkpoint加载器节点设置界面

2. CLIP Text Encode ×2 (文本编码)

这是理解Stable Diffusion工作原理的关键一步。节点将你的自然语言描述(提示词)转换为模型能理解的数学特征。

  • 正向提示词 (Prompt+):描述你希望画面中出现的内容。
    • 例如:1girl, purple hair, cyberpunk city, masterpiece, best quality
  • 负向提示词 (Prompt−):描述你希望画面中避免出现的内容。
    • 例如:lowres, bad anatomy, extra fingers, watermark, blurry
  • 关键参数:右侧的 clip_strength 滑块保持默认值 1.0 即可(它用于控制提示词强度,进阶应用时会调整)。
  • 输出CONDITIONING (浅绿色),一个 77×768 维的文本特征矩阵。

CLIP文本编码器的正负向提示词输入框

3. Empty Latent Image (空潜变量图像)

作用:为图像生成创建一个指定尺寸的“空白画布”(在潜空间内)。

  • 宽度/高度 (Width/Height):设为 512 × 512。对于显存8G或内存有限的机器,建议不超过此尺寸。
  • 批量大小 (batch_size):设为 1。如果想一次生成多张图,可增加此值(例如设为4),但显存占用会线性增加。
  • 输出LATENT (粉色),一个 4×64×64 的潜变量张量,内存占用约 0.5 MB

空Latent图像节点参数设置

4. KSampler (K采样器)

这是整个流程的“引擎”,负责迭代去噪,将随机噪声转化为符合提示词的潜变量图像。其参数设置是控制出图效果的核心。

  • seed (种子)123456。固定种子可以确保每次生成相同的图像,便于复现和调试。
  • steps (步数)20。采样迭代次数,增加步数可能提升细节,但耗时线性增加。
  • cfg (分类器自由引导尺度)7。控制提示词对生成结果的服从程度,通常在 7-12 之间调整。
  • sampler_name (采样器名称)euler_ancestral。一种带随机性的采样方法,适合动漫风格。
  • scheduler (调度器)normal
  • denoise (降噪强度)1.0。文生图默认即为1,图生图时才需要降低此值。

连线规则

  • MODEL 端口 ←→ Checkpoint节点的 MODEL 输出。
  • positive 端口 ←→ 正向提示词节点的 CONDITIONING 输出。
  • negative 端口 ←→ 负向提示词节点的 CONDITIONING 输出。
  • latent_image 端口 ←→ Empty Latent Image 节点的 LATENT 输出。
  • 输出:处理后的 LATENT (粉色)

K采样器节点详细参数面板

5. VAE Decode (VAE解码器)

作用:将KSampler输出的潜变量 (LATENT) “翻译”回我们可以看见的像素图像 (IMAGE)。

  • 输入latent 端口连接KSampler的 LATENT 输出;vae 端口连接Checkpoint节点的 VAE 输出。
  • 输出IMAGE (蓝色),一个 512×512×3 的RGB图像张量。
  • 内存估算:Float32精度下,单张图约 512×512×3×4 ≈ 3 MB。即使批量生成4张,也仅约 12 MB

VAE解码器节点连接示意图

6. Save Image (保存图像)

作用:将最终图像保存为PNG文件。

  • 输入image 端口连接VAE Decode的 IMAGE 输出。
  • filename_prefix (文件名前缀):可自定义,如 ComfyUI,系统会自动生成类似 ComfyUI_00001.png 的文件名。
  • 输出路径:默认保存在ComfyUI目录下的 output/年-月-日/ 子文件夹中。

保存图像节点设置界面

7. Preview Image (预览图像,可选)

与Save Image并联,输入同样来自VAE Decode。它不会保存文件,但能在画布上实时显示生成结果的缩略图,非常适合调试和快速预览。

预览图像节点示意

动手连接:一步步搭建你的第一个工作流

理解了节点功能后,现在动手连接它们。请在画布空白处双击,搜索并添加以下节点:

  1. 搜索 checkpoint,放置 Load Checkpoint 节点于画布左上角。
  2. 搜索 clip text,放置两个 CLIP Text Encode 节点,可右键节点选择 Title 将其重命名为 Prompt+Prompt-
  3. 搜索 empty latent,放置 Empty Latent Image 节点于画布中部。
  4. 搜索 ksampler,放置 KSampler 节点于中心。
  5. 搜索 vae decode,放置 VAE Decode 节点于KSampler右侧。
  6. 搜索 save image,放置 Save Image 节点于右下角。
  7. (可选)搜索 preview,放置 Preview Image 节点。

开始连线(用鼠标拖动输出端口到输入端口):

  • CheckpointMODELKSamplerMODEL
  • CheckpointCLIPPrompt+CLIPPrompt-CLIP
  • Prompt+CONDITIONINGKSamplerpositive
  • Prompt-CONDITIONINGKSamplernegative
  • Empty Latent ImageLATENTKSamplerlatent_image
  • KSamplerLATENTVAE Decodelatent
  • CheckpointVAEVAE Decodevae
  • VAE DecodeIMAGESave ImageimagesPreview Imageimage

完整连接的8节点最小工作流示意图

连接完成后,点击界面右侧的 Queue Prompt 按钮开始生成。首次运行需要编译,CPU用户可能需要40秒左右,GPU用户通常10秒内完成,后续相同尺寸的生成会更快(约5秒)。

生成结果与文件管理

生成的图像默认保存在 ComfyUI/output/当前日期/ 文件夹下,例如 output/2025-01-20/ComfyUI_00001.png

output文件夹中生成的PNG图片列表

一个重要特性:ComfyUI保存的PNG图片元数据中,嵌入了完整的工作流JSON信息。你可以直接将这个PNG图片拖回ComfyUI的画布,它会自动还原出生成它的整个节点工作流,这相当于免费的“工作流逆向工程”。

展示工作流生成结果及元数据嵌入特性

参数微调速查表

想要调整效果?参考这个表格快速定位参数:

目的 调整节点与参数 推荐值
提高图像细节 KSampler 的 steps 从 20 增加到 30
让图像更贴合提示词 KSampler 的 cfg 从 7 增加到 12
一次生成多张图 Empty Latent Image 的 batch_size 从 1 增加到 4(注意显存占用×4)
快速预览,节省时间 KSampler: steps=10, sampler_name=euler 生成时间减少约50%

资源占用实测参考

  • Apple M2 芯片 8G 统一内存
    • 模型加载后常驻:约 3.5 GB
    • 采样过程峰值:约 4.8 GB
    • VAE 解码瞬时峰值:约 5.2 GB(启用VAE分块解码后可降至约 4.1 GB)
  • Windows NVIDIA GTX 1060 6G 显存
    • 模型常驻:约 2.1 GB
    • 采样+潜变量处理:约 2.6 GB
    • VAE 解码:约 3.0 GB

保存与复用:建立你的工作流模板

工作流搭建完成后,务必保存。点击右侧菜单的 Save 按钮,将其保存为例如 basic_t2i_512.json 的文件。
下次使用时,只需将这个 .json 文件拖入ComfyUI画布,所有节点和连线都会自动恢复原样。养成“每次添加新功能前先另存一份”的习惯,可以让你轻松回滚到任何之前的版本。

常见新手问题排查

遇到错误别慌张,大部分是连线问题。

报错信息 可能原因 解决方案
CLIP Text Encode node not connected 正向或负向提示词节点的输出没有连接到KSampler 检查 CONDITIONING 端口是否正确连接到KSampler的 positivenegative
latent image shape mismatch Empty Latent Image 的输出连错了端口 确保粉色的 LATENT 输出连接到KSampler的 latent_image 输入
VAE Decode got unsupported dtype 在CPU环境下使用了半精度(half)模型 启动ComfyUI时添加命令行参数:--force-fp32--cpu
生成纯黑或噪点图 种子为0且CFG值过低(如1) cfg 值调整回 7-12 的正常范围

总结与进阶

这个“8节点工作流”是ComfyUI的“Hello World”,是所有高级应用的基石。记住,连线颜色代表数据类型,只有颜色相同的端口才能连接,这是ComfyUI强大的防错设计。
掌握了这个基础工作流,你就能在开源实战社区中探索更多复杂流程。下一步,尝试将模型从SD1.5换成如“AnythingV5”这样的二次元专用模型,用相同的参数感受不同模型带来的风格变化吧。更多关于节点原理和高级技巧,欢迎在技术文档板块深入探讨。




上一篇:深入剖析CUDA与Triton编译链路:GPU高性能计算与AI模型开发的底层原理
下一篇:Redis 实战:16个高频业务场景详解与应用技巧
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-2-5 03:29 , Processed in 0.287111 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表