初始化:换发型/换发色/训练发型服务
包含: - 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,34 @@
|
||||
#!/usr/bin/env python3
|
||||
"""换发型接口测试"""
|
||||
import base64, json, requests, sys, time
|
||||
|
||||
img_path = "/home/xsl/change_hair/project/data/userImage/8488902485_20250630055547.jpg"
|
||||
with open(img_path, "rb") as f:
|
||||
img_b64 = base64.b64encode(f.read()).decode()
|
||||
|
||||
payload = {
|
||||
"hair_id": "1905785164224868354",
|
||||
"task_id": "test_swaphair_newtrain",
|
||||
"is_hr": "true",
|
||||
"user_img_path": "data:image/jpeg;base64," + img_b64,
|
||||
"output_format": "base64"
|
||||
}
|
||||
|
||||
print("=== 调用换发型 /api/swapHair/v1 (hair_id=1907641420518580226) ===")
|
||||
t0 = time.time()
|
||||
try:
|
||||
r = requests.post("http://127.0.0.1:8801/api/swapHair/v1", json=payload, timeout=600)
|
||||
d = r.json()
|
||||
print(f"HTTP {r.status_code} | msg={d.get('msg')} | state={d.get('state')} | 耗时={time.time()-t0:.1f}s")
|
||||
data = d.get("data", "")
|
||||
if d.get("state") == 0 and data:
|
||||
out = "/home/xsl/change_hair/project/logs/test_swaphair_result.jpg"
|
||||
with open(out, "wb") as f:
|
||||
f.write(base64.b64decode(data))
|
||||
print(f"✅ 换发型成功! 结果图已保存: {out} ({len(data)} bytes base64)")
|
||||
else:
|
||||
print(f"❌ 换发型失败: {d}")
|
||||
sys.exit(1)
|
||||
except Exception as e:
|
||||
print(f"❌ 请求异常(耗时{time.time()-t0:.1f}s): {e}")
|
||||
sys.exit(1)
|
||||
Reference in New Issue
Block a user