deepfacelab中文网

 找回密码
 立即注册(仅限QQ邮箱)
12
返回列表 发新帖
楼主: day270010678

融合合成的时候遮罩模式的full

[复制链接]

33

主题

223

帖子

1694

积分

初级丹圣

Rank: 8Rank: 8

积分
1694
 楼主| 发表于 昨天 22:59 | 显示全部楼层
本帖最后由 day270010678 于 2026-7-15 23:01 编辑
jaysfing 发表于 2026-7-15 22:22
我测试了 会有色差 full 模式下换的脸颜色变白,是因为 halo 修正代码里 prd_face_bgr = prd_face_bgr * ( ...

脸颜色变白,这是肯定的,因为用的是原图的形态,但是脸部颜色是训练的时候或者说被替换脸的颜色,这个应该受到rct或者lct哪里的参数影响。脸的形状还是原始的训练的。你的思路也很好。你觉得效果好的话,就发出来,让大家用你这个,但是我不建议把方框消除,因为这个方框是表示原脸替换的范围,这个没必要消除,因为你会发现原来替换的时候,整个位置是有所改变的,比方说头顶会超过被替换目标的头顶,这样能更好的观察替换效果。
回复 支持 反对

使用道具 举报

9

主题

163

帖子

6794

积分

高级丹圣

Rank: 13Rank: 13Rank: 13Rank: 13

积分
6794
发表于 11 小时前 | 显示全部楼层
本帖最后由 jaysfing 于 2026-7-16 01:31 编辑
day270010678 发表于 2026-7-15 22:59
脸颜色变白,这是肯定的,因为用的是原图的形态,但是脸部颜色是训练的时候或者说被替换脸的颜色,这个应 ...

您的方案是正方形遮罩,覆盖范围是 100%    在边缘做颜色混合,SRC 肤色向 DST 靠拢。肤色差异小的时候还行 肤色差异大时会产生分界线,特别是额头顶部肤色不对  我试了怎么调halo_zone 阈值都难以消除 有点弊端。
我这个方案是切割的  是靠SAEHD模型去预测和计算边缘  进行切割  形成固定遮罩  弊端更大  不能体现full的优势
后来想了个两全其美的办法:
使用halo_fix_mask膨胀系数   不会削掉脸部边缘:
  1.         expanded_mask = cv2.dilate(halo_fix_mask, cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (output_size//3, output_size//8)))
复制代码

宽度膨胀到三分之一覆盖横向脸部边缘,高度只膨胀八分之一避免底部光晕。这个比例是基于人脸的一般比例
这样的效果虽然比不上正方形遮罩的完整覆盖,但遮罩覆盖范围足够大,保留了完整的脸部边缘,同时底部不溢出光晕  边缘过渡甚至更自然


总结就是用您的原创颜色混合逻辑,去处理遮罩边缘。
用模型轮廓膨胀后的遮罩,这个遮罩本身就已经贴合人脸,边缘光圈比正方形小得多。在这个基础上,颜色混合方法只作用于遮罩最边缘的极小范围,完成最后的肤色过渡。
遮罩形状解决了覆盖率问题,颜色混合解决了边缘融合问题。两者结合就同时具备了 full 的较完整覆盖和自然过渡。







回复 支持 0 反对 1

使用道具 举报

33

主题

223

帖子

1694

积分

初级丹圣

Rank: 8Rank: 8

积分
1694
 楼主| 发表于 10 小时前 | 显示全部楼层
本帖最后由 day270010678 于 2026-7-16 01:37 编辑
jaysfing 发表于 2026-7-16 01:15
您的方案是正方形遮罩,覆盖范围是 100%    在边缘做颜色混合,SRC 肤色向 DST 靠拢。肤色差异小的时候还 ...

你的这种,你有没有考虑过羽化参数?我留的正方形是打算让人观察整个替换范围,最后可以小幅度羽化彻底消除这个正方形,保持融合的自然,但是按照你说的额头顶部肤色不对,这个我不晓得,我没测试过极端的,我就是简单的测试大众的。你最好发个图片比较下。把用我的方法和你的方法融合后比较下,这样大家更直观看。我想你理解错了我为什么要消除这个光圈,我只所以要消除这个光圈,是因为这个光圈会覆盖脸部甚至身体部分,会把脸部周围或者脸部本身会发出带光的彩虹。导致替换周围会有部分模糊,并且是不透明的那种模糊。
回复 支持 反对

使用道具 举报

0

主题

133

帖子

2854

积分

初级丹圣

Rank: 8Rank: 8

积分
2854

万事如意节日勋章

发表于 3 小时前 | 显示全部楼层
jaysfing 发表于 2026-7-15 22:22
我测试了 会有色差 full 模式下换的脸颜色变白,是因为 halo 修正代码里 prd_face_bgr = prd_face_bgr * ( ...

感谢!
回复 支持 反对

使用道具 举报

0

主题

133

帖子

2854

积分

初级丹圣

Rank: 8Rank: 8

积分
2854

万事如意节日勋章

发表于 3 小时前 | 显示全部楼层
jaysfing 发表于 2026-7-15 22:22
我测试了 会有色差 full 模式下换的脸颜色变白,是因为 halo 修正代码里 prd_face_bgr = prd_face_bgr * ( ...

能分享下你优化后的完整文件吗?
回复 支持 反对

使用道具 举报

QQ|Archiver|手机版|deepfacelab中文网 |网站地图

GMT+8, 2026-7-16 12:25 , Processed in 0.098164 second(s), 28 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表