AI

低スペックPCでもStableDiffusionで類似画像を作る

  • このエントリーをはてなブックマークに追加
  • LINEで送る

Stable DiffusionのWebUIで画像生成が簡単にできちゃいます。
しかし、PCスペックが足りずにWebUIが
導入できずにお悩みのあなた。
解決策として、GoogleColabでWebUIを使う方法があるけど月額課金が発生してしまう現実が…

そこで今回は、
GoogleColabでライブラリを使用した無料で類似画像を生成する方法をお伝えします!

「WebUIが使用できるPCの最低スペックは?」

「スペックの低いPCで類似画像を生成する方法は?」

こんな疑問に答えます。

SE歴25年のオッサンが解説するぞい!
SEおっさん
SEおっさん

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を確認する方法

  1. タスクバーを右クリックしてタスクマネージャを開く
  2. 左のグラフのようなパフォーマンスタブを開く



スポンサーリンク

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へ変更します。

GoogleColaboratoryのGPU変更法!注意点は1つ
GoogleColaboratoryのGPU変更法!注意点は1つ
皆さん、こんにちは! GoogleColaboratoryはGPUを無料で使用できるのでスゴイですよね。 でも… 『どうやって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の略)

SEおっさん
SEおっさん
パイプラインは画像生成する機械と思ってくれぃ
機械が利用するモデルが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'

SEおっさん
SEおっさん
プロンプトを和訳するとブドウの漫画。
日本語は対応できないことが多いぞい。

画像の生成

generator = torch.Generator(device = device).manual_seed(seed)
img = pipe(prompt = prompt, image = init_img, generator = generator).images[0]
img

上の画像がコードを実行して生成した画像です。確かに漫画チックな類似画像が生成できていますね。

下の画像がアップロードした元の画像です。

元の画像と見比べてみるとこんな感じです。

 

SEおっさん
SEおっさん

更にネガティブプロンプトを利用すると変な画像の抑止できるぞい。
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の使い方ってどうすんの?』という方は、こちらもどうぞ!

やさしいGoogleColaboratoryの使い方【5つの基本】
やさしいGoogleColaboratoryの使い方【5つの基本】
こんにちは! 社内でAI技術力がある奴と思われたら… イチモク置かれる存在となるので、降格や左遷のブラックリストに載りにくいですよね。 (もちろん、昇格するチャ.....

 

本記事では伝えきれないことも数多くありました。
もう少し詳細を知りたい場合は、下記のココナラを覗いてみてね。
AIの画像生成方法を教えます~一緒にStable Diffusionで画像生成しよう~

SEおっさん
SEおっさん
ここまで読んでくれてありがとう!

「記事を読んでもわからないトコがある」「内容が変だよ」
という時は、お気軽にコメントください♪

「もっとSEおっさんに詳しく聞きたい。何かお願いしたい!」
という時は、ココナラまで。メッセージもお気軽に♪

LINEでのお問合わせも受付中!
LINE公式アカウント

メッセージをお待ちしています!

取得資格
  • 応用情報技術者
  • Oracle Master Gold
  • Java Silver SE
  • Java EE Webコンポーネントディベロッパ
  • Python エンジニア認定データ分析
  • 簿記2級


スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • LINEで送る

コメントを残す

*