Flux ComfyUI 工作流
本章节将介绍如何在 ComfyUI 中使用 Flux 模型。
此图片由 AI 生成
目前在 ComfyUI 上使用 Flux 有四种方法:
- 完整版本的 Flux:这个版本的 Flux 模型文件不包含 Text Encoder 和 VAE 模型,所以还需要额外下载其他模型。并且这种方式适合大于 24GB 显存,以及内存大于 32GB的用户使用。但使用这个方式,能获得最好的成像质量。
- ComfyUI 官方支持的 FP8 版本 Flux:这个版本的 Flux 模型文件包含了 Text Encoder 和 VAE 模型,所以可以直接在 Checkpoint 中使用。并且适合小于 24GB 显存的用户使用。但这个版本的 Flux 的成像质量会比完整版本要差。
- GGUF 版本:这个版本是由开源社区开发者贡献,也是为了能在小显存设备上使用 Flux 模型,所以开发者将 Flux 模型转换为 GGUF 格式。但在精度上不会像 FP8 那样损失太多。不过这种方法,需要安装额外的插件。
- NF4 版本:这个版本与 GGUF 类似,也是为了能在小显存设备上使用 Flux 模型。但根据我的实验, NF4 在图像质量方面是最不可预测的版本。有时,图像非常好,而其他时候则很差。我觉得它存在一致性问题,所以我不太推荐使用。
各位可以根据自己需求,选择合适的方式。如果你仅仅想体验 Flux 模型,那么 FP8 版本是一个不错的选择,只需要下载一个模型就能使用。如果你的电脑性能比较好,我建议你使用完整版本。
如果你的电脑配置不足,又想使用完整的 Flux 模型,可以考虑使用 Comflowy 。这是由我们开发的 ComfyUI 云端版本,使用的是高性能云端 GPU。
1. 完整版本 Flux
1.1 下载 Flux 模型
首先你需要下载必要的模型到本地。第一步是下载 Flux 模型。你可以去到 HuggingFace 下载 FLUX.1-dev 或者 FLUX.1-schnell 模型。
进入到 FLUX.1-dev 页面,点击 Files and versions
按钮(图中①),然后点击 Download
按钮(图中②),下载模型。
下载好的模型,需要放到 ComfyUI 的 /models/diffusion_models/
目录下。
1.2 下载 Text Encoder 模型
接着还需要下载 Text Encoder 模型。正如我在前一章节介绍的那样,Flux 使用了两个 Text Encoder 模型。你需要去到这里下载两个模型,一个是 clip_l.safetensors
,另一个是 t5xxl_fp16.safetensors
:
如果你的电脑的内存小于 32GB,那么你可以下载 t5xxl_fp8_e4m3fn.safetensors
模型。下载好的模型需要放在 ComfyUI 的 /models/clip/
目录下。
1.3 下载 VAE 模型
最后是下载 VAE 模型,可以去到这里下载模型。下载好的模型需要放在 ComfyUI 的 /models/vae/
目录下。
1.4 配置 ComfyUI 工作流
1.4.1 ComfyUI 官方推荐版本
下载好模型后,就可以进入到工作流的搭建了。
首先介绍下 ComfyUI 官方推荐的 Flux 的完整版本工作流,你可以参考以下截图自行连接节点,手动连接将有助于你理解完整的工作流。
如果你不想手动连接,可以去到 Comflowy 直接使用我们的 Flux Dev 应用,使用此应用,生成单张图片只需要 8s 左右。亦或者下载此工作流模板,并导入到本地 ComfyUI 使用。(另外,如果你不知道如何下载 Comflowy 模板,可以参考此教程)
我来简单介绍下这个工作流。你可以看到这个工作流与 ComfyUI 的默认 Stable Diffusion 工作流有很大的差异。我来详细解释下:
图示 | 描述 |
---|---|
① | Load Diffusion Model 节点,用于加载 Flux 模型。因为 Black Forest Labs 提供的 Flux 模型没有包含 Text Encoder 和 VAE 模型。所以只能用这个节点来加载模型,而没有用 Load Checkpoint 节点。 |
② | ModelSamplingFlux 节点里的基线偏移(base shift)是一种微小而稳定的调整,可以稳定图像生成过程,而最大偏移(max shift)是潜向量的最大允许变化,可以防止输出出现极端偏差。两者结合,可在图像生成的稳定性和灵活性之间取得平衡。 如果增加基线偏移,生成的图像可能会变得更加一致,更接近预期的形式。但也可能失去一些细微的细节。减小基线偏移可以带来更多变化,从而呈现出更精细的细节或更微妙的纹理。不过,这也可能会使图像的稳定性稍差,可能会出现细微的伪影或不一致。 增加最大偏移量,模型可以更自由地探索潜在空间,从而有可能对图片内容做出更有创意或更夸张的诠释。最终生成的图片可能会有更夸张的特征或更风格化的外观,但也有可能过于偏离真实的表现。降低最大偏移量会对模型造成限制,从而使对图片的描绘更加可控和逼真。图像可能会保持接近典型的外观,减少意外的变化,但可能会缺少一些创意元素或微妙的独特性。 如果你想让 FLux 模型生成的图片更真实,可以试试将最大偏移调整为 0.5,基线偏移调整为 0.3。 |
③ | DualClipLoader 节点是用于加载 Text Encoder 模型的节点。正如我在前一章提到的那样,Flux 使用了两个 Text Encoder 模型,所以需要用这个节点来加载两个模型。一个是 clip_l.safetensors ,另一个是 t5xxl_fp16.safetensors 。Type 选择 flux 即可。 |
④ | 与 DualClipLoader 节点相连的是 CLIP Text Encoder 节点。这个跟你在 Stable Diffusion 工作流中使用的 CLIP Text Encoder 节点是一样的。但这里有点不一样,这里并没有 Negative Prompt 节点。正如我前一章提到的那样,Flux 模型是一个引导蒸馏(guidance distilled)模型。所以没有 Negative Prompt。 |
⑤ | Guidance 节点你可以设置 Guidance 值,可以设置从 0 到 100。这个值的影响非常微妙。需要根据不同的 Prompt 进行测试。如果你发现你生成的图片效果不好,可以尝试对其微调。经过测试: 1. 即使这个值设置得很大,比如 90,生成的图片依然是可用的。所以你可以放心去尝试。 2. 这个值,只在特定的数值下有显著的效果,比如 1,生成的图片会比较阴暗。 3. 0~4 之间效果变化会比较大。换句话来说,将此值从 0 设置为 4,生成图片,对比起来差异远大于将其从 10 设置到 60。所以如果你想要测试更多效果,你仅需要测试从 0 到 4 即可。 4. 如果你想要生成的东西,非常复杂,且现实世界不存在,比如“有腿的西红柿”,那么你需要设置一个较大的值,比如 5 以上。 5. 如果你不知道该用什么,将其设置为 3.5 就可以了。 |
⑥ | EmptySD3LatentImage 节点,用于生成潜向量。虽然它名字是 SD3,但实际 Flux 也能用。 |
⑦ | VAEDecode 节点,用于解码潜向量。这里要用到我们下载好的 VAE 模型。 |
1.4.2 我推荐的版本
ComfyUI 官方的版本我认为有点复杂,所以我推荐一个简化版本:
这个版本仅需要使用到 Stable Diffusion 里常用的 KSampler 节点,去掉了 ModelSamplingFlux 节点,这样仅需要在 SD3LatentImage 里设置宽高。整体来看,这个版本更简单,也更容易理解。
另外需要注意:
图示 | 描述 |
---|---|
① | 因为 Flux 里没有 Negative Prompt,所以你可以将 Negative Prompt 节点折叠起来。 |
② | 因为 Flux 是一个引导蒸馏(guidance distilled)模型,所以 CFG 值并不会生效,需要将其设置为 1。 |
如果你不想手动连接,可以去到 Comflowy 直接使用我们的 Flux Dev 应用,使用此应用,生成单张图片只需要 8s 左右。亦或者下载此工作流模板,并导入到本地 ComfyUI 使用。(另外,如果你不知道如何下载 Comflowy 模板,可以参考此教程)
2. FP8 版本 Flux
2.1 下载 Flux Checkpoint 模型
你可以点击这里下载 Flux Dev FP8 Checkpoint 模型。下载好的模型需要放到 ComfyUI 的 /models/checkpoints/
目录下。
2.2 配置 ComfyUI 工作流
使用 FP8 版本 Flux 的工作流,可以参考以下截图自行连接节点。这个版本,其实是我上面推荐的版本的更加简化的版本,将 Diffusion Model、DualCLIPLoader 和 VAE 节点替换为 Checkpoint Loader 节点:
这个版本的工作流,与 Stable Diffusion 的工作流基本一致。有几个变化需要注意:
图示 | 描述 |
---|---|
① | Negative Prompt 节点不再生效,所以你可以将其折叠起来 |
② | 增加了 Guidance 节点。你可以设置 Guidance 值,可以设置从 0 到 100。这个值的影响非常微妙。需要根据不同的 Prompt 进行测试。如果你发现你生成的图片效果不好,可以尝试对其微调。经过测试: 1. 即使这个值设置得很大,比如 90,生成的图片依然是可用的。所以你可以放心去尝试。 2. 这个值,只在特定的数值下有显著的效果,比如 1,生成的图片会比较阴暗。 3. 0~4 之间效果变化会比较大。换句话来说,将此值从 0 设置为 4,生成图片,对比起来差异远大于将其从 10 设置到 60。所以如果你想要测试更多效果,你仅需要测试从 0 到 4 即可。 4. 如果你想要生成的东西,非常复杂,且现实世界不存在,比如“有腿的西红柿”,那么你需要设置一个较大的值,比如 5 以上。 5. 如果你不知道该用什么,将其设置为 3.5 就可以了。 |
③ | EmptySD3LatentImage 节点,用于生成潜向量。虽然它名字是 SD3,但实际 Flux 也能用。 |
④ | KSampler 里的 CFG 配置正如我前一章节提到的那样,Flux 模型是一个引导蒸馏(guidance distilled)模型。CFG 值并不会生效,所以你需要将其设置为 1。 |
如果你不想手动连接,可以去到 Comflowy 直接使用我们的 Flux Dev 应用,使用此应用,生成单张图片只需要 8s 左右。亦或者下载此工作流模板,并导入到本地 ComfyUI 使用。(另外,如果你不知道如何下载 Comflowy 模板,可以参考此教程)
3. GGUF 版本 Flux
3.1 下载 GGUF 版本 Flux 模型
你可以点击这里下载 GGUF 版本 Flux 模型。下载好的模型需要放到 ComfyUI 的 /models/unet
目录下。
你会看到 GGUF 有很多版本,你可以根据你的电脑配置选择适合你的版本:
版本 | 描述 |
---|---|
Q8_0 | 如果你有 24GB 的显存,使用 Q8 版本,它的出图效果几乎和 FP16 完全一样。与其他 CLIP 模型一起使用的话,你将使用大约 15GB 的显存。这样你就有更多的显存空间可以加载多个 LoRA,或者图片修复等模型。你甚至可以在使用 Q8 时与 Flux 加载一个LLM。 |
Q6_K | 如果你只有 16GB 的显存,那么 Q6_K 非常适合你。和 CLIP 配合使用大约会占用 12GB 的显存。它在较小的体积下也提供了一定的准确性。 |
Q4_0 或 Q4_1 | 如果你只有少于 10GB 的显存,请使用 Q4_0 或 Q4_1,而不是 NF4(个人认为 NF4 在图像质量方面是最不可预测的版本。有时,图像非常好,而其他时候则很差。我觉得这个型号存在一致性问题)。我并不是说 NF4 不好。但如果你在寻找更接近 FP16 的模型,那么 Q4_0 就是你想要的。 |
3.2 配置 ComfyUI 工作流
首先,你需要安装 ComfyUI-GGUF 插件,安装方法我这里不再赘述,你可以参考 ComfyUI 插件安装教程。
安装好插件后,你可以根据以下截图,自行连接节点。如果你不想手动连接,可以去到 Comflowy 直接使用我们的 Flux Dev 应用,使用此应用,生成单张图片只需要 8s 左右。亦或者下载此工作流模板,并导入到本地 ComfyUI 使用。(另外,如果你不知道如何下载 Comflowy 模板,可以参考此教程)
如果你细看这个工作流,你会发现它与 FP8 版本的工作流,非常像,只是将 Checkpoint Loader 节点,替换为 GGUF Loader 节点(图中①)。同时因为 GGUF 模型没有包含 Text Encoder 和 VAE 模型,所以需要用另外的 DualCLIPLoader (图中②)节点和 VAE 节点(图中③):
另外,如果你的显存还是不够,你还可以下载对应的 GGUF 版本的 Text Encoder 模型,然后将 DualCLIPLoader 节点,替换为 DualCLIPLoader(GGUF) 节点,并加载下载好的 Text Encoder 模型。这样还能进一步地降低显存占用。