#!/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}")