C22:掌握 ComfyUI 中 ControlNet 的构图:分步指南

简介

AI 图像生成中常见的挑战之一是实现精确的 艺术指导。虽然提示词可以引导图像的整体风格和内容,但在控制特定的 构图细节,例如屏幕方向或对象位置。

在本文中,我们将探讨 ControlNet 如何在 ComfyUI 工作流中使用,以克服这些限制。通过利用 ControlNet 模型,您可以使用线条图或边缘图等外部输入来引导生成图像的构图。这种方法使您能够在图像生成过程中实现更高程度的控制和精确性。



问题:提示词在构图方面的局限性

让我们考虑一个例子:生成一只面向屏幕右侧的狗的图像。即使使用了精心制作的提示词,指定了“facing screen right,”,由 Juggernaut XL 扩散模型 生成的图像也未能满足这一要求。狗没有面向屏幕右侧,而是面向屏幕左侧。

这一结果凸显了一个关键局限:扩散模型和文本编码器常常难以理解空间或方向性提示词。唯一的替代方法是随机尝试不同的种子,直到获得所需的构图——一个耗时且低效的过程。


ControlNet 简介

ControlNet 通过在工作流中引入基于外部图像的 conditioning 提供了一个解决方案。它的工作原理是分析参考图像,并将其结构或构图应用于生成的输出。

ControlNet 模型旨在与特定的扩散模型配合使用。在本例中,我们将使用 controlnet-scribble-sdxl-1.0 模型,该模型与 SDXL 精修扩散模型 兼容。Scribble ControlNet 接受简单的线条图作为输入,非常适合粗略的构图引导。


在 ComfyUI 中设置 ControlNet

第 1 步:下载并安装 ControlNet 模型

  1. 下载 controlnet-scribble-sdxl-1.0 模型,来源:xinsir/controlnet-scribble-sdxl-1.0 at main,原始名称为 diffusion_pytorch_model.safetensors。
  2. 将模型文件放在以下目录中:/models/controlnet 并将其重命名为 controlnet-scribble-sdxl-1.0.safetensors,您需要重启 ComfyUI 才能加载该模型文件。

第 2 步:构建工作流

在 ComfyUI 中,您需要创建一个将 ControlNet 模型集成到图像生成过程中的工作流。

原始模型:

请按照以下步骤操作:

1. 加载 ControlNet 模型

  • 添加一个 Load ControlNet Model 节点。
  • 从列表中选择 controlnet-scribble-sdxl-1.0 模型。

2. Apply ControlNet

  • 添加一个 Apply ControlNet 节点。
  • 断开与 KSampler 节点的 conditioning,改为通过 Apply ControlNet 节点进行路由。

3. 加载输入图像

  • 添加一个 Load Image 节点。
  • 上传您的线条图(例如,所需构图的简单草图)。
  • 将图像连接到 Apply ControlNet 节点。

4. 完成连接

  • 连接 ControlNet 模型 到 Apply ControlNet 节点。
  • 或者,也可以将 VAE 连接到 Apply ControlNet 节点以保持完整(尽管在这种情况下它不会影响结果)。

第 3 步:生成图像

工作流设置完成后,将工作流加入队列以生成图像。ControlNet 将根据上传的线条图引导构图。

原始草图:

我使用的提示词:nature photography, dog, standing on the grass, daylight, (bokeh:1.5)

输出:


结果与改进

初始输出

使用 ControlNet Scribble 模型后,生成的狗现在遵循了正确的构图。然而,ControlNet 的影响默认设置为最大值,如果输入的绘图不准确或过于简单,可能会导致不自然的结果。

例如,如果上传的草图缺乏解剖学上的准确性,生成的图像可能看起来不自然或扭曲。


平衡 ControlNet 的影响

为了解决这个问题,您可以调整 ControlNet 影响参数,以在输入绘图和生成模型的自然优化之间取得平衡。这使模型能够填补缺失的细节,同时仍遵循所需的构图。


ControlNet 模型的类型

ControlNet 提供了几种变体,每种都针对特定的用例:

  1. Scribble ControlNet:接受简单的线条图,用于粗略的构图引导。
  2. Canny ControlNet:从输入图像中提取边缘细节以引导构图。
  3. Depth ControlNet:分析深度信息,以创建具有真实空间关系的图像。

根据您的需求,您可以选择合适的 ControlNet 模型来引导您的工作流。


实际应用

ControlNet 特别适用于:

  • 精确的对象放置:确保对象出现在特定的位置或方向。
  • 自定义构图:实现仅用文本提示词难以描述的独特布局。
  • 艺术指导:将外部草图或参考与生成式 AI 相结合,以获得创意输出。

结论

在 ComfyUI 工作流中使用 ControlNet 可以更好地控制图像构图,解决基于提示词生成的局限性。通过集成线条图等外部输入,您可以精确地引导对象的位置和方向。

接下来,尝试平衡 ControlNet 的影响,以实现自然且视觉上吸引人的结果。无论您是从事艺术项目还是特定的设计任务,ControlNet 都为 AI 图像生成中的创意指导开辟了新的可能性。

发表评论