用区域裁剪实现更好的Flux局部重绘【ComfyUI工作流】

Hello 大家好,我是Vito。在本文中,我们将深入探讨一个先进的 ComfyUI 局部重绘工作流,旨在实现更大的灵活性和高效性。在我之前的文章中,我介绍了使用不同版本的 Fill 模型进行扩图和局部重绘的结果对比,以及一个实用的扩图工作流。

今天,我们将重点关注局部重绘,特别是如何更换物品、修正扭曲的面部,甚至修复那些棘手的 AI 生成的手部。

对于喜欢通过视频内容深入了解 ComfyUI 的朋友们,欢迎去B站查看配合本文的精彩视频教程:

https://www.bilibili.com/video/BV144kMY1ENk

让我们开始吧!

高度的通用性

我开发的这个工作流具有高度的通用性,并且与量化模型配合使用效果良好,使其在显存使用上更加高效。无论你是修改细节,比如更换帽子或修复手部,这种方法都能帮助你以最小的麻烦实现高质量的结果。

让我来详细展示如何使用这个设置。

1. 基础设置

步骤1:加载模型

首先,绕过其他节点组,激活第一个节点组,该组负责加载模型。我已经为你预先配置好了这一部分,所以我们可以直接运行工作流。

img

组中的第一个节点加载 Fill 模型,这个模型既适用于扩图任务,也适用于局部重绘任务。在本次演示中,我使用的是量化的 Q5 版本模型 [1]。它只占用 8 GB 的显存,管理起来更加轻松。如果你的显存不足,可以选择 Q4 版本,只需 6.8 GB。

经过我在之前的文章中验证,Q5 和黑森林实验室的 20 GB 模型在结果上的差异实际上非常小。你可以放心地使用这些较小的版本进行第一轮局部重绘。为了速度和效率,我在右侧的节点中添加了一个 Turbo LoRA [2],以加快图像生成速度。

Fill 模型下方的节点 [3] 加载一个checkpoint。它决定了图像的最终质量。如果需要,你可以加载一个量化的checkpoint,如 FluxRealistic,它只需要 6.8 GB 的显存,但仍然能提供良好的质量。

这里还有另一个 Turbo LoRA 节点 [4],但我将其强度设置为零,因为在这个阶段它不是很有用。你可以在稍后的任务中,比如修复面部或手部时再回来使用它。

步骤2:限制图像大小

激活第二个节点组,该组负责加载图像并使用“Constrain Image”节点限制其大小。

img

这一步对于防止显存过载至关重要。如果你的图像很大但局部重绘区域较小,你不需要调整整个图像的大小。我们将在稍后裁剪局部重绘区域,这一步主要是为了管理该区域的大小。

2. 创建局部重绘蒙版

步骤3:生成蒙版

接下来,我们激活第三个节点组,在这里我们将创建局部重绘蒙版。你有三种选择:自动生成蒙版、手动调整蒙版,或从头绘制蒙版。

对于大图像,尤其是像 4K 这样的图像,如果你的显存有限,建议手动绘制蒙版。使用“SegmentAnything”节点自动生成蒙版在较小的图像上效果很好,但在较大的图像上可能会变慢或不够精确。

img

要生成自动蒙版,只需输入你希望节点识别的对象,例如“头发”、“衬衫”或“牛仔裤”。节点会为你分割这些区域。

img
img
img
img

然而,如果它难以识别某个物品(比如吉他),通常最好手动绘制蒙版。

例如,如果我们想将电吉他更换为原声吉他,节点可能无法正确识别,因为吉他的一部分被手臂遮挡。为了解决这个问题,我只需切换到“Preview Bridge (Image)”节点,手动在吉他上绘制,确保我捕捉到正确的局部重绘区域。

img

步骤4:细化蒙版

我将蒙版绘制得比电吉他稍大一些,以适应电吉他和原声吉他之间的尺寸差异。我还包括了手,因为局部重绘过程中可能会影响或扭曲该区域的像素。

蒙版准备就绪后,保存它,并继续运行工作流。

img

步骤5:局部重绘区域

在下方的节点中,你需要输入对局部重绘区域的描述。例如,要将电吉他更换为原声吉他,可以输入“原声吉他” [1]。右侧的“GrowMask”节点 [2] 会稍微扩展局部重绘区域,以确保结果与周围图像平滑融合。

img

3. 裁剪以获得更好的局部重绘效果

步骤6:使用“CropByMask”节点

为了实现更高质量的结果,下一步是使用“CropByMask”节点。这在局部重绘较小区域(如手部)时特别有用。

当局部重绘一个小区域(如手部)时,仅裁剪手部本身不会提供足够的上下文来获得详细且自然的效果。通过裁剪手部周围的一些空间,AI 可以参考附近区域的光影,以实现更协调的外观。

调整此节点中的参数,以保留你想要局部重绘区域周围的适当空间。尽量保持最小化,同时确保局部重绘与周围环境平滑融合。

img

步骤7:进行第一轮局部重绘

我将采样器步骤设置为8,这与 Turbo LoRA 配合良好。然后,运行工作流。

img
img

如你所见,局部重绘在某些区域,特别是手部区域,有一些明显的问题。但不用担心——我们将在下一轮修复这些问题。

4. 通过第二轮局部重绘进行细化

步骤8:细化蒙版和修复细节

在第一轮局部重绘之后,我们可以进行第二轮局部重绘以修复任何瑕疵。“Mask Grow Fast”节点会扩展并模糊原始蒙版,以覆盖稍大一些的区域,帮助平滑局部重绘区域的边缘。

img

同样,我们使用“CropByMask”节点来确保所有内容保持对齐,结果更加精确。

img

对于吉他,我们使用 Flux 微调模型(stoiqoNewreality)进行第二轮局部重绘。确保将去噪强度保持在适中水平,以避免过度修正。

5. 最后的润色:修复手部

步骤10:修复手部

为了修复手部,我们使用了一个专门用于手部修复的 LoRA [1]。你可以输入类似“详细的手”或“完美的手”这样的提示来触发此模型 [2]。

在“UltralyticsDetectorProvider”节点 [3] 中,选择手部检测模型。如果你正在处理面部,选择名称中包含“face”的模型。“facedetailer”节点如果需要,还可以修复衣物细节。

对于手部,稍微降低去噪强度 [4],以防止过度处理。运行工作流后,手部应该看起来更加自然。如果仍有小问题,只需再次运行工作流,重点关注手部区域即可。

img
img

结论

通过这个工作流,你可以处理各种局部重绘任务——从更换帽子和更改服装,到修复面部和手部。凭借合适的模型、LoRA 和工作流步骤的组合,实现精致的结果比以往任何时候都更加容易。

工作流下载:https://www.liblib.art/modelinfo/9c15908f9010415c90cdabc8e52c05c1

⚠️注意:上面的基础工作流和下面的高级工作流非常相似,并且能够生成相同的结果。主要的区别在于,高级工作流允许你自动生成重绘遮罩,而在基础工作流中,你需要手绘遮罩。此外,还有一些补充高级工作流的变体,如修复手部、修复面部和更换衣物等。如果你希望获取高级工作流,考虑支持我在爱发电上的创作。

💡高级工作流和更多独家工作流:https://afdian.com/p/599c39acbdbb11ef915f52540025c377

模型下载:

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注