「Stable Diffusionの軽量版、画像生成のスピードアップ版が欲しい!」 そうした要望をお持ちの方も多いことでしょう。
Stale diffusionは画像を生成するスピードやメモリ節約などの面で動作を軽量化する方法が存在します。
今回PROMPTYでは画像生成を効率的に行うための3つの方法をご紹介していきます。
そもそもStable Diffusionとは?
「Stable Diffusion」という画像生成AIは、テキスト入力を通じて多様なイメージを生成することができるツールです。
例えば、「金髪と青い瞳を持つ女性」とか「公園で楽しむ少女」といったイメージの説明を英語で簡単に入力するだけで、対応するイメージが自動生成されます。
このツールは無料で提供されており、そのコードはオープンソースとして一般に公開されています。
詳しい解説や使い方については以下の記事をご参照ください。
Stable Diffusionは、ユーザーがテキストを入力するだけで様々な画像を生成することが可能なAIモデルです。 今回PROMPTYでは、Stable Diffusionとは何か、Stable Diffusionの利用方法、S[…]
Stable Diffusionの軽量化には様々な方法がある
Stable Diffusionを軽量化する方法は一つではなく、その方法は様々です。主流なものとして、
- Google Colaboratory等の環境を使用する
- モデルを軽量化する拡張機能を使用する
- モデルそのものを軽量化する
等が挙げられます。
Stable Diffusionを軽量化するメリットを2つ紹介
上ではGoogle Colabを使用してStable Diffusionを快適に利用する方法をご紹介しましたが、ここからはモデルを軽量化する方法について解説していきたいと思います。
①ファイル容量を抑えることができる
(prunedではない)モデルのファイル容量は通常4〜8GB程度です。
無計画に多くのモデルをダウンロードし続けると、どれだけストレージ容量があっても足りなくなる可能性があります。もちろん、「必要なモデルを選ぶ」方法もありますが、どのモデルが最適かは実際にイラストを生成してみないと分からないことです。
そのため、各モデルの容量を小さくすることは重要です。
通常、各モデルは約2GBまで容量を削減できるため、元のサイズの半分から1/3程度で済むことが多いです。
②読み込み時間を短縮することが出来る
Stable Diffusionの軽量化により、Stable Diffusionの起動時およびモデルの切り替え時における読み込み時間を効果的に短縮することが可能です。
大きなモデルを使用すると、待ち時間が長くなることがあります。
もし読み込むファイルのサイズが7GBの場合と2GBの場合を比較すると、前者の場合にはより多くの時間がかかるのは当然のことです。
モデルの切り替えを頻繁に行うユーザーにとっては、特に大幅な時間短縮が期待できるでしょう。
非ローカル環境でStable Diffusionを使用する方法を紹介
①Google ColaboratoryでStable Diffusionを使用する
Google Colaboratory、通称「Colab」は、手軽にPythonコーディングを行い、そのままブラウザ上で操作可能な、Google提供の便利なサービスです。
さらに、画像生成AIを扱う場合もColabを活用できます。特にPythonをベースとしたStable Diffusionなどのツールは、Colab上でスムーズに動作します。高性能なPCが必要とされるAIの処理も、Colabを利用することで、高スペックのPCを持たない多くの人々にとって手軽な解決策となっています。
導入方法について詳しくは以下の記事で解説しています。
「Stable Diffusionを使用したいが、どのように始めれば良いのだろう...」「低スペックPCでもStable Diffusionを使用できるの?...」 そう思う方もいるのではないでしょうか。 実は、高性能なPCを持っ[…]
②FooocusでStable Diffusionを使う
Stable Diffusionを操作できるWeb UIは多く存在します。しかし、これらのツールのインストールや設定が非常に複雑であるため、多くのユーザーが導入するのをためらっています。
そこで、この問題を解決するために、2023年7月26日にリリースされた次世代のStable Diffusion XL(SDXL)用の専用ツール「Fooocus」が登場しました。Fooocusを使用すると、わずか一回のクリックで簡単に起動できます。
SDXLは、前バージョンのStable Diffusion 1.5と比較して、学習ベースの解像度が向上し、生成される画像の品質も大幅に向上しています。FooocusはSDXLに特化しており、非常にシンプルな操作性を備えています。これを使えば、高品質な画像を簡単に生成できます。
参考:PC Watch
動作を軽量化する拡張機能「model-toolkit」の導入方法を解説
拡張機能「model-toolkit」はモデルの余分なデータを消去して軽量化をしてくれる拡張機能です。
導入は簡単で、Stable Diffusionを起動した後に、『Extensions』 → 『Install from URL』のタブを選択し、以下のURLを入力します。
https://github.com/arenasys/stable-diffusion-webui-model-toolkit
使用方法も簡単で、導入が完了すると画面に「Toolkit」のタブが表示されますので、ここをクリックしてモデルをロードした後に「Save」をクリックすることで軽量化したモデルを作成することが出来ます。
このモデルを導入した際に、生成されるモデルの質が落ちる事が懸念されますが、実際に画像を生成して検証してみます。
今回検証に使用するモデルは「BasilMix」です。
プロンプト
1girl, black hair, gradient hair, frontal face, wallpaper,
ネガティブプロンプト
(worst quality, low quality:1.4), (zombie, sketch, comic), nsfw,
上のように、ほとんど画像に変化は現れませんでした。
xformers機能を使用してStable Diffusionを軽量化する方法を解説
上で紹介したものの他にも、Stable Diffusionを高速化することが出来る「xformers」という機能が存在します。
これは、画像生成のプロセスを最適化することで、画像生成速度を大幅に向上させながら、VRAMの消費を抑えられる機能です。
詳しくは以下の記事で解説していますので参考にしてみてください。
「Stable Diffusionの画像生成に時間がかかってしまう、、、」「Stable Diffusionの画像生成を高速化したい!」 このような悩みをお持ちの方は多いのではないでしょうか? 今回PROMPTYでは、Stab[…]
まとめ
今回PROMPTYでは、Stable Diffusionとは何か、Stable Diffusionを軽量化するメリット、Stable Diffusionを軽量化する方法について解説しました。
Stable Diffusionの軽量化には様々な方法があるので、皆さんもぜひ試してみて下さい。
PROMPTYでは他のStable Diffusionに関する解説も行っているので、参考にしてみて下さい。
~Stable Diffusionで素早く画像生成するには~
Stable Diffusionの画像生成スピードや画像サイズは、グラフィックボード(GPU)の性能によって大きく変わります。
このため、より効率的かつ快適な画像生成を望むユーザーにとって、最適なグラフィックボードの選択が重要となります。
推論処理やLoRAなどの追加学習処理といった大量の計算を効率よく行うためには、12GB以上のVRAMを持つグラフィックボードを選ぶことを強くおすすめします。
2GBや4GBのVRAMを持つグラフィックボードでは、学習プロセスや高解像度の画像生成に支障が出る可能性が高いです。
コスパを重視する方は、RTX 3060を選ぶと良いでしょう。
このグラフィックボードを使えば、Stable Diffusionの画像生成機能を最大限に活用することが可能となります。