Blog

Stable Diffusionを使ってみました

画像生成AIの話題です。7月下旬から当サイトの更新が滞っていたのは,これにはまっていたからです。この記事のアイキャッチ画像はStable Diffusionで生成したものを加工しています。

きっかけはネットで見たAIが生成した画像でした

 何気なく見ていたネット上の画像が実はAIで作られたものであることを知り,とても驚きました。画像生成AIの存在は知ってはいましたが,これ程のものが作れるのであればちょっと試してみたいなと思った次第です。

環境構築①MacBook ProでEasy Diffusion

 まずはMacで環境構築しようと考えました。できるだけ簡単にしたかったので,Easy Diffusionというアプリ(UIはブラウザを利用)を使うことにしました。

基本的な環境構築は参考にしたWebサイトに記載している通りでできましたが,とにかく時間がかかりました。一番驚いたのは,ストレージを半端なく消費することで,軽く30GBくらいは使っていると思います。

Easy Diffusion実行中の画面です

Easy Diffusion実行中の画面です。

Easy Diffusionで画像生成

 環境構築も無事に済ませて起動画面にたどり着いたので,いざ画像生成してみました。生成される画像は,拡大して細部を見るとうまくできていない部分はあるものの,なかなかの出来映えでした。問題は1枚の画像生成に結構な時間がかかることです。私のMacBook ProはIntel MacなのでGPUを利用することができず,すべてをCPUで処理するために時間がかかるようです。512x768ピクセルの画像を生成するのに12分30分程度かかりました。(この記事のために久しぶりにMacで画像生成をしたところ,30分かかりました。12分というのは何の記憶?)

MacBook Proで30分かけて生成した画像です

MacBook Proで30分かけて生成した画像です。

環境構築②WindowsPCでEasy Diffusion

 これでは実用的でないため,何とかならないものかと思案し,MacBook Proよりも少し新しいWindowsPCで環境を構築することにしました。第9世代Core i7でメモリ16GB,GPUにNVIDIA GeForce1650(4GB)を使っている,Stable Diffusionが使える最低限スペックのノートPCです。

Macと同じように簡単に環境構築できるEasy Diffusionをインストールしました。

Easy Diffusion実行中の画面です

Easy Diffusion実行中の画面です。Mac版と同じUIです。

GPUのパワー炸裂!画像の生成時間が短縮されました

 気になる画像生成時間は2分程度に短縮されました。GPUメモリ4GBはぎりぎりのスペックですが,さすが対応GPUを搭載したPCは違いますね。この環境で色々画像を生成して実験していました。

Windows版のEasy Diffusionで生成した画像です

Windows版のEasy Diffusionで生成した画像です。

環境構築③WindowsPCでWebUI(Automatic1111)

 しばらくEasy Diffusionではまりこんで画像生成していましたが,拡張機能というものが使えないなど,できないことが気になり始めたので,Web上の記事も多いWebUI(Automatic1111)を使うことにしました。Easy Diffusionと同じくらいの難易度で環境構築できる方法が説明されていたWebサイトの記事を参考にしてインストールしました。torchというプログラムをダウンロードするのに何回も失敗して,やり直しましたが,何とか使えるようになりました。

WebUI(Automatic1111)実行中の画面です

WebUI(Automatic1111)実行中の画面です。

画像生成にかかる時間は,Web上の記事をたくさん参考にして環境設定をして,最速で2分程度になりました。

WebUI(Automatic1111)で生成した画像です

WebUI(Automatic1111)で生成した画像です。

Easy DiffusionとWebUIを使ってみて

  • 私が使っているPCはStable Diffusionが使える最低限スペックのノートPCのため,画像生成は512x768ピクセルで行なっています。これだと解像度が不足するのでアップスケールという機能を使ってピクセル数を増やす処理をします。Easy Diffusionは画像生成時アップスケールすることが可能で,アップスケール処理をしても生成時間が変わらない感じでよかったです。WebUIは最初やり方がわからなくて愕然としていましたが,色々調べてExtrasというタブでアップスケールできることを知りました。私の環境では4倍にするときは30秒程度かかります。
  • Easy Diffusionは標準機能で学習モデルやプロンプト(画像生成をするためのキーワード)を変更して2つ目,3つ目の画像生成指示を出すことができるので,たくさん画像を生成したいときに便利です。Web UIは標準機能ではできないようで,拡張機能を利用することで可能になるみたいです。(要確認)
  • 同じ学習モデルを使って画像を生成したところ,Easy DiffusionとWebUIで生成される画像の印象が異なるようです。当たり前なのかもしれませんがちょっと驚きました。検証も兼ねて,この記事中にある生成画像はすべて設定を同じにしています。Easy Diffusionで生成した2枚は同じ感じですが,WebUIで生成したものとは印象が異なります。
  • 上記の生成される画像の印象が異なる件ですが,ターミナルの情報などを確認したところ,利用しているStable Diffusionのバージョンが異なるようで,Easy Diffusionはバージョン2.1,WebUIはバージョン1.5でした。この違いが原因かもしれません。後日,WebUIのバージョンを2.1にアップデートして再検証したいと思います。(この点については私の勘違いで,ターミナルに表示されていたのはWebUIやEasy Diffusionなど,フロントエンドのアプリのバージョンのようでした。利用するアプリによって,生成される画像にも違いがでるのかもしれません。)
  • 私が使っているPCではWeb UIの方ができることが多いです。Easy Diffusionでは利用できなかった拡張機能やText Inversion,img2imgなどが使えるようになりました。(Text Inversionとimg2imgは機能としては実装されていますが,私が使っているPCのGPUのメモリが足りないために利用できないようです。拡張機能に関してはバージョンアップでControlNetという便利な拡張機能が使えるようになるなど,限定的ですが対応してきているようです)
  • WebUIの方がWeb上の情報が多く,つまづいたときに助けられることが多いです。私が使っているPCはStable Diffusionが使える最低限スペックのノートPC(しつこい)なので,起動時にGPUにどのくらい作業させるかの設定がポイントのようでした。現在は拡張機能を使うときと使わないときでGPUの負荷を変えて起動するようにバッチファイルを作成しています。

これははまりますね

 本来の目的である画像生成だけでなく,環境構築や設定,さまざまな機能の使い方など,この2週間かなりはまり込んでいる状態です。色々やってみて,MacBook Proを画像生成に使うのは実用的でないのでやめようと思います。M1/M2のMacにネイティブ対応したStable Diffusionもあるようで,これだけのためにM2プロセッサ搭載のMacが欲しくなってきました。

WindowsPCで利用する環境はStable Diffusionのバージョンを2.1にアップデートし,画像生成の指示を複数出すことができるようにして,WebUIに一本化する予定です。できることが多いこと,Web上の情報が多いことが選んだ理由です。当サイトのBlogにも新たにStable Diffusionカテゴリを作りましたので,今後も記事を書いていきます。

この記事へのコメント

コメントはまだありません。

コメントを送る

必須
必須  
※ メールアドレスは公開されません
任意
必須
Loading...  画像の文字を入力してください
1
2
3
4
5
6
7
8