stable-diffusion初体验
背景
Stable Diffusion是一个潜在扩散模型(Latent Diffusion Models, LDM)。
初体验
下载代码
git clone https://github.com/runwayml/stable-diffusion.git
官方配置
conda env create -f environment.yaml
conda activate ldm
本文配置环境
conda create -n ldm python=3.8.5
conda activate ldm
python -m pip install pip==20.3 cudatoolkit==11.3 pytorch==1.11.0 torchvision==0.12.0 numpy==1.19.2
下载模型(可略)
Huggingface上有数据集、预训练模型、NLP课程和文档。[3]
模型见: https://huggingface.co/runwayml/stable-diffusion-v1-5
也可以不下载,运行例子的时候,会自动下载。
wget https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.ckpt
python运行
安装依赖
pip install diffusers==0.10.2 transformers scipy ftfy accelerate -i https://mirrors.aliyun.com/pypi/simple/
运行示例
from diffusers import StableDiffusionPipeline
import torch
model_id = "runwayml/stable-diffusion-v1-5"
pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16)
pipe = pipe.to("cuda")
prompt = "a photo of an astronaut riding a horse on mars"
image = pipe(prompt).images[0]
image.save("astronaut_rides_horse.png")
首次运行时,模型会下载到 ~/.cache/
目录下。
结果:输出一张图片,如下图。
重复运行生成的图片,每次都不一样。
脚本运行
python -m install opencv-python omegaconf invisible-watermark einops pytorch_lightning taming-transformers clip kornia
问题:ImportError: cannot import name 'VectorQuantizer2' from 'taming.modules.vqvae.quantize'
结果:
安装ldm
本身
pip install -e .
下载准备模型
mkdir -p models/ldm/stable-diffusion-v1
wget https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.ckpt -O models/ldm/stable-diffusion-v1/model.ckpt
运行
python scripts/txt2img.py --prompt "a photo of a sheep on a window"
结果