img2imgやってみる-GoogleColabでStable Diffusion

こんにちは!サキナオコです!^o^
今日ちょい寒ですね。

GoogleColabでStable Diffusionをやっていて、
読みこんだイメージを元に画像作成するのをやってみたくなりました。

いろいろ調べて、以下が動きました。

最初からコード入れます。忘れっぽい自分のために。

接続→どうやら朝9時過ぎ位から夕方位までColab混んでいるのか

“GPU バックエンドに接続できません
Colab での使用量上限に達したため、現在 GPU に接続できません。”

と出る。アメリカが夜になってきたから?
朝早くか、夜使えばいいかも。無料だからねえ。

★基本の読み込み

!pip install diffusers[torch]==0.8.1 transformers
from diffusers import DiffusionPipeline
import torch
from datetime import datetime
pipe = DiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5",
torch_dtype=torch.float16, revision="fp16").to("cuda")

Google drive をマウントしておく

★生成画像をドライブへ保存できるようにする

import os
os.chdir('/content/drive/MyDrive/保存したいフォルダ名')

★元画像の読み込みと画像作成

from PIL import Image
from torch import autocast

# 入力画像から画像生成
init_image = Image.open("/content/drive/MyDrive/元画像名.png").convert("RGB")
prompt = "お好きなプロンプト"
with autocast("cuda"):
    images = pipe(
        prompt=prompt,          # プロンプト
        init_image=init_image,  # 入力画像
        strength=0.2,          # 入力画像と出力画像と相違度 (0.0〜1.0)
        guidance_scale=7.5,     # プロンプトと出力画像の類似度 (7〜11)
        ).images
images[0].save("保存名.png")

↓元画像関係なしですが、よく使っているので一応入れます。

★ネガティブプロンプトを入れて3枚作成

prompt = "お好きなプロンプト" 
#ネガティブプロンプト
n_prompt = "入れたいネガティブプロンプト"
#生成枚数
num_images = 3

#画像を生成
for i in range(num_images):

  #推論を実行
  image = pipe(prompt, negative_prompt=n_prompt).images[0]
  date = datetime.now().strftime("%Y%m%d_%H%M%S")
  path = date + ".png"

  #画像を保存
  image.save(path)

あー、そっかあ、元画像を読みこんでネガティブプロンプト入れて3枚っていうのもできるかも。

あとでやってみよっと。出かけるので結局夕方以降になりそう。

追記:2023年4月からGoogle colab無料版でstable diffusionを使うと警告が出て利用ができなくなったようです。Pro版だと大丈夫だとのこと。


Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


こんにちは!サキナオコです^o^
ごゆっくりどうぞ!

最近の投稿

2023年3月
 12345
6789101112
13141516171819
20212223242526
2728293031  

Categories

Search the website

サキ ナオコのアバター