- 降低分辨率
- 降低通道数
- 使用latent diffusion,例如stable
- 使用低精度训练
下面将分别讲解如何使用这些方法。
使用latent diffusion
目前的主流模型都用了encoder降低中间层resolution,但是有一些比较老的工作,比如sr3,还是老架构。GitHub上有很多改进的工作,可以找找看。不想换的话,只需要配置好diffusers库,然后:
使用图像的低维表示而不是实际的像素空间,这使得它的内存效率更高。编码器将图像压缩为更小的表示,解码器将压缩的表示转换回图像。对于文本到图像模型,您需要一个分词器和一个编码器来生成文本嵌入。SD具有三个独立的预训练模型。
使用**from_pretrained()方法加载所有这些组件。您可以在预训练[runwayml/stable-diffusion-v1-5](https://huggingface.co/runwayml/stable-diffusion-v1-5)
**检查点中找到它们,每个组件都存储在单独的子文件夹中
from PIL import Image
import torch