paint-brush
使用 ComfyUI 制作宠物肖像杰作经过@hacker5029997
426 讀數
426 讀數

使用 ComfyUI 制作宠物肖像杰作

经过 5m2024/08/19
Read on Terminal Reader

太長; 讀書

近几年来,人工智能图像处理工具取得了长足进步。如今,创建美丽、风格独特的人物和动物肖像非常容易。但人工智能模型非常难以预测,因此大多数工具都依赖于用户(或某些人)来剔除不良代数并找到最佳代数。通过一些巧妙的技巧和精心的调整,您可以构建一个可靠地适用于绝大多数宠物的管道。它对姿势、光线等变化具有极强的适应性。
featured image - 使用 ComfyUI 制作宠物肖像杰作
undefined HackerNoon profile picture
0-item

近几年,人工智能图像处理工具取得了长足进步。如今,创建美丽、风格独特的人物和动物肖像非常容易。但人工智能模型非常难以预测。因此,大多数工具都依赖于用户(或某些人)来剔除不良代数并找到最佳代数。


这是典型的“人为因素”问题,经常困扰着 AI 工具。事实证明,通过一些巧妙的技巧和精心的调整,您可以构建一个可靠地适用于绝大多数宠物的管道。它对姿势、光线等变化具有极强的适应性。


在这篇文章中,我将深入介绍它的工作原理以及实现这一点的所有巧妙的小技巧。以下是您可以使用此管道生成的肖像的一些示例。

让我们开始吧!

主要成分

IP适配器

该技术的关键是 IPAdapter。它本质上是一种使用图像而不是文本来提示模型的方法(它的字面意思是图像提示适配器)。因此,它不是采用文本嵌入,而是使用图像来获取嵌入。这非常强大,因为它可以直接准确地捕捉图像中的样式和结构,而不必有人将他们想要从图像中得到的内容转换成文本。在我们的 ComfyUI IPAdapter 节点中,我们有两个输入,一个用于样式,一个用于构图。我们使用水彩画图像作为样式,并使用原始图像作为构图(因为我们想保留相同的构图,但改变样式)。


上图为IPAdapter的图片提示

控制网

现在我们有了保持风格一致的方法,我们可以将注意力转向忠实地表现宠物。IPAdapter 严重偏向于图像质量,图像相似度会受到影响。所以我们需要做一些事情来保持输出看起来像输入的同一个对象。


答案就是 ControlNet。ControlNet 是另一种很酷的技术,可以为图像生成过程提供额外的约束。使用 ControlNet,您可以以边缘、深度、人体姿势等形式指定约束。ControlNet 的一大特点是它们可以堆叠。因此,您可以拥有一个边缘控制网,强制输出具有与输入相似的边缘,还有一个深度控制网,强制输出具有相似的深度分布。这正是我在这里所做的。


Canny Edge ControlNet(左)和深度 ControlNet(右)的输出。这些强制输出看起来与输入相似。


事实证明,控制网不仅可以与其他控制网堆叠,还可以与上面提到的 IPAdapter 协同工作。因此,我们将使用以下工具来实现这一点 - IPAdapter 带有源图像以获取样式,ControlNet 带有基于边缘的 Canny 边缘检测器以进行约束,ControlNet 带有基于深度剖面进行约束的深度。


就技术而言,这确实就是你所需要的全部,但我从将机器学习用于生产的过程中学到的是,这些东西的很多价值都来自于花时间完美地调整所有参数。所以我想谈一谈这一点。

微调

您是否曾经发现过一个具有惊人示例输出的模型,然后在自己的图像上尝试过,却发现它们看起来很糟糕?通常,唯一的原因是该模型尚未针对您的图像进行微调。有时感觉就像完全被阻碍了,因为我们甚至从哪里开始微调预训练模型?!以下是我对这个主题的了解。这也超出了这个特定的流程,所以一般来说,拥有这些知识是很好的。

控制网

ControlNets 非常强大,因此您必须小心控制它们对输出的影响。幸运的是,ComfyUI 中的自定义节点让我们可以减少控制网的影响,也可以随时停止它们的影响。因此,我们将边缘检测器的强度设置为 75%,并使其在 75% 时停止影响生成,深度检测器在 30% 时停止。我们在最后停止它们而不是仅仅降低它们的强度的原因是,这允许网络在最后几个步骤中“清理”由它们引起的任何伪影,而不受外部约束。它只是让图像更漂亮。所以它只使用训练数据来让事物看起来尽可能漂亮,忽略边缘和深度。



另一个需要调整的大问题是 KSampler。这里有很多小事情要做,但我只简要介绍一下其中的一些:

KSampler - 步骤

首先,我们要了解步骤。这实际上是模型重复运行的次数。运行的次数越多,输出就越风格化,与原始图像的差距就越大。这样做的效果通常不是那么明显,所以值得尝试一下。


KSampler-CFG

然后是 CFG。老实说,我并不完全理解这一点,但从它的名字(无分类器指导)来看,我假设它控制着模型在不受提示约束的情况下修改图像的程度,以使其看起来更好。这也会显著影响输出图像,因此值得一试。


去噪

我在这里使用的另一个巧妙的小技巧是使用输入图像而不是空白图像来启动图像生成过程,并保持低去噪。这可确保输出在颜色和纹理方面看起来相似。


文字提示

你会注意到,我到现在还没有提到过文字提示!这很令人惊讶,因为这通常是你通常提供给扩散模型的唯一条件。但在这种情况下,我们有许多其他条件方式,文字提示通常只是碍事。所以在这种情况下,提示实际上只是“一只狗”。我确实在一些更风格化的肖像中使用了更多的文字提示,比如厨师狗或浴室里的那只狗。

添加配件

本质上,这或多或少只是一个将图像转换为水彩肖像的“AI 滤镜”。但它的灵活性令人惊叹。例如,为了制作狗狗洗澡的肖像,我实际上只是在图像编辑工具中将图像放在一起并将其用作输入!该模型负责统一所有内容并清理图像。


结论

现在删除背景,添加一些文字,轰!你有一幅美丽的肖像,它捕捉了你宠物的所有小细节,并且总是在最好的光线下描绘它们!


非常感谢 @cubiq 在 ComfyUI 节点上的工作以及他在 YouTube 上的精彩解释器系列!他在他的视频中构建和解释了该管道的大部分内容。


如果您想拍摄宠物肖像,又不想经历所有这些麻烦,可以考虑从这里购买:pawprints.pinenlime.com!