Files
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

129 lines
5.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 大文件与模型权重说明
> 本仓库只托管代码和配置。模型权重、训练数据等大文件(共约 **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](https://github.com/AUTOMATIC1111/stable-diffusion-webui) 的部署。
**恢复方式(二选一)**
- **A. 网盘下载**:直接下载整个 onediff 目录解压(最快)
- **B. 重新部署**
```bash
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](https://github.com/kohya-ss/sd-scripts) 的部署。
**恢复方式**
```bash
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