週刊アスキー

  • Facebookアイコン
  • Xアイコン
  • RSSフィード

画像生成AI「Stable Diffusion」を爆速化。秒単位で美少女を生成できるLCM系ツールを使い比べた

2023年12月13日 09時00分更新

 生成AIの進歩はマジで早い。Stable Diffusion関連だけでも毎日のように新規手法が発表され、せっかく身につけたスキルも数週間後には完全に時代遅れのものになっていることも珍しくはない。

 中でも、ここ最近もっとも注目されているのは「LCM」だろう。

 LCMとはLatent Consistency Model(潜在一貫性モデル)の略で、大雑把に言えば「画質を多少犠牲にすることで信じられないほど高速化」する仕組みだ。

 さらにStable Diffusion開発元の本家Stability.aiからも、LCMとは異なるが「SDXL Turbo」という高速モデルが発表された。果たしてどれほど早くなったのか、それぞれ検証してみることにする。

LCMってどういう仕組?

 とはいえこれだけでは少し雑すぎるので、もう少し詳しく説明しよう。

 Stable DiffusionはLDM(潜在拡散モデル)という仕組みをベースにしている。これは、ランダムなノイズからスタートし、ノイズを除去するステップを繰り返していくことによって徐々に最終的なデータを構築していく仕組みだ。

Step1の画像

 ステップ数は「Sampling Steps」パラメーターという形でwebUIには実装されている。上記は最初のステップの例。文字通りランダムなノイズだ。

 試しに「Sampling Steps=32」という値で生成し、各ステップの画像を見てみよう。プロンプトはシンプルに「1 girl」だ。

Step1~15

 Step6くらいまではまだノイズ混じり。Step9でようやく美少女が出現している。

Step18~32

 Step15あたりから安定し、Stepを重ねるごとにディテールアップしてきた画像だが、Step27あたりでややガチャガチャしはじめ、Step32では完全に構図が変わってしまった。Step数が多いほどよい結果を得られるとは限らないのだ。

 Step数が増えれば増えるほど生成にかかる時間も増えるため、適正なSampling Step数を指定するのは重要だ。一般的にはデフォルトの「20」周辺に設定している人が多い。筆者も20のままにしている。

 そこでLCMの話しに戻るが、LCMを使用すると画像のクオリティーを維持しつつ、Sampling Step数を8程度まで下げられるため、結果的に描画速度が劇的に高速化されるということらしい。果たしてそんなにうまくいくのだろうか。

LCM Extensionを利用する

 Stable Diffusionのインターフェース「webUI」でLCMを試すには複数の方法があるが、まずは一番手軽な拡張機能「sd-webui-lcm」を利用する方法からスタートしよう。

GitHubレポジトリのURLを入力してインストール

 webUIを起動したら、上部に表示されるタブ一覧から「Extensions」>「Install from URL」をクリックし、一番上の「URL for extension's git repository」欄に下記のURLを入力し、「Install」をクリックする。

https://github.com/0xbitches/sd-webui-lcm

 インストールが終わったら「Installed」タブに切り替える。

「sd-webui-lcm」を確認

 「sd-webui-lcm」が追加されていることを確認したら、「Apply and restart UI」をクリックして、webUIをリスタートしよう。

 画面上部に「LCM」タブが表示されているのでクリック。デフォルトでは「LCM txt2img」が選ばれている。

 それでは、いつものようにプロンプト「1 girl」で生成してみよう。初回のみ少し時間はかかるが、2回目以降は7〜8秒(RTX4070 12GB)で生成が完了した。しかも4枚である。1枚単位の生成速度で言えば2秒を切っている!

 拡大してみたが、まあまあのクオリティだ。これはすばらしい。

Advanced Option

 画面下部の「Advanced Option」をクリックすると、詳細な設定画面が開く。画像解像度や生成枚数などをコントロールできるようだ。

 ただし、このExtensionを使う方法で現在利用可能なモデルは専用に作られた「LCM_Dreamshaper_v7」のみとなっており、基本的に似たような雰囲気の画像しか作成できなくなっているようだ。

 また、筆者の環境では「img2img」「vid2vid」を試すとエラーがでてしまった。おそらくビデオメモリーが足りないようだ。

この記事をシェアしよう

週刊アスキーの最新情報を購読しよう

本記事はアフィリエイトプログラムによる収益を得ている場合があります

この連載の記事