KJNodes/experimentalgenerated

补丁 Triton VAE(PatchTritonVAE)

通过融合 Triton 归一化+SiLU 内核和 channels_last 卷积布局,加速 VAE 解码/编码。支持自动检测的 VAE:Wan 2.1/2.2 视频 VAE(包括 Qwen-Image,RMSNorm,约 1.4 倍/1.15 倍加速)、KL 图像 VAE(如 Flux/Flux2、SDXL 和 SD1.5,GroupNorm,2048 像素时约 1.6-1.8 倍加速)以及 LTXV/LTX2 视频 VAE(PixelNorm;时间步条件解码器块仅获得归一化融合)。其他架构不受支持。补丁应用于克隆的 patcher 对象,因此仅在此 VAE 加载时存在。

Patch Triton VAE

vae
vae
fuse_norm_silu
channels_last
int8_conv
autotune
KJNodes

描述

通过应用融合的 Triton 归一化+SiLU 内核和 channels_last 卷积布局来加速 VAE 解码/编码。自动检测支持的 VAE:

  • Wan 2.1/2.2 视频 VAE(包括 Qwen-Image 变体):RMSNorm,约 1.4 倍/1.15 倍加速。
  • KL 图像 VAE(Flux/Flux2、SDXL、SD1.5):GroupNorm,2048 像素时约 1.6–1.8 倍加速。
  • LTXV/LTX2 视频 VAE:PixelNorm;时间步条件解码器块仅获得归一化融合。

其他架构不受支持,将原样传递。该节点在克隆的 patcher 上应用补丁,因此优化仅在此 VAE 加载时存在。

输入

名称类型默认值提示
vaeVAE要打补丁的 VAE 模型。
fuse_norm_silu布尔用融合的 Triton 内核替换归一化+SiLU 链(Wan 用 RMSNorm,KL VAE 用 GroupNorm)(单次传递,fp32 累积)。需要 Triton。
channels_last布尔将卷积权重转换为 channels_last 内存格式,去除每个卷积周围的 cuDNN 布局转置。KL VAE 上启用融合 GroupNorm 内核必填
int8_conv布尔实验性:在 VAE 解码器的 3×3 卷积上使用 int8 张量核心(Ada+ 上比 bf16 速度快 4 倍)。权重按输出通道量化,激活按张量动态量化;与 bf16 解码相比约 45–48 dB,可能存在轻微质量损失。支持 Wan 2.1/2.2 和 KL 图像 VAE(Flux2/SDXL/SD1.5);其他忽略。
autotune布尔在首次使用每种张量形状时对多个内核块大小配置进行基准测试,并缓存最快的。每个新分辨率会有短暂停顿,预热后通常快几个百分点。

输出

类型描述
VAE打过补丁的 VAE 对象(克隆的 patcher)。使用此输出替换原始 VAE 连接。

使用说明

  • 所有优化都需要在您的 ComfyUI 环境中安装 Triton(通常通过 pip install triton)。如果没有 Triton,fuse_norm_siluint8_conv 将被静默跳过。
  • 该节点自动检测支持的 VAE 架构;不支持的 VAE 将原样转发。
  • 在确定典型分辨率后启用 autotune 以获得最佳长期速度,但要注意新形状上的初始停顿。
  • int8_conv 标志是实验性的 – 在依赖它用于生产之前,请验证您的输出质量。
  • 由于 VAE 通过克隆的 patcher 打补丁,工作流中的原始 VAE 节点保持不变。您必须将此节点的输出路由到解码/编码节点。
  • 此节点位于节点菜单的 KJNodes/实验性 类别中。

评论

使用 GitHub 登录后即可参与讨论。

评论加载中…
补丁 Triton VAE (PatchTritonVAE) - ComfyUI-KJNodes | ComfyUI Wiki