こんにちは!サキナオコです!^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版だと大丈夫だとのこと。







コメントを残す