# scripts · 可运行脚本

这些脚本配合 `docs/09-ComfyUI-实战配方.md` 和 `docs/10-基准与自测方法.md` 使用。**都需要在装了 NVIDIA 显卡的机器上跑**（本页所在的这台 VPS 没有 GPU，只能看不能跑）。

| 脚本 | 作用 | 典型用法 |
|---|---|---|
| `install-comfy.sh` | 装 ComfyUI + venv + 5 个必备插件 | `bash install-comfy.sh ~/ComfyUI` |
| `download-models.sh` | 按配方拉模型到对应目录 | `bash download-models.sh wan22-5b ~/ComfyUI/models` |
| `batch_generate.py` | 批量提交生成任务、轮询、重试、存清单 | `python batch_generate.py --workflow recipe_b.json --prompts p.txt --out ./out` |
| `bench.py` | 12 条固定提示词基线测试，出 CSV | `python bench.py --workflow recipe_b.json --out ./bench1` |

## 前置

```bash
pip install requests huggingface_hub
# 或直接用 ComfyUI 的 venv：
source ~/ComfyUI/venv/bin/activate && pip install requests
```

## 工作流从哪来

`batch_generate.py` 和 `bench.py` 要的是 **ComfyUI 的 API 格式 JSON**：

```
ComfyUI 界面 → 左上角 Workflow → Export (API) → 存成 recipe_b.json
```

普通的 "Save" 存的是界面格式（带节点坐标、链接数组），API 格式才是扁平的
`{节点id: {class_type, inputs}}` 结构，脚本要的是这一种。

## 提示词文件格式

`prompts.txt` 一行一条，空行忽略：

```
特写镜头，年轻女性侧脸，窗边自然光，缓慢眨眼
玻璃香水瓶放在亚麻布上，环形灯照射，镜头缓慢环绕
跑者在雨夜街道奔跑，霓虹灯反射在地面，侧向跟拍
```

## 注意

- 两个 Python 脚本默认连 `http://127.0.0.1:8188`，远程跑用 `--host http://<ip>:8188`；
- `batch_generate.py` 会自动识别正向提示词节点（文本较长的 `CLIPTextEncode`）和带 `seed` 的采样器；
  如果你的工作流结构特殊，先跑一次看开头打印的节点 id 对不对；
- `bench.py` 的第一条会包含模型加载时间，所以默认 `--warmup 1` 把它排除在统计外。
