Files
change_hair/project/LARGE_FILES.md
T
xsl 443cfa298f 初始化:换发型/换发色/训练发型服务
包含:
- hair_service_sd: 主服务(换发型/换发色/生发,端口8801)
- photo_service: LoRA调度+训练(端口32678)
- hair_grow_service: 调试测试页(端口8888,含4个测试页)
- 批量训练脚本(batch_train_hairstyles.py)
- 发际线mask自动识别(hairline_mask.py,4种方案)
- 手绘mask换发型(hair_swap_manual.py)
- 文档:README.md + LARGE_FILES.md + docs/

大文件(模型权重200G、训练数据123G)已排除,见 LARGE_FILES.md
OSS/COS密钥已脱敏为环境变量,原文件备份在本地
2026-07-07 13:53:52 +08:00

5.4 KiB
Raw Blame History

大文件与模型权重说明

本仓库只托管代码和配置。模型权重、训练数据等大文件(共约 200G)已排除,需另行准备。 后续会上传网盘,地址见文末。


被排除的大目录清单

目录 大小 内容 如何恢复
data/ 123G 341 个发型的训练素材 + LoRA 权重 网盘下载后放到 data/train_material/
project/onediff/ 52G Stable Diffusion webui + SD模型 + 228个LoRA + ControlNet 见下方「onediff 恢复」
project/kohya_ss_home/ 13G kohya_ss LoRA 训练框架(第三方) 见下方「kohya 恢复」
project/hair_service_sd/weights/ 9.9G 人脸检测/关键点/抠图/分割等核心模型权重 网盘下载
project/data/ 5.4G 运行时材质数据(ref_hairstyle/hair_template_material 等) 训练完成后自动生成
hair_type_images/ 53M 本次 30 张发型训练原图 网盘下载

1. project/hair_service_sd/weights/ 核心模型(9.9G

主服务推理必需。从网盘下载后解压到本目录。包含:

文件 大小 用途
Resnet50_Final.pth 109M RetinaFace 人脸检测
face_alignment_1k.pth 49M 1000点人脸关键点
deeplabv3_hair512_360_0520_wl.pth 233M 头发分割 DeepLabV3+ (3分类)
gca-dist-fg-0430-latest_model.pth 303M GCA 头发抠图
20210927_01.pth / faceseg_20210927_01.pth 各229M 人脸分割 U2NET
master_hair_v8_onlyhair_nowarp_all_0709.pt 1.1G SPADE 发型迁移(粗推理)
hair_fusion_0427.pt 779M 发型融合
ycj_hairstyle_gan_*.pt / ycj_haircolor_gan_*.pt 各~500M 发型/发色 GAN
gfpgan_hairline_512_inversion_ratio.pt 308M 人脸增强 GFPGAN
face_enhance_0630.pt 284M 人脸增强
MMCVFaceRecognitionServer.pth 174M 人脸识别
kpnts_detect_lyq_20200720.pth 255M 关键点检测
human_seg_deeplabv3_288_384_sigmoid_msc.pth 134M 人体分割
ori_hair_checkpoint_7660_0611.pt ~ BaldSeg 光头分割
mediapipe/face_landmarker.task 3.6M MediaPipe 478点关键点(发际线检测用)
其余 *.pth/*.pt 各功能模块权重

2. project/onediff/ SD webui52G,第三方)

换发型 SD 推理必需。这是 AUTOMATIC1111/stable-diffusion-webui 的部署。

恢复方式(二选一)

  • A. 网盘下载:直接下载整个 onediff 目录解压(最快)
  • B. 重新部署
    cd project
    git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git onediff/stable-diffusion-webui
    # 然后下载以下模型放到对应目录:
    # models/Stable-diffusion/v1-5-pruned-emaonly.safetensors (4G) — SD底模
    # models/Lora/*.safetensors — 各发型LoRA(由训练生成)
    # models/ControlNet/control_v11p_sd15_canny.pth — ControlNet(可选)
    

关键配置

  • SD 底模:v1-5-pruned-emaonly.safetensors(原项目用 majicmix,本机替换为 v1-5
  • LoRA:训练完成的发型会自动生成到 models/Lora/

3. project/kohya_ss_home/ 训练框架(13G,第三方)

LoRA 训练用。kohya-ss/sd-scripts 的部署。

恢复方式

cd project
git clone https://github.com/bmaltais/kohya_ss.git kohya_ss_home/kohya_ss
# 安装依赖(用 kohya conda 环境)
/home/xsl/miniconda3/envs/kohya/bin/pip install -r kohya_ss_home/kohya_ss/requirements.txt

训练入口:kohya_ss_home/kohya_ss/train_network.py


4. data/train_material/ 训练数据(123G

341 个发型的 LoRA 训练素材和权重。每个发型一个目录:

data/train_material/<hair_id>/
├── images/1_hairstyle/*.png  # 训练图(数据增强后约20张)
└── model/
    └── hairstyle_hd_lora.safetensors  # 训练产出的LoRA权重(~150M)

恢复方式

  • 网盘下载:下载后解压到 data/train_material/
  • 重新训练:用 batch_train_hairstyles.py 重新训练需要的发型(每个约30分钟)

5. project/data/ 运行时材质(5.4G

换发型功能运行时需要的预生成材质。训练完成发型后会自动生成,无需手动准备:

  • ref_hairstyle/<hair_id>/ — 每个发型的参考材质(粗推理生成)
  • hair_template_material/<hair_id>/ — 模板材质(抠图+关键点)
  • upload_train_imgs/<hair_id>/ — 上传的训练原图

训练原图

hair_type_images/30张发型原图,按 <脸型>-<发型>.jpg 命名)是本次新增发型的训练源。可从网盘下载,或自行准备同格式图片后用 batch_train_hairstyles.py 训练。


网盘地址

(待补充)—— 大文件上传网盘后,把分享链接填到这里。


快速检查清单(部署后)

部署完成后,确认以下文件存在:

  • project/hair_service_sd/weights/Resnet50_Final.pth(人脸检测)
  • project/hair_service_sd/weights/face_alignment_1k.pth(关键点)
  • project/hair_service_sd/weights/master_hair_v8_onlyhair_nowarp_all_0709.pt(发型迁移)
  • project/onediff/stable-diffusion-webui/models/Stable-diffusion/v1-5-pruned-emaonly.safetensorsSD底模)
  • data/train_material/<hair_id>/model/hairstyle_hd_lora.safetensors(至少一个发型的LoRA