stable-fast:一个高性能的Stable Diffusion推理优化框架

Ray

stable-fast

stable-fast:加速Stable Diffusion推理的利器

在人工智能图像生成领域,Stable Diffusion模型以其强大的生成能力而备受关注。然而,Stable Diffusion模型的推理速度一直是一个痛点,尤其是在处理高分辨率图像或视频时。为了解决这个问题,GitHub上的开源项目stable-fast应运而生。本文将深入介绍stable-fast的特性、优势以及如何使用它来优化Stable Diffusion模型的推理性能。

stable-fast简介

stable-fast是一个专为HuggingFace Diffusers设计的超轻量级推理优化框架。它能够在NVIDIA GPU上实现最先进的推理性能,甚至可以优化最新的StableVideoDiffusionPipeline。与TensorRT或AITemplate等需要数十分钟来编译模型的工具不同,stable-fast只需几秒钟即可完成模型编译。此外,stable-fast还支持动态形状、LoRA和ControlNet等功能。

stable-fast性能对比图

stable-fast的核心特性

stable-fast采用了多项先进技术来实现高性能推理:

  1. CUDNN卷积融合: 实现了一系列全功能、全兼容的CUDNN卷积融合算子,可处理各种Conv + Bias + Add + Act计算模式的组合。

  2. 低精度和融合GEMM: 实现了一系列使用fp16精度计算的融合GEMM算子,比PyTorch默认的方法(读写fp16,计算fp32)更快。

  3. 融合线性GEGLU: 能够将GEGLU(x, W, V, b, c) = GELU(xW + b) ⊗ (xV + c)融合到一个CUDA内核中。

  4. NHWC和融合GroupNorm: 使用OpenAI的Triton实现了高度优化的融合NHWC GroupNorm + Silu算子,消除了内存格式置换算子的需求。

  5. 完全跟踪模型: 改进了torch.jit.trace接口,使其更适合跟踪复杂模型。StableDiffusionPipeline/StableVideoDiffusionPipeline的几乎每个部分都可以被跟踪并转换为TorchScript。

  6. CUDA图: 可以将UNet、VAE和TextEncoder捕获为CUDA图格式,在批处理大小较小时可以减少CPU开销。这种实现还支持动态形状。

  7. 融合多头注意力: 使用xformers并使其与TorchScript兼容。

stable-fast与其他加速库的区别

  1. 速度快: stable-fast专门为HuggingFace Diffusers优化,在多个库中都能实现高性能。它提供非常快的编译速度,只需几秒钟。在编译时间上,它显著快于torch.compile、TensorRT和AITemplate。

  2. 轻量级: stable-fast作为PyTorch的插件框架工作。它利用现有的PyTorch功能和基础设施,并与其他加速技术兼容,以及流行的微调技术和部署解决方案。

  3. 最大兼容性: stable-fast与各种HuggingFace Diffusers和PyTorch版本兼容。它还兼容ControlNet和LoRA。甚至开箱即用地支持最新的StableVideoDiffusionPipeline!

如何安装stable-fast

stable-fast目前仅在Linux和Windows的WSL2上进行了测试。首先需要安装支持CUDA的PyTorch(建议使用1.12到2.1版本)。

安装预构建的wheel:

  1. Releases页面下载与您系统对应的wheel文件。
  2. 使用以下命令安装:
pip3 install --index-url https://download.pytorch.org/whl/cu121 \
    'torch>=2.1.0' 'xformers>=0.0.22' 'triton>=2.1.0' 'diffusers>=0.19.3' \
    '<wheel file>'

从源代码安装:

pip3 install wheel 'torch>=2.1.0' 'xformers>=0.0.22' 'triton>=2.1.0' 'diffusers>=0.19.3'
pip3 install ninja
pip3 install -v -U git+https://github.com/chengzeyi/stable-fast.git@main#egg=stable-fast

如何使用stable-fast

stable-fast可以直接优化StableDiffusionPipeline和StableDiffusionPipelineXL。以下是一个简单的示例:

import time
import torch
from diffusers import (StableDiffusionPipeline,
                       EulerAncestralDiscreteScheduler)
from sfast.compilers.diffusion_pipeline_compiler import (compile,
                                                         CompilationConfig)

def load_model():
    model = StableDiffusionPipeline.from_pretrained(
        'runwayml/stable-diffusion-v1-5',
        torch_dtype=torch.float16)

    model.scheduler = EulerAncestralDiscreteScheduler.from_config(
        model.scheduler.config)
    model.safety_checker = None
    model.to(torch.device('cuda'))
    return model

model = load_model()

config = CompilationConfig.Default()
config.enable_xformers = True
config.enable_triton = True
config.enable_cuda_graph = True

model = compile(model, config)

kwargs = dict(
    prompt='(masterpiece:1,2), best quality, masterpiece, best detailed face, a beautiful girl',
    height=512,
    width=512,
    num_inference_steps=30,
    num_images_per_prompt=1,
)

# 预热
for _ in range(3):
    output_image = model(**kwargs).images[0]

# 测试推理时间
begin = time.time()
output_image = model(**kwargs).images[0]
print(f'Inference time: {time.time() - begin:.3f}s')

stable-fast的性能表现

stable-fast在各种硬件上都展现出了优秀的性能。以下是在不同GPU上的性能对比:

RTX 4080 (512x512, batch size 1, fp16, in WSL2)

框架SD 1.5SD XL (1024x1024)SD 1.5 ControlNet
Vanilla PyTorch (2.1.0)29.5 it/s4.6 it/s19.7 it/s
torch.compile (2.1.0, max-autotune)40.0 it/s6.1 it/s21.8 it/s
AITemplate44.2 it/s
OneFlow53.6 it/s
AUTO1111 WebUI17.2 it/s3.6 it/s
AUTO1111 WebUI (with SDPA)24.5 it/s4.3 it/s
TensorRT (AUTO1111 WebUI)40.8 it/s
TensorRT Official Demo52.6 it/s
stable-fast (with xformers & Triton)51.6 it/s9.1 it/s36.7 it/s

H100

框架SD 1.5SD XL (1024x1024)SD 1.5 ControlNet
Vanilla PyTorch (2.1.0)54.5 it/s14.9 it/s35.8 it/s
torch.compile (2.1.0, max-autotune)66.0 it/s18.5 it/s
stable-fast (with xformers & Triton)104.6 it/s21.6 it/s72.6 it/s

从这些数据可以看出,stable-fast在各种场景下都能提供优秀的性能提升,特别是在处理更复杂的模型如SD XL和ControlNet时,性能优势更加明显。

stable-fast的兼容性

stable-fast具有广泛的兼容性,支持多种模型和功能:

  • 支持Hugging Face Diffusers (1.5/2.1/XL)
  • 支持ControlNet
  • 支持LoRA
  • 支持Latent Consistency Model
  • 支持SDXL Turbo
  • 支持Stable Video Diffusion

在功能方面,stable-fast支持动态形状、文本到图像、图像到图像以及图像修复等功能。它还可以与多种UI框架集成,如SD Next和ComfyUI。

结语

stable-fast为Stable Diffusion模型的推理优化提供了一个强大而灵活的解决方案。它不仅能显著提高推理速度,还保持了广泛的兼容性和易用性。对于需要高性能Stable Diffusion推理的开发者和研究人员来说,stable-fast无疑是一个值得尝试的工具。

随着AI图像生成技术的不断发展,像stable-fast这样的优化工具将在推动技术的实际应用和普及方面发挥重要作用。我们期待看到stable-fast在未来的更多应用场景中发挥作用,为AI图像生成领域带来更多可能性。

![stable-fast视频生成性能对比图](https://camo.githubusercontent.com/ffb5e39e76afdd0c2b8b9fb9624b2df5faeacc6942123abd361c409455f15de3/68747470733a2f2f6d65726d6169642e696e6b2f696d672f70616b6f3a654e7046556b3176327a414d5f5375456743415875334873664c672d374c4c32324d7361444d5771486d694c74675859556d417857544c445f3331305572513853593853332d4d6a52315635513670516352787256336c58323662514469517531353874447678356d2d4f764e6477576b43664a4e39615362566f75494530467642565a4c4562727245446a6b6c767161566e41737659444256354f4d433057326c3275315677354c6f6b52576a5f5966393478647471783559354171345074436551504e4f526f514c6175416538497a74615146786e6377757676705f6a74454d453653546558375834585162714665734365516952763464666844545a4a6e6d676c66444665624942337263376f624e636873422d71567174497547374868387233523976524851714d5a5564786a5947312d7444756576387643524b48544e414b456f6a6a48304975545774583467447665526242506f6c676b332d6f535055303947694e4744764f58676e4e624956576852784c4444544c6d7551646e74695f586c326c4368354f464b6e54305344546b385647576c46466a56333451702d4e46624666594f66526b4678487864666a504d4c47427061533979484f2d476e6f4247365a6a36465972

avatar
0
0
0
最新项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号