# GPU Worker 改动说明 测试页面已新增字段,worker 侧需对应接收并使用。 ## 涉及接口 | 接口 | 路径 | 新增字段 | |------|------|----------| | 接口 2(C端生发) | `POST /api/v1/hair/grow` | `prompt` | | 接口 3(B端生发) | `POST /api/v1/hair/grow-b` | `prompt` | ## 1. 新增 `prompt` 参数 ### 接口 2(`/api/v1/hair/grow`) Handler 签名新增: ```python prompt: str = Form(default="补充遮罩区域的头发", description="ComfyUI 提示词,会替换工作流节点60的文本"), ``` 透传链路: ``` handler → generate_grow_results(image, gender, use_mask, prompt) → comfyui.run(buf, prompt=prompt) ``` ### 接口 3(`/api/v1/hair/grow-b`) Handler 签名新增: ```python prompt: str = Form(default="补充遮罩区域的头发", description="ComfyUI 提示词,会替换工作流节点60的文本"), ``` 透传链路: ``` handler → generate_grow_b(marked, use_mask, prompt) → comfyui.run(buf, prompt=prompt) ``` ### `hairline/comfyui.py` 改动 1. 新增节点常量: ```python _PROMPT_NODE = "60" # JjkText:提示词 ``` 2. `run()` 函数签名改为: ```python def run(rgba_png_bytes: bytes, timeout: float = COMFY_TIMEOUT, prompt: str = None) -> bytes: ``` 3. 在 `run()` 内部,注入图片和 seed 之后(约第81行后)加入: ```python if prompt is not None: wf[_PROMPT_NODE]["inputs"]["text"] = prompt ``` ### `hairline/service.py` 改动 两个服务函数各加一个 `prompt` 参数,透传给 `comfyui.run()`: - `generate_grow_results(image_bgr, gender, use_mask=True, prompt=None)` — 两处 `comfyui.run(buf.getvalue())` 都改为 `comfyui.run(buf.getvalue(), prompt=prompt)` - `generate_grow_b(marked_bgr, use_mask=True, prompt=None)` — `comfyui.run(buf.getvalue())` 改为 `comfyui.run(buf.getvalue(), prompt=prompt)` ## 2. 已有字段回顾 `use_mask` 和 `prompt` 测试页面均已就绪,表单字段一览: | 接口 | 字段 | 类型 | 默认值 | 说明 | |------|------|------|--------|------| | 2 | `image_file` | file | — | 用户照片(三选一) | | 2 | `image_url` | string | — | 同上 | | 2 | `image_base64` | string | — | 同上 | | 2 | `gender` | string | `female` | `male` / `female` | | 2 | `use_mask` | bool | `true` | inpaint 遮罩开关 | | 2 | `prompt` | string | `补充遮罩区域的头发` | ComfyUI 提示词 | | 3 | `marked_image_file` | file | — | 划线图(三选一) | | 3 | `marked_image_url` | string | — | 同上 | | 3 | `marked_image_base64` | string | — | 同上 | | 3 | `use_mask` | bool | `true` | 画发际线开关 | | 3 | `prompt` | string | `补充遮罩区域的头发` | ComfyUI 提示词 | ## 3. 当前工作流提示词节点 `add_hair.json` 中节点 **60**(`JjkText`)为提示词节点,当前硬编码文本: > 补充遮罩区补充遮罩区域内的头发,头发填满遮罩区域。发际线往下挡住额头 `comfyui.run()` 收到 `prompt` 参数后将替换此文本。