|  | 
 
| 新版 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变化调整冻结策略
 
 
 
 
 
 
 
 
 
 
 
 
 | 
 |