# comfyui-SelfLift 调研报告

- 调研日期：2026-09-17
- 调研对象：`comfyui-SelfLift`（MiniMax H3 渐进分辨率采样 / 时间一致性补丁的 ComfyUI 插件）
- 结论一句话：**论文是真的、项目是热的、H3 部分是实验性的**——图像侧（SelfLift-zero）有论文背书；H3 侧是社区适配，官方明确写"论文未验证"，且上游 issue 里已有 5060Ti 16G 跑数字人的实测数据与未解决的音频噪点问题。

---

## 一、先分清三个仓库（很容易混）

| 仓库 | 角色 | 关键数据（2026-09-17 查） |
|---|---|---|
| [facok/comfyui-SelfLift](https://github.com/facok/comfyui-SelfLift) | **上游本体**（"饼佬"，中文社区作者）。SelfLift 图像采样器 + H3 采样器 + H3 TST 补丁，共 3 个节点 | 创建 2026-09-07，最后推送 **2026-09-12**，**184 star** / 5 fork / 6 open issues，**无 License、无 Release、无 tag**，默认分支 master，代码仅 9 个文件（约 146KB） |
| [slmonker/selflift-Avatar](https://github.com/slmonker/selflift-Avatar) | **第三方实验分支**（2026-09-14 创建，第二天）。专攻 H3 **音视频双流遮罩 + 原始音频保留**（数字人口型/换人方向） | 创建并推送于 **2026-09-14**，19 star，当前版本 **v0.1.1-experimental**，README 用中文，**同样无 License**（明确声明"不擅自新增许可证"） |
| [LBH-123-AI/Comfyui_Minimax_h3_latent_Upscaler](https://github.com/LBH-123-AI/Comfyui_Minimax_h3_latent_Upscaler) | **配套外部 lifter**（H3 latent 学习式放大器），被 SelfLift 的 H3 节点调用 | 创建 2026-08-17，**612 star**，权重在 [HF](https://huggingface.co/LBH-123-AI/Minimax_h3_latent_Upscaler) |

上游 `comfyui-SelfLift` 文件清单（全部代码）：`__init__.py` / `nodes.py`(31KB) / `selflift.py` / `h3_upscaler.py` / `h3_tiling.py` / `h3_tst.py` / `diagnostics.py` + 两个 README。**没有模型权重、没有新依赖**。

---

## 二、两个论文出处（都核实过，真实存在）

1. **SelfLift**：*SelfLift: Accelerating Few-Step Diffusion via Self-Recovering Resolution Transition*，arXiv [2609.02036](https://arxiv.org/abs/2609.02036)，2026-09-02 提交，cs.CV，作者 Tingyan Wen 等。
   - 核心结论（论文摘要原文口径）：FLUX.2-Klein / Z-Image-Turbo 上端到端延迟降 **41.5% / 44.1%**；再叠加 timestep 蒸馏，相对 50 步模型总加速 **29.61× / 19.21×**。
   - **注意：论文只验证了 rectified-flow 图像模型，没有 H3、没有视频。**
2. **TST**：*Temporal State Transport in Video Generation: Diagnosing and Correcting Spectral Imbalance*，arXiv [2609.08505](https://arxiv.org/abs/2609.08505)，2026-09-08，**ICML 2026 F2S Workshop Best Paper**，原码 [lytang63/temporal-state-transport](https://github.com/lytang63/temporal-state-transport)（MIT，4 star）。
   - 训练无关、无额外模型，运行开销约 **1~2%**。

---

## 三、原理（为什么有效，压缩版）

### 3.1 SelfLift-zero：渐进分辨率 + 自恢复

少步模型（4~8 步）每次前向的空间成本占比很高，把宽高砍半 → latent 空间位置数降到约 1/4。所以：

1. 前 k 步（`transition_step`）在**低分辨率** latent 上跑；
2. 取模型预测的**干净端点 x₀**（不是带噪状态！）做分辨率提升——带噪状态混着噪声，插值会同时改变噪声统计和结构，无法归因误差；
3. 构造**两条提升路径**并做对比：
   - 路径 A `z_lat`：直接 latent 插值（nearest / bilinear / 外部 H3 lifter）——快，但 latent 通道不一定有局部插值性质，易分布偏移；
   - 路径 B `z_pix`：VAE decode → 像素空间放大（图 Lanczos / 视频 anti-alias bicubic）→ VAE encode——稳，但慢且偏平滑；
4. **两者之差 = 伪影风险分数**（通道维绝对值均值）：两路一致 ⇒ 低风险；差异大 ⇒ 直接提升已偏离合理 latent 分布；
5. 按 batch 取分位数，只挑风险最高的 **`rho`** 比例位置，权重在线性映射到 `[w_min, w_max]`，**只在高风险区向像素锚点修正**（不是整张替换）；
6. 在切换 sigma 处**重新加噪**，用同一份 x₀ 完成该 Euler 区间，再从 `sigmas[transition_step:]` 续跑。

**关键：N 步调度仍然严格是 N 次 NFE**（不额外调用去噪模型）。额外成本 = `rho>0` 时一次 VAE decode→放大→encode 往返。所以只有当"省下的模型前向时间 > VAE 往返"才净加速。

边界：`rho=0` 纯直接提升；`rho=1, w=1/1` 纯像素锚点；`0<rho<1` 才是 SelfLift-zero。

### 3.2 TST：不盲目加强跨帧注意力，而是"测张力、只修失衡的头"

- H3 没有独立 temporal attention，文本/音频/视频 token **打包在单流注意力**里。TST 通过 ComfyUI 的 `optimized_attention_override` 注入：定位视频 token → 对每帧 post-RoPE 的 q/k 做空间平均 → 构造 F×F 帧级传输矩阵 A；
- 算两个归一化熵：行熵 `H_row`（传输多弥散）与 von Neumann 熵 `H_vN`（全局谱多样性），定义**带符号的"谱张力" T**：
  - `T>0` → 局部过于弥散 = 过度混合（over-mixing）
  - `T<0` → 全局碎片化 = 各帧难以维持一致状态（fragmented）
- 按符号给每个注意力头一个 query 温度系数 γ 校正，深层 / 早期去噪步校正更强（余弦调度），**只缩放视频行**，不动文本和音频 token；
- 实测（作者口径）：真实 H3 上校正方向与精确注意力算子逐头一致率 **89–100%**；`tau=0.2` 推荐，`0.5` 已明显过强。

**TST 是最贴合本机痛点的一块**：它针对的正是"细节闪烁/形变、人物与服装身份漂移、不符合物理的运动"——即我们换人链路里反复遇到的 **identity drift**。而且它接任意标准采样器，不限于 SelfLift 采样器。

---

## 四、节点与参数速查

三个节点，全在 `selflift` 分类下：

### 1) SelfLift Progressive Sampler (Image)
`model / positive / negative / vae / latent_image / sampler / sigmas / seed / cfg` + 参数：

| 参数 | 默认 | 说明 |
|---|---|---|
| `transition_step` | 6 | 低分辨率阶段步数。论文：Z-Image-Turbo 8 步取 6，FLUX.2-Klein 4 步取 3 |
| `lowres_scale` | 0.5 | 前缀空间缩放 |
| `rho` | 0.3 | 高风险位置修正比例。Klein 取 0.4；0 关闭锚点 |
| `w_min` / `w_max` | 0.5 / 1.0 | 修正强度范围 |
| `latent_upsample` | nearest | 直接提升插值方式（可选 bilinear） |
| `model_hires` | — | 高分辨率阶段换模型（必须同架构同 latent 格式） |

### 2) SelfLift Progressive Sampler (MiniMax H3)
H3 音视频实验性适配（**论文未验证**）。两种模式：

- **外部 upscaler（实用默认）**：装 H3 latent upscaler + `rho=0`，学习式纯 latent 提升 —— **但这不算 SelfLift-zero**；
- **H3 SelfLift-zero**：`upscaler_model=none` + `rho>0`，建议起点 **`rho=0.6`、`w_min=w_max=1`**。

额外：`upscaler_model`、`highres_tiling`（把高分辨率阶段切成 1~8 个空间块省显存）、`latent_diagnostics`。节点会**拒绝** `upscaler_model=none` 且 `rho=0` 的组合（那等于只剩高风险的 nearest 路径）。

### 3) H3 Temporal State Transport (TST)
`MODEL → MODEL` 补丁节点，参数只有 `tau`（默认 0.2）与 `log_diagnostics`。

### 硬约束（会直接报错/静默跳过的）
- 只接受 **标准 Euler + `s_churn=0`**，采样器必须来自 `KSamplerSelect` 的 `euler`，其它采样器**被拒绝**；
- `noise_mask` 与 `highres_tiling` **不兼容**；
- **TST 与 `highres_tiling` 不兼容**（TST 会打印警告并跳过）；
- TST 只对 MiniMax H3 生效，其它模型静默跳过；
- H3 768px 短边在 `lowres_scale=0.5` 时只有 384px，**可能偏离骨干训练分布**（作者明确要求自行验证）。

### 诊断环境变量
`SELFLIFT_TIMING_SYNC=1`（CUDA 同步计时）、`SELFLIFT_MEMORY_LOG=1`（阶段内存快照）、`SELFLIFT_DEBUG=1`（导出过渡中间 PNG）、`SELFLIFT_TST_EXACT=1`（精确算子探针，仅调试）。
日志关键词：`[SelfLift plan]` / `[SelfLift timing]` / `[SelfLift upscaler]` / `[SelfLift tiling memory]` / `[H3 TST]`。

---

## 五、作者自己给的 H3 对照结论（以及它的证据强度）

同一 prompt + seed，`transition_step=6`、`lowres_scale=0.5`：

| 测试 | upscaler | rho | 权重 | 结果（单 seed） |
|---|---|---|---|---|
| 原生基线 | — | — | — | 干净 |
| 纯像素锚点 | none | 1 | 1/1 | 干净 |
| 直接路径 nearest | none | 0 | 任意 | **大范围伪影** |
| 论文图像参数 | none | 0.3 | 0.5/1 | 伪影大部分仍在 |
| H3 强修正 | none | 0.6 | 1/1 | **主要伪影消除** |
| 外部 lifter | H3 ckpt | 0 | 任意 | 学习式提升 |

⚠️ **这是单 seed 证据，作者自己写明"仅为单 seed 证据"**。结论是"H3 的直接提升误差比论文图像骨干更广，建议从强修正起步，过平滑再降"。

---

## 六、风险与已知问题（这部分最重要）

### 6.1 上游 issue 实况（6 个 open，全部中文，多为 H3 用户）

| # | 标题 | 状态 | 要点 |
|---|---|---|---|
| **#9** | **音频全是电子噪音** | **open、0 回复** | 无报错、画面基本正常，**音频全是电子噪音**（Win11 + ComfyUI 0.34.2）。**未解决** |
| #8 | 和 AudioDrive 节点一起用 | open | 报 `noise_mask/inpainting is not supported` |
| #7 | 锁定音频会出错 | open | 同一错误；作者回复"我现在去放宽限制"→"解除限制了，但没办法保证这样用会不会有其它问题" |
| **#6** | **0.7（Seedream? 实为 15 秒数字人）跑起来内存/显卡/虚拟内存全满 + 二采黑屏** | **open** | **显卡 5060Ti 16G**（=本机同款！） |
| #5 | 能否拆分成"一采→预测x0→放大latent→重新加噪→二采"两个节点 | open | 2 条回复；带 add guide/motion context 的双采样工作流需要对两个 latent 分别引导 |
| #4 | 插件节点分类名称 | open | 11 条回复（分类命名讨论） |

**#6 的实测数据（同款 5060Ti 16G，15 秒数字人）：**
- 一采：**约 10 秒/步**（作者说"挺快的"，符合预期）；
- 进入二采时屏幕**黑约 3 秒**；
- 二采：**约 79 秒/步**；
- 15 秒视频总耗时 **约 380 秒**；
- 现象：**内存 / 显卡 / 虚拟内存全满，电脑卡顿**。

这条对本机极有价值：**16GB 显存跑 H3 + 二采（高分辨率阶段）是显存硬瓶颈**，`highres_tiling` 正是为此设计的兜底（但代价见下）。而且 79s/步的二采速度说明"提速"在 H3 上未必成立——**SelfLift 省的是低清阶段的算力，二采本身反而更贵**。

### 6.2 许可证风险（必须记一笔）

- 上游 `facok/comfyui-SelfLift` **未声明任何 License**（GitHub API `license: null`，无 Release / 无 tag）；
- Avatar 分支明确写了：*"本次上传检查时，上游未声明许可证；本项目未擅自新增开源许可证，不能仅凭本仓库存在推断获得原代码或模型的再分发授权。"*
- ⇒ **本地自用测试没问题，但不要把代码/权重打进对外分发包**，也不要在正式交付物里当"开源可商用组件"引用。

### 6.3 证据强度分级（照抄社区的诚实口径）

| 部分 | 证据强度 |
|---|---|
| SelfLift-zero 图像采样器 | **最强**——直接对应论文验证范围 |
| H3 SelfLift-zero 渐进分辨率 | **中/弱**——作者单 seed 实测，论文未验证 |
| H3 `highres_tiling` | **弱**——实验性，块间无全局注意力、只保留第一块音频、不支持 ControlNet/noise_mask/TST |
| H3 TST 移植 | **中**——论文 Best Paper + 真实 H3 上 89–100% 逐头一致，但"不能创造底模没有的细节" |
| Avatar 分支（音频遮罩/口型） | **最弱**——v0.1.1-experimental，仅 28 项 **CPU** 测试，**真实大模型生成未验证**，作者自述"不保证所有音频与角色都能准确同步" |

---

## 七、和本机现状的对接评估

### 7.1 本机（GPU 机 192.168.31.31）现状核查（2026-09-17 实测）
- ComfyUI **0.35.0**（commit `b2da2b42`，2026-09-16），Python 3.12.3，torch 2.11.0+cu130；
- `custom_nodes/` 里 **没有 SelfLift**，也没有 MiniMax H3 latent upscaler 节点包；
- **但 `models/latent_upscale_models/` 里已经有 lifter 权重**：
  - `minimax_h3_latent_upscaler_3d_bf16.safetensors`（659 MB）
  - `minimax_h3_latent_upscaler_3d_fp16.safetensors`（659 MB）
  - 外加 `ltx-2.5-latent-spatial-upscaler-x2-bf16-1.0.safetensors`（950 MB）

  ⇒ **SelfLift 的 H3 "外部 lifter"路径开箱即用**（它自己在 `h3_upscaler.py` 里实现推理，不需要另装 LBH 的节点包）。节点默认会自动选第一个文件名含 `h3` 的模型。

### 7.2 值得试的三点
1. **TST（`tau=0.2`）单点接入**——直接打我们换人链路最痛的 **identity drift / 细节闪烁**，代价仅 1~2% 开销，接任意标准采样器，**不需要动 SelfLift 采样器**。这是投入产出比最高的一项。
2. **H3 latent upscaler 路径**（`rho=0`，外部 lifter）——我们本来就有权重，可作为"低清 384p 一采 → 学得式 latent 提升 → 高清二采"的提速/省显存路线，和现有 Singularity 双采样思路**同源但实现不同**（Singularity 走 VDN/Sol-Attn，SelfLift 走 latent 学习式提升 + 自恢复修正）。
3. **`highres_tiling` 兜底 16GB**——issue #6 证明 16G 跑 H3 二采会爆内存，tiling 是唯一的官方兜底手段，但**画质/运动可能变化、只保留第一块音频**，只能当实验手段。

### 7.3 三条明确警告
1. **⚠️ 本机有"注意力补丁 → GPU 掉总线"的前科**：本机 GPU 掉总线的真正元凶是 `MiniMaxH3MemoryEfficientSageAttentionPatch` 强行把注意力拉回 SageAttention（sm120 无内核 → triton JIT → GSP 挂死）（见 `dl-hub/06-ComfyUI-H3运维记录`、`dl-hub/10-视频生成流水线/H3换人视频-部署与实测报告-20260914.md`）。**TST 同样是注意力注入型补丁**（走 `optimized_attention_override`），虽然论文口径只改 query 温度、不换注意力后端，但在本机务必**单独、短片段、盯 nvidia-smi 试跑**，不要和 sage 相关补丁叠加。
2. **采样器约束可能和现有工作流冲突**：SelfLift 两个采样器只吃**标准 Euler + s_churn=0**。我们的官方 Director H3 工作流用的是哪套 sampler/scheduler，接之前必须核对；且 `noise_mask`、`highres_tiling`、TST 三者互相有互斥关系（见 3.4 硬约束）。
3. **音频是 H3 的软肋**：上游 issue #9「音频全是电子噪音」**至今 0 回复未解决**；#7/#8 的 `noise_mask` 报错是作者**临时放宽限制**的（作者原话"没办法保证这样用会不会有其它问题"）。做数字人/换人时音频条件必须单独验收。

---

## 八、如果要落地：建议的验证顺序

严格 A/B，**固定 seed、prompt、帧数、输出 FPS、总步数**，一次只改一个变量：

**第 0 步（基线）**：现有官方 Director H3 工作流，原生全分辨率采样，记录时间 + 显存峰值 + 熟肉质量。

**第 1 步（最低风险，先摘果子）**：只接 **TST，`tau=0.2`**，采样器不动。
- 固定 seed，对照：①不接 TST ②接 TST 且 `tau=0`（验证补丁本身不改结果）③`tau=0.2`；
- 关注点：连续帧的身份/服装一致性、文字与细纹理是否停止闪烁、运动是否更合理；
- 若 `tau=0` 与"不接"结果不一致，说明补丁有副作用，先停。

**第 2 步（省显存/提速）**：H3 SelfLift 采样器 + **外部 lifter（`rho=0`）**，`transition_step` ≈ 总 NFE 的 3/4、`lowres_scale=0.5`、`highres_tiling=off`。
- 与第 0 步比总耗时（**不是比单步耗时**）。注意论文的省时逻辑在 H3 上未必成立——issue #6 的二采 79s/步是反例信号。

**第 3 步（实验性，可选）**：`upscaler_model=none` + `rho=0.6` + `w_min=w_max=1` 的 H3 SelfLift-zero 路线，与"纯像素锚点 `rho=1`"和"论文参数 `rho=0.3`"分别对照，判断强修正是否真的必要。

**第 4 步（仅在爆显存时）**：`highres_tiling=on`，接受画质/运动变化与"只保留第一块音频"的代价；**此时必须关掉 TST 和 noise_mask**。

**数字人/换人额外一步**：若要用 [selflift-Avatar](https://github.com/slmonker/selflift-Avatar) 做音视频遮罩，先读它的"口型效果排查"章节——**音频保留 ≠ 口型正确**，作者明确要求固定全部参数、先与原生全分辨率采样对比，再分别测"更多高清步数"与"不用外部 upscaler 的像素锚点路径"。

### 安装命令（GPU 机，未执行，待确认）
```bash
cd /home/zyw/ComfyUI/custom_nodes
git clone https://github.com/facok/comfyui-SelfLift.git
# 然后必须重启 ComfyUI 后端（只刷新网页不加载新 Python 代码）
```
（Avatar 分支是**另一个**注册 ID，可与上游并存；但**不要放两份 Avatar 副本**，会节点重复注册。）

---

## 九、总体评价

**优点**
- 有真论文支撑（SelfLift + ICML 2026 F2S Workshop Best Paper 的 TST），不是纯"炼丹玄学节点"；
- 工程完成度出人意料地高：干净端点上切换分辨率、配对提升构造自风险信号、只修高风险位置、重加噪并复用边界那次模型评估**保持 NFE 不变**、H3 视频/音频流分离、长视频 VAE/upscaler 时间分块、对 mask/调度/采样器都有明确保护；
- **TST 是独立亮点**：训练无关、无额外模型、1~2% 开销、接任意采样器、直击身份漂移；
- 社区热度真实（8 天 184 star），作者响应 issue 很快（#7 当天回复并放宽限制）。

**缺点 / 保留意见**
1. **H3 部分是实验性的**，作者自己反复写明"论文未验证""单 seed 证据"；
2. **无 License** + 无 Release/tag ⇒ 版本不可锁定、再分发授权不明，长期依赖有风险；
3. **音频问题未解决**（#9 电子噪音，0 回复），而音频恰恰是 H3 的卖点；
4. **对 16GB 用户不是银弹**：issue #6 同款 5060Ti 实测二采 79s/步、内存/显存/交换全满、二采黑屏；
5. TST / noise_mask / highres_tiling **三者互斥**，组合空间被切得很碎。

**建议**：**先只试 TST（`tau=0.2`）**，成本极低、痛点最准；渐进分辨率采样与 Avatar 分支作为第二批实验，且必须做固定 seed 的 A/B 与音频单独验收。**不要**直接把它当生产链路替换现有官方 Director 工作流。

---

## 十、来源

- 上游仓库：https://github.com/facok/comfyui-SelfLift （README / README_CN / issues #1–#9 / commits）
- Avatar 实验分支：https://github.com/slmonker/selflift-Avatar （README、CHANGELOG、Release v0.1.1-experimental）
- 配套 H3 latent upscaler：https://github.com/LBH-123-AI/Comfyui_Minimax_h3_latent_Upscaler · https://huggingface.co/LBH-123-AI/Minimax_h3_latent_Upscaler
- TST 原码：https://github.com/lytang63/temporal-state-transport
- 论文：https://arxiv.org/abs/2609.02036 （SelfLift） · https://arxiv.org/abs/2609.08505 （TST）
- 中文原理/节点/工作流指南（第三方整理，2026-09-16）：https://www.mybj123.com/32280.html
- 社区视频（全身数字人崩脸 → Self-lift 双采样）：https://www.bilibili.com/video/BV1aLe76REZE/
- 本机对照资料：`dl-hub/28-H3-Singularity双采样提速方案/`、`dl-hub/10-视频生成流水线/H3换人视频-部署与实测报告-20260914.md`、`dl-hub/06-ComfyUI-H3运维记录/`
