重绘

学习在 ComfyUI 中重绘和修改图像!本指南涵盖头发、服装、身体等,使用“Segment anything”等节点进行精准修改。

重绘:更换发色、发型、胸部、腹肌、服饰等

在开始搭建节点之前可以先确定一个流程,比如想要更换头发颜色,需要这两个步骤:

第一步:需要先将头发识别出来,可以选择手动涂抹或者自动识别

第二步:局部重绘,修改识别到的区域

接下来就根据步骤开始搭建节点:

方法一:segment anything节点

第一步:识别头发

  1. 上传图片后添加segment anything节点,拖出节点,加载两个对应的模型,将图片连接在节点上,输入想要识别出的区域

新增节点:

GroundingDinoSAMSegment (segment anything):SAMLoader (Impact)、GroundingDinoModelLoader (segment anything)

Parameters:

device_model: Prefer GPU

  1. 为了让蒙版识别的更准确,再加入一个segment anything识别出脸部,输入端可以使用与之前segment anything相同的模型,最后使用mask-mask将两个蒙版相减:上面的蒙版减去下面的蒙版,得到了精确的头发部分

新增节点:

Bitwise(MASK - MASK)

*当遇见某些地方无法识别的情况,可以使用这种蒙版相减的方法

  1. 得到蒙版后可以对蒙版进行一些处理,比如这里加上了GrowMaskfeathered mask来扩展蒙版以及对蒙版进行羽化,让最后重绘的图更自然

新增节点:

GrowMask

FeatheredMask

  1. 最后可以添加一个蒙版预览节点,查看最终的蒙版效果

新增节点:

Convert Mask to Image

Preview Image

  1. 为了方便观看,我们可以将这一组节点整理在一起

第二步:局部重绘

  1. 这里重绘使用之前提到的Set Latent Noise Mask,会参考原图进行重绘,将蒙版节点连接起来

新增节点:

Set Latent Noise Mask

  1. 接下来添加模型组,按照图生图方式,分别添加模型、提示词、采样器以及最后的解码,然后将蒙版组与模型组相连接

*图片需要加入编码进入潜空间重绘

  1. 将所有的线都连接完毕,可以根据自己需求输入对应提示词,设置相关参数,重绘幅度最大为1

注意:在对面部进行重绘时,建议加上FaceDetailer,起到了修复面部的作用,将输入端连接对应节点

新增节点:

FaceDetailer:UltralyticsDetectorProvider、SAMLoader (Impact)

另外因为只需对脸部重绘,不需要两个蒙版相减,可以选中对应节点Ctrl+B将节点隐藏,再将对应的节点连接上

*这样的重绘会对整张脸都进行了重新绘制,相当于换了一个人

关于如何实现同一个人更换不同表情,之后会推出更详细的教程

最后我们可以将这组工作流保存,方便下次使用

通过这种方法我们可以实现很多一键重绘

例如一键丰胸、一键健身、一键修改面部、一键更换服饰、发型等

方法二:YoloWorld重绘

YoloWorld能对某个物体单独抠图,速度比较快,识别相对没有segment精确,有些部分(例如肚子)存在无法检测的情况,可以搭配mask-mask使用

  1. 首先与segment anything相同的步骤,加入Yoloworld ESAM自动检测需要识别重绘的部分,以一键健身为例,这里无法直接识别需要增肌的区域,因此采用mask-mask的方式获取重绘区域,然后对蒙版区域进行处理

*可以在开始前对原始图片进行高清修复

重要参数:

confidence_threshold:识别的精确度,数值越小,识别越精确

iou_threshold:边框重叠度,数值越小,识别越精确

mask_combined:是否叠加蒙版,“true”则将蒙版叠加在一张图上输出,“false”会将蒙版单独输出

  1. 将蒙版接入重绘蒙版节点:InpaintModelConditioning,提示词只对蒙版区域有效,按照图生图模式,加入模型-提示词-采样器-解码-预览图片

  1. 调整相关参数,点击“创作”

Last updated