从DFL文件内用文本打开发现的一些参数解释
创作时间:
作者:
@小白创作中心
从DFL文件内用文本打开发现的一些参数解释
引用
1
来源
1.
https://www.zhatv.cn/forum.php?mod=viewthread&tid=779
本文详细介绍了DeepFaceLab(DFL)框架中各种训练参数的设置和使用建议。这些参数涵盖了自动编码器维度、编码器维度、解码器维度、GAN相关参数等多个方面,对于使用DFL进行人脸交换或相关研究的开发者具有重要参考价值。
self.options['ae_dims'] = np.clip ( io.input_int("自动编码器维度", default_ae_dims, add_info="32-1024", help_message="所有面部信息都将打包到 AE dims 中. 如果 AE dims 的数量不够, 则会出现例如无法识别闭眼的情况. AE dims 越多越好, 但需要更多的显存. 你可以微调模型大小以适合你的 GPU." ), 32, 1024 ) e_dims = np.clip ( io.input_int("编码器维度", default_e_dims, add_info="16-256", help_message="更多的 dims 有助于识别更多的面部特征并获得更清晰的结果, 但需要更多的 显存. 你可以微调模型大小以适合你的 GPU." ), 16, 256 ) self.options['e_dims'] = e_dims + e_dims % 2 d_dims = np.clip ( io.input_int("解码器维度", default_d_dims, add_info="16-256", help_message="更多的 dims 有助于识别更多的面部特征并获得更清晰的结果, 但需要更多的 显存. 你可以微调模型大小以适合你的 GPU." ), 16, 256 ) self.options['d_dims'] = d_dims + d_dims % 2 d_mask_dims = np.clip ( io.input_int("遮罩解码器维度", default_d_mask_dims, add_info="16-256", help_message="建议的遮罩解码器维度 = 解码器维度 / 3. 如果你从 dst 遮罩中手动切出障碍物, 你可以增加此参数以获得更好的质量." ), 16, 256 ) self.options['d_mask_dims'] = d_mask_dims + d_mask_dims % 2 if self.is_first_run() or ask_override: if self.options['face_type'] == 'wf' or self.options['face_type'] == 'head': self.options['masked_training'] = io.input_bool ("遮罩训练", default_masked_training, help_message="此选项仅适用于“wf”或“head”类型. 遮罩训练将训练区域裁剪为全脸遮罩或 xseg 遮罩, 从而网络将正确地训练面部.") self.options['eyes_mouth_prio'] = io.input_bool ("眼嘴优先", default_eyes_mouth_prio, help_message='有助于解决训练期间的眼睛问题, 例如“异眼”和错误的眼睛方向. 也使牙齿的细节质量更高.') self.options['uniform_yaw'] = io.input_bool ("侧脸优化", default_uniform_yaw, help_message='有助于修复因面部数据集中侧脸数量较少而出现的模糊侧脸.') self.options['blur_out_mask'] = io.input_bool ("遮罩外围模糊", default_blur_out_mask, help_message='模糊应用于训练样本的遮罩外围区域. 结果是面部附近的背景变得平滑并且在交换的面部上不太明显. 要求 src 和 dst 面部数据集中有精确的 Xseg 遮罩.') default_gan_power = self.options['gan_power'] = self.load_or_def_option('gan_power', 0.0) default_gan_patch_size = self.options['gan_patch_size'] = self.load_or_def_option('gan_patch_size', self.options['resolution'] // 8) default_gan_dims = self.options['gan_dims'] = self.load_or_def_option('gan_dims', 16) if self.is_first_run() or ask_override: self.options['models_opt_on_gpu'] = io.input_bool ("模型和优化器运行在GPU上", default_models_opt_on_gpu, help_message="当你在一个 GPU 上训练时, 默认情况下模型和优化器权重被放置在 GPU 上以加速该过程. 你可以将它们放在 CPU 上以释放额外的 显存, 从而设置更大的维度.") self.options['adabelief'] = io.input_bool ("启用 AdaBelief 优化器?", default_adabelief, help_message="启用 AdaBelief 优化器. 它需要更多的 显存, 但模型的准确性和泛化性更高.") self.options['lr_dropout'] = io.input_str (f"启用学习率下降", default_lr_dropout, ['n','y','cpu'], help_message="当面部训练充分时, 你可以启用此选项以获得额外的清晰度并减少亚像素抖动以减少迭代次数. 在“禁用随机扭曲”和 GAN 之前, 你可以启用它.\nn - 禁用.\ny - 启用.\ncpu - 在 CPU 上启用. 这可以不占用额外的 VRAM, 但同时会牺牲 20% 的迭代时间.") self.options['random_warp'] = io.input_bool ("启用样本随机扭曲", default_random_warp, help_message="随机扭曲用来概括两张脸的面部表情. 当面部训练充分时, 你可以禁用它以获得额外的清晰度并减少亚像素抖动以减少迭代次数.") self.options['random_hsv_power'] = np.clip ( io.input_number ("随机色调/饱和度/光照强度", default_random_hsv_power, add_info="0.0 .. 0.3", help_message="随机色调/饱和度/光照强度仅在神经网络的输入端应用于 src 数据集. 在面部交换期间稳定颜色扰动. 通过选择 src 数据集中颜色最相近的一张来降低颜色转移的质量. 因此 src 数据集必须足够多样化. 建议值是 0.05"), 0.0, 0.3 ) self.options['gan_power'] = np.clip ( io.input_number ("GAN 强度", default_gan_power, add_info="0.0 .. 5.0", help_message="强制神经网络学习面部的小细节. 仅当使用随机扭曲(关)时, 对面部进行了充分的训练时才启用它, 并且不要禁用. 数值越高, 出现伪影的机会就越大. 建议值为 0.1"), 0.0, 5.0 ) if self.options['gan_power'] != 0.0: gan_patch_size = np.clip ( io.input_int("GAN 补丁大小", default_gan_patch_size, add_info="3-640", help_message="补丁大小越大, 质量越高, 需要的 VRAM 也越多. 即使在最低设置下, 也可以获得更清晰的边缘. 建议值是分辨率 / 8." ), 3, 640 ) self.options['gan_patch_size'] = gan_patch_size gan_dims = np.clip ( io.input_int("GAN 维度", default_gan_dims, add_info="4-512", help_message="GAN 网络的维度. 维度越高, 需要的 显存 就越多. 即使在最低设置下, 也可以获得更清晰的边缘. 建议值为 16." ), 4, 512 ) self.options['gan_dims'] = gan_dims if 'df' in self.options['archi']: self.options['true_face_power'] = np.clip ( io.input_number ("真脸强度", default_true_face_power, add_info="0.0000 .. 1.0", help_message="实验选项. 鉴别结果面部更像 src 面部. 数值越高鉴别器越强. 建议值为 0.01"), 0.0, 1.0 ) else: self.options['true_face_power'] = 0.0 self.options['face_style_power'] = np.clip ( io.input_number("面部风格强度", default_face_style_power, add_info="0.0..100.0", help_message="学习预测面部的颜色与遮罩内的 dst 相同. 如果你想将此选项与“wf”一起使用, 你必须使用 XSeg 训练过的遮罩. 警告:仅在1万迭代后, 且当预测的面部足够清晰以开始学习风格时启用此选项. 数值从 0.001 开始并检查历史记录的变化. 启用此选项会增加模型崩溃的机会."), 0.0, 100.0 ) self.options['bg_style_power'] = np.clip ( io.input_number("背景风格强度", default_bg_style_power, add_info="0.0..100.0", help_message="学习预测面部的遮罩外区域与 dst 相同. 如果你想将此选项与“wf”一起使用, 你必须使用 XSeg 训练过的遮罩. 对于wf,你必须使用 XSeg 训练的遮罩. 这可以使面部更像 dst. 启用此选项会增加模型崩溃的机会. 建议值为 2.0"), 0.0, 100.0 ) self.options['ct_mode'] = io.input_str (f"SRC 色彩转换模式", default_ct_mode, ['none','rct','lct','mkl','idt','sot'], help_message="更改 src 样本的颜色分布以接近 dst 样本. 尝试所有模式以找到最佳模式.") self.options['clipgrad'] = io.input_bool ("启用梯度剪裁", default_clipgrad, help_message="梯度裁剪减少了模型崩溃的机会,但同时牺牲了训练速度.") self.options['pretrain'] = io.input_bool ("启用预训练", default_pretrain, help_message="用大量的各种面部预训练模型. 之后, 模型可以用于更快地训练假脸. 强制随机扭曲=N, 随机翻转=Y, GAN 强度=0.0, 学习率下降=N, 风格参数=0.0, 侧脸优化=Y") 如果不懂每一条训练参数的具体用途可以参考下后面的中文解释 我觉得还是蛮详细的了 |
---|
热门推荐
首部中国少儿出版"黄金十年"专著问世,详解少儿出版业发展密码
视频怎么加字幕?视频加字幕的5种方法,小白进阶高手!
瑜伽垫、瑜伽砖怎么挑?瑜伽辅具新手选购指南:让你买对不踩雷!
运动对于“良好体态”有多重要?看对比图就知道,特别是中年女性
电子产品的环保回收方法(负责任地处理旧电子产品)
Nature刊发!中国团队疫苗研发领域新突破
探索星系的多样形态
如何查询黄金回收价?
常见电子元器件的极性识别方法
《艺术的故事》节选梗概10:文艺复兴——15世纪初期 征服真实
如何学习人工智能AI技术
软件设计原则之单一职责原则
静态交通精细化管理对城市减堵具有重要作用
白玉丝瓜高效种植技术要点!
如何利用股票的波动率进行风险管理
高强混凝土市场:市场占有率分析、产业趋势与统计、成长预测(2025-2030年)
毕业论文研究框架与写作方法,本科生必备指南!
皇室战争 新手必知的八大基本战术科普
如何撰写项目申请书?结构与内容要点
哪里可以找到人事管理软件的用户评价?
如何进行软件产品的需求规划
国际睡眠日|中医芳香疗法助您好眠——以自然之息,养安神之道
物联网卡的兼容性出了问题,该如何解决?
如何有效去除红色疤痕?多种方法改善疤痕外观
苏联对M109自行火炮的研究与测试
象棋入局思路技巧:从布局到攻防的全面指南
番泻叶的功效与作用及禁忌
美联储重大调整:内部分歧或加剧降息不确定性攀升
研究人员发现神秘的迷你海王星
Grand Cru就是好酒?这里面水可深了