Stable DiffusionのWebUIで画像生成が簡単にできちゃいます。
しかし、PCスペックが足りずにWebUIが導入できずにお悩みのあなた。
解決策として、GoogleColabでWebUIを使う方法があるけど月額課金が発生してしまう現実が…
そこで今回は、
GoogleColabでライブラリを使用した無料で類似画像を生成する方法をお伝えします!
「WebUIが使用できるPCの最低スペックは?」
「スペックの低いPCで類似画像を生成する方法は?」
こんな疑問に答えます。
WebUIが使用できる最低・推奨スペック
類似画像を生成するには、Stable DiffusionのWebUIがグラフィカルな画面なため使いやすいです。
PCでWebUIを使えれば良いのですが、スペックを満たす必要があります。
PCでStable DiffusionのWebUIで画像を生成するために必要な、最低・推奨スペック。
(厳密に計測したわけでないので、参考値としてください)
- CPU:6コア以上
- メモリ(RAM):最低16GB 推奨32GB以上
- GPUメモリ(VRAM): 最低8GB 推奨16GB以上(MacはM1チップ以上)
- ストレージ(SSD):512GB以上
- OS:Windows ・Mac・LinuxいずれもOK
WindowsでGPUを確認する方法
- タスクバーを右クリックしてタスクマネージャを開く
- 左のグラフのようなパフォーマンスタブを開く
StableDiffusionのWebUIを使用するケース
最低スペックを満たす場合は、PCにStableDiffusion WebUIを導入できます。
→参考サイトはこちら(SpecialThanks!)
最低スペックを満たせなくても、GoogleColabでWebUIを導入できます。
しかし、月額課金が発生しまうのが欠点。
→参考サイトはこちら(SpecialThanks!)
WebUIで類似画像を簡単に生成することができます。
→参考サイトはこちら(SpecialThanks!)
GoogleColabのDiffUsersで類似画像を生成する手順
では、いよいよ低スペックPCでも無料で類似画像を生成する方法です。
GoogleColabでStableDiffusionのDiffusersライブラリを使用します。
WebUIのような画面は無く、プログラムを実行するので少し難しいように思うかもしれませんが、やってみれば意外と簡単ですよ。
Stable DiffusionのDiffusersライブラリでimage to imageを使用して類似画像を生成する手順です。
Google ColabへログインしてGPUへ変更
Google Colabへログインはコチラ
ログインしたらランタイムをGPUへ変更します。
元の画像をアップロード
元の画像をGoogleColabにアップロードします。
↓アップロードする方法はこちら
GoogleColabへファイルアップロード【アイコン押すだけ】
今回は次のようなブドウの画像をアップロードしました。
ライブラリのインストール(diffusersなど)
diffusersなどのライブラリをインストールします。
#gitに格納されたhuggingfaceのdiffusersをインストール !pip install -qqq git+https://github.com/huggingface/diffusers.git #transformers accelerate ftfy bitsandbytes gradio natsort safetensors xformersをインストール
!pip install -q transformers accelerate ftfy bitsandbytes==0.35.0 gradio natsort safetensors xformers
Img2ImgPipelineのパイプラインの作成
StableDiffusionImg2ImgPipelineは初期画像を元に新しい画像を生成するクラスです。
(Img2ImgはImageToImageの略)
機械が利用するモデルがstable-diffusion-v1-5という意味じゃ。
差替えて他のモデルも利用できるぞい
import torch from diffusers import StableDiffusionImg2ImgPipeline device = "cuda" pipe = StableDiffusionImg2ImgPipeline.from_pretrained("runwayml/stable-diffusion-v1-5", torch_dtype=torch.float16) pipe = pipe.to(device)
#仮のseed値を設定(これを変えると生成画像も変わる) seed = 50
パイプラインのメモリ使用量を抑える
pipe.enable_attention_slicing()
pipe.enable_xformers_memory_efficient_attention()
画像の読み込み
from PIL import Image
init_img = Image.open('/content/grapes.jpg')
init_img.thumbnail((443, 640))
init_img
プロンプトの作成
プロンプトは生成する画像の内容の指定です。
今回は「ブドウの漫画」をプロンプトに設定しました。
prompt = 'Grapes Cartoon'
日本語は対応できないことが多いぞい。
画像の生成
generator = torch.Generator(device = device).manual_seed(seed)
img = pipe(prompt = prompt, image = init_img, generator = generator).images[0]
img
上の画像がコードを実行して生成した画像です。確かに漫画チックな類似画像が生成できていますね。
下の画像がアップロードした元の画像です。
元の画像と見比べてみるとこんな感じです。
更にネガティブプロンプトを利用すると変な画像の抑止できるぞい。
pipeメソッドの引数に追加でOKじゃ
プロンプト(pronpt)…生成したい内容
ネガティブプロンプ(negative_prompt
)トには生成して欲しくない内容
を書きましょう。
プロンプトもネガティブプロンプトもカンマ区切できます。
以下、ネガティブプロンプトを利用した例です。
neg_prompt = "bad art, beginner"
img = pipe(prompt = prompt, negative_prompt=neg_prompt, image = init_img, generator = generator).images[0]
img
まとめ
いかがだったでしょうか?
今回は低スペックPCでもGoogleColabでライブラリを使用することで、無料で類似画像を生成する方法をお伝えしました。
順番に実行すれば、意外と簡単だったのではないでしょうか? 工夫すれば似顔絵などもできますが、肖像権などにはくれぐれも注意してご利用ください。
『GoogleColabの使い方ってどうすんの?』という方は、こちらもどうぞ!
本記事では伝えきれないことも数多くありました。
もう少し詳細を知りたい場合は、下記のココナラを覗いてみてね。
AIの画像生成方法を教えます~一緒にStable Diffusionで画像生成しよう~
「記事を読んでもわからないトコがある」「内容が変だよ」
という時は、お気軽にコメントください♪
「もっとSEおっさんに詳しく聞きたい。何かお願いしたい!」
という時は、ココナラまで。メッセージもお気軽に♪
LINEでのお問合わせも受付中!
LINE公式アカウント
メッセージをお待ちしています!
- 応用情報技術者
- Oracle Master Gold
- Java SE Gold
- Java EE Webコンポーネントディベロッパ
- Python エンジニア認定データ分析
- 簿記2級