SwiftDiffusion:革新文本到图像生成的高效扩散模型服务系统
摘要
本文介绍了SwiftDiffusion系统,这是一个高效的扩散模型服务系统,专门用于处理商业文本到图像应用中的稳定扩散模型。文章首先分析了商业文本到图像应用中的推理请求轨迹,发现附加模块(如ControlNets和LoRAs)在生成图像时普遍存在,尽管它们有效,但会导致高加载开销、延长服务延迟并消耗昂贵的GPU资源。为了解决这些问题,SwiftDiffusion系统通过识别并行计算的机会和在多个GPU上分配ControlNet计算,重建了现有的文本到图像服务工作流程。此外,SwiftDiffusion还开发了技术来消除与LoRA加载和修补相关的开销,同时保持图像质量。最后,SwiftDiffusion在稳定扩散模型的骨干架构中提出了专门的优化,这些优化也兼容附加模块的高效服务。与最先进的文本到图像服务系统相比,SwiftDiffusion将服务延迟降低了多达5倍,并将服务吞吐量提高了多达2倍,而不会影响图像质量。
原理
SwiftDiffusion系统通过三个主要设计来提高文本到图像生成的效率:
- ControlNets-as-a-Service:通过利用图像生成中ControlNets的计算图,SwiftDiffusion识别了并行计算的机会,将ControlNets与基础模型解耦,并将它们部署为独立的服务。这种设计允许ControlNets在不同的GPU上并行执行,从而显著加速图像生成过程。
 - 高效LoRA加载和修补:SwiftDiffusion通过分析图像生成的动态,开发了两种设计来高效支持LoRAs。首先,当请求到达时,SwiftDiffusion在未修补LoRA的情况下早期启动基础模型推理,并同时获取所需的LoRA适配器。一旦适配器就位,就将其与基础模型合并,完成剩余步骤。其次,SwiftDiffusion优化了现有的LoRA合并操作,通过直接修补LoRA到基础模型,减少了合并开销。
 - 优化扩散模型中的UNet骨干:除了附加模块外,SwiftDiffusion还优化了基础模型推理,特别是卷积UNet骨干,这是扩散图像生成的主导架构。通过实现CUDA优化的操作符,包括高效的GEGLU激活、融合的GroupNorm和SiLU操作符,SwiftDiffusion加速了UNet计算。
 
流程
SwiftDiffusion的工作流程包括以下步骤:
- ControlNets的并行计算:当一个请求到达时,基础模型启动UNet编码器块的推理,并同时调用相应的ControlNet,发送参考图像、潜在张量和文本嵌入。随后,基础模型继续其推理,而ControlNet开始其计算。一旦UNet完成中间块计算,它同步请求ControlNet的输出,并继续计算解码器块。
 - LoRA的异步加载:当请求到达时,SwiftDiffusion启动相应LoRA的异步加载。同时,它在未修补LoRA的情况下早期启动基础模型推理。一旦LoRA加载完成,SwiftDiffusion将LoRA修补到基础模型上,并继续进行剩余的图像生成过程。
 - UNet骨干的优化:通过预编译CUDA图并根据预定义的维度直接调用它们进行GPU计算,SwiftDiffusion加速了UNet的计算。此外,通过优化GEGLU激活函数和融合GroupNorm和SiLU操作符,进一步提高了推理效率。
 
应用
SwiftDiffusion系统在商业文本到图像服务中具有广泛的应用前景。由于其能够显著降低服务延迟并提高吞吐量,同时保持图像质量,SwiftDiffusion可以被集成到各种创意应用中,如广告和一键虚拟试穿体验。此外,随着生成式AI在创意产业中的应用越来越广泛,SwiftDiffusion的高效性能将使其成为支持这些应用的关键技术。
