包含: - 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密钥已脱敏为环境变量,原文件备份在本地
5.4 KiB
5.4 KiB
大文件与模型权重说明
本仓库只托管代码和配置。模型权重、训练数据等大文件(共约 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 webui(52G,第三方)
换发型 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.safetensors(SD底模)data/train_material/<hair_id>/model/hairstyle_hd_lora.safetensors(至少一个发型的LoRA)