FLUX.1 模型工作流讲解:当前最强的开源文生图模型
2026-09-05 更新
由 AI智能库 编写
一、FLUX.1 是什么
1.1 一句话定义
FLUX.1 是由 Black Forest Labs(黑森林实验室)发布的开源图像生成模型系列,当前开源领域最强的文生图模型之一。
FLUX.1 于 2024 年 8 月发布,由 Stable Diffusion 原班人马创立的黑森林实验室开发。它在图像质量、提示词理解、文本渲染、人体解剖准确性等方面全面超越了 SDXL 和 SD3,被公认为 2025-2026 年开源文生图的事实标准。
与 Midjourney 相比,FLUX.1 的优势在于:
- 完全开源:模型权重可下载到本地,无需联网即可运行
- 文本渲染极强:能准确生成图片中的文字、Logo、标语
- 提示词理解精准:复杂描述也能忠实还原
- 人体结构准确:手指、面部、肢体比例大幅改善
- ComfyUI 原生支持:第一时间适配节点式工作流
黑森林实验室由 Stable Diffusion 的核心开发者 Robin Rombach 等人创立。SD 1.5、SDXL 都出自这个团队。FLUX.1 可以看作是他们离开 Stability AI 后的”集大成之作”。
1.2 FLUX.1 在模型生态中的位置
| 模型 | 出品方 | 开源 | 特点 | 推荐指数 |
|---|---|---|---|---|
| FLUX.1 [dev] | Black Forest Labs | 是 | 质量最高,细节丰富 | ★★★★★ |
| FLUX.1 [schnell] | Black Forest Labs | 是 | 4步出图,速度极快 | ★★★★★ |
| SDXL | Stability AI | 是 | 生态成熟,LoRA丰富 | ★★★★☆ |
| SD 1.5 | Stability AI | 是 | 轻量快速,资源占用低 | ★★★☆☆ |
| Midjourney v7 | Midjourney Inc | 否 | 美学极致,闭源云端 | ★★★★★ |
二、三大版本详解:Dev / Schnell / Pro
FLUX.1 提供三个版本,满足不同场景需求。理解它们的区别是正确使用 FLUX 的第一步。
2.1 FLUX.1 [dev] — 质量优先
- 定位:开源高质量版本,最接近 Pro 的出图质量
- 采样步数:20-30 steps(推荐 20)
- 显存需求:≥12GB(FP16),8-12GB(FP8/GGUF)
- 许可证:非商业使用(商用需向 Black Forest Labs 申请)
- 适用场景:最终成品、商业插画、精细细节输出
2.2 FLUX.1 [schnell] — 速度优先
- 定位:蒸馏加速版,4 步即可出图
- 采样步数:4 steps(固定)
- 显存需求:8-12GB
- 许可证:Apache 2.0(可商用,无需授权)
- 适用场景:快速迭代、概念验证、批量试稿
- 先用 schnell 快速生成 10-20 张草图,锁定构图和风格方向
- 记录满意的种子值(seed),切换到 dev 精修细节
- 商业项目如需最高质量,考虑申请 Pro API
2.3 FLUX.1 [pro] — API 闭源版
- 定位:闭源最强版本,仅通过 API 访问
- 访问方式:fal.ai、Replicate、硅基流动等平台
- 费用:约 0.01-0.05 元/张
- 适用场景:无显卡用户、需要最高质量的商业项目
| 对比项 | Dev | Schnell | Pro |
|---|---|---|---|
| 出图质量 | ★★★★★ | ★★★★☆ | ★★★★★ |
| 生成速度 | 较慢 | 极快(4步) | 快 |
| 显存需求 | ≥12GB | 8-12GB | 云端 |
| 商业授权 | 需申请 | 可商用 | 按量付费 |
| 本地运行 | 可以 | 可以 | 不可以 |
| 推荐用法 | 最终成品 | 快速迭代 | 无显卡用户 |
三、FLUX.1 与 SD 的核心差异
FLUX.1 不是 SD 的简单升级,它在架构上有根本性变化。在 ComfyUI 中搭建 FLUX 工作流时,你会发现很多节点和 SD 不一样。
3.1 架构层面的差异
| 维度 | SDXL / SD 1.5 | FLUX.1 |
|---|---|---|
| 模型加载器 | Load Checkpoint | UNETLoader / Load Diffusion Model |
| 文本编码器 | 单个 CLIP | 双编码器:CLIP-L + T5-XXL |
| VAE | 内置在 checkpoint 中 | 独立加载 ae.safetensors |
| CFG 设置 | 通常 7-8 | 固定 1.0(guidance-distilled) |
| 采样器 | euler_a, dpmpp 等 | euler + simple(推荐) |
| 潜空间维度 | 64×64(SD1.5)/ 128×128(SDXL) | 更复杂的流匹配(Flow Matching) |
| 负面提示词 | 非常重要 | 几乎不需要(可留空) |
3.2 为什么 CFG 必须设为 1.0?
这是 FLUX 最容易踩的坑。传统 SD 模型中,CFG(Classifier Free Guidance)值通常在 7-8 之间,用于控制模型对提示词的”服从程度”。
但 FLUX.1 采用了 guidance distillation(引导蒸馏) 技术,在训练阶段就把 CFG 的影响内化了。这意味着:
- CFG = 1.0:正常工作,出图质量最佳
- CFG > 1.0:画面过饱和、出现伪影、颜色失真
- CFG < 1.0:画面发灰、细节丢失
如果你用 FP8 量化版本的 FLUX 模型,CFG 必须严格设置为 1.0。FP8 量化过程就是针对 CFG=1.0 校准的,任何偏离都会导致不可预期的质量问题。
3.3 双文本编码器:CLIP-L + T5-XXL
FLUX.1 使用两个文本编码器协同工作:
- CLIP-L:负责理解语义内容、风格描述
- T5-XXL:负责理解复杂句式、长文本、细节描述
在 ComfyUI 中,你需要用 DualCLIPLoader 节点同时加载这两个编码器,而不是传统的单个 CLIPLoader。
四、模型文件准备与目录结构
4.1 需要下载的文件清单
搭建 FLUX 工作流前,你需要准备以下模型文件:
| 文件 | 存放路径 | 说明 | 大小 |
|---|---|---|---|
flux1-dev.safetensors |
models/unet/ |
主模型(Dev版) | 约 23GB |
flux1-schnell.safetensors |
models/unet/ |
主模型(Schnell版) | 约 23GB |
clip_l.safetensors |
models/clip/ |
CLIP-L 编码器 | 约 246MB |
t5xxl_fp16.safetensors |
models/clip/ |
T5-XXL 编码器(FP16) | 约 9.7GB |
t5xxl_fp8_e4m3fn.safetensors |
models/clip/ |
T5-XXL 编码器(FP8,省显存) | 约 4.9GB |
ae.safetensors |
models/vae/ |
FLUX 专用 VAE | 约 335MB |
- 16GB+ 显存:用 FP16 完整版,质量最佳
- 12GB 显存:用 FP8 量化版模型 + FP8 T5 编码器
- 8GB 显存:用 GGUF 量化版(Q4/Q8)+
--lowvram启动参数
4.2 模型下载渠道
- HuggingFace:官方仓库
black-forest-labs/FLUX.1-dev - Civitai:搜索 “FLUX.1” 有社区优化版本
- ComfyUI Manager:部分模型可通过 Manager 直接下载
五、ComfyUI 工作流搭建(完整步骤)
下面是一个标准的 FLUX.1 文生图工作流,我们将逐个节点讲解。
5.1 第一步:加载双文本编码器(DualCLIPLoader)
右键画布 → Add Node → loaders → DualCLIPLoader
- clip_name1:选择
clip_l.safetensors - clip_name2:选择
t5xxl_fp16.safetensors(或 FP8 版本) - type:选择
flux
这个节点输出 CLIP 接口,需要连接到两个 CLIP Text Encode 节点。
5.2 第二步:加载扩散模型(Load Diffusion Model)
右键画布 → Add Node → loaders → Load Diffusion Model
- model_name:选择
flux1-dev.safetensors或flux1-schnell.safetensors
注意:FLUX 不使用传统的 CheckpointLoader,而是用 UnetLoader 或 Load Diffusion Model 节点。
5.3 第三步:文本编码(CLIP Text Encode × 2)
添加两个 CLIP Text Encode 节点:
- 正向提示词节点:连接 DualCLIPLoader 的 CLIP 输出,输入你的画面描述
- 负向提示词节点:FLUX 的负面提示词效果很弱,可以直接留空
- FLUX 对自然语言理解极强,可以用完整句子描述
- 不需要像 SD 那样堆砌关键词,”a beautiful girl” 不如 “a young woman standing in a sunlit garden, wearing a flowing white dress”
- 支持复杂构图描述:”in the foreground… in the background…”
- 文本渲染:在提示词中直接写要显示的文字,加引号更稳定
5.4 第四步:创建空白画布(Empty Latent Image)
右键画布 → Add Node → latent → Empty Latent Image
- width:1024
- height:1024
- batch_size:1(一次出几张)
FLUX 的原生分辨率是 1024×1024,也可以尝试 832×1216(竖版)或 1216×832(横版)。
5.5 第五步:核心采样(KSampler)
右键画布 → Add Node → sampling → KSampler
- model:连接 Load Diffusion Model 的 MODEL 输出
- positive:连接正向 CLIP Text Encode 的 CONDITIONING
- negative:连接负向 CLIP Text Encode(可留空)
- latent_image:连接 Empty Latent Image 的 LATENT
- seed:随机种子,固定可复现
- control_after_generate:randomize / fixed
- steps:Dev 用 20,Schnell 用 4
- cfg:必须设为 1.0
- sampler_name:
euler - scheduler:
simple - denoise:1.0(文生图)
5.6 第六步:加载 VAE 并解码
添加两个节点:
- VAELoader:加载
ae.safetensors - VAE Decode:将 KSampler 输出的 LATENT 解码为图像
- samples:连接 KSampler 的 LATENT
- vae:连接 VAELoader 的 VAE
5.7 第七步:保存图片(Save Image)
右键画布 → Add Node → image → Save Image
- images:连接 VAE Decode 的 IMAGE
- filename_prefix:输出文件名前缀,如
flux_output
5.8 完整节点连接总结
DualCLIPLoader ──CLIP──→ CLIP Text Encode(正) ──CONDITIONING──┐
└──→ CLIP Text Encode(负) ──CONDITIONING──┤
│
Load Diffusion Model ──MODEL──→ KSampler ←──LATENT── Empty Latent Image
│
↓ LATENT
VAE Decode ←──VAE── VAELoader(ae.safetensors)
│
↓ IMAGE
Save Image
六、关键参数设置与调优
6.1 参数速查表
| 参数 | Dev 推荐值 | Schnell 推荐值 | 说明 |
|---|---|---|---|
| steps | 20-30 | 4(固定) | 步数越多细节越丰富 |
| cfg | 1.0 | 1.0 | 固定值,不可调 |
| sampler | euler | euler | 最稳定可靠 |
| scheduler | simple / beta | simple | simple 通用性最好 |
| 分辨率 | 1024×1024 | 1024×1024 | 原生分辨率 |
| denoise | 1.0 | 1.0 | 文生图固定 1.0 |
6.2 分辨率与画幅
FLUX.1 在以下分辨率表现最佳:
- 1024 × 1024:正方形,通用场景
- 832 × 1216:竖版 2:3,人像、海报
- 1216 × 832:横版 3:2,风景、场景
- 1360 × 768:横版 16:9,视频帧、宽屏
FLUX 对非标准比例(如 512×512、768×768)的出图质量会明显下降。尽量使用上述推荐分辨率,或在生成后用 SeedVR2 等节点裁剪/放大到目标尺寸。
6.3 显存不足时的优化方案
如果你的显卡显存不够,可以尝试以下方案:
- 使用 FP8 量化模型
- 下载
flux1-dev-fp8.safetensors替代完整版 - 质量损失很小,显存占用减半
- 下载
- 使用 GGUF 量化模型
- 需要安装 ComfyUI-GGUF 自定义节点
- Q8 质量接近 FP16,Q4 适合 6-8GB 显存
- 启动参数优化
python main.py --lowvram # 降低显存峰值 python main.py --novae # VAE 按需加载 python main.py --lowvram --novae # 组合使用 - 使用 T5 FP8 编码器
- 用
t5xxl_fp8_e4m3fn.safetensors替代 FP16 版本 - 节省约 5GB 显存
- 用
七、常见问题排查
7.1 报错:CUDA out of memory
原因:显存不足
解决:
- 切换到 FP8 或 GGUF 量化模型
- 添加
--lowvram启动参数 - 降低分辨率到 832×832 测试
- 关闭其他占用显存的程序
7.2 报错:Error loading DualCLIPLoader
原因:clip 文件缺失或路径不对
解决:
- 确认
clip_l.safetensors和t5xxl_fp16.safetensors都在models/clip/目录 - 检查 DualCLIPLoader 的 type 是否设为
flux
7.3 出图过饱和、颜色失真
原因:CFG 值设置错误
解决:将 CFG 严格设为 1.0,不要沿用 SD 的 7-8
7.4 出图模糊、细节不足
原因:步数不足或用了 Schnell 但期望 Dev 质量
解决:
- Dev 模型至少用 20 steps
- 检查是否用了正确的模型文件
- 尝试 beta scheduler 替代 simple
7.5 第一次运行下载模型很慢
原因:ComfyUI 自动下载缺失的模型权重
解决:提前手动下载好所有模型文件放到对应目录,避免运行时下载
八、FLUX 的文本渲染能力
FLUX.1 最惊艳的能力之一是图片内文本渲染。与 SD 系列相比,FLUX 能准确生成可读的文字、Logo、标语。
8.1 文本渲染提示词技巧
- 在提示词中直接写要显示的文字,加引号:
a sign with text "Welcome to Paris" - 指定字体风格:
neon sign, glowing text或handwritten calligraphy - 控制文字位置:
text in the center of the image - 短文本比长文本成功率更高
8.2 应用场景
- 电商主图:产品 + 促销文案
- 海报设计:标题 + 视觉元素
- Logo 概念:品牌名称 + 图形
- 书籍封面:书名 + 作者名
虽然 FLUX 的文本渲染远超 SD,但仍可能出现拼写错误、字母缺失等问题。对于关键商业文案,建议生成后用 Photoshop 等工具精修文字。
本课小结
- FLUX.1 是当前开源最强的文生图模型,由 SD 原班人马开发
- 三个版本:Dev(质量)、Schnell(速度)、Pro(API)
- 与 SD 的核心差异:DualCLIP 双编码器、UNetLoader、CFG=1.0、独立 VAE
- 工作流搭建 7 步:DualCLIPLoader → Load Diffusion Model → CLIP Encode ×2 → Empty Latent → KSampler → VAE Decode → Save Image
- CFG 必须设为 1.0,推荐 euler + simple 采样组合
- 显存不足时用 FP8/GGUF 量化模型 + –lowvram 参数
- FLUX 的文本渲染能力极强,适合需要图片内文字的场景
课后任务
- 下载模型文件:准备好 flux1-dev.safetensors、clip_l、t5xxl、ae.safetensors
- 搭建工作流:按照本课步骤,在 ComfyUI 中搭建第一个 FLUX 文生图工作流
- 对比实验:用同一提示词分别跑 Dev(20步)和 Schnell(4步),对比质量和速度
- 文本渲染测试:尝试生成包含指定文字的图片,如 “a coffee shop sign with text ‘Best Coffee'”
- 记录种子值:找到一张满意的图,记录 seed,尝试微调提示词观察变化
第 06 课:大模型和 LoRA 模型详细使用流程
我们将学习如何在 FLUX 和 SDXL 工作流中加载 Checkpoint 大模型、叠加 LoRA 微调模型,实现特定人物和风格的精确控制。这是从”出图”到”出想要的图”的关键一课。








