# Fisher-Pose 自由姿势插件 · 安装与实测报告

- **日期**：2026-09-25
- **来源视频**：<https://www.bilibili.com/video/BV1pZhC63EZi/> ｜《真！无限自由任意姿势+Qwen Image2.1生成|最低8G显存运行【内含小彩蛋】》
- **UP 主**：WorkFisher ｜ 发布 2026-09-25 16:34 ｜ 时长 5:40 ｜ 当时 9.4k 播放 / 721 赞 / 924 收藏
- **本机落点**：GPU 机（192.168.31.76 → 192.168.31.31）ComfyUI :8189
- **结论**：**已装好并跑通**。GPU 机原本就有一套完好的 Qwen Image 2.1 环境，本次只补了插件本体 + VNCCS PoseStudio LoRA，并做了一次无头（不点浏览器）端到端实测，换姿势成功。

> 说明：视频画面/语音我这边取不到（B 站 AI 摘要接口返回 403，需登录态），下面的"视频讲了什么"是根据**标题 + 官方简介 + 作者仓库文档**还原的，不是听译。技术结论部分全部是本机实测。

---

## 一、这个视频/插件是什么

视频推的是 UP 主自己的 **Fisher Pose** 插件（ComfyUI 自定义节点）+ 顺带推他的 **AIFISHER 无限画布**。

核心玩法一句话：**拖 3D 人偶摆姿势（或点一张 OpenPose 骨架图）→ 用 Qwen Image 2.1 把你的人物重画成那个姿势**。视频标题里"最低 8G 显存"指 Qwen Image 2.1 的 int8 量化档；"小彩蛋"指插件内置的 **209 张骨架图库**（编辑器左侧叫「FISHER小彩蛋」，打开就能点）。

插件有两种模式：

| 模式 | 节点 | 作用 |
|---|---|---|
| **自由姿势** | `Fisher Qwen2.1 自由姿势` | 单人任意摆姿。VNCCS 真人比例 MakeHuman 人偶 + `VNCCS_QI2_PoseStudio` LoRA，固定约定：人偶图 = image1、人物图 = image2、提示词固定 `Draw character from image2` |
| **自由视角** | `Fisher Qwen2.1 人物与姿态编码` / `Fisher 机位与姿态` | 1–3 人共用机位：转镜头、改站位、改动作，输出中文编辑指令；可接 Qwen 官方 PE（prompt_rewrite）扩写 |

相关仓库：
- 插件：<https://github.com/Work-Fisher/ComfyUI-Fisher-Pose>（MIT，2026-09-24 建库，本次拉取时 20 star）
- LoRA：<https://huggingface.co/MIUProject/VNCCS_PoseStudio_QI2.1>
- 人偶核心：<https://github.com/AHEKOT/ComfyUI_VNCCS_Utils>（代码以 MIT 形式内联在插件 `web/vnccs/`，**不用单独装**）
- 画布：<https://github.com/Work-Fisher/AIFISHER>（另一个产品，与插件无依赖关系）

---

## 二、本机适配盘点（关键结论：底座早就有了）

插件要求的 4 个模型文件，GPU 机 **2026-09-21 部署 Qwen Image 2.1 时就已经全部落地**，一个都不用重下：

| 作者要求 | 本机实际文件 | 大小 | 状态 |
|---|---|---|---|
| `qwen_image_2.1_*.safetensors`（diffusion_models） | `qwen_image_2.1_int8_convrot.safetensors` | 7.26 GB | ✅ 早就在 |
| `qwen3vl_8b_*.safetensors`（text_encoders，type 选 `qwen_image`） | `qwen3vl_8b_int8_convrot.safetensors` | 9.35 GB | ✅ 早就在 |
| `qwen_image_2.1_vae_*.safetensors`（vae） | `qwen_image_2.1_vae_bf16.safetensors` | 0.68 GB | ✅ 早就在 |
| `VNCCS_QI2_PoseStudioV1.1.safetensors`（loras，**必需**） | 本次下载 | 152 MB | ✅ 本次补 |

另外基础环境也满足：
- ComfyUI `0.37.0`（commit `c194dd00`，2026-09-20），`comfy_extras/nodes_qwen.py` 里**已有 `TextEncodeQwenImage21`** —— 这正是插件 README 强调的"需要带该节点的新版本"。
- 视角模式需要的 PE 编码器 `qwen3.5_9b_qwen_image_2.1_pe_i2i.int8_convrot.safetensors`（9.47 GB）本机也有。

**所以本次工作量 = 装插件 + 下一个 152 MB 的 LoRA。** 作者整合包/夸克网盘那几 GB 完全不需要。

---

## 三、本次实际做的操作

1. **装插件**：DSH 机经代理 clone（GitHub 直连太慢）后 rsync 到 GPU 机
   `~/ComfyUI/custom_nodes/ComfyUI-Fisher-Pose/`（85 MB，含 209 张骨架图与文档图）。
   无 requirements.txt，**不需要装任何 Python 依赖**。
2. **下 LoRA**：GPU 机走 hf-mirror
   → `~/ComfyUI/models/loras/VNCCS_QI2_PoseStudioV1.1.safetensors`
   sha256 `d03c0ca3dd47c0de4c26c9c56562d12e7c968442c9decbb14d4b16bd5db3843d`，**与 HF 官方 LFS oid 完全一致** ✅
3. **工作流适配**：把作者 11 个示例工作流复制到
   `~/ComfyUI/user/default/workflows/Fisher-Pose/`，并改掉两处**本机对不上的模型名**：
   - `qwen3vl_8b_bf16.safetensors` → `qwen3vl_8b_int8_convrot.safetensors`（本机没有 bf16 档，17.5 GB 也没必要下）
   - `qwen3.5_qwen_image_2.1_pe_i2i...` → `qwen3.5_9b_qwen_image_2.1_pe_i2i...`（作者少写个 `_9b`）
   改完自动校验：**工作流引用的 5 个模型文件在本机全部存在**，JSON 全部合法。
4. **重启 ComfyUI**（用 GPU 机现成的 `~/restart_comfy.sh`，队列为空，无中断损失）。
5. **验证**：
   - 4 个节点全部注册成功：`FisherQwenFreePose`（Fisher Qwen2.1 自由姿势）、`FisherPoseStudio`（Fisher 机位与姿态）、`FisherQwenPose`（Fisher Qwen2.1 人物与姿态编码）、`FisherQwen21GGUFCLIP`；分类 `Fisher/姿态与机位`。
   - Web 资源与路由 200：`/extensions/ComfyUI-Fisher-Pose/fisher_pose.js`、`/fisher_pose/builtin_poses`（返回 209 个骨架文件名）、`/fisher_pose/openpose_library`。
6. **无头端到端实测**（见下节）。

---

## 四、端到端实测（不点浏览器，直接打 API）

因为 `FisherQwenFreePose` 节点的 `pose_json` 必须来自编辑器"应用到节点"渲染出的人偶图，为做无头验证，本次**取了作者 README 展示图里那张 VNCCS 人偶**（MIT 仓库文档图，裁切后 base64 塞进 `pose_json.poseReference`）当 image1，人物图用本机 Qwen Image 2.1 现生成。

流程与结果：

| 步骤 | 内容 | 结果 |
|---|---|---|
| ① | Qwen Image 2.1 t2i 生成"白T恤+牛仔裤全身站姿"人物图（1024²） | 39.1s（含冷加载） |
| ② | 上传为 input | ok |
| ③ | 自由姿势节点：UNET(int8) + PoseStudio LoRA(1.0) + 该人物图 + 人偶跳跃劈叉姿 → KSampler(25 步 / cfg 1 / euler / simple) | **72.9s，成功** |

节点实际送进模型的提示词经 `PreviewAny` 回读确认是 **`Draw character from image2`** —— 与 VNCCS LoRA 的训练约定完全一致。

证据图（同目录）：
- `FisherPose-测试-人物原图-20260925.png` —— ① 生成的站姿人物
- `FisherPose-测试-人偶参考图-20260925.png` —— 节点收到的人偶（来自作者示例图，仅测试用）
- `FisherPose-测试-生成结果-20260925.png` —— ③ 输出：**人物身份/服装保持，姿势换成了人偶的跳跃劈叉+举双臂**

> 这三张图也已自动进 ComfyUI 相册（输出目录 `FisherTest/`，同步 agent 5s 内收录）。

---

## 五、怎么用（GPU 机）

1. 浏览器开 <http://192.168.31.31:8189>，工作流列表里展开 **`Fisher-Pose/`** 文件夹。
2. 单人换姿势：打开 **`Fisher-Qwen2.1-自由姿势-VNCCS-LoRA.json`**
   - 在「人物图 → image2」里选你的人物照片（**全身、单人**效果最好）；
   - 点节点上的 **「打开自由姿势编辑器」** → 左侧「FISHER小彩蛋」点一张骨架图，或直接拖关节摆姿势（手/脚/髋可 IK，Shift 拖动移动人物，空白处拖动转视角）；
   - 需要时用「深度修正」翻前后、调手势与大小 → 点 **「应用到节点」**（**这步不能省**，见下节坑 1）；
   - 设输出宽高（16 的倍数）→ 运行。推荐 25 步 / cfg 1 / euler / simple。
3. 转机位/多人/换动作：用 `Fisher-Pose/` 里 `Fisher-Qwen2.1-视角＋姿态.json`、`Fisher-Qwen2.1-合并编码-1人/3人.json`、`Fisher-Qwen2.1-直接动作指令-*.json`（不接 PE，纯本地）或 `Fisher-Qwen2.1-PE姿势扩写-*.json`（接 PE 扩写，本机 PE 编码器已就位）。
4. 先想验证节点有没有问题：`Fisher-节点验证-不加载模型.json`（不加载模型，秒出）。

---

## 六、坑与注意（本次踩到 / 从文档提炼）

1. **`pose_json` 默认是 `{}`，直接点运行必报错**：
   `ValueError: 请打开机位与姿态编辑器，点击「应用到节点」，生成拍摄框人偶参考图。`
   自由姿势模式下人偶图不是节点现算的，而是**编辑器在浏览器里渲染并序列化进工作流的**。所以第一次用必须点一次「应用到节点」，之后图像和姿势一起存在工作流里，不用一直开着编辑器。
2. **作者的示例工作流不能直接用**：作者 README 写 `qwen3vl_8b_bf16` / `qwen3.5_qwen_image_2.1_pe_i2i`，本机对应的是 int8 档和 `_9b_` 名字，已统一替换（第二节第 3 步）。若以后从作者仓库重新拉取工作流，**记得再改一次**。
3. **自由姿势只支持单人**：OpenPose 图里有多人时只取身形最大那个；多人要用「自由视角/合并编码」模式。
4. **2D 骨架没有前后信息**：插件按骨长缩短量猜深度，复杂姿势需手动翻转（躯干、四肢各段都能一键翻转）；头部朝向、手指、脚掌不从骨架读取。
5. **人偶只管姿势**：输出构图比例和人偶差太多时，人物在画面里的位置由模型自己定。
6. **作者说 8G 显存能跑**（int8 量化 + lowvram）；本机 16G 显存实测峰值不吃紧，但仍建议跑前先 `bash ~/stop-ridge.sh` 停掉常驻 LLM（与 ComfyUI 抢显存）。
7. 自由视角模式的 PE 扩写有缓存（CLIP 实例内最近 16 次），改种子不会重跑 PE；重启 ComfyUI 后首次要重新扩写。

---

## 七、未做 / 待人工确认

- **浏览器端编辑器 UI 没有人工点过**：本次只验证了资源与接口 200、以及服务端整链路跑通。3D 视口、骨架图库点选、IK 拖拽这些是纯前端 three.js 行为，需要你在页面上实际点一次确认（若打不开，先 Ctrl+F5 强刷）。
- **三人模式、仅视角模式、PE 扩写模式**未逐一实测（底座与接线已核对齐全）。
- 作者提供的 **AIFISHER 无限画布**（另一个独立产品，云端版还没上线）本次未涉及。
