由PixArt-Σ在本地生成,所需显存不超过8Gb。
图像生成工具的热度从未如此高涨,而且它们也变得越来越强大。像PixArt Sigma和Flux.1这样的模型处于领先地位,这得益于它们的开源权重模型和宽松的许可协议。这种设置允许进行创造性的尝试,包括在不共享计算机外部数据的情况下训练LoRA模型。
然而,如果你使用的是较旧或显存较少的GPU,使用这些模型可能会有些挑战。通常在质量、速度和显存使用之间存在权衡。在这篇博文中,我们将重点优化速度和减少显存使用,同时尽量保持质量。这种方法在PixArt上效果尤其好,因为它模型较小,但在Flux.1上的效果可能有所不同。最后,我会分享一些针对Flux.1的替代解决方案。
PixArt Sigma和Flux.1都是基于Transformer的,这意味着它们可以利用大型语言模型(LLM)使用的量化技术。量化涉及将模型组件压缩,从而占用更少的内存。这允许你将所有模型组件同时保存在GPU显存中,生成速度会比在GPU和CPU之间移动权重的方法更快,因为后者会减慢处理速度。
让我们开始设置环境吧!
设置本地环境
首先,确保你已经安装了Nvidia驱动程序和Anaconda。
接下来,创建一个Python环境并安装所有主要需求:
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
然后安装Diffusers和Quanto库:
pip install pillow==10.3.0 loguru~=0.7.2 optimum-quanto==0.2.4 diffusers==0.30.0 transformers==4.44.2 accelerate==0.33.0 sentencepiece==0.2.0
量化代码
以下是一个让你入门的PixArt-Sigma简单脚本:
```
from optimum.quanto import qint8, qint4, quantize, freeze
from diffusers import PixArtSigmaPipeline
import torch
pipeline = PixArtSigma