FLUX.2:Dev 多参照一致性与 Klein 轻量版
FLUX.2 是 Black Forest Labs 的下一代图像模型:最高 4MP 照相级输出,光线、皮肤、织物和手部细节全面升级。它把 FLUX.1 的「一张参考图」升级成多参照一致性——最多 10 张参考图,人物、商品几何、材质、服装在多张输出里保持一致;文字渲染也达到了专业级,UI 截图、信息图、多语言内容都能写出干净可读的字。
ComfyUI 这边有两套方案:FLUX.2 Dev(开源全量版,效果最好)和 FLUX.2 [Klein](轻量版,一个架构统一文生图和修图,4B 蒸馏版 4 步出图、约 8.4GB 显存)。这一页把两套 FLUX.2 工作流都跑通。
学完你能做什么
- 跑通 FLUX.2 Dev 多参照工作流:模板加载 → 三件套归位 → 多参考图一致性编辑出图
- 用 ReferenceLatent 链把多张参考图挂进条件:设计稿 + 商品照 → 图案贴上实物
- 切换 FLUX.2 Klein 4B 轻量版:蒸馏版 4 步出图,8GB 级显存本地跑
- 分清两套权重体系:Dev 的 fp8mixed 量化档 vs Klein 4B/9B 各自的 base 与 distilled 两型,不再下错文件
- 记住 FLUX.2 与 FLUX.1 的节点差异:CLIPLoader 单编码器(type
flux2)取代 DualCLIPLoader
你现在的困境
- 想给产品换包装:设计稿一张、商品照一张,普通图生图只会把两张图「平均」成一张四不像
- 同一个角色出 10 张图,脸、服装、画风每张都不一样,一致性全靠抽卡
- 听说 FLUX.2 效果好,一看模型 33GB——不知道自己那块卡还跑不跑得动
什么时候用这一招
当你需要:
- 多参照一致性:人物 + 服装 + 场景多张参考图合成一张,各取所长
- 专业文字渲染:海报大字、UI 界面、包装上的品牌字要干净可读
- 精确的 hex 品牌色:指定色号,输出配色不跑偏
- 低配置也想要 FLUX.2 质感:Klein 4B 用 8.4GB 显存跑起来
而且不想:
- 每次都把参考图特征「抄」丢——FLUX.1 Kontext 单参考图撑不起多图合成
- 为一张图开云端 API——Dev 和 Klein 都开源,本地就能跑
🎒 开始前的准备
- 跑通了FLUX.1 文生图:FLUX 家族的 loader 套路和「不用负向提示词」的共识都在那一课
- 会加载模板、按
Ctrl+Enter运行(忘了回看第一次生图) - 模型目录规则已经熟悉:放进
models/下对应子目录(回看模型放哪里) - ComfyUI 更新到 0.4.0 以上(FLUX.2 Dev 官方模板标注的最低版本;Klein 模板要求 0.3.72 以上)
- 硬盘预留:跑 Dev 全量约 66GB(含 33GB 文本编码器);省空间换 fp8 文本编码器约 50GB;只跑 Klein 4B 约 12GB
- 网络能连 Hugging Face;连不稳走 ModelScope 国内镜像(第 2 步给地址)
- 一杯水 ☕——Dev 的模型下载是本课最大的等待
核心思路
FLUX.2 在模型层面分两支,工作流也跟着分两套:
| 分支 | 定位 | 扩散模型 | 步数 |
|---|---|---|---|
| FLUX.2 Dev(开源全量) | 效果天花板:4MP 照相级、多参照一致性、专业文字渲染 | flux2_dev_fp8mixed(33.02GB,fp8 量化权重;全量权重在 BFL 原始仓库) | 20 |
| FLUX.2 [Klein](轻量) | 交互式低延迟:一个架构统一文生图和修图 | 4B / 9B 两档,每档各有 base(未蒸馏)与 distilled(蒸馏)两型 | 蒸馏 4 步,base 20 步 |
FLUX.2 Pro 是 Black Forest Labs 的 API 版,不开源——本地能跑的就是上表两支。
多参照一致性是怎么接进工作流的:ReferenceLatent 节点把参考图编码成 latent,「挂」进条件(conditioning)链。条件从 FluxGuidance 出来,穿过 ReferenceLatent 再进 BasicGuider;想加第二张参考图,就从上一个 ReferenceLatent 的条件输出再串一个。模型层面最多支持 10 张参考图,人物、商品几何、材质、服装就这样跨输出保持一致。
对比你在 FLUX.1 文生图里见过的节点链,FLUX.2 换了三个关键零件:
| 环节 | FLUX.1(Dev 文生图模板) | FLUX.2(Dev 编辑模板) |
|---|---|---|
| 文本编码器 | DualCLIPLoader:clip_l + t5xxl 两个文件 | CLIPLoader:mistral 单文件,type 选 flux2 |
| 采样/调度 | KSampler 一个节点全包 | Flux2Scheduler(步数 + 宽高)+ SamplerCustomAdvanced 拆开配 |
| 空 latent | EmptySD3LatentImage | EmptyFlux2LatentImage |
| 参考图 | Kontext 单参考图 | ReferenceLatent 链式挂多张(最多 10 张) |
Klein 的官方性能数据(RTX 5090):
| 版本 | 步数 | 显存 | 端到端耗时 |
|---|---|---|---|
| Klein 4B distilled | 4 | 8.4GB | ~1.2s |
| Klein 4B base | 20 | 9.2GB | ~17s |
一句话选型:要效果走 Dev,要速度走 Klein 蒸馏,要自己微调走 Klein base。
跟我做
第 1 步:加载 FLUX.2 Dev 官方模板
为什么:官方模板已经把节点链、参数和模型链接都配好,我们只需要往里放素材。
操作:左侧栏 Templates 打开模板库,搜 FLUX.2,选「FLUX.2 Dev」(模板名 image_flux2,要求 ComfyUI 0.4.0 以上)。不想用模板库的话,也可以下载 image_flux2.json 手动打开。模板库的完整玩法见模板库。
画布上是三段式主链:LoadImage →(ImageScaleToTotalPixels 先把图缩到 1MP)→ 「Image Edit (FLUX.2 Dev)」子图 → SaveImage。把官方示例图 image_flux2_input_image.png(一张女士照片)上传到 LoadImage 节点 46,或直接换成你自己的图。
你应该看到:缺模型时子图节点标红,右侧 Errors 标签列出待下载的模型——不用急,第 2 步会一个个补齐。
- 模板加载成功,
LoadImage里能看到你上传的图
第 2 步:下载 FLUX.2 工作流的三件套并归位
为什么:模板只引用文件名,模型文件要自己下载放进 models/ 对应子目录,节点才不标红。
操作:按下面清单下载(文件名和体积照抄模板画布里的 Model links 注记):
| 文件 | 放进 | 体积 | 下载地址 |
|---|---|---|---|
flux2_dev_fp8mixed.safetensors | models/diffusion_models/ | 33.02 GB | Hugging Face |
mistral_3_small_flux2_bf16.safetensors | models/text_encoders/ | 33.14 GB | Hugging Face |
full_encoder_small_decoder.safetensors | models/vae/ | 238 MB | Hugging Face |
Flux_2-Turbo-LoRA_comfyui.safetensors(可选) | models/loras/ | 2.57 GB | Hugging Face |
Hugging Face 连不稳?Dev 三件套都在 Comfy-Org 的仓库里,走国内镜像:ModelScope:Comfy-Org/flux2-dev。也可以直接在模板右侧 Errors 标签里逐个点 Download。
⚠️ VAE 别照抄官方教程页的清单
官方教程页的 Model links 列的是 flux2-vae.safetensors(320.6MB),但 FLUX.2 Dev 模板实际加载的是 full_encoder_small_decoder.safetensors(238MB,来自 BFL 的 FLUX.2-small-decoder 仓库)。下载清单以模板画布里的 Model links 注记为准,否则 VAELoader 下拉框里选不到文件。flux2-vae.safetensors 是后面 Klein 和 Product Mockup 模板用的。
省空间选项:文本编码器可以换 fp8 版 mistral_3_small_flux2_fp8.safetensors(16.8GB,少 16GB 硬盘,第 6 步的 Product Mockup 模板用的就是它),在 CLIPLoader 里选对应文件名即可。
你应该看到:三个 loader(UNETLoader / CLIPLoader / VAELoader)的下拉框里都能选中对应文件,节点不再标红。
- 三件套归位,模板无红色报错
第 3 步:读懂 FLUX.2 的节点链
为什么:知道每个节点在链上的位置,报错时才知道去哪查;这也是 FLUX.2 与 FLUX.1 差异最大的一环。
操作:双击「Image Edit (FLUX.2 Dev)」子图进入内部,对照核心思路里的差异表,找到四条支线:
- 模型区:
UNETLoader(扩散模型)+CLIPLoader(mistral,type 选flux2)+VAELoader - 条件链:
CLIPTextEncode(正面提示词)→FluxGuidance(4)→ReferenceLatent→BasicGuider - 参考图:输入图在画布上先被
ImageScaleToTotalPixels缩到 1MP,进子图后由VAEEncode编码成 latent 接进ReferenceLatent的 latent 输入口 - 尺寸与调度:
GetImageSize读输入图宽高,同时传给EmptyFlux2LatentImage(空 latent)和Flux2Scheduler(20 步,输出 SIGMAS)——输出尺寸跟随输入图
子图里还有一个「Enable 8 steps lora」开关(默认关):打开后自动挂第 2 步下载的 Turbo LoRA,并把步数从 20 切到 8,进阶技巧一节会用到。
你应该看到:能亲手指出 ReferenceLatent 的两个输入口——conditioning 从 FluxGuidance 来,latent 接参考图的 VAEEncode。
- 说得出条件链的顺序:提示词 → FluxGuidance → ReferenceLatent → BasicGuider
第 4 步:写提示词,跑出一致性编辑图
为什么:FLUX.2 Dev 的编辑提示词是描述式——直接描述你要的最终画面,再声明要保留的部分,不像传统指令式修图那样说「把帽子加上」。
操作:模板里的官方示例提示词已经填好,照着它体会结构:
The woman is wearing a small pale yellow knitted beanie, with a white fabric
patch on the front right, embroidered with big gray text "FLUX.2 COMFY."
Keep the face拆开看就是三段:描述新物件(浅黄毛线帽 + 白色布贴 + 灰色大字)→ 指定位置(front right)→ 锁定保留部分(Keep the face)。文字渲染是 FLUX.2 的强项,布贴上的 "FLUX.2 COMFY" 会真的可读。
按 Ctrl+Enter 运行。
你应该看到:进度条走完 20 步,输出里女士戴上浅黄毛线帽,布贴上的 "FLUX.2 COMFY" 字样清晰可读,脸部与原图一致。
想挂第二张参考图(真正的多参照)?从现有 ReferenceLatent 的条件输出再串一个 ReferenceLatent,新节点的 latent 口接第二张图的 VAEEncode。不想手动连线的话,第 6 步的 Product Mockup 模板已经把两张参考图接好,直接看它怎么连。
- 输出图里新物件、文字、保留的脸三者同时成立
第 5 步:换 Klein 4B 轻量版(蒸馏版 4 步出图)
为什么:Dev 三件套约 66GB、20 步出图偏慢;Klein 4B 蒸馏版约 12GB 硬盘、4 步、8.4GB 显存,适合快速预览和交互式修图。
操作:模板库搜 FLUX.2 Klein,选「FLUX.2 [Klein] 4B Distilled: Image Edit」(模板名 image_flux2_klein_image_edit_4b_distilled,要求 ComfyUI 0.3.72 以上)。Klein 的三件套和 Dev 完全不同:
| 文件 | 放进 | 体积 | 下载地址 |
|---|---|---|---|
flux-2-klein-4b-fp8.safetensors | models/diffusion_models/ | 3.79 GB | Hugging Face |
qwen_3_4b.safetensors | models/text_encoders/ | 7.49 GB | Hugging Face · ModelScope |
flux2-vae.safetensors | models/vae/ | 320.6 MB | Hugging Face · ModelScope |
注意这次 VAE 就是 flux2-vae.safetensors——Klein 模板用的才是它。扩散模型在 BFL 仓库,模板注记没给国内镜像;文本编码器和 VAE 都能走 ModelScope。
模板自带官方示例:handbag_white.png(节点 76,白色手袋)和 comfy_logo_blue.png(节点 81,Comfy 蓝标)。模板里预接了两条路径:
- 默认启用(单参考图换色):提示词
Change the bag color to blue.,手袋变蓝 - 默认旁路(双参考图多参照):提示词
stylize the handbag in image1 with the colours and logo from image 2——用image1/image 2指代两张参考图,把蓝标的配色和 logo 套到白色手袋上
先跑默认路径按 Ctrl+Enter;想看多参照效果,把旁路的那条路径切回启用再运行。调度器是 Flux2Scheduler:4 步,默认宽高 1024×1024,euler 采样。
你应该看到:4 步采样几秒内完成(官方数据:5090 上端到端约 1.2s),白色手袋变成蓝色;启用第二条路径后,输出手袋带上了 Comfy 蓝标的配色和 logo。
- Klein 4B 蒸馏版 4 步出图跑通,两条路径至少跑了一条
第 6 步(可选):跑 Product Mockup 商品样机
为什么:设计稿一张、商品照一张,Product Mockup 模板已经把两张参考图都接好,是电商场景的直接应用。
操作:模板库搜 Product Mockup,选「Product Mockup(FLUX.2 Dev FP8)」(模板名 image_flux2_fp8,要求 0.4.0 以上)。两张输入图:image_flux2_input_Illustration.png(节点 46,设计稿)和 image_flux2_input_ref_image.png(节点 42,商品照)。
提示词已经填好:
Apply the design from Reference Image 1 onto objects in Reference Image 2.这套模板的模型配置和第 2 步略有不同:文本编码器用 fp8 版 mistral_3_small_flux2_fp8.safetensors(16.8GB),VAE 用 flux2-vae.safetensors(320.6MB),另带一个 Turbo LoRA Flux2TurboComfyv2.safetensors(2.57GB,开关「Enable 8steps LoRA」默认关)。20 步、1024×1024。
你应该看到:设计稿的图案贴到商品照的实物上,构图和商品几何保持不变——官方教程给这套模板的定位就是包装、马克杯这类商品样机。
电商方向的完整玩法(换背景、虚拟试穿、商品视频)见商品样机。
- (可选)两张参考图各取所需:设计稿的图案 + 商品照的形体同时出现在输出里
检查点 ✅
- Dev 多参照工作流跑通:模板 + 三件套 + ReferenceLatent 链
- 描述式提示词的三段结构写得出:新物件 + 位置 + 保留部分(
Keep the face) - 说得出 CLIPLoader 的变化:FLUX.2 用单编码器 + type
flux2,不再是 DualCLIPLoader - Klein 4B 蒸馏版 4 步出图跑通
- (可选)Product Mockup 商品样机跑通:设计稿的图案 + 商品照的形体同时出现在输出里
踩坑提醒
❌ VAE 下错文件:官方教程页和模板注记不一致
官方教程页 Model links 列的 VAE 是 flux2-vae.safetensors,但 FLUX.2 Dev 模板(image_flux2)的 VAELoader 实际写的是 full_encoder_small_decoder.safetensors。
- 现象:下载了 320.6MB 的
flux2-vae.safetensors,VAELoader下拉框里却选不到模板要的文件 - 正确做法:下载清单以模板画布里的 Model links 注记为准——Dev 模板用
full_encoder_small_decoder.safetensors(238MB),flux2-vae.safetensors留给 Klein 和 Product Mockup 模板
❌ ComfyUI 版本过低,加载模板报节点缺失
FLUX.2 Dev 系模板(image_flux2 / image_flux2_text_to_image / image_flux2_fp8)要求 0.4.0 以上,Klein 系模板要求 0.3.72 以上——Flux2Scheduler、ReferenceLatent 这些节点需要新版 comfy-core。
- 现象:加载模板时提示节点不存在,或运行直接报错
- 正确做法:先更新 ComfyUI,再加载模板
❌ 把 Dev 和 Klein 的模型混着用
两套模板的文本编码器完全不同:Dev 用 mistral(33GB 级),Klein 4B 用 qwen_3_4b(7.49GB)。CLIPLoader 的 type 虽然都选 flux2,文件并不通用。
- 现象:加载报错,或出图质量崩坏
- 正确做法:切换模板时连模型一起切。两套文件名不同,可以共存于同一个
models/目录,不必来回删
❌ 参考图连错 ReferenceLatent 的输入口
ReferenceLatent 有两个输入口:conditioning(条件链,从 FluxGuidance 或上一个 ReferenceLatent 来)和 latent(接参考图的 VAEEncode)。
- 现象:参考图的 latent 没接进 latent 口——这个口是可选输入,不接也能运行,于是运行不报错但参考图完全不生效(LATENT 也接不进 conditioning 口,类型不符会被直接拒绝)
- 正确做法:
LoadImage→(缩放)→VAEEncode→ latent 口;conditioning 口只串条件链
进阶技巧(可选)
打开 Turbo LoRA:Dev 20 步 → 8 步
Dev 模板自带「Enable 8 steps lora」开关(默认关)。打开它,采样自动挂上第 2 步下载的 Flux_2-Turbo-LoRA_comfyui.safetensors,步数从 20 切到 8——预览构图够用,正式出图再关掉走 20 步。注意 Product Mockup 模板的同款开关用的是另一个 LoRA 文件 Flux2TurboComfyv2.safetensors(Comfy-Org/flux2-dev 仓库),别下混。
把 hex 品牌色写进提示词
FLUX.2 支持 hex 色号级的品牌色控制(官方关键特性之一)。做品牌物料时,把品牌色的 hex 色号直接写进描述里,输出配色不跑偏——这对包装、海报这类「颜色必须和 VI 手册一致」的场景很关键。
Klein 还有 9B
4B 之外,Klein 还有 9B,同样分 base / distilled 两型:文本编码器换 qwen_3_8b_fp8mixed.safetensors(8.07GB),调度同样是蒸馏 4 步 / base 20 步。9B 的扩散模型在 BFL 仓库,官方注明下载前要先在仓库页同意协议。最新一代的 Klein 已经到 FLUX.3,见下一课。
本课小结
这一课跑通了两套 FLUX.2 工作流,你现在的状态:
- ✅ Dev 多参照工作流跑通:模板 → 三件套归位 → ReferenceLatent 条件链 → 20 步出图
- ✅ 记住节点差异:
CLIPLoader(typeflux2)取代 DualCLIPLoader,Flux2Scheduler管步数 + 宽高 - ✅ 会写描述式编辑提示词:描述最终画面 +
Keep the face声明保留部分 - ✅ Klein 4B 蒸馏版 4 步出图跑通,知道 base / distilled 怎么选
- ✅ 会按需选型:效果天花板走 Dev,速度优先走 Klein 蒸馏,要微调走 Klein base
关键配置字段回顾:
| 字段 / 节点 | 推荐值 | 说明 |
|---|---|---|
CLIPLoader type | flux2 | FLUX.2 单编码器加载方式,Dev 和 Klein 通用 |
Flux2Scheduler steps | Dev 20 / Klein 蒸馏 4 / Klein base 20 | 步数随模板,别手滑改错档 |
FluxGuidance | 4 | Dev 模板默认值 |
| 采样器 | euler(KSamplerSelect) | 各模板默认 |
| VAE 文件 | Dev 模板 full_encoder_small_decoder / Klein、Product Mockup 模板 flux2-vae | 最容易下错的一个文件 |
| 输出尺寸 | 跟随输入图(GetImageSize → 空 latent + 调度器) | 想改尺寸先改输入图 |
下一课预告
下一课我们跑 FLUX.3 Klein:最新开源 FLUX 本地跑。
你会学到:
- FLUX.3 Klein 的文生图与编辑同权重工作流,不用再分两套模型
- distilled 版 4–16 步的调度玩法
<ref_image_N>多参考标记的提示词写法- FLUX Kommunity License 的使用边界(能商用吗、能微调发布吗)
附录:源码参考
点击展开查看源码位置
更新时间:2026-11-05(ComfyUI v0.43.2)
| 内容 | 文件 |
|---|---|
| FLUX.2 Dev 官方教程(多参照、Product Mockup、模型链接) | sources/comfyui/docs/tutorials/flux/flux-2-dev.mdx |
| FLUX.2 Klein 官方教程(4B/9B、base/distilled、性能数据) | sources/comfyui/docs/tutorials/flux/flux-2-klein.mdx |
| Dev 编辑模板 JSON(本课主线) | sources/comfyui/repo-notes/templates/image_flux2.json |
| Product Mockup 模板 JSON | sources/comfyui/repo-notes/templates/image_flux2_fp8.json |
| Klein 4B 蒸馏模板 JSON | sources/comfyui/repo-notes/templates/image_flux2_klein_image_edit_4b_distilled.json |
| 模板索引(各模板最低 ComfyUI 版本) | sources/comfyui/repo-templates/templates/index.json |
关键节点与配置字段:
CLIPLoader:clip_name + typeflux2(取代 FLUX.1 的DualCLIPLoader)Flux2Scheduler:steps / width / height → SIGMAS(分辨率随输入图)ReferenceLatent:conditioning 串条件链,latent 接参考图VAEEncode,可链式挂多张FluxGuidance:4(Dev 模板默认)EmptyFlux2LatentImage:FLUX.2 专用空 latent(对应 FLUX.1 的EmptySD3LatentImage)