[ComfyUI系列3]换装升级!保持模特不变,无需手动蒙版,实现自动抠图 换衣(附工作流)

上一篇介绍通过FLUX Redux 和Fill相结合实现一键模特换装,[[ComfyUI系列2]AI 时代电商的福音!FLUX Redux 和Fill 相结合实现 模特换装],但是这套工作流的模特是通过 输入prompt 生成的,在实际的生产业务中,企业往往有自己的模特原图,需要保持已有的模特不变,仅需要替换模特身上的衣服,本篇来介绍利用抠图插件LayerStyle,`KJNodes,` `````结合` `````F` `````LUX Tool来实现一键换衣。`

首先看下整体效果:

图 1 是需要模特换的衣服(可以是衣服,也可以是模特图)。

图 2 是企业自有的模特图。

图 3 是换装后的效果图。

模特和服装细节还原度还是比较高的,另外也不会因为模特站姿不正,pose 的原因,导致服装失真,整体效果比较自然、真实。

整体工作流如下:

这份完整版的AI绘画全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

工作流拆解:

1、抠图节点:

要实现一键换衣,首先就得自动抠图,这里使用的插件LayerStyle的节点 LayerMask: Segformer B2 Clothes Ultra

ComfyUI 插件 LayerStyle 中的节点 LayerMask: Segformer B2 Clothes Ultra 是一个图像分割掩码生成器。根据输入图像生成一个分割掩码 (mask),用于区分图像中的不同部分,例如衣服、头发、脸部等。掩码就是我们常说的遮罩
它使用 Segformer B2 模型来识别图像中的不同元素(例如脸、头发、衣服等),并生成一个掩码,项目右侧被标记为 true 的类别会在输出掩码中被包含。

它可以分割以下项目:

  • 脸 (face)

  • 头发 (hair)

  • 帽子 (hat)

  • 太阳镜 (sunglass)

  • 左臂 (left arm)

  • 右臂 (right arm)

  • 左腿 (left leg)

  • 右腿 (right leg)

  • 上衣 (upper clothes)

  • 裙子 (skirt)

  • 裤子 (pants)

  • 连衣裙 (dress)

  • 腰带 (belt)

  • 鞋子 (shoe)

  • 包 (bag)

  • 围巾 (scarf)

以下是各个参数的解释:
参数列表:

  • detail_method

    选择用于细节处理的算法。VITMatte 是一个用于图像抠图的算法,这里用于细化分割结果。

  • detail_erode

    腐蚀操作的迭代次数,用于去除掩码中的细小噪点。数值越大,去除的噪点越多,掩码边缘越粗糙。

  • detail_dilate

    膨胀操作的迭代次数,用于扩大掩码中的区域。数值越大,掩码区域越大,边缘越模糊。 (通常情况下,需要先进行腐蚀再进行膨胀,以去除噪点并保持边缘的清晰度。)

  • black_point

    控制掩码中黑色部分的阈值。数值越小,黑色区域越宽。

  • white_point

    控制掩码中白色部分的阈值。数值越大,白色区域越宽。

  • process_detail

    是否进行细节处理,设置为 true 表示进行细节处理 (腐蚀和膨胀)。

  • device

    指定处理图像的设备,这里选择的是 cuda (GPU)。

  • max_megapixels

    限制处理图像的最大像素数,避免内存溢出,尤其是在处理高分辨率图像时非常重要。

2、遮罩处理

插件KJNodes的节点Grow Mask With Blur,用于扩展和模糊掩码(mask)。一句话总结,这个节点允许你通过调整参数来控制掩码的扩展范围、形状、模糊程度和边缘平滑度,从而实现各种图像处理效果。 建议通过实验不同的参数组合来找到最佳效果。

具体参数解释如下:

  • 遮罩(mask):

    这是输入的掩码图像。它决定了哪些区域会被扩展和模糊。 通常是一个黑白图像,白色部分代表需要处理的区域,黑色部分则不会被影响。

  • 反向遮罩(mask_inverted):

    这是一个布尔值(true/false)。如果设置为true,则会反转输入的掩码。 这意味着原本白色区域会被视为黑色,黑色区域会被视为白色,然后进行扩展和模糊处理。

  • expand:

    这是扩展的像素数量。数值越高,掩码扩展的范围越大。 这个值决定了最终掩码的尺寸。

  • incremental_expandrate:

    这个参数控制扩展的速率,它影响扩展的形状。值越接近1,扩展就越均匀;值偏离1,扩展速率会变化,可能导致扩展边缘不均匀。 实验不同的值能得到不同的效果。

  • tapered_corners:

    这是一个布尔值(true/false)。如果设置为true,则扩展的边缘会更加平滑,角部过渡更自然,避免出现生硬的直角。如果设置为false,边缘扩展会比较生硬。

  • flip_input:

    这是一个布尔值(true/false)。如果设置为true,则会翻转输入的掩码(水平或垂直,具体取决于上下文,可能需要查看插件的更详细说明)。

  • blur_radius:

    这是模糊半径。数值越高,模糊效果越明显。 这个参数控制最终掩码的模糊程度。

  • lerp_alpha:

    这参数控制混合(lerp)的程度。具体来说,它控制着扩展的掩码和原始掩码之间的混合比例。 值为1.0表示完全使用扩展后的掩码,值越小,原始掩码的影响越大。

  • decay_factor:

    这个参数控制扩展的衰减速率。 值越小,扩展的边缘衰减越快,边缘越清晰;值越大,扩展的边缘衰减越慢,边缘越模糊。

  • fill_holes:

    这是一个布尔值(true/false)。如果设置为true,则会填充掩码中的孔洞,使掩码区域成为一个连续的区域。

3、图像的智能裁剪和修复(Inpainting) --局部重绘的核心

插件Inpaint-CropAndStitch的节点✂️ Inpaint Crop。这个插件结合了图像裁剪和修复功能。你可以通过调整各种参数来控制修复区域的大小、形状、平滑度以及最终图像的尺寸。

节点✂️ Inpaint Crop是在采样之前裁剪图像的节点。上下文区域可以通过掩码、扩展像素和扩展因子或通过单独的(可选)掩码来指定。

输入节点 (Inputs):

  • image:

    这是插件的主要输入,即你需要进行处理的图像。

  • mask:

    这是一个掩码图像,它决定了你需要修复(Inpaint)的区域。白色区域表示需要修复,黑色区域表示保留。

  • optional_context_mask:

    这是一个可选的上下文掩码。它可以提供额外的信息来帮助修复过程,通常用于定义修复区域周围的上下文范围。

参数节点 (Parameters):

  • context_expand_pixels:

    这个参数控制上下文掩码的扩张像素数。数值越大,修复时考虑的周围区域就越大。 如果你的optional_context_mask为空,这个参数不起作用。

  • context_expand_factor:

    这个参数控制上下文掩码的扩张倍数。它与context_expand_pixels配合使用,可以更精细地控制上下文区域的大小。同样,如果你的optional_context_mask为空,这个参数不起作用。

  • fill_mask_holes:

    这个布尔值参数决定是否填充掩码中的孔洞。如果设置为true,插件会尝试填充掩码中不连续的区域;如果设置为false,则不会填充。

  • blur_mask_pixels:

    这个参数控制对掩码进行模糊处理的像素数量。数值越大,掩码边缘越模糊,修复结果可能会更自然,但细节也可能丢失。

  • invert_mask:

    这个布尔值参数控制是否反转掩码。如果设置为true,则白色区域将被视为需要保留,黑色区域将被视为需要修复。

  • blend_pixels:

    这个参数控制修复区域与原始图像的融合程度。数值越大,融合越平滑,但可能导致修复区域不够明显。

  • rescale_algorithm:

    这个参数选择图像缩放算法。bicubic是一种常用的高质量缩放算法。

  • mode:

    这个参数选择裁剪模式。这里显示的是ranged size,表示裁剪后的图像大小会在指定范围内。

  • min_width, min_height:

    裁剪后图像的最小宽度和高度。

  • max_width, max_height:

    裁剪后图像的最大宽度和高度。

  • padding:

    在裁剪区域周围添加的填充像素数量。

输出节点 (Outputs):

  • stitch:

    原始图像与修复后的图像的拼接结果。

  • cropped_image:

    裁剪后的图像。

  • cropped_mask:

    裁剪后的掩码。

总结一下,这个插件结合了图像裁剪和修复功能。你可以通过调整各种参数来控制修复区域的大小、形状、平滑度以及最终图像的尺寸。简单一点说,记住它只管裁剪就行。

工作流下载链接:

写在最后

常用工作流已经给各位小伙伴打包好了,可以按需自取,无偿分享。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这份完整版的AI绘画全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

AIGC技术的未来发展前景广阔,随着人工智能技术的不断发展,AIGC技术也将不断提高。未来,AIGC技术将在游戏和计算领域得到更广泛的应用,使游戏和计算系统具有更高效、更智能、更灵活的特性。同时,AIGC技术也将与人工智能技术紧密结合,在更多的领域得到广泛应用,对程序员来说影响至关重要。未来,AIGC技术将继续得到提高,同时也将与人工智能技术紧密结合,在更多的领域得到广泛应用。

在这里插入图片描述

一、AIGC所有方向的学习路线

AIGC所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

在这里插入图片描述

二、AIGC必备工具

工具都帮大家整理好了,安装就可直接上手!
在这里插入图片描述

三、最新AIGC学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述
在这里插入图片描述

四、AIGC视频教程合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

若有侵权,请联系删除

<think>好的,用户想在ComfyUI实现更换模特姿势的工作流。首先,我需要回忆一下之前学过的相关知识,特别是关于姿势控制的部分。记得ComfyUI使用节点式的工作流,可能需要用到Openpose相关的节点。 用户提供的引用中提到,通过WebUI中的openpose和局部重绘功能,结合ComfyUI可以实现模特换装,这可能涉及到姿势调整。另外,引用[2]提到有基础工作流的示范,可能里面包含姿势控制的步骤。 首先,用户需要安装ComfyUI并确保相关插件,比如ControlNet,已经正确安装。因为ControlNet中的Openpose模型是用来检测和生成人体姿势的关键。然后,工作流中应该有一个加载Openpose模型的节点,用来处理输入的姿势图像。 接下来,可能需要将原始模特的图像输入到Openpose节点中,提取姿势关键点。或者,用户可能希望手动调整姿势,这时候需要使用Openpose编辑器生成新的姿势图,再输入到工作流中。这需要将新姿势图作为条件输入到生成过程中,确保生成的新图像保持姿势一致。 然后,可能需要结合文本提示词,比如“穿着时尚服装的模特”,来引导生成的内容。同时,使用潜变量重绘(Latent Composition)或局部重绘(Inpainting)来保持背景或其他部分不变,只调整姿势相关的区域。 还需要注意工作流的连接是否正确,比如将Openpose的预处理节点连接到ControlNet应用节点,再将处理后的潜变量输入到采样器。此外,可能需要调整去噪强度,以平衡姿势准确性和图像质量。 最后,用户可能需要参考现有的教程或示例工作流,比如GitHub上的基础工作流示范,来构建自己的流程。测试不同的参数设置,比如重绘区域、提示词权重等,以优化生成结果。 需要提醒用户安装必要的模型文件,如Openpose的预训练模型,并确保节点之间的连接正确。可能还需要指导用户如何获取和导入示例工作流,方便他们快速上手。 总结步骤应该是:安装插件和模型→导入或创建姿势图→构建包含Openpose节点的工作流→连接提示词和重绘节点→调整参数生成图像。同时,注意引用相关的教程和资源,帮助用户进一步学习。</think>### ComfyUI更换模特姿势工作流教程 在电商视觉设计中,通过ComfyUI实现模特姿势更换主要依赖ControlNet的Openpose功能[^3]。以下是具体实现步骤: #### 一、环境准备 1. 安装ComfyUI基础环境(推荐使用整合包[^2]) 2. 下载ControlNet预训练模型: - `control_v11p_sd15_openpose.pth` - `t2iadapter_openpose_sd14v1.pth` #### 二、基础工作流搭建 ```python # 伪代码示例节点连接 [Load Image] -> [Openpose Preprocessor] -> [ControlNet Apply] ↘ [CLIP Text Encode] ↗ ↘ [Empty Latent] -> [Sampler] -> [VAE Decode] ``` #### 三、关键节点说明 1. **Openpose检测器**:提取原始姿势骨骼图 2. **姿势编辑节点**:支持三种编辑方式: - 直接上传新姿势图($$ \text{pose}_{new} = f(\text{image}_{ref}) $$) - 使用Openpose Editor交互编辑 - 文本描述姿势自动生成 3. **潜变量重绘**:保持背景不变的核心技术 $$ z&#39; = \epsilon(z_0, \text{pose}_{new}, t) $$ 其中$t$表示去噪强度参数 #### 四、参数优化建议 | 参数项 | 推荐值 | 作用说明 | |--------------|---------|----------------------| | denoise | 0.4-0.7 | 重绘强度控制 | | cfg scale | 7-9 | 提示词跟随度 | | pose weight | 0.8-1.2 | 姿势控制强度 | #### 五、典型问题排查 1. 姿势抖动问题:增加ControlNet权重($$ w \geq 1.0 $$) 2. 服装变形:启用局部重绘 3. 手指异常:添加负面提示词"bad hands" [完整工作流示意图](https://github.com/wyrde/wyrde-comfyui-workflows) 展示了节点连接细节[^2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值