ComfyUI教程第4课:SDXL模型工作流讲解-AI智能库

ComfyUI教程第4课:SDXL模型工作流讲解






ComfyUI教程第4课:SDXL模型工作流讲解 – 云端搭建文生图流程 | AI智能库















SDXL 模型工作流讲解:在 ComfyUI 中跑通第一张高清 AI 绘画

一、SDXL 是什么

1.1 一句话定义

SDXL(Stable Diffusion XL)是 Stability AI 推出的高分辨率图像生成模型,原生训练分辨率为 1024×1024,能够理解更复杂的自然语言提示词并生成细节更丰富的图像。

如果说 SD 1.5 是 AI 绘画的”高中生”,那么 SDXL 更像是”大学生”——它拥有更大的模型体量、更强的文本理解能力、更协调的人体结构,以及对多画幅比例的天然支持。在 ComfyUI 中,SDXL 是最常用的大模型之一,也是进入商业级 AI 绘画的第一块敲门砖。

1.2 为什么从 SDXL 开始学

本课程选择 SDXL 作为你接触 ComfyUI 的第一个图像模型,原因有三点:

  • 生态成熟:Civitai、HuggingFace 上有海量 SDXL 模型和 LoRA,资料最多、社区最活跃
  • 出图稳定:相比 SD 1.5,SDXL 在人物肢体、复杂场景、文字渲染上都有明显提升
  • 工作流通用:学会 SDXL 工作流后,切换到 FLUX、SD3.5 等新模型只需替换 Checkpoint 节点
特性 SD 1.5 SDXL
原生分辨率 512×512 1024×1024
模型大小 约 2GB 约 6.5GB
CLIP 编码器 1 个 2 个(OpenCLIP + CLIP-L)
文本理解 较弱,依赖标签词 较强,支持自然语言
人物肢体 容易出现畸形 更协调稳定
架构 单阶段模型 Base + Refiner 可选双阶段

二、SDXL 与 SD 1.5 的核心区别

2.1 模型体量更大

SDXL Base 模型通常为 sd_xl_base_1.0.safetensors,文件大小约 6.9GB;可选的 Refiner 模型 sd_xl_refiner_1.0.safetensors 约 6.1GB。这意味着:

  • 显存占用更高,8GB 显存建议只用 Base 模型
  • 生成速度略慢,但单次出图质量更高
  • 对硬盘空间要求更大,建议预留 50GB 以上

2.2 双文本编码器

SDXL 内部同时加载了 OpenCLIP ViT-bigG 和 CLIP ViT-L 两个文本编码器。在 ComfyUI 的 CheckpointLoaderSimple 节点中,这两个编码器会随模型一起加载,你不需要额外配置。它带来的直观好处是:提示词可以用更自然的句子描述,而不必像 SD 1.5 那样堆砌大量标签。

SD 1.5 vs SDXL 提示词风格对比

SD 1.5 常用写法:1girl, solo, long hair, blue eyes, school uniform, cherry blossoms, masterpiece, best quality

SDXL 推荐写法:A young girl with long hair and blue eyes, wearing a school uniform, standing under cherry blossom trees, soft morning light, highly detailed, masterpiece

2.3 Base + Refiner 双阶段可选

这是 SDXL 最具标志性的设计。Base 模型负责生成整体构图和语义结构,Refiner 模型在 Base 输出的潜空间噪声上继续采样,补充细节、锐化纹理。你可以把它理解为”先打草稿,再精修”。

SDXL Base与Refiner双阶段架构图,展示从基础模型到精炼模型的Latent传递流程
图 4-1 SDXL Base + Refiner 双阶段架构示意

三、Base + Refiner 双阶段架构

3.1 为什么要分两阶段

扩散模型在采样的不同阶段负责不同层次的信息:前期步骤主要决定画面构图、主体位置、颜色分布;后期步骤才逐步细化纹理、边缘、光影。SDXL 把这两个阶段拆成两个专门优化的模型,让 Base 专注于”画对”,Refiner 专注于”画细”。

3.2 双阶段工作流节点连接

节点 作用 关键参数
Load Checkpoint (Base) 加载 SDXL Base 模型 ckpt_name: sd_xl_base_1.0.safetensors
CLIP Text Encode ×2 分别编码正向/负向提示词 连接 Base 的 CLIP 输出
Empty Latent Image 创建 1024×1024 空白潜空间 width=1024, height=1024
KSampler (Base) Base 模型执行前 20 步采样 steps=25, end_at_step=20, return_with_leftover_noise=enable
Load Checkpoint (Refiner) 加载 SDXL Refiner 模型 ckpt_name: sd_xl_refiner_1.0.safetensors
KSampler (Refiner) Refiner 执行后 5 步细节增强 steps=25, start_at_step=20, add_noise=disable
VAE Decode 解码潜空间为像素图像 连接 Refiner 的 VAE
Save Image 保存最终图片 filename_prefix=SDXL_
显存不足怎么办

如果你的显卡显存小于等于 8GB,同时加载 Base 和 Refiner 两个模型很容易爆显存。解决方案:

  1. 只用 Base 模型生成,效果已经足够日常使用
  2. 在 Base KSampler 和 Refiner KSampler 之间插入 Unload Model 节点,释放 Base 模型后再加载 Refiner
  3. 使用量化版 Refiner 或社区融合的 Base+Refiner 单模型

3.3 什么时候可以跳过 Refiner

并不是所有情况都需要 Refiner。以下场景可以只用 Base:

  • 快速迭代测试提示词
  • 显存紧张
  • 使用的社区 Checkpoint 已经针对高质量做了融合优化
  • 后续还要进行高清放大或图生图重绘

四、标准文生图工作流搭建

如果你是第一次真正动手搭工作流,建议先从”单 Base 模型”的最简文生图流程开始,搞懂节点连接后再加入 Refiner。

4.1 最简 SDXL 文生图工作流

SDXL标准文生图工作流节点连接图,展示Load Checkpoint到Save Image的完整数据流
图 4-2 SDXL 标准文生图工作流节点连接示意

4.2 节点添加与连接步骤

步骤 1:加载模型

在画布空白处双击,搜索 CheckpointLoaderSimple,选择你的 SDXL Base 模型文件。该节点会自动输出 MODEL、CLIP、VAE 三个端口。

步骤 2:编码提示词

添加两个 CLIPTextEncode 节点,分别作为正向提示词和负向提示词。将两个节点的 clip 输入端口都连接到 CheckpointLoaderSimple 的 CLIP 输出端口。

步骤 3:创建空白潜空间画布

添加 EmptyLatentImage 节点,设置 width=1024、height=1024、batch_size=1。这里就是你画布的”毛坯”。

步骤 4:核心采样

添加 KSampler 节点,按如下方式连接:

  • model → CheckpointLoaderSimple 的 MODEL
  • positive → 正向 CLIPTextEncode 的 CONDITIONING
  • negative → 负向 CLIPTextEncode 的 CONDITIONING
  • latent_image → EmptyLatentImage 的 LATENT

步骤 5:解码与保存

添加 VAEDecode,samples 接 KSampler 的 LATENT,vae 接 CheckpointLoaderSimple 的 VAE。最后连接 SaveImage 节点保存图片。

正向提示词:
A serene mountain landscape at sunset, dramatic lighting, 
highly detailed, masterpiece, best quality, 8k resolution

负向提示词:
blurry, low quality, distorted, ugly, bad anatomy, 
bad hands, text, watermark, signature, worst quality

KSampler 参数:
steps: 25
cfg: 7.0
sampler_name: dpmpp_2m
scheduler: karras
denoise: 1.0
KSampler 参数解释
  • steps:采样步数,25~30 是 SDXL 的质量甜点
  • cfg:提示词跟随强度,SDXL 建议 6~8,过高容易过饱和或失真
  • sampler_name:dpmpp_2m 稳定均衡,euler_ancestral 更快更有变化
  • scheduler:karras 在 SDXL 上通常效果更好
  • denoise:文生图固定为 1.0,表示从纯噪声开始生成

五、分辨率与画幅比例

SDXL 最重要的使用原则之一,就是始终保持在约 100 万像素(1MP)附近。这是因为 SDXL 的训练数据几乎全是 1024×1024 附近的分辨率,强行偏离这个范围会导致画面质量断崖式下降。

SDXL推荐分辨率与画幅比例图,展示1:1、3:4、16:9、9:16、21:9等常用尺寸
图 4-3 SDXL 推荐分辨率与画幅比例

5.1 常用推荐尺寸

画幅比例 推荐分辨率 适用场景
1:1 1024×1024 头像、产品图、社交媒体方形图
3:4 896×1152 竖版人像、手机壁纸
4:3 1152×896 横版人像、插画封面
16:9 1344×768 电脑壁纸、视频封面
9:16 768×1344 短视频封面、手机全屏图
21:9 1536×640 电影宽银幕、横幅场景

5.2 为什么不能直接用 512×512 或 2048×2048

  • 512×512:SDXL 几乎没有在这个分辨率上训练过,生成的图片会模糊、构图混乱、人物畸形概率大幅增加
  • 2048×2048:远超训练分布,模型会”胡编”出重复纹理、扭曲肢体和奇怪结构
想要 2048 大图怎么办

正确做法不是直接生成 2048×2048,而是先生成 1024×1024,再通过高清放大工作流(后续第 17 课 SeedVR2、第 18 课 TTP 分块放大)进行像素级放大。这样既保留 SDXL 的生成质量,又获得高分辨率输出。

六、SDXL 提示词工程技巧

提示词(Prompt)是你和 AI 之间的”语言”。同样的模型,提示词写得好不好,直接决定出图质量。

SDXL提示词工程技巧图,展示正向提示词结构、负面提示词、权重语法和Base Refiner分工
图 4-4 SDXL 提示词工程技巧

6.1 正向提示词结构

推荐按”质量 → 主体 → 场景 → 风格 → 光影”的顺序书写:

(masterpiece, best quality, ultra-detailed, 8k), 
1girl, solo, long silver hair, blue eyes, gentle smile, 
wearing a flowing red dress, standing in a cherry blossom garden at sunset, 
soft bokeh, cinematic lighting, fantasy art style, highly detailed

6.2 负面提示词

负面提示词用来告诉模型”不要画什么”。以下是一份通用负面提示词模板:

lowres, bad anatomy, bad hands, text, error, missing fingers, 
extra digit, fewer digits, cropped, worst quality, low quality, 
normal quality, jpeg artifacts, signature, watermark, username, 
blurry, deformed, ugly, duplicate, morbid, extra limbs, bad proportions

6.3 权重语法

ComfyUI 支持通过括号控制提示词权重:

  • (keyword:1.3):将 keyword 权重提升 30%
  • (keyword:0.7):将 keyword 权重降低 30%
  • ((keyword)):等效于 (keyword:1.21)
  • [keyword]:等效于 (keyword:0.91)

6.4 Base 与 Refiner 提示词分工

在使用双阶段工作流时,可以给 Base 和 Refiner 分别写提示词:

  • Base 提示词:侧重构图、主体、场景、整体氛围
  • Refiner 提示词:侧重细节、质量、纹理、光影修饰词
示例

Base:a futuristic cyberpunk city at night, neon lights, flying cars

Refiner:highly detailed, cinematic lighting, sharp focus, best quality, 8k

七、在 RunningHub 云端运行 SDXL

如果你还没有本地显卡,或者不想折腾环境,可以直接在 RunningHub 云端运行 SDXL 工作流。云端已经预装了常用模型和插件,你只需要导入工作流即可。

7.1 云端运行优势

  • 无需本地显卡,浏览器即可操作
  • 预装 SDXL Base、Refiner 等常用模型
  • 云端 GPU 算力稳定,不受本地硬件限制
  • 工作流可以导出为 JSON,本地和云端无缝迁移

7.2 工作流导入方式

  1. 在本地 ComfyUI 中将搭建好的工作流保存为 JSON(点击右上角 Save 按钮)
  2. 登录 RunningHub,进入 ComfyUI 工作区
  3. 点击 Load 按钮,选择本地 JSON 文件上传
  4. 检查节点是否完整,模型路径是否匹配
  5. 点击 Queue Prompt 开始生成
云端模型路径注意事项

云端 ComfyUI 的模型存放路径可能与本地不同。如果加载后模型选择框为空,说明对应模型没有预装,需要先在 RunningHub 的模型库中下载,或手动上传自己的 .safetensors 文件到 /ComfyUI/models/checkpoints/ 目录。

八、常见问题与排错

8.1 画面模糊、细节差

  • 检查 EmptyLatentImage 分辨率是否在 1MP 附近
  • 提高 steps 到 28~30
  • 尝试切换到 dpmpp_2m_sde 采样器
  • 确认使用的是 SDXL 模型,而不是 SD 1.5 模型

8.2 人物肢体畸形、多手指

  • 在负面提示词中加入 bad anatomy, bad hands, extra fingers, missing fingers
  • 使用 1024×1024 或 896×1152 等人像友好分辨率
  • 尝试加入 embryos 等细节负面词

8.3 爆显存(CUDA out of memory)

  • 降低分辨率到 1024×1024 以内
  • 关闭 Refiner,只用 Base 模型
  • 减小 batch_size
  • 在 ComfyUI 启动参数中加入 --lowvram 或 --normalvram

8.4 提示词不生效

  • 检查 CLIPTextEncode 是否正确连接到 KSampler
  • 检查正负向提示词是否接反
  • 确认 CFG 值没有过低(SDXL 建议 6~8)

8.5 术语速查

Checkpoint
大模型文件,SDXL 常见为 6~7GB 的 .safetensors
Base
SDXL 基础模型,负责构图和主体生成
Refiner
SDXL 精炼模型,负责细节增强
CLIP
文本编码器,SDXL 内置双编码器
KSampler
采样器节点,控制扩散生成过程
CFG
提示词跟随强度,SDXL 建议 6~8
Latent
潜空间表示,模型实际处理的低维数据
VAE
变分自编码器,负责 Latent 与像素图互转

本课小结

  1. SDXL 是 Stability AI 的高分辨率模型,原生训练分辨率 1024×1024,理解自然语言提示词能力更强
  2. SDXL 采用可选的 Base + Refiner 双阶段架构:Base 负责构图,Refiner 负责细节
  3. 标准文生图工作流包含 6 个核心节点:CheckpointLoaderSimple → CLIPTextEncode → EmptyLatentImage → KSampler → VAEDecode → SaveImage
  4. 分辨率务必保持在约 1MP 附近,避免 512×512 或 2048×2048 的极端尺寸
  5. 提示词按”质量→主体→场景→风格→光影”结构书写,善用权重语法和负面提示词
  6. RunningHub 云端可以零硬件门槛运行 SDXL 工作流,工作流 JSON 可本地云端通用

课后任务

  1. 搭建最简 SDXL 文生图工作流:只使用 Base 模型,生成一张 1024×1024 的图片
  2. 尝试三种画幅比例:分别生成 1:1、3:4、16:9 三种比例的图片,观察画面差异
  3. 对比 Base 与 Base+Refiner:同一组提示词和种子,分别用两种模式生成,比较细节差异
  4. 练习提示词权重:用 (red dress:1.4) 和 (red dress:0.6) 分别生成,观察颜色强弱变化
  5. 导出工作流 JSON:保存你的工作流,为下一课在云端运行做准备
下节预告

第 05 课:FLUX.1 模型工作流讲解
我们将学习 2024~2025 年最热门的 FLUX.1 模型,它在文本渲染、复杂构图和提示词理解上更进一步,是 SDXL 之后的新一代文生图模型标杆。



© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享