> 文章列表 > 【AIGC】手把手使用扩散模型从文本生成图像

【AIGC】手把手使用扩散模型从文本生成图像

【AIGC】手把手使用扩散模型从文本生成图像

手把手使用扩散模型从文本生成图像

  • 从 DALLE 到Stable Diffusion
  • 使用diffusers package从文本prompt生成图像
  • 参考资料

在这篇文章中,我们将手把手展示如何使用Hugging Face的diffusers包通过文本生成图像。

从 DALLE 到Stable Diffusion

DALLE2是收费的,用户只有一些免费的额度,如果免费额度使用完毕就需要付费了,所以必须寻找替代方案,并发现了Hugging Face,他们发布了一个扩散模型的包diffusers ,可以让我们直接使用。
【AIGC】手把手使用扩散模型从文本生成图像

使用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:
【AIGC】手把手使用扩散模型从文本生成图像
安装accelerate:pip install accelerate

然后,使用PyTorch的autocast运行推理:
【AIGC】手把手使用扩散模型从文本生成图像
最后,查看结果:
【AIGC】手把手使用扩散模型从文本生成图像
结果非常不错。我们也可以调整一些参数,例如guide_scalestep和设置随机种子(用于确定性输出),来控制我们的模型输出,具体的更详细的使用方式请看:

参考资料

  1. CompVis/stable-diffusion-v1-4
  2. Stable Diffusion with 🧨 Diffusers