Files
hair/docs/gpu-worker改动说明.md
T
2026-06-17 23:27:34 +08:00

97 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# GPU Worker 改动说明
测试页面已新增字段,worker 侧需对应接收并使用。
## 涉及接口
| 接口 | 路径 | 新增字段 |
|------|------|----------|
| 接口 2C端生发) | `POST /api/v1/hair/grow` | `prompt` |
| 接口 3B端生发) | `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` 参数后将替换此文本。