初始化:换发型/换发色/训练发型服务
包含: - 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密钥已脱敏为环境变量,原文件备份在本地
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
#!/usr/bin/env python3
|
||||
"""测试 photo_service 的 /api/hair/train 接口能否触发本地 LoRA 训练"""
|
||||
import requests, json
|
||||
|
||||
# 用一个已有完整训练素材的发型
|
||||
HAIR_ID = "1905785164224868354"
|
||||
MATERIAL_DIR = f"/home/xsl/change_hair/data/train_material/{HAIR_ID}"
|
||||
|
||||
payload = {
|
||||
"task_id": f"test_train_{HAIR_ID}",
|
||||
"hair_id": HAIR_ID,
|
||||
"hair_material_dir": MATERIAL_DIR,
|
||||
"is_tj": "1", # 触发回调到 hair_service
|
||||
"device_id": "0", # 单卡用 0
|
||||
"webui_addr": "http://0.0.0.0:32678/",
|
||||
}
|
||||
|
||||
print(f"=== 调用 /api/hair/train (hair_id={HAIR_ID}) ===")
|
||||
try:
|
||||
r = requests.post("http://127.0.0.1:32678/api/hair/train", json=payload, timeout=30)
|
||||
d = r.json()
|
||||
print(f"HTTP {r.status_code} | {d}")
|
||||
if d.get("state") == 0:
|
||||
print("✓ 训练任务已入队,后台 train_thread 将执行 LoRA 训练")
|
||||
print(" 请查看 photo_service.log 观察训练进度")
|
||||
else:
|
||||
print(f"✗ 入队失败: {d}")
|
||||
except Exception as e:
|
||||
print(f"✗ 请求异常: {e}")
|
||||
Reference in New Issue
Block a user