先说结论

这篇文章不写原理,只记录一件事:怎么在 ComfyUI 里把 GGUF Q6_K + T5 FP8 的 FLUX 工作流搭起来。面向新手,每一步都写清楚节点叫什么、连哪里、参数填什么。

基于我的 RTX 4060 Laptop 8GB 实测,这套工作流能在 1024×1024 分辨率下正常出图,不 OOM。如果你用的是其他显卡,比如 RTX 3060 12GB、RTX 4060 Ti 8GB,节点搭建方式一样,但具体速度需要自己测。

本文只讲搭建,实测数据和速度对比见《8GB显存怎么跑 ComfyUI FLUX?RTX 4060 Laptop 实测低显存方案》。


你需要提前准备好的东西

  • ComfyUI 已安装并能正常打开(本文用的是 0.24.0)
  • ComfyUI-Manager 已安装(用于装 GGUF 节点)
  • 以下模型文件已经下载到对应目录:
模型文件 放在哪个目录 用途
flux1-dev-Q6_K.gguf models/unet/ UNet / 扩散模型
t5xxl_fp8_e4m3fn_scaled.safetensors models/text_encoders/ T5 FP8 文本编码器(主)
clip_l.safetensors models/text_encoders/ CLIP-L 文本编码器(辅)
ae.safetensors models/vae/ VAE 图像编解码

如果还没有模型文件,需要先下载。本文不展开下载步骤,去 HuggingFace 搜对应文件名即可。


安装 ComfyUI-GGUF 节点

GGUF 量化模型不能通过 ComfyUI 自带的 Load Checkpoint 或 UNET Loader 加载,需要用专门的 GGUF 加载节点。

  1. 打开 ComfyUI,在右侧菜单找到 ComfyUI-Manager
  2. Install Custom Nodes
  3. 搜索 ComfyUI-GGUF
  4. 安装
  5. 重启 ComfyUI

安装完成后,在节点菜单里应该能搜到 Unet Loader (GGUF) 这个节点。如果搜不到,检查是否重启了。


节点清单和关键参数

FLUX GGUF Q6_K 工作流总览

这张图是完整工作流总览,Unet Loader (GGUF)、DualCLIPLoader、CLIP 文本编码、EmptySD3LatentImage、KSampler、VAE Decode 和 SaveImage 都在同一套流程里。

整个工作流一共用到这 7 个节点:

1. Unet Loader (GGUF)

Unet Loader GGUF 节点

这里要用 Unet Loader (GGUF) 加载 flux1-dev-Q6_K.gguf,不要用普通 Load Checkpoint。

  • 节点名:Unet Loader (GGUF)
  • 参数:unet_name 选择 flux1-dev-Q6_K.gguf
  • 连接:输出 MODEL -> 连到 BasicGuider 或 KSampler

2. DualCLIPLoader

DualCLIPLoader T5 FP8 flux 设置

DualCLIPLoader 里 clip_name1 选择 clip_l.safetensors,clip_name2 选择 t5xxl_fp8_e4m3fn_scaled.safetensors,type 选择 flux。

  • 节点名:DualCLIPLoader
  • 参数
    • clip_name1:选择 clip_l.safetensors
    • clip_name2:选择 t5xxl_fp8_e4m3fn_scaled.safetensors
    • type:必须选 flux,不能是默认的 sdxl
  • 连接:输出 CLIP -> 连到 CLIP 文本编码 (Flux) 节点

3. CLIP 文本编码 (Flux)

  • 节点名:CLIP 文本编码 (Flux) — 注意是 一个 节点,不是两个
  • 说明:这个节点有 两个文本框,都从 DualCLIPLoader 的同一个 CLIP 输出连入
    • 上方文本框:写详细提示词(英文,描述你想要的内容)
    • 下方文本框:写简短概括,也是正向条件,不是负面提示词
  • 连接
    • 输入 CLIP <- 来自 DualCLIPLoader
    • 输出 CONDITIONING -> KSampler 的 positive

4. EmptySD3LatentImage

  • 节点名:EmptySD3LatentImage — 专门给 SD3/FLUX 用的空白画布
  • 参数
    • width:1024
    • height:1024
    • batch_size:1(8GB 显存不要设大于 1)
  • 连接:输出 LATENT -> 连到 KSampler 的 latent_image

5. KSampler

  • 节点名:KSampler
  • 参数
    • seed:随意,或者设 fixed 方便复现
    • steps:20(推荐起步值)
    • cfg:1.0(FLUX 基本都设 1.0)
    • sampler_name:euler
    • scheduler:simple
    • denoise:1.0
  • 连接
    • model <- 来自 Unet Loader (GGUF)
    • positive <- 来自 CLIP 文本编码 (Flux)
    • negative <- 空或连一个 Empty Conditioning 节点
    • latent_image <- 来自 EmptySD3LatentImage
    • 输出 LATENT -> 连到 VAEDecode

6. VAEDecode

  • 节点名:VAEDecode
  • 连接
    • samples <- 来自 KSampler
    • vae <- 来自 VAELoader(见下)
    • 输出 IMAGE -> 连到 SaveImage

7. VAELoader + SaveImage

  • VAELoader:vae_name 选 ae.safetensors,连到 VAEDecode
  • SaveImage:默认参数即可,连 VAEDecode 的输出

节点连接顺序(一览)

按信号流向排:

  1. 加载模型:Unet Loader (GGUF) -> 输出 MODEL
  2. 加载文本编码器:DualCLIPLoader -> 输出 CLIP
  3. 写提示词:CLIP 文本编码 (Flux) <- 接 CLIP,输出 CONDITIONING
  4. 建空白画布:EmptySD3LatentImage -> 输出 LATENT(1024×1024, batch 1)
  5. 采样:KSampler <- 接 MODEL + CONDITIONING + LATENT,输出新 LATENT
  6. 加载 VAE:VAELoader 选 ae.safetensors
  7. 解码:VAEDecode <- 接 KSampler 输出 + VAE
  8. 保存:SaveImage <- 接 VAEDecode 输出

常见错误(踩坑记录)

用错加载节点

错误:用了 ComfyUI 自带的 Load Checkpoint 或 UNET Loader 加载 .gguf 文件。 后果:加载失败或直接报错。 正确做法:必须用 Unet Loader (GGUF),这是 ComfyUI-GGUF 节点提供的。

T5 放错目录

错误:把 t5xxl_fp8_e4m3fn_scaled.safetensors 放到了 models/clip/ 而不是 models/text_encoders/。 后果:DualCLIPLoader 选不到这个文件。 正确做法:T5 模型文件放 models/text_encoders/。

type 没选 flux

错误:DualCLIPLoader 的 type 保持了默认值 sdxl。 后果:可能不会直接报错,但文本理解会出错,出图不对。 正确做法:DualCLIPLoader 的 type 必须选 flux。

第二文本框误当负面提示词

错误:把 CLIP 文本编码 (Flux) 的下方文本框留空,或者当成负面提示词填了一堆 (bad quality:1.4)。 后果:FLUX 对这个框的理解不是负面条件,留空可能导致出图质量下降。 正确做法:下方文本框写一句简短正向概括,比如 “a realistic portrait photo of a young Chinese woman”。这个框帮助模型理解你想强调什么,不是排除什么。

batch_size 大于 1

错误:EmptySD3LatentImage 里 batch_size 设成了 2 或更大。 后果:8GB 显存几乎必然 OOM。 正确做法:batch_size 老老实实设 1


我的测试环境

项目 配置
GPU NVIDIA GeForce RTX 4060 Laptop GPU
专用显存 8 GB
系统内存 32 GB
操作系统 Windows 11 Home China
驱动版本 610.47
ComfyUI 版本 0.24.0
Python 3.11.9 (venv)
PyTorch 2.6.0+cu124
CUDA 12.4

项目来源与版本提醒

这套工作流使用社区项目 ComfyUI-GGUF 提供的加载节点。该项目仍会更新,节点分类、支持的量化格式和安装依赖都可能变化。FLUX.1-dev 的模型信息与许可条件见 Black Forest Labs 模型卡

本文只复现截图中的 Q6_K + T5 FP8 组合,不把其他 GGUF 模型或新版节点的行为推断为相同。


常见问题 FAQ

这套工作流最低需要多少显存?

本文在 RTX 4060 Laptop 8GB 上实测通过。没有在更低显存(6GB、4GB)上测试。

能不能用 FP16 原版 UNet?

不建议 8GB 显卡直接用 FP16 原版。原版 UNet + 全精度 T5 对 8GB 显存很不友好,通常会依赖 offload,速度和稳定性不好保证。本文方案是 GGUF Q6_K,不是 FP16。

3060 也能用这套工作流吗?

节点搭建方式一样。我没有 3060 机器,不能确认同样耗时;3060 12GB 显存更宽裕,但具体速度和兼容性需要实测。

为什么不用普通 Checkpoint Loader?

因为 FLUX GGUF 文件不是标准 ComfyUI checkpoint 格式。必须用 GGUF 专用加载节点。

第二个文本框真的不能空着吗?

可以空着,但实测建议填一句简短概括。FLUX 的双文本框设计是上面详细描述、下面提炼重点,两个都是正向条件。

数据与更新说明

配置会随 ComfyUI、自定义节点和显卡驱动更新而变化。复现前请先核对本文测试日期;发现错误可通过联系方式反馈。

同一测试链的相关文章