只需要三步轻松替换背景 | Segment Anything
作者:FancyPig | 发布时间: | 更新时间:
相关阅读
视频讲解
本期视频,我们将带你使用Stable Diffusion中的新插件Segment Anything,您可以使用它与ControlNet配合,对画面中的细节进行控制。我们将为大家演示,如何使用该插件,修改图片中美女的头发,以及如何更换背景。
图文讲解
生成性的人工智能艺术。有些人喜欢它,有些人还没有学会喜欢它的神奇之处,但对于那些接受了人工智能力量的人来说,我们有时会想,如果你能在图片上点击一个东西来改变它,那不是很好吗?比如说,我想把这些窗帘都改成红色,但我必须做一个蒙版,这一切都让我感觉到繁琐和笨拙,都有点太像传统艺术了。

我是一个潜在的空间的探索者。如果有一种方法,我就可以把任何东西分段。哦,等等,有的。是的,它叫segment anything,

它的功能现在也可以直接在Stable Diffusion的Automatic1111 Web界面中使用了。

有了segment anything,你所要做的就是挑选你的分段,就像罗伯特是你父亲的兄弟一样,你的蒙版就做好了。为了这个工作,你需要有两个扩展。第一个是ControlNet,第二个是in paint anything。


这两个都可以通过Automatic1111网页界面上的扩展标签来安装。我已经做了一个关于ControlNet的视频,有可能你也已经安装了。只要确保它是最新的,而且你至少已经下载了inpainting的模型。这是一个很棒的模型,在这个视频的最后,我还会向你展示一个可以用的很酷的技巧,使用in painting模型做出来的绘画,就像屏幕上一样。

对于in paint anything扩展,模型的下载可以直接从in paint anything标签中完成, 所以这比用ControlNet更容易。因此,只是为了总结一下这个in paint anything扩展的确切步骤的安装过程,你需要从可用的标签中安装in paint anything,进入已安装的标签并点击应用和重启,最后进入in paint anything标签并下载一个模型。

有一些不同的模型可以选择。正如你所看到的,你有基本的(b)、大的(l)或巨大的(h)。大的(l)是默认的。也有HQ版本。我喜欢大的(l)模型,而且我最不能撒谎,所以我自己大多使用hq_vit_h,尽管有时你确实需要切换模型来获得你想要的实际段。

好了,现在你已经安装好了一切,是时候分段了。使用默认值的基本三步程序是非常快速和简单的。你所要做的就是提供你的图像,点击运行segment anything,选择你想要的段,点击创建蒙版,选择你的文本提示,最后点击Run ControlNet Inpaint。

这种方法很快捷,当你想改变相当类似的东西时,效果很好,保持图像的整体风格,以至于你的修复不是那么显眼。



例如,假设我有一个绘画的图像,那么我在修复的任何东西都将与那幅画的风格相同。

如果我现在只是运行这三个步骤,那么第一步是选择一个图像,

我要用那幅画,然后我需要运行Segment Anything


在分割的区域,我只需要点击一些东西,所以在那里我将选择她的头发,然后点击创建蒙版。

由于光标是一个小黑点,在一些黑色区域可能相当难看,但是,嘿,那里也有一个反转蒙版的选项,如果你希望除了你选择的那部分之外的所有东西。我在左边的ControlNet Inpaint标签上, 对于正面的提示,我要有一些卷曲的姜发,我也要在那里扔一点负面的提示,所以最后的事情就是点击Run ControlNet Inpaint。


Et voila,她现在有了卷曲的姜黄色头发。

如果你愿意,你现在可以用你刚刚生成的图像替换那个输入图像,选择一个不同的片段,创建一个新的蒙版,然后改变图像上的不同区域。请注意,如果你的输入图像和输出图像之间的尺寸发生了变化,你将需要再次运行分段。再深入一点,你会发现有很多东西可以玩,希望那里的东西能满足你的要求,我们在那里有一些高级选项,也有一些ControlNet选项。比如说,预处理程序有几个不同的选项,默认的选项绝对是好的,选择inpaint_only。

但你也可以选择inpaint_only+lama。inpaint是相当体面的,只是改变了整个图像,它实际上并不使用你创建的蒙版,所以我倾向于完全忽略这个选项。inpaint_only是相当新的,是随ControlNet 1.1而来的,和inpaint_only+lama几乎完全一样,但结果可以更干净一点。你也有各种标准的ControlNet选项,如模式和仅参考ControlNet,如果你还想将它们紧凑地放在这个界面中。对于其他的一些标签,我们已经有Inpainting,这是基本Inpainting,基本上是老办法,而且它不使用你的正常模型,它只使用那里列出的模型,是扩散器格式的,所以如果你使用那个标签中的任何东西,你可能必须下载,我个人倾向于忽略它。

下一个标签是清洁器,因为有时你只是需要把东西拿到清洁器上。

这允许你将图像的一些区域清空,如果你使用同一个天使,我选择她的翅膀,在那里做一个蒙版,然后在上面运行清洁器,

你可以看到我们现在有一些相当空白的翅膀,它有点平坦了,摆脱了所有羽毛的细节。Mask only是这里的最后一个标签,它允许你获得图像的alpha,或者你也可以获得蒙版。

蒙版非常方便,因为这样你就可以向下滚动,在绘画中发送图像到图像,并继续做所有你通常会做的事情,所以在这里你可以选择蒙版内容原件,选择任何采样方法,并添加任何你喜欢的ControlNet就像你通常做的那样。


就像我一开始提到的,ControlNet Inpainting不仅适用于内部修复,

它也非常适用于修复外部区域,例如这里我正在使用Outpainting-mk2脚本,在那里我们有外部修复标记2、1、2、8、12、蒙版,所有的方向,出来的效果就有点像这样,这也没什么,只是不是很和谐。然而,如果我们使用ControlNet的新inpaint全局协调模式,

那么我们就会得到完全不同的结果,

所以让我们启用它,我已经有了inpainting,那里的预处理器是inpaint全局协调模式而且我们使用相同的Outpainting-mk2脚本。那里只是默认的权重和步数,但我已经选择了Control模式,ControlNet更重要的模式。现在,当我们通过它,我们得到一个完全不同的图像,我想你会同意这确实要和谐(harmonious)的多。

不,那是一个口琴(harmonica),

好吧,我们只是要忽略这一点。