ICE版跑过的模型默认不再兼容DFL原版,请提前备份你的模型
一、软件配置
1、运行环境:参照原版deepfacelab2、软件安装:DF_ICE为解压即用软件,为简化部分操作,作者很贴心的设置了“环境配置功能”——Setup.bat,按照说明一步一步继续下去即可完成初始化
全新重写的Face-AI训练器,对脸有了重新的理解训练更具效率,成型迅速模型训练权重更加平衡有效,兼顾全局成像及细节特征提取!新的512分辨率遮罩模型,精细的边界和细节ICE5V2蒸馏模型获得更全面的支持,高分辨率有更快成型速度,节约三分之一时效兼容DeepFacelab 原版和Me版本模型读取继承自Me版本的AMP架构,大比例的快插件支持:素材增强插件、合成增强插件、后期nuke插件新的结构流程训练器,极大改善某些大规格和高参模型训练显存的紧迫感,后期不能打开GAN的尴尬;启用优化器,妈妈在也不用担心OOM了Loss平滑功能加入,各种角度训练收放自如;模型收敛成型更快,模型对不同角度素材推理更平衡;显卡不在是一名优秀的磨洋工,省电同时,宝在也不用熬夜分类极端素材单独训练;角度、角度、角度、现在只需要打开【LOSS平滑】开关;新的实验性Gan算法,即使模糊和运动素材,也会有不错效果,告别只能换清晰脸的尴尬;ICE优化器可以让Gan跑在更多层和极端参数;新的遮罩模型算法,我们将256遮罩分辨率扩展到512分辨率,更精细遮罩推理更利于后期制作;合成器将会因为精细遮罩有些新的变化多遮罩模型管理,训练及合成选用不同类型自定义遮罩更便捷;无缝支持原版256遮罩模型混用,支持原版256的遮罩素材,建议以512分辨率重新精细化未来将支持多个遮罩组合变体,应对特殊场景需求;起点变高,要求不高,即使是8G显存,512遮罩模型也是能跑的动;升级规格的遮罩模型,对于素材精细度要求变高了,但会有全新值得表现新的遮罩算法作用逻辑,加减法更明确清晰精细遮罩应用于训练,减少不必要训练量实验性功能,素材和模型的匹配会有一些新的工具呈现;通过新的工具,让我们在素材和模型参数找到平衡;预览界面新增xseg landmake显示,现在你可以看到不同分辨率和脸型素材,仿射变换到模型中的实际位置landmake 眼睛和嘴部位置准确度将直接影响眼嘴优先选项训练效果,实际边界是有一定容错空间,但也不能偏移太大;素材分辨率脸型和模型一致,将获得最优匹配;全中文界面,utf-8支持;可扩展到非编软件接囗
二、常见问题
1、DF_ICE跟DFL有什么区别?
最新版本的DF_ICE使用全新的训练器,实测效果训练速率远高于原版DFL,添加了一些实用功能(如Iloss平滑等)
2、DF_ICE跟DFL相比有什么优势?
①快!快!快!
②对硬件要求更低!
③在相同品质素材的前提下,即便参数设置及阶段转换时机不合理,最终得出的结果都相近。
④原版DFL目前停更,ICE会持续更新并会有新的实用功能实装
3、RG版、Me版、ICE版各是什么?
版本一直是小范围使用所以有点乱,简而言之就是,RG的主要适用对象是硬件不够又希望高参数大BS的玩家,Me版继承RG版的优势并增加了几项可调节的参数并提供了Web查看面板,DF_ICE更换了新的训练器并继承了RG特色,可以跑更大参数和更高BS,今后会陆续实装简介中的各项特色功能。
4、教授(Kingboy)是谁?
江湖上的事,少打听。好用就行。记得心存善念、心怀感激。
5、DF_ICE的loss平滑什么时候开?
整个训练阶段的中后期开启,我个人一般0.15以下开启,建议在0.5左右开,强度普通卡开3,40g开6,80g开到8
6、loss平滑有什么作用?
原版扭曲每次都是随机挑选素材进入训练,很难学到稳定特征,因为扭曲每次都不一样。开启loss平滑会搜集扭曲后的素材排序,高loss的会有一个小周期对扭曲素材重复训练,稳定特征提取。比如loss平滑强度开3,如果训练bs开到8,就是每128个素材搜集16张高loss素材,跳出所有素材循环,这16张素材进入第二次单独训练。每张素材获得3次机会强化训练。比如rw和ct这些素材增强是随机的,你只对他训练一次就很难重现这个稳定态。loss平滑最大的意义在于,持久化被增强的素材的训练频度。保证特征提取效率。loss在0.3后,大量正面素材是提取不到特征了,训练是无用功,0.15左右基本磨洋工。loss试验性的,bs越大占用显存越大,建议前期不要开,中期rw loss yaw可以加速模型整体成型。后期设备好的酌情考虑,褒贬不好说。这个功能会占用CPU,CPU越好,显卡越好效果越明显。相当于自己挑选素材进行强化训练。
7、在DF_ICE下训练过的模型无法拿到DFL下训练?
原则上ICE的不行不再兼容原版DFL(有了ICE还要啥自行车),所以试用ICE前,请备份你的模型文件
8、开启LOSS平滑后训练LOSS变得很高
DF_ICE版本的IosS值显示不太准,只是一个趋势。因为引入新的算法。作者暂时抽不出时间去改这一块。打开Ioss平滑后相当于两个训练器在博弈。中间一个延迟,不是不训练。是把训练的迭代数量一次性累计
9、开启一些细节参数后CPU占用很高是否正常?
正常的,rct和hsv是跑在cpu,ice还会把梯度剪裁卸载到cpu来跑,尽可能的发挥显卡功效。遮置边缘模糊对cpu开销特别大,如果模型不用于live可以关了。如果用于live模型,在最后收尾阶段打开遮罩边缘模糊训练模型的遮罩边缘。限制你gpu的效率两个因素,第一,显存太小,二、太多cpu操作,cpu和pci通道拉胯,导致素材一直不及时送到gpu处理。2个因素决定gpu的cuda计算单元一直在等数据运算。对于dfl的cnn的卷积网络的层数是2021年之前的产物。当时大众gpu还不具备处理太深网络,所以dfl的层计算数量要求不高。对于dfl的训练之路,你选取gpu的第一选择就是显存越大效率越高。包括现在4090来说,算力的提高对于速度提高很小,算力几乎是种浪费。远远达不到线性提升。
10、原版模型忘记备份了,如何让从ICE模型转回去?
右键编辑”z5.Train”目录下的批处理文件”5.1 train SAEHD.bat”把–models-type me-model 改为–models-type me-dfl然后保存,然后运行训练,接着保存模型,之后就能拿回原版使用了。11、模型练完后对模糊的DST效果极差脸部五官放大怪异,对清晰的就效果很好src多放点模糊素材,或者me版打开模糊增强
11、模型练完后对模糊的DST效果极差脸部五官放大怪异,对清晰的就效果很好
src多放点模糊素材,或者me版打开模糊增强
关于使用的一些知识点:
梯度剪裁何时打开?
·当你的模型训练中阶段自动保存显示Loss平均值突高突低,当模型容易发生爆色块,当模型容易崩溃,此时你应该打开梯度剪裁。
·当你的素材质量极低,当你打开CT进行颜色迁移!当你打开真脸和gan生成纹理和细节,你应该考虑打开梯度剪裁。
·梯度剪裁的负作用,有些模型需要极端条件,打开剃度剪裁可能导致无法模型收敛。因此,任何时候,打开模型备份是必要的,模型备份的回退是训练模型的基本操作之一,也是经常会使用的模型优化方案。回退模型比修改训练参数去修复某状况更有效。
Loss平滑如何使用?
·新建模型没必要打开Loss平滑,因为需要均衡权重;
·当模型降到平均0.5以下,可以考虑打开,此刻每次迭代会参杂大量0.6-0.7迭代。观察黄蓝曲线图,会有大量毛刺尖峰,可以使用Loss平滑,提升权重;
当你SRC素材角度很全,但训练预览图中观测,正面脸清晰,侧脸和死亡角度模糊,即使打开侧脸优化也无法改善,打开Loss平滑可以提升侧脸和死亡角度权重,侧脸优化作用是提升侧脸素材权重,Loss平滑将在训练过程提升训练权重,有效改善模型训练效率;
·打开Loss平滑,要求对素材精准挑选,减少错误的素材影响
·Loss平滑作用域覆盖,素材增强(扭曲素材、CT、反转)、真脸、gan生成纹理;
关于学习率,一些新的改变!
·很多人发现ICE没原版的Ir_dropout这一参数选项,通过验证,DFL原版 Ir_dropout=0.3取值在前前小参数及低分辨率模型下工作有极优表现,日新月异,现在GPU性能大幅提高,我们开始尝试更大规格的模型,我们训练模型时间开始变长,原来的设置对于过拟合抑制似乎不在有效,随着迭代数量开始变大,512或高参数模型在训练过程中有多次过拟化情况,一些模型几乎没法收敛。所以,ICE对于过拟合的抑制改变算法,经过多数模型的验证,ICE对于神经元的冻结采取非线性关系,dropout的数量和参数有对应关系,目的是保护这些大分辨率模型有效收敛,因此,Ir_dropout代替项变为”使用dropout瘦化神经网络,提升模型泛化能力”,你可以参考原来训练方法中,涉及到lr_dropout,去开启,建议,对于高参模型,可以提前启用;
·增加自定义学习率”[5e-05]自定义学习率,请谨慎修改。【Learning rate】”的出发点,也是考虑现在模型的参数和分辨率在变大,新训练的大规格模型,前期可以增大学习率,因为参数变大后,大学习率可以有效提升效率,对于训练后期,某些模型不在收敛,我们可以尝试手动降低学习率(不宜低于3e-05),指数降低学习率的好处是权重更新更精细,当然训练量变高。新手可以取默认值,有动手能力同学可以备份模型,尝试这个值对模型收敛的影响。
开始模型训练,出错退出!
·情况一、开始训练,几秒后退出,提示请按任意键继续,没有其它提示;
·情况二、弹出错误信息,错误信息里包含”OOM”的词;解决办法:模型参数太高,设置BS太大,
·情况三、错误信息包含提示:”F tensorflow/core/common_runtime/device_event_mgr.….”;
·情况四、提示内存错误;
以上问题无外乎,机器配置和模型不匹配,设置虚拟空间太小,显存太小,训练模型参数太高、BS设置太大,解决办法:
·设置虚拟内存大于100G,即使你内存很大也需要虚拟内存
·重复修改BS大小测试训练,从BS=2开始递增测试,找到合适的BS数量
·关闭某些占用显存的参数,适当降低模型参数、更换更低参数模型
·更换更高端显卡(显存优先)