但是,在和大家沟通的时候,我发现kontext的这个工作流还存在一些缺陷,就是描述很费劲,尤其是遇到一张图中有多个相似元素的情况,大家可以看下面两个工作流的案例。
第一个是画面元素比较简单的,所以kontext会比较好理解我们的输入“change hair to silver”,把头发变成银色。

kontext单图元素替换
如果是下面这张图呢?我给到的提示词是“Change the hair color of the girl wearing green clothes to red”,把穿绿色衣服的女孩的头发颜色变成红色。显然,kontext理解起来是有难度的,没有正确按照提示词的内容进行修改。

kontext单图元素替换
所以,有没有办法能通过遮罩来涂抹出自己想要改变的区域,再让kontext进行修改呢?就类似于sdxl中图生图中的局部重绘。
经过不断地探索和学习,我发现还真的可以,只需要插入【Kontext Inpainting Conditioning】节点,就能实现在kontext中,用画笔画出遮罩,然后针对遮罩区域进行单独的重新绘制,如下图:

kontext局部重绘部分工作流
我们看下视频实操:
ok,那我们今天就一起学习下怎么实现这种效果及工作流的搭建吧,本篇的目录如下:
- kontext粉丝答疑解惑
- kontext单图局部重绘工作流
- kontext双图局部替换工作流(重点)
- 总结
1.1 kontext模型哪里下载?
我们可以去Flux官方网站上下载kontext模型。这里要注意的是,kontext模型有三个版本,分别是“max”、“pro”和“dev”。这三者的区别是:
max:参数最大,训练数据量最丰富,性能最佳。
pro:统一模型,提供 FLUX.1 质量的局部编辑、生成式修改和文本转图像生成功能,性能中等。
dev:开发者测试,速度最快。

模型下载方式1
或者也可以去huggingface上下载。我给大家也下载好了,大家也可以联系我获取模型。

模型下载方式2
1.2 为什么我的工作流老是报错不出图?
如下图1,出现这个报错可能是因为我们没有将kontext模型下载到本地运行,而是直接调用了API接口,由于网络不稳定,所以有时候会出图,有时候就不会出图,所以我不建议大家用“Flux.1 Kontext [pro] Image(提示词输入)”这个节点,最好用常规的工作流进行搭建,然后加载模型即可。如下图3。

kontext接口调用工作流(不建议这样使用)

截图报错
下面这种常规的工作流虽然搭建起来比较复杂,但是运行稳定,不容易报错。

kontext常规工作流
1.3 为什么我的工作流出图没有重绘?
这个问题应该是粗心了,我们要在【UNET加载器】中选择kontext模型才可以,记住,它是一个模型,可不是一个节点哈,如下图。

选择模型
2.kontext单图局部重绘工作流
现在我们进入正题,如何在kontext中进行单图的遮罩区域局部重绘制,正如文章开头所说的,我们插入一个【Kontext Inpainting Conditioning】节点,连接在【K采样器】之前就可以了,如下图。

Kontext Inpainting Conditioning 节点
然后上传一张图片,右击选择“在遮罩编辑器中打开”,涂抹自己需要去掉的区域。接着在【CLIP文本编码器】中输入自己想替换的元素就行,比如“Replace the bottle in your hand with a glass of water”,将手中的瓶子替换成玻璃水杯。

涂抹替换区域

kontext单图局部重绘
可以看到,效果还是很不错的。再回到开头那张多个女孩的照片的案例,我们再试一下,也是不错的。有了遮罩重绘的kontext,最方便的是不同再费尽心思地去写提示词,就像这里的提示词“turn hair silver”,非常简单,因为此时的工作流只对遮罩区域有效。

kontext单图局部重绘
3.kontext双图局部替换(重点)
重点来啦,既然单图可以局部替换,那将一张图替换到另一张图上去,能通过kontext实现么?如果能实现,那kontext是不是实现了万物替换?经过尝试和思考,发现是可以的。我们只需要插入【Image Stitch】节点,将结合之后的图片VAE编码给到【ReferenceLatent】节点,再连接到【Kontext Inpainting Conditioning】即可,如下图。

效果截图
我们看下完整的工作流。需要的可以在文章底部获取。

kontext双图局部替换工作流
这个工作流其实原理也非常简单,我们先将2张图片通过【Image Stitch】组合在一起,然后VAE编码给到【ReferenceLatent】节点,如下图。这个kontext双图元素替换的逻辑是一样的。

图像组合
然后将涂抹形成遮罩的图片通过【Grow Mask With Blur】(遮罩模糊生长),将遮罩的边缘进行柔和处理,然后给到【Kontext Inpainting Conditioning】的“mask输入”,还有将原图也给到该节点的“pixels输入”,如下图,就能跑通整个工作流了。

遮罩和图像连接
4.总结
本篇文章主要是再次延伸了kontext的重绘功能,之前大家只能通过各种提示词描述来让kontext理解我们的想法,所以比较“费脑子”。现在kontext有了局部重绘,就大大提高了提示词描述的精准程度了。尤其是还可以将一张图替换到另一张被涂抹的区域,可以说是非常便捷。
另外也在平时和大家的讨论中把一些共性问题跟大家分享下,希望大家可以少报错,快速跑图,
最后,关于工作流和模型大家有什么需求和疑问的,也可以联系我,我会尽力帮助大家解决跑图中的各类报错问题,谢谢!
5.福利
因为我这半年也一直在跑工作流,但是发现很多平台价格有点小贵,自己跑图电脑配置也是个大问题,所以我和我的小伙伴搭建了一个价格实惠、速度流畅的跑图平台,我自己这段时间也在上面跑comfyUI,体验还是很不错的。
https://loveai.haoee.com/main/home
kontext的工作流我也放上去了,可以一键跑图,帮助大家免去搭建的时间,不过还是建议大家自己搭建一下,这样会更加熟悉整个流程和思路。

并且新注册的用户还有 5元的免费红包 可以领取,别小看这5元,可以跑很多张图的,每次大概只需要几分钱,非常划算。


文章来源:转自微信公众号@体验思考