Stable Diffusionの3つめの記事になります。
古いバージョンは、以下を参照してください。
colabから始めます。新規のノートブックを作成します。
(colabの無料版だとメモリが足りなくてエラーになり画像生成ができないです)
編集 => ノートブックの設定 からGPUに変更します。
GPUにしていない場合に、こちらのエラーが出ます。
RuntimeError Traceback (most recent call last)
<ipython-input-2-cad0eb10b41b> in <module>
5
6 pipe = StableDiffusionPipeline.from_pretrained(model_id, revision='fp16', torch_dtype=torch.float16)
----> 7 pipe = pipe.to('cuda')
5 frames
/usr/local/lib/python3.8/dist-packages/torch/cuda/__init__.py in _lazy_init()
227 if 'CUDA_MODULE_LOADING' not in os.environ:
228 os.environ['CUDA_MODULE_LOADING'] = 'LAZY'
--> 229 torch._C._cuda_init()
230 # Some of the queued calls may reentrantly call _lazy_init();
231 # we need to just return without initializing in that case.
RuntimeError: No CUDA GPUs are available
以下のコマンドを入力します。
!pip install --upgrade git+https://github.com/huggingface/diffusers.git transformers accelerate scipy
以下が出たら完了です。
Successfully installed accelerate-0.15.0 diffusers-0.13.0.dev0 huggingface-hub-0.12.0 scipy-1.10.0 tokenizers-0.13.2 transformers-4.26.0
以下のコマンドを入力します。
import torch
from diffusers import StableDiffusionPipeline
model_id = 'stabilityai/stable-diffusion-2'
device = "cuda"
pipe = StableDiffusionPipeline.from_pretrained(model_id)
pipe = pipe.to(device)
以前あった、TOKENの入力等は不要になっています。
1.5の時の出力結果と比較していきます。
prompt = "cute cat paly with ball"
image = pipe(prompt)["sample"][0]
image.save(f"cat.png")
無料版だと以下のエラーがでて実行できませんでした。。。。
PRO版にアップグレードしないと厳しそうですね。
---------------------------------------------------------------------------
OutOfMemoryError Traceback (most recent call last)
<ipython-input-4-0ca005f4d8df> in <module>
1 prompt = "cute cat paly with ball"
----> 2 image = pipe(prompt, height=512, width=512)["sample"][0]
3 image.save(f"cat.png")
13 frames
/usr/local/lib/python3.8/dist-packages/diffusers/models/cross_attention.py in get_attention_scores(self, query, key, attention_mask)
220 attention_scores = attention_scores.float()
221
--> 222 attention_probs = attention_scores.softmax(dim=-1)
223 attention_probs = attention_probs.to(dtype)
224
OutOfMemoryError: CUDA out of memory. Tried to allocate 640.00 MiB (GPU 0; 14.76 GiB total capacity; 12.64 GiB already allocated; 189.88 MiB free; 13.33 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF
Notion AIによるまとめ
- 「Stable Diffusion 2.0」というアルゴリズムが開発された。
- このアルゴリズムは、金融市場において重要な役割を果たす。
- より高速で正確な分析が可能になり、取引の精度が向上する見込みがある。