deepfacelab中文论坛

 找回密码
 立即注册
查看: 7564|回复: 154

【老鸟进阶】Xseg遮罩模型详解

  [复制链接]

117

主题

1007

帖子

23万

积分

管理员

Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60

积分
235638

优秀版主论坛元老

发表于 2021-5-29 21:30:39 | 显示全部楼层 |阅读模式
学会使用遮罩模型是菜鸟进阶高手的重要一步

遮罩可以帮你处理诸如头发、眼镜、舌头等src难以训练生成出来的细节

例如dst有眼镜,src无眼镜,训练生成的src如果直接贴在dst脸上,眼镜就会被盖住,留下两个奇怪的眼镜腿。通过Xseg遮罩模型,可以自动扣出dst的眼镜并保留,从而实现src也带上眼镜,效果更自然。

那为什么要训练一个模型呢?和每一张手动去画遮罩有什么区别?

答案是工作量不同:60秒视频,每秒25帧,一共1500张图,你每一张手动画遮罩我敬你是条汉子。而用Xseg模型的话,先挑关键动作20-50张图画上遮罩,再训练一个Xseg模型来学习,学完后由模型自己给其余类似图片画上遮罩,能极大减小工作量



Xseg遮罩模型的使用可以分为训练和使用两部分部分

1. 训练Xseg模型
训练需要绘制训练素材,就是你得用deepfacelab自带的工具,手动给图片画上遮罩。这一步工作量巨大,要给每一个关键动作都画上遮罩,作为训练数据,数量大约在几十到几百张不等。

建议萌新直接使用别人已经训练好的遮罩模型,比如dfldata.xyz论坛置顶的万能Xseg模型,基本涵盖所有常规遮挡物,包括头发、香肠、舌头、眼镜等,可以直接在合成阶段使用

如果你想体验Xseg模型制作过程,或素材遮挡比较特殊,就按一下步骤操作

1. 常规提取dst和src人脸,获得对应aligned文件夹

2. 使用5.XSeg) data_dst mask for XSeg trainer - edit.bat脚本,打开绘制工具,绘制dst的遮罩。src同理

3. 绘制完成后,使用5.XSeg) train.bat脚本进入训练阶段,脸型参数根据需要选wf或f,bs使用默认值。模型训练比较耗显存,如果提示OOM显存不足的错误,减小bs大小。  另外一提,xseg模型不区分分辨率

4. 当训练预览窗口中第二第三栏效果图符合你满意程度时,按enter结束训练。在model文件夹下获得成品xseg模型一组



步骤比较简单,主要讲下遮罩绘制工具怎么用



按键功能都在图中标识了

只要用框选工具咔咔一顿点,把人脸区域给围出来就好了。

框选分两种,实线是添加选区,虚线是排除选区。以上图欧阳娜娜口红为例,两种方式都可以完成框选,根据个人喜好选择

画好的遮罩存储在aligned图内部,直接看不到,只能通过DFL自带的Xseg edit脚本进行查看

其他几个按键自己随便点点就知道什么作用了,不具体讲了



2. 使用Xseg模型
使用Xseg模型实际上有两种使用方式,一种是在换脸模型训练前先把遮罩给推理出来,应用到训练素材中。另一种是合成时实时生成遮罩并预览。

第一种方式就是使用5.XSeg) data_src trained mask - apply.bat脚本(dst同理),讲遮罩提前生成并写入图片信息中。这样在换脸模型训练阶段就能只针对重点区域进行学习,不去学习什么口红啊,头发啊,略微能提升点质量。但个人不推荐这种方式,因为推理出来的遮罩不一定完美,如果有瑕疵就会影响训练效果。

建议使用第二种方式,在合成merge阶段,在交互预览窗口直接按X来实时计算遮罩,因为方便观察遮罩效果。X可以多按几次,有多个遮罩使用模式,总有一款会适合你


Xseg模型的复用
最后讲下Xseg模型的重复使用

Xseg模型不需要每次素材都重新训练一份,可以在同一份模型基础上加入更多素材继续训练,让模型能处理的遮罩越来越牛逼

每次手工画完的遮罩图不要删,用5.XSeg) data_dst mask for XSeg trainer - fetch.bat脚本集中搜集起来,下次有新素材可以加入一块训练



论坛的镇坛之宝万能Xseg模型就是众筹网友万张手工绘制的遮罩图训练而成,满足98%以上需要遮罩的素材。
你可以提交100张手工绘制的遮罩图到[email protected],免费换取万能Xseg遮罩模型一份。





评分

参与人数 2贡献 +2 收起 理由
MrSupW + 1 很给力!
doraamom + 1 很给力!

查看全部评分

朋友们可以偶尔充值一下灵石,支援坛主一顿外卖
显卡闲置时也可挖矿赚点零花钱,一天利润60点我看教程
全站默认解压密码dfldata.xyz
回复

使用道具 举报

0

主题

160

帖子

879

积分

高级丹师

Rank: 5Rank: 5

积分
879
发表于 2021-5-29 21:47:32 | 显示全部楼层
教学贴很有帮助,感谢无私分享!!
回复 支持 反对

使用道具 举报

0

主题

108

帖子

780

积分

高级丹师

Rank: 5Rank: 5

积分
780
发表于 2021-5-29 21:48:08 | 显示全部楼层
学习坛主文章...
回复 支持 反对

使用道具 举报

18

主题

222

帖子

1179

积分

初级丹圣

Rank: 8Rank: 8

积分
1179
发表于 2021-5-29 23:18:55 | 显示全部楼层
教学很详细,感谢了!
回复 支持 反对

使用道具 举报

4

主题

55

帖子

381

积分

初级丹师

Rank: 3Rank: 3

积分
381
发表于 2021-5-29 23:29:19 | 显示全部楼层
教学很详细,感谢了!
回复 支持 反对

使用道具 举报

18

主题

222

帖子

1179

积分

初级丹圣

Rank: 8Rank: 8

积分
1179
发表于 2021-5-29 23:57:28 | 显示全部楼层
第一种方式就是使用5.XSeg) data_src trained mask - apply.bat脚本(dst同理),讲遮罩提前生成并写入图片信息中。

有两个问题想问下大佬:
1.如果用第二种方式,需不需要在遮罩训练完成后,运行一次:5.XSeg) data_src trained mask - apply.bat脚本?

2.如果一开始还没画遮罩也没训练过遮罩就运行了5.XSeg) data_src trained mask - apply.bat脚本(教程里说:遮罩提前生成并写入图片信息中),那是否影响运用第二种方式?
回复 支持 反对

使用道具 举报

117

主题

1007

帖子

23万

积分

管理员

Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60Rank: 60

积分
235638

优秀版主论坛元老

 楼主| 发表于 2021-5-30 00:13:14 | 显示全部楼层
sdsi 发表于 2021-5-29 23:57
第一种方式就是使用5.XSeg) data_src trained mask - apply.bat脚本(dst同理),讲遮罩提前生成并写入图片 ...

1. 不需要
2. 不影响
朋友们可以偶尔充值一下灵石,支援坛主一顿外卖
显卡闲置时也可挖矿赚点零花钱,一天利润60点我看教程
全站默认解压密码dfldata.xyz
回复 支持 反对

使用道具 举报

7

主题

1018

帖子

5123

积分

禁止发言

积分
5123
发表于 2021-5-30 00:35:15 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

0

主题

193

帖子

947

积分

高级丹师

Rank: 5Rank: 5

积分
947
发表于 2021-5-30 02:10:40 | 显示全部楼层
新教程,学习了!
回复 支持 反对

使用道具 举报

1

主题

81

帖子

1885

积分

初级丹圣

Rank: 8Rank: 8

积分
1885
发表于 2021-5-30 08:28:38 | 显示全部楼层
谢谢分享
回复

使用道具 举报

QQ|Archiver|手机版|小黑屋|deepfacelab中文论坛  |网站地图

GMT+8, 2021-9-22 07:43 , Processed in 0.056411 second(s), 26 queries .

Powered by Discuz! X3.2

Copyright © 2001-2020, Tencent Cloud.

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