Diffusers 文档

T-GATE

Hugging Face's logo
加入 Hugging Face 社区

并获取增强型文档体验

开始使用

T-GATE

T-GATE 通过在收敛后跳过交叉注意力计算来加速 稳定扩散PixArt延迟一致性模型 管道的推断。此方法不需要任何额外的训练,并且可以将推断速度提高 10-50%。T-GATE 还兼容其他优化方法,例如 DeepCache

在开始之前,请确保你已安装 T-GATE。

pip install tgate
pip install -U torch diffusers transformers accelerate DeepCache

要将 T-GATE 与管道一起使用,你需要使用其相应的加载器。

管道 T-GATE 加载器
PixArt TgatePixArtLoader
稳定扩散 XL TgateSDXLLoader
稳定扩散 XL + DeepCache TgateSDXLDeepCacheLoader
稳定扩散 TgateSDLoader
稳定扩散 + DeepCache TgateSDDeepCacheLoader

接下来,使用管道、门步(停止计算交叉注意力的时间步)和推断步数创建一个 TgateLoader。然后使用提示、门步和推断步数在管道上调用 tgate 方法。

让我们看看如何在几个不同的管道中启用它。

PixArt
稳定扩散 XL
带有 DeepCache 的 StableDiffusionXL
延迟一致性模型

使用 T-GATE 加速 PixArtAlphaPipeline

import torch
from diffusers import PixArtAlphaPipeline
from tgate import TgatePixArtLoader

pipe = PixArtAlphaPipeline.from_pretrained("PixArt-alpha/PixArt-XL-2-1024-MS", torch_dtype=torch.float16)

gate_step = 8
inference_step = 25
pipe = TgatePixArtLoader(
       pipe,
       gate_step=gate_step,
       num_inference_steps=inference_step,
).to("cuda")

image = pipe.tgate(
       "An alpaca made of colorful building blocks, cyberpunk.",
       gate_step=gate_step,
       num_inference_steps=inference_step,
).images[0]

T-GATE 还支持 StableDiffusionPipelinePixArt-alpha/PixArt-LCM-XL-2-1024-MS

基准

模型 MACs 参数 延迟 MS-COCO 上的零样本 10K-FID
SD-1.5 16.938T 859.520M 7.032s 23.927
SD-1.5 w/ T-GATE 9.875T 815.557M 4.313s 20.789
SD-2.1 38.041T 865.785M 16.121s 22.609
SD-2.1 w/ T-GATE 22.208T 815.433 M 9.878s 19.940
SD-XL 149.438T 2.570B 53.187s 24.628
SD-XL w/ T-GATE 84.438T 2.024B 27.932s 22.738
Pixart-Alpha 107.031T 611.350M 61.502s 38.669
Pixart-Alpha w/ T-GATE 65.318T 462.585M 37.867s 35.825
DeepCache (SD-XL) 57.888T - 19.931s 23.755
DeepCache w/ T-GATE 43.868T - 14.666s 23.999
LCM (SD-XL) 11.955T 2.570B 3.805s 25.044
LCM w/ T-GATE 11.171T 2.024B 3.533s 25.028
LCM (Pixart-Alpha) 8.563T 611.350M 4.733s 36.086
LCM w/ T-GATE 7.623T 462.585M 4.543s 37.048

延迟是在 NVIDIA 1080TI 上测试的,MACs 和参数使用 calflops 计算,FID 使用 PytorchFID 计算。

< > 更新 在 GitHub 上