包含: - 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密钥已脱敏为环境变量,原文件备份在本地
129 lines
5.4 KiB
Markdown
129 lines
5.4 KiB
Markdown
# 大文件与模型权重说明
|
||
|
||
> 本仓库只托管代码和配置。模型权重、训练数据等大文件(共约 **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](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)
|