超简单 Flux 换背景工作流:结合最新 ControlNet 深度 Depth 模型
在本篇文章中,我们将深入探讨如何使用 Flux ControlNet Depth 模型进行换背景。这种方法是我之前基于 Flux 模型换背景工作流的简化版。虽然旧的工作流程功能强大,但它非常复杂且运行缓慢。今天,我们将学习一个更快速、更易用的替代方案。
欢迎去B站观看本文对应的视频教程:
Flux ControlNet Depth 模型的新特性
这款由 Jasper AI 开发的全新 ControlNet 模型的最大优势是,它可以与现有的 SDXL ControlNet 节点和采样器兼容,无需专门的Flux ControlNet 节点。这大大简化了搭建过程,使其更容易集成到您的现有工作流中。
关键优势:
- 更简化的设置: 无需专门的Flux ControlNet 节点,直接兼容现有框架。
- 提升运行速度: 优化后的节点结构显著减少了处理时间。
- 更高的灵活性: 能够无缝处理不同类型的背景。
模型下载
在开始之前,请从 HuggingFace下载 Flux ControlNet Depth 模型。下载后,请按照以下步骤操作:
- 重命名 文件为
Flux.1-dev-Controlnet-Depth.safetensors
。 - 移动 文件到您的 ControlNet 模型文件夹:
ComfyUI/models/controlnet
。
如果您在流程中看到某些节点缺失,只需安装它们即可确保所有功能正常运行。
工作流程概览
该新工作流程分为三个主要部分:
- 图像缩放和背景去除
- 深度图生成与新背景创建
- 将修改后的主体替换为原始主体
整个流程大约包含 30 个节点,运行速度比以往更快。例如,在一张 3090 GPU 上,它可以在大约 1 分钟内生成一张图像。使用 Hyper LoRA 的 8 步图像生成甚至可以进一步提高速度!
让我们先看看原始图像和使用此工作流更换了背景的图像:
工作流程下载
您可以在这里下载完整的工作流。在使用它之前,请确保已正确下载并配置 ControlNet Depth 模型。
接下来,让我们逐步讲解每个部分的详细操作。
第 1 部分:图像缩放和背景去除
步骤 1:调整图像尺寸
我上传的原始图像尺寸为 2995 x 3994 像素——对于我们想要生成的背景来说,这个尺寸太大了,可能会使 GPU 负载过重。因此,我们需要对图像进行缩放。
- 使用 ‘Upscale Image By’ 节点,并将缩放系数设置为 0.35,将图像尺寸缩小至 1048 x 1398 像素。
步骤 2:使用 ‘Anything Everywhere’ 节点
- 这个节点可以使图像输入的连接更加整洁,避免流程节点连接混乱。
- 缩放后的图像被连接到 ‘Image Comparer’ 节点的 ‘image_b’ 端口。
步骤 3:去除背景
为了将主体从背景中分离出来:
- 使用 ‘Inspyrenet’ 节点去除原始背景。
- 根据图像调整 threshold 值。较高的阈值将移除更多的背景元素。
- 此节点还生成了一个 蒙版,我们将在之后的合成中使用它。
步骤 4:创建并应用灰色背景
- 使用 ‘Image Blank’ 节点创建一个灰色背景。
- 将 红色、绿色和蓝色 的 RGB 值 均设置为 128。
- 使用 ‘Image Composite Masked’ 节点将蒙版化的主体合成到灰色背景上。
修复粗糙的边缘
- 通常,在主体周围会出现白色边框或粗糙的边缘。为了修复这些问题:
- 使用 ‘Mask Grow Fast’ 节点。
- 设置 负的“grow”值 以去除白色边缘。
- 调整 “blur”值 以平滑边缘过渡。
到这里,第一个部分就完成了。主体已被干净地隔离,并放置在一个灰色背景上。接下来我们进入第二部分。
第 2 部分:深度图生成与背景创建
步骤 1:使用 Flux ControlNet Depth 模型
在这部分中,我们将从灰色背景图像生成深度图。深度图将指导 ControlNet 在创建新背景时保持主体的大致轮廓。
- 根据您的显存情况选择 fp8 版本或 GGUF 版本。
- 编写一个与原始图像光照条件相匹配的 提示词。
- 例如,如果你的图像具有柔和的日落光照效果,请避免在提示词中使用强烈的正午光照描述。
步骤 2:生成深度图
- 对灰色背景图像应用 ‘AIO Aux’ 预处理节点。
- 使用生成的深度图引导 ControlNet 确定主体的大致轮廓。
提高背景清晰度的技巧
Flux 生成的背景可能略显模糊。如果您需要更清晰的效果,可以尝试使用 LoRA 模型 进行微调。更多细节请参考我之前的文章。
第 3 部分:主体替换
现在我们已经生成了新背景,我们需要将原始主体放回图像中。
步骤 1:移除修改后的主体
主要节点是 ‘Big Lama Remover’。它能够从生成的背景图像中移除修改后的主体,从而创建一个空白区域供我们粘贴原始主体。
- 再次使用 ‘Inspyrenet’ 节点生成移除所需的蒙版。
- 将 threshold 设低,确保主体被完全擦除。
步骤 2:粘贴原始主体
- 使用 ‘ImageCompositeMasked’ 节点将原始主体融合到新背景中。
- 这将确保主体边缘与周围环境自然融合。
至此,背景替换已完成。效果看起来更加干净且更具专业性。
最终总结
这个工作流利用 Flux ControlNet Depth 模型提供了一个更快速、更简化的背景替换方案。与之前的方法相比,它结构更简单,但仍能生成令人满意的结果。我已经在开发一个功能更强大的升级版本——敬请期待更多更新!