目次
1. Stable Diffusion とは?
Stable Diffusion は、2022 年に公開されたディープラーニングの text-to-image モデルです。主に、テキスト入力に基づく画像生成に使用されますが、他にもインペインティング、アウトペインティング等にも使用されます。
2. 開発環境の確認
- OS:Ubuntu 20.04
- Python: 3.8.10
- CUDA Version: 11.5
3. リポジトリと学習済パラメータのダウンロード
まずは、stable-diffusion のリポジトリ(https://github.com/CompVis/stable-diffusion)をクローンします。 次に、Hugging Face のページCompVis/stable-diffusion-v-1-4-originalから、 「sd-v1-4.ckpt」をダウンロードしておきます。これを「stable-diffusion」フォルダ直下に移動させておきます。
git clone https://github.com/CompVis/stable-diffusion
cd stable-diffusion
wget https://huggingface.co/CompVis/stable-diffusion-v-1-4-original/resolve/main/sd-v1-4.ckpt
4. ソースコードの修正
最新のパッケージに合わせて、一部ソースコードを修正します。
ldm/models/diffusion/ddpm.py
- from pytorch_lightning.utilities.distributed import rank_zero_only
+ from pytorch_lightning.utilities.rank_zero import rank_zero_only
5. 各種パッケージのインストール
pip install torch==1.12.1 torchvision==0.13.1
pip install omegaconf tqdm einops transformers diffusers invisible-watermark pytorch_lightning taming-transformers taming-transformers-rom1504 clip kornia
pip install -e .
pip list の結果は、以下のようになります。
Package Version Editable project location
--------------------------- -------- ------------------------------------
aiohttp 3.8.4
aiosignal 1.3.1
antlr4-python3-runtime 4.9.3
async-timeout 4.0.2
attrs 23.1.0
certifi 2023.5.7
charset-normalizer 3.1.0
clip 0.2.0
coloredlogs 15.0.1
diffusers 0.17.1
einops 0.6.1
filelock 3.12.2
flatbuffers 23.5.26
frozenlist 1.3.3
fsspec 2023.6.0
huggingface-hub 0.16.2
humanfriendly 10.0
idna 3.4
imhist 0.0.4
importlib-metadata 6.7.0
imWatermark 0.0.2
invisible-watermark 0.1.5
kornia 0.6.12
latent-diffusion 0.0.1 /home/xxx/Projects/stable-diffusion
lightning-utilities 0.9.0
mpmath 1.3.0
multidict 6.0.4
numpy 1.24.4
omegaconf 2.3.0
onnx 1.14.0
onnxruntime 1.15.1
opencv-python 4.8.0.74
packaging 23.1
Pillow 10.0.0
pip 23.1.2
protobuf 4.23.3
pytorch-lightning 2.0.4
PyWavelets 1.4.1
PyYAML 6.0
regex 2023.6.3
requests 2.31.0
safetensors 0.3.1
setuptools 67.8.0
six 1.16.0
sympy 1.12
taming-transformers 0.0.1
taming-transformers-rom1504 0.0.6
tokenizers 0.12.1
torch 1.12.1
torchmetrics 1.0.0
torchvision 0.13.1
tqdm 4.65.0
transformers 4.30.2
typing_extensions 4.7.1
urllib3 2.0.3
wheel 0.40.0
yarl 1.9.2
zipp 3.15.0
6. 動かしてみましょう!
「outputs/txt2img-samples」以下に、プロンプトから生成された画像が格納されます。
python scripts/txt2img.py --prompt "a photograph of an astronaut riding a horse" --plms --ckpt sd-v1-4.ckpt --n_samples 1
参考
- 画像生成 AI「Stable Diffusion」をローカル環境で実行する
- StableDiffusion 使おうとしたら SAFE_WEIGHTS_NAME がどうこうってエラーになった
- pytorch_lightning fails when running txt2img
- ModuleNotFoundError: No module named ’taming’
- ImportError: cannot import name ‘VectorQuantizer2’ #72