部署修复: - torch.load 增加 weights_only=False patch,兼容 PyTorch 2.6+ 加载旧权重 - OSS 改为懒加载,本地用 output_format=base64 无需配凭证即可启动 - 补全被 gitignore 误排除的必需代码:core/models/layers/data、models/layers/data、keypoints/lib - webui 训练命令 --xformers 改 --sdpa(修复 xformers 无 CUDA 支持报错) 功能调整: - hair_grow_service 端口改 8899、preview 路由修复(send_file) - list_hairstyles 增加发型白名单,测试页只展示当前5个发型 新增脚本: - train_lora_parallel.py:直接调 kohya 并行训练 LoRA(绕过 photo_service 串行限制) - train_hairstyles_parallel.py / train_batch_stepC.py:批量训练辅助脚本 - scripts/sync_data_to_server.sh:大文件断点续传到云服务器 文档: - docs/换发型集成文档.md:换发型完整流程、服务架构、资源依赖、训练方法、集成步骤
59 lines
2.1 KiB
Python
59 lines
2.1 KiB
Python
# ------------------------------------------------------------------------------
|
|
# Copyright (c) Microsoft
|
|
# Licensed under the MIT License.
|
|
# Written by Bin Xiao (Bin.Xiao@microsoft.com)
|
|
# ------------------------------------------------------------------------------
|
|
|
|
from __future__ import absolute_import
|
|
from __future__ import division
|
|
from __future__ import print_function
|
|
|
|
from yacs.config import CfgNode as CN
|
|
|
|
|
|
# pose_resnet related params
|
|
POSE_RESNET = CN()
|
|
POSE_RESNET.NUM_LAYERS = 50
|
|
POSE_RESNET.DECONV_WITH_BIAS = False
|
|
POSE_RESNET.NUM_DECONV_LAYERS = 3
|
|
POSE_RESNET.NUM_DECONV_FILTERS = [256, 256, 256]
|
|
POSE_RESNET.NUM_DECONV_KERNELS = [4, 4, 4]
|
|
POSE_RESNET.FINAL_CONV_KERNEL = 1
|
|
POSE_RESNET.PRETRAINED_LAYERS = ['*']
|
|
|
|
# pose_multi_resoluton_net related params
|
|
POSE_HIGH_RESOLUTION_NET = CN()
|
|
POSE_HIGH_RESOLUTION_NET.PRETRAINED_LAYERS = ['*']
|
|
POSE_HIGH_RESOLUTION_NET.STEM_INPLANES = 64
|
|
POSE_HIGH_RESOLUTION_NET.FINAL_CONV_KERNEL = 1
|
|
|
|
POSE_HIGH_RESOLUTION_NET.STAGE2 = CN()
|
|
POSE_HIGH_RESOLUTION_NET.STAGE2.NUM_MODULES = 1
|
|
POSE_HIGH_RESOLUTION_NET.STAGE2.NUM_BRANCHES = 2
|
|
POSE_HIGH_RESOLUTION_NET.STAGE2.NUM_BLOCKS = [4, 4]
|
|
POSE_HIGH_RESOLUTION_NET.STAGE2.NUM_CHANNELS = [32, 64]
|
|
POSE_HIGH_RESOLUTION_NET.STAGE2.BLOCK = 'BASIC'
|
|
POSE_HIGH_RESOLUTION_NET.STAGE2.FUSE_METHOD = 'SUM'
|
|
|
|
POSE_HIGH_RESOLUTION_NET.STAGE3 = CN()
|
|
POSE_HIGH_RESOLUTION_NET.STAGE3.NUM_MODULES = 1
|
|
POSE_HIGH_RESOLUTION_NET.STAGE3.NUM_BRANCHES = 3
|
|
POSE_HIGH_RESOLUTION_NET.STAGE3.NUM_BLOCKS = [4, 4, 4]
|
|
POSE_HIGH_RESOLUTION_NET.STAGE3.NUM_CHANNELS = [32, 64, 128]
|
|
POSE_HIGH_RESOLUTION_NET.STAGE3.BLOCK = 'BASIC'
|
|
POSE_HIGH_RESOLUTION_NET.STAGE3.FUSE_METHOD = 'SUM'
|
|
|
|
POSE_HIGH_RESOLUTION_NET.STAGE4 = CN()
|
|
POSE_HIGH_RESOLUTION_NET.STAGE4.NUM_MODULES = 1
|
|
POSE_HIGH_RESOLUTION_NET.STAGE4.NUM_BRANCHES = 4
|
|
POSE_HIGH_RESOLUTION_NET.STAGE4.NUM_BLOCKS = [4, 4, 4, 4]
|
|
POSE_HIGH_RESOLUTION_NET.STAGE4.NUM_CHANNELS = [32, 64, 128, 256]
|
|
POSE_HIGH_RESOLUTION_NET.STAGE4.BLOCK = 'BASIC'
|
|
POSE_HIGH_RESOLUTION_NET.STAGE4.FUSE_METHOD = 'SUM'
|
|
|
|
|
|
MODEL_EXTRAS = {
|
|
'pose_resnet': POSE_RESNET,
|
|
'pose_high_resolution_net': POSE_HIGH_RESOLUTION_NET,
|
|
}
|