comfyui-SelfLift调研报告-20260917.md

comfyui-SelfLift 调研报告


一、先分清三个仓库(很容易混)

仓库角色关键数据(2026-09-17 查)
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第三方实验分支(2026-09-14 创建,第二天)。专攻 H3 音视频双流遮罩 + 原始音频保留(数字人口型/换人方向)创建并推送于 2026-09-14,19 star,当前版本 v0.1.1-experimental,README 用中文,同样无 License(明确声明"不擅自新增许可证")
LBH-123-AI/Comfyui_Minimax_h3_latent_Upscaler配套外部 lifter(H3 latent 学习式放大器),被 SelfLift 的 H3 节点调用创建 2026-08-17,612 star,权重在 HF

上游 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,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,2026-09-08,ICML 2026 F2S Workshop Best Paper,原码 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:不盲目加强跨帧注意力,而是"测张力、只修失衡的头"

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


四、节点与参数速查

三个节点,全在 selflift 分类下:

1) SelfLift Progressive Sampler (Image)

model / positive / negative / vae / latent_image / sampler / sigmas / seed / cfg + 参数:

参数默认说明
transition_step6低分辨率阶段步数。论文:Z-Image-Turbo 8 步取 6,FLUX.2-Klein 4 步取 3
lowres_scale0.5前缀空间缩放
rho0.3高风险位置修正比例。Klein 取 0.4;0 关闭锚点
w_min / w_max0.5 / 1.0修正强度范围
latent_upsamplenearest直接提升插值方式(可选 bilinear)
model_hires—高分辨率阶段换模型(必须同架构同 latent 格式)

2) SelfLift Progressive Sampler (MiniMax H3)

H3 音视频实验性适配(论文未验证)。两种模式:

额外: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。

硬约束(会直接报错/静默跳过的)

诊断环境变量

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:

测试upscalerrho权重结果(单 seed)
原生基线———干净
纯像素锚点none11/1干净
直接路径 nearestnone0任意大范围伪影
论文图像参数none0.30.5/1伪影大部分仍在
H3 强修正none0.61/1主要伪影消除
外部 lifterH3 ckpt0任意学习式提升

⚠️ 这是单 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同一错误;作者回复"我现在去放宽限制"→"解除限制了,但没办法保证这样用会不会有其它问题"
#60.7(Seedream? 实为 15 秒数字人)跑起来内存/显卡/虚拟内存全满 + 二采黑屏open显卡 5060Ti 16G(=本机同款!)
#5能否拆分成"一采→预测x0→放大latent→重新加噪→二采"两个节点open2 条回复;带 add guide/motion context 的双采样工作流需要对两个 latent 分别引导
#4插件节点分类名称open11 条回复(分类命名讨论)

#6 的实测数据(同款 5060Ti 16G,15 秒数字人):

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

6.2 许可证风险(必须记一笔)

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 实测)

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,采样器不动。

第 2 步(省显存/提速):H3 SelfLift 采样器 + 外部 lifter(rho=0),transition_step ≈ 总 NFE 的 3/4、lowres_scale=0.5、highres_tiling=off。

第 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 做音视频遮罩,先读它的"口型效果排查"章节——音频保留 ≠ 口型正确,作者明确要求固定全部参数、先与原生全分辨率采样对比,再分别测"更多高清步数"与"不用外部 upscaler 的像素锚点路径"。

安装命令(GPU 机,未执行,待确认)

cd /home/zyw/ComfyUI/custom_nodes
git clone https://github.com/facok/comfyui-SelfLift.git
# 然后必须重启 ComfyUI 后端(只刷新网页不加载新 Python 代码)

(Avatar 分支是另一个注册 ID,可与上游并存;但不要放两份 Avatar 副本,会节点重复注册。)


九、总体评价

优点

缺点 / 保留意见

  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 工作流。


十、来源

下载此文件