はじめに
DiffusersからMultiDiffusion(Fusing Diffusion Paths for Controlled Image Generation)を使ってみました。横長や縦長の画像を作成可能です。デフォルトサイズは2048x512です。通常ならVRAM不足になりそうですがこちらを使うとVRAM使用量は少なく済みます(後述)
PC環境
Windows 11 CUDA 11.6.2 Python 3.10.9
環境構築
pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 --extra-index-url https://download.pytorch.org/whl/cu116 pip install diffusers[torch]==0.13.1 pip install transformers==4.26.1 pip install safetensors==0.2.8 pip install xformers==0.0.17.dev465
Pythonスクリプト
import torch from diffusers import StableDiffusionPanoramaPipeline, DDIMScheduler model_ckpt = 'stabilityai/stable-diffusion-2-1-base' scheduler = DDIMScheduler.from_pretrained(model_ckpt, subfolder="scheduler") pipe = StableDiffusionPanoramaPipeline.from_pretrained(model_ckpt, scheduler=scheduler, torch_dtype=torch.float16) pipe.to('cuda') pipe.enable_xformers_memory_efficient_attention() prompt = 'a photo of mountain range' image = pipe( prompt= prompt).images[0] image.save('result.png')
これだけで冒頭の画像が作成されます。