在电商领域,最近AI模特换装特别火,结合网上的教程和实战,总结了一个最简单性价比最高的方法。今天我们就一起学起来!!
一 思路
整体的思路其实很简单,分为三步:
1.
获取模特服饰的蒙版
2.
获取模特的姿势特征图
3.
通过图生图局部重绘(上传蒙版)出图
在整个过程中我们会用到我们之前学习过的内容,局部重绘、ControlNet openpose 以及语义分割相关的内容,如果你忘了可以翻看之前的教程复习哦!
二 Inpaint Anything
我们会引入一个新的插件 inpaint-anything
用来替代语义分割插件,在前面 ControlNet 中我们讲过 语义分割 的作用是将图片中的物体分类进行语义的划分,不同的物体他们的颜色不一样。
而 Inpaint Anything 的强大之处在于可以更加精细化的将图片内容进行分割,而且可以控制我们选取分割后的部分内容,这是 ControlNet 语义分割做不到的!
直接上图看看他们的区别
可见 Inpaint anything 在分割方面做的更好,其逆天之处在于我们可以非常方便的挑选图片的中某几块内容生成蒙版内容!
安装
同样的和其他插件的安装方式一致,在扩展中通过在线网址安装。安装链接 https://github.com/Uminosachi/sd-webui-inpaint-anything
安装完成后需要重启!重启成功可以看到菜单多出来了 inpaint anything
三 模特图服饰蒙版获取
在第一次使用 inpaint anything 时需要下载模型,根据你的显存来挑选不同的模型下载
·
sam_vit_h_4b8939.pth:显存>8G
·
sam_vit_l_4b8939.pth:显存 = 8G
·
sam_vit_b_4b8939.pth:显存<8G
他们的区别在于分割图片的精细化程度。
图片分割
模型下载完成后,上传我们的模特照,点击 Run Segment
Anything
服饰扣取
等待几秒钟,在右侧就可以看到分割后的结果。使用画笔点击我们需要生成最终服饰蒙版的区域。比如在这个例子中我们需要把服饰抠出来,所以我把关于服饰相关的区域都标记了。
标记完成后点击 Create Mask
蒙版编辑
接着在下方就可以看到我们生成的服饰蒙版了,高亮的是最终会生成的。在这个界面我们可以进一步的对蒙版进行编辑
·
Expand mask region: 对蒙版内容边缘进行扩充(如果发现抠出来的图相比原图边界区域少了,可以尝试点击几下)
·
Trim mask by sketch:再次在图上进行标记,然后点击该按钮,会把这么区域刨除蒙版
·
Add mask by sketch:和 Trim mask by sketch
相反,是将再次标记的区域添加到最终蒙版中
蒙版获取
在编辑完之后,点击 Mask only
菜单下的 Get mask
即可,如果不满意你可以继续编辑蒙版,然后重新 Get mask
获取最新的蒙版。
如果没撒问题,咱们继续点击 Send to img2img
inpaint
进行出图
三 出图
将蒙版内容发送到图生图后,我们可以在图生图->局部重绘中的图片了。提示词和模型大家可以根据自己需要进行填写。有几个配置需要注意
·
蒙版模式:选择重绘非蒙版内容
·
蒙版蒙住的内容:选择原图
·
重绘区域:全图
·
分辨率:按一下 尺子让分辨率和原图保持一致
·
重绘幅度:需要具体的出图情况进行微调!
ControlNet
模特姿势设置
启用一个 ControlNet,将我们的模特图上传,并设置为 Openpose 处理器。
出图效果
原图
majicmixRealistic_v6 模型
ghostmix_v20 模型
Disney_v1 模型
出自:https://mp.weixin.qq.com/s/F_2__yXRUp8CJ6l_085lvA