AIBL论坛

 找回密码
 立即注册
本论坛所有软件旨在帮助用户创建逼真且有趣的内容,帮助做自媒体的人制作原创有趣的视频或广告,如果使用别人的肖像,使用之前需获得同意和许可(建议使用AI生成的人脸),严禁使用本论坛发布的资源用于不符合当地法律法规的事情
查看: 196|回复: 1

新版 DeepFaceLab PyTorch 训练器高级教程

[复制链接]

12

主题

20

回帖

2410

积分

初级丹王

积分
2410
发表于 5 天前 | 显示全部楼层 |阅读模式
新版 DeepFaceLab PyTorch 训练器高级教程
仅供参考, 并不是标准的训练方法,
附件没法设置灵石了
新版 DeepFaceLab PyTorch 训练器高级教程-20250803.pdf (327.32 KB)
discord导出一年的聊天记录,然后使用chatgpt 分析的聊天记录
频道连接   https://discord.com/channels/730623345288151060/730623345288151065

基于对两个Discord聊天记录的分析,chatgpt 总结JesterX关于DFL模型训练的完整步骤和方法论:

  JesterX的DFL模型训练步骤总结

  一、训练前准备阶段

  1. 数据预处理

  - 运动模糊处理: 训练前移除运动模糊,网络难以匹配模糊效果
  - 样本质量评估: 以输入输出mask差异作为质量标准
  - 数据增强: 使用DFL-MVE版本的额外增强功能(颜色、阴影等)

  2. 平台选择建议

  - 推荐PyTorch版本: 提供更容易的层冻结操作
  - 性能优势: PyTorch版本速度提升超过2倍(200ms vs 450ms/iteration)
  - 操作便利性: 更直观的编码器/解码器管理

  二、渐进式训练流程(Progressive Training)

  1. 分辨率递增策略

  低分辨率训练 → 中等分辨率 → 高分辨率
  128 → 256 → 512 (以Spock模型为例)

  2. Growth Stage训练步骤

  阶段-1(初始低分辨率):
  - 启用Random Warp进行基础训练
  - 建立基本的面部特征识别
  - 训练到损失不再下降

  阶段0(标准分辨率):
  - 从锁定旧层开始训练
  - 当面部效果达到预期时解锁层
  - 继续训练直到收敛

  阶段+1(高分辨率):
  - 再次从锁定旧层开始
  - 专注于细节和微细节训练
  - 最终解锁进行精细调优

  三、编码器锁定/解锁的精确时机

  1. 何时锁定编码器

  Random Warp关闭时:
  - RW OFF使数据集对编码器变得"太简单"
  - 可能导致相似度下降
  - 建议监控相似度,下降时立即锁定

  Growth Stage转换时:
  - 每次增长阶段都从锁定旧层开始
  - 保持已训练好的特征不被破坏
  - 如果之前在RW OFF下训练,增长时也要RW OFF

  训练稳定性需要时:
  - AMP模型中inters始终保持锁定
  - 防止模型在关键阶段崩溃

  2. 何时解锁编码器

  面部效果良好时:
  - 当生成的面部看起来不错时解锁
  - 通常不解锁inters(中间层)
  - 可以选择性解锁特定blocks

  需要学习细节时:
  - 缺少高层次细节时可以解锁更多层
  - 或者解锁所有层(除了inters)

  四、不同架构的特定训练步骤

  1. AMP模型训练

  1. 初始训练(inters保持锁定)
  2. 编码器和解码器同步训练
  3. 关键时刻锁定编码器
  4. 最终阶段:RW OFF → LRD → GAN

  2. SAEHD与AMP互换

  - PyTorch版本支持中间层交换
  - 可以在训练过程中切换架构
  - 编码器和解码器可以跨架构复用

  五、训练阶段转换的关键节点

  1. Random Warp管理

  RW ON (基础训练) → RW OFF (精细调优) → 锁定编码器

  2. LRD(学习率衰减)应用

  - RW OFF后启用LRD
  - 保持编码器锁定状态
  - 更新30%权重并随机化学习率

  3. GAN训练

  RW OFF一段时间 → 启用GAN → 保持编码器锁定

  六、高级训练技巧

  1. 实验性方法

  中间层定期删除:
  - chervonij建议的方法
  - 目标:提升相似度
  - 需要根据具体情况测试效果

  GAN中间层应用:
  - Pagi方法在中间层应用GAN
  - 实验阶段,需要进一步验证

  2. 模型保护策略

  Float16 vs BF16:
  - 早期使用BF16保证稳定性
  - RW OFF后可切换到FP16获得精度
  - 避免同时关闭RW和切换精度

  备份节点:
  - 每个关键阶段都要备份
  - 编码器锁定/解锁前后保存
  - 防止模型崩溃导致训练失败

  七、训练监控和调整

  1. 关键监控指标

  - 相似度(Likeness): 主要质量指标
  - 损失收敛: 判断是否切换阶段
  - 样本质量: 输入输出mask差异

  2. 调整时机

  监控相似度 → 发现下降 → 锁定编码器 → 继续观察 → 适时解锁

  八、JesterX的核心训练哲学

  1. 渐进式方法: 从低分辨率逐步提升,提高训练效率
  2. 精细控制: 利用PyTorch的优势进行精确的层管理
  3. 实验探索: 持续尝试新的训练策略和架构改进
  4. 稳定性优先: 通过备份和监控确保训练过程的稳定性
  5. 社区协作: 鼓励社区参与测试和改进训练方法

  这套训练方法体现了JesterX作为DFL-MVE项目核心开发者的深度技术理解和实践经验,为高质量深度学习换脸模型的训练提供了
  系统性的指导框架。


Growth Stage 冻结/解冻策略

  第一阶段:低分辨率基础训练(128px)

  时机:训练初期
  - 不冻结:所有层都参与训练
  - 目标:建立基础特征表示

  第二阶段:低分辨率稳定期

  时机:低分辨率训练收敛后
  - 冻结:
    - Encoder(编码器)
    - Decoder(解码器)
  - 继续训练:中间层和特征提取层
  - 原因:JesterX提到"we can freeze decoder and encoder"

  第三阶段:分辨率提升期(128→256→512)

  时机:每次分辨率提升时
  - 保持冻结:
    - 已稳定的Encoder/Decoder层
  - 解冻:
    - 需要适应新分辨率的层
    - SAEHD和AMP的intermediate layers
  - 策略:JesterX提到"swap saehd and amp intermediate layers"

  第四阶段:高分辨率精细化

  时机:达到目标分辨率后
  - 选择性解冻:
    - 根据训练效果决定解冻哪些层
    - 可能解冻部分Encoder/Decoder进行微调
  - 动态调整:根据loss变化调整冻结策略











AIBL论坛免责申明
本论坛刊载的所有内容,包括图片、软件、模型等均在网上搜集。
论坛提供的内容仅用于个人学习、研究或欣赏。我们不保证内容的正确性。通过使用本站内容随之而来的风险与本站无关
访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站,予以删除。

3

主题

46

回帖

292

积分

高级丹童

积分
292
发表于 4 天前 | 显示全部楼层
先点个赞,下载了,我感觉以后肯定能用得着啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|AIBL论坛

GMT+8, 2025-8-8 19:51 , Processed in 0.934636 second(s), 23 queries , Gzip On.

Powered by AI技术论坛 X3.5

© 2001-2023 dfl论坛

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