Files
change_hair/docs/HAIRSTYLES_AVAILABLE.md
xsl aa38085867 docs: 添加可用发型清单文档
- HAIRSTYLES_AVAILABLE.md: 179个可用发型说明(男93/女86)
  含本次新发型(中文名)、历史测试(英文名)、生产发型(数字ID)分类
  附 LoRA 权重位置、测试方法、训练新发型指引
- hairstyles_available.csv: 全量发型清单(hair_id/gender/预览图/LoRA大小)

数据来源 /api/hairstyles 接口实时返回,要求三件齐全(LoRA+ref材质+config)
2026-07-07 22:04:10 +08:00

4.5 KiB
Raw Permalink Blame History

可用发型清单

当前共 179 个发型可用于换发型功能(hair_flow 训练完成后为 180 个)。 数据来源:/api/hairstyles 接口实时返回,要求发型同时具备「LoRA权重 + ref材质 + config.json」三件齐全。 全量清单见同目录 hairstyles_available.csv


概览

类别 数量 说明
总可用发型 179 三件齐全,可直接换发型
├ 男款 (boy) 93 适合男性脸型
├ 女款 (girl) 86 适合女性脸型
├ 中文名命名 7 本次按脸型训练的新发型
├ 英文名命名 15 历史测试发型
└ 数字ID命名 157 生产环境发型(雪花算法ID

性别说明:gender 字段决定发型被分到"男款/女款",但换发型时男女发型都能用(只是预览图用对应性别的标准脸)。


LoRA 权重文件位置

每个发型的 LoRA 权重(约 144MB/个,共约 26GB):

/home/xsl/change_hair/data/train_material/<hair_id>/model/hairstyle_hd_lora.safetensors

换发型时 photo_service 会从该路径动态加载 LoRA。


一、本次训练的新发型(中文名,按脸型适配)

这 7 个是本次会话按 <脸型>-<发型> 规则训练的,可在 hair_type_images/ 找到原图:

hair_id 脸型 发型 gender 预览图
圆-心形 圆脸 心形刘海 girl
圆-椭圆 圆脸 椭圆 girl
圆-波浪 圆脸 波浪卷 girl
圆-直线 圆脸 直发 girl
圆-花瓣 圆脸 花瓣剪 girl
心形-心形 心形脸 心形刘海 girl
心形-椭圆 心形脸 椭圆 girl

还有 23 个同类发型(方脸/椭圆/菱形/长脸系列)尚未训练完成,可用 batch_train_hairstyles.py 继续训练。


二、历史测试发型(英文名)

hair_id gender 备注
huaban1 girl 画板1
huaban2 girl 画板2
new_test_001 boy 测试
newf_1214 / 12141 / 12314 / 1235314 girl 测试系列
newf_121445553 boy 测试
newf_204 / 216 girl 测试
test001 boy 测试
test002 girl 测试
test003 / 0036 boy 测试
test888 boy 测试

三、生产发型(数字ID157个)

这部分是生产环境训练的发型,使用雪花算法生成的纯数字 ID(如 1935356131338985473)。

男款 76 个,女款 81 个(具体清单见 hairstyles_available.csv)。

部分 ID 段对应的训练批次(推测):

  • 1905xxx / 1906xxx:早期批次
  • 1907xxx:第2批
  • 1929xxx:第3批
  • 1935xxx:第4批(数量最多)
  • 1938xxx / 1939xxx / 1940xxx / 1941xxx:补充批次
  • 1953xxx / 1954xxx:扩展批次
  • 1980xxx:最新批次

四、未完成训练的发型

状态 数量 说明
有 LoRA 但缺 ref 材质 135 训练了 LoRA 但没生成换发型材质,不能用于换发型
有 ref 材质但缺 LoRA 14 材质在但 LoRA 丢失
训练目录但两样都没有 34 训练中断或失败

如需让这 135 个"有 LoRA 缺材质"的发型可用,可对它们单独跑 train_hairstyle_full.py 的 step3/step4(生成 ref 材质),无需重新训练 LoRA。


五、如何测试这些发型

1. 简易测试页

访问 http://localhost:8888/test_new(本次新发型)或 http://localhost:8888/swap(全部 179 个发型)。

2. 调试页(带可视化)

  • http://localhost:8888/debug — 全参数调试台
  • http://localhost:8888/manual — 手绘 mask 重绘
  • http://localhost:8888/hairline — 发际线 mask 实验

3. API 调用

# 列出所有可用发型
curl http://127.0.0.1:8888/api/hairstyles

# 换发型(hair_id 替换为上面的任意发型)
curl -X POST http://127.0.0.1:8888/api/swap \
  -H "Content-Type: application/json" \
  -d '{"img":"<base64图片>","hair_id":"1935356131338985473"}'

六、训练新发型

参考 docs/ 和项目根的 README.md,使用:

# 单个发型训练
python batch_train_hairstyles.py --src <发型图目录> --gender girl --only <hair_id>

# 批量训练
python batch_train_hairstyles.py --src hair_type_images --gender girl

训练完成会自动生成 LoRA + ref材质 + 模板材质 + 预览图,发型立即可用。


文档生成时间:2026-07-07 发型数据可随时通过 /api/hairstyles 接口获取最新状态。