手把手使用扩散模型从文本生成图像
- 从 DALLE 到Stable Diffusion
- 使用diffusers package从文本prompt生成图像
- 参考资料
在这篇文章中,我们将手把手展示如何使用Hugging Face的diffusers包通过文本生成图像。
从 DALLE 到Stable Diffusion
DALLE2是收费的,用户只有一些免费的额度,如果免费额度使用完毕就需要付费了,所以必须寻找替代方案,并发现了Hugging Face,他们发布了一个扩散模型的包diffusers ,可以让我们直接使用。
使用diffusers package从文本prompt生成图像
首先,使用diffusers包从文本生成图像,我们要有一个GPU,可以使用google的colab,但是常规的colab由于RAM有限制,可能会存在中断的情况,或者也可以购买Pro版本。这里我们使用自己的GPU服务器。
然后,要安装如下package:
diffusers
==0.2.4 — 这是我们主要使用的包transformers
— 这个是Hugging Face的成名基础包scipy
— 科学计算的ftfy
— 处理一些文本编码问题ipywidgets
>=7,<8 — notebook的一个小组件的基础包torch
—这个就不用说了pillow
— 处理图片的
安装命令:
!pip install diffusers==0.2.4
!pip install transformers scipy ftfy
!pip install "ipywidgets>=7,<8"
导入依赖包:
import torch
from diffusers import StableDiffusionPipeline
下载StableDiffusionPipeline,并使用GPU加载:
model_id = "CompVis/stable-diffusion-v1-4"
device = "cuda"
pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
pipe = pipe.to(device)
此时报出一个Warning:
安装accelerate:pip install accelerate
然后,使用PyTorch的autocast
运行推理:
最后,查看结果:
结果非常不错。我们也可以调整一些参数,例如guide_scale
、step
和设置随机种子(用于确定性输出),来控制我们的模型输出,具体的更详细的使用方式请看:
参考资料
- CompVis/stable-diffusion-v1-4
- Stable Diffusion with 🧨 Diffusers