0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Stable Diffusion】M1 MBAでimg2imgを動かす

Posted at

はじめに

Stable Diffusionのimg2imgで絵力(えぢから)を身につけた気分になりたい。
虎と狐のなんとやらだ。

ファイルの編集

img2img

img2img.py
@@ -40,7 +43,8 @@ def load_model_from_config(config, ckpt, verbose=False):
         print("unexpected keys:")
         print(u)
 
-    model.cuda()
+    # model.cuda()
+    model.to("mps")
     model.eval()
     return model

@@ -200,13 +208,29 @@ def main():
     model = load_model_from_config(config, f"{opt.ckpt}")
 
-    device = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu")
+    # device = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu")
+    device = torch.device("mps") if torch.backends.mps.is_available() else torch.device("cpu")
     model = model.to(device)

pytorch

python3.10/site-packages/torch/nn/functional.py
@@ -2503,7 +2503,7 @@
-     return torch.layer_norm(input, normalized_shape, weight, bias, eps, torch.backends.cudnn.enabled)
+     return torch.layer_norm(input.contiguous(), normalized_shape, weight, bias, eps, torch.backends.cudnn.enabled)

結果

7回(世代)繰り返した。
1枚あたり生成時間は20分くらい。

入力

プロンプト

PYTORCH_ENABLE_MPS_FALLBACK=1 python scripts/my_img2img.py --prompt "A gray cat looking at me is standing in front of a tree with green leaves on light green grass under the blue sky" --init-img INIT_IMG_PATH --strength 0.6 --n_samples 1

素晴らしい灰色の猫と木の絵

input1.jpg

出力画像

赤枠がそれぞれの世代で選んだもの。それを次の世代の入力にした。
ときどき、生成に失敗するのか黒い画像が生成された。

16.jpg
22.jpg
28.jpg
34.jpg
40.jpg
46.jpg
52.jpg

まとめ

えらいフォトリアルな絵になった。
タッチの指定をプロンプトに入れたほうが良かったかもしれない。

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?