Kontext可以通过一句话实现对图片的编辑,让AI绘图的可玩性大大提高,但如果我们想对图片中的局部进行精确控制时,Kontext有时就会显得有些力不从心了。打开官方提供的 kontext 工作流模板,导入一张戴着皇冠的白鹅照片,输入提示词"将背景改为湖泊",背景很容易就更改为了湖泊。对于更改背景这类操作,Kontext确实又快又准确。但如果我想对一些复杂的画面进行局部编辑,比如下面这张图片,我想让画面中右边前面的这只鹅变成蓝色的,这时一方面语言描述可能不准确,另一方面即使我们描述准确了,Kontext可能也会理解错误。不信,我们用提示词"让右边前面的这只鹅变成蓝色的"试一下。很明显,Kontext 没能很好理解我的意思,Kontext将画面中所有的鹅都变成蓝色的 了。所以,想要对画面的局部进行精准编辑,就得用上局部重绘。在Kontext中,如果通过直接对原图进行局部重绘,再给指令的操作是无法实现我们的目的的。
正确的操作方法是:将加载图片节点复制一份,其中一个用来编辑遮罩用,然后增加一个"颜色覆盖"节点将遮罩区域指定颜色,例如红色的色号是"#FF0000",再对该颜色区域进行操作。
节点连接图如下:
这时再给提示词"将红色部分变成蓝色的小鹅",我们就实现了对图片的精准控制。从图中可以看到,我们之前画遮罩的时候只画中了小鹅的身体,它的倒影并没有画上,但最后出图的时候,Kontext 将它的倒影中的颜色也变成了蓝色。关于这个方法的使用,在之前的文章中有介绍过,感兴趣的同学可以去翻一翻以前的文章:Kontext 局部重绘有一个专门的插件:Kontext-Inpainting
使用这个插件后,Kontext 将只对遮罩区域进行编辑,遮罩以外区域不作编辑。https://github.com/ZenAI-Vietnam/ComfyUI-Kontext-Inpainting插件安装好后,到插件目录下的workflow目录下找到官方默认工作流。这个工作流和 Kontext 默认工作流的不同之处就是增加了一个"Kontext Inpainting Conditioning"节点。我们想让左下角的小鹅变成蓝色的,画好遮罩,然后给提示词:让小鹅羽毛变成蓝色。小鹅身体变成蓝色的了,但请注意:这次小鹅的倒影没有变色重新扩大选区,将阴影的区域也画上遮罩后,小鹅终于变成了蓝色。仔细观察小鹅的边缘,因为我们遮罩边缘比较硬,所以小鹅的比较也比较硬我们可以在遮罩后面加一个遮罩扩张节点,给一个扩张尺寸和模糊数值。数值不固定,我们可以根据实际情况来回细调。
感谢您的阅读,麻烦点个赞+在看吧!
没有评论:
发表评论