Stable Diffusion WebUI(AUTOMATIC1111、Forge)で使用できる、LCM-LoRAが公開されたので使い方を紹介します。
- LCM-LoRAの入手方法
- Stable Diffusion WebUIでLCM-LoRAを使う方法・推奨設定
- LCM-LoRAでどの程度高速化されるのか
LCM-LoRAとは
LCM-LoRAは、LCM(潜在的一貫性モデル)の拡張モデルとして登場したLCMのLoRAモデルです。
従来のモデルは生成stepを20~50程度で画像生成していましたが、LCM-LoRAを使用すれば4~8ステップで画像生成できるため、画像生成時間が高速化されます。
また通常のLoRAモデルと同じ感覚で使用できる点もポイントで、さまざまなチェックポイントモデルで高速に画像生成できます。
LCM-LoRAについて詳しく知りたい場合には「論文まとめ:LCM-LoRA: A Universal Stable-Diffusion Acceleration Module」の記事が、日本語でまとめられていて分かりやすいです。
LCM-LoRAを使用するにあたり
この記事ではStable Diffusion WebUIでLCM-LoRAを使用する方法を解説しますが、Stable Diffusion WebUI(AUTOMATIC1111)ver1.6には、LCMに最適なLCM samplerがインストールされていません。
LCM samplerはインストールすることが可能なので、興味のある方は以下の記事を参考にインストールしてみましょう。
また、Stable Diffusion SDXL専用クライアントアプリ「Fooocus」でもLCM-LoRAが使用可能なので、ぜひお試しください。
LCM-LoRAが登場したばかりですが、LCM-LoRAのマージモデルが早くも登場しました。
Stable Diffusion WebUIでLCM-LoRAを使う方法
LCM-LoRAはSD1.5ベースモデル用、SDXL用、ssd-1b用が公開されています。
※ssd-1bは現状のStable Diffusion WebUIでは効果的ではない為、今回テストしていません
LCM-LoRAのダウンロード、インストール方法
以下手順でLCM-LoRAのインストールが可能です。
LCM-LoRAはHugging faceとCivitaiで公開されています。
LCM-LoRAはSD1.5ベースモデル用と、SDXLベースモデル用の2種類が存在するので用途に合わせてダウンロードしましょう。
以下はHugging faceでのダウンロード方法です。
(Civitaiはモデルページにアクセスしてダウンロードボタンを押すだけです)
Hugging faceでのダウンロード方法を確認する
LCM-LoRAページにアクセスしたら任意のモデルページにジャンプします。
lcm-lora-sdxlはSDXLベースモデル用、
lcm-lora-sd1-5はSD1.5ベースモデル用となっています。
モデルページにアクセスしたら、File and versionsをクリックします。
ファイルページが表示されたら、pytorch_lora_weights.safertensorsの右側にあるダウンロードボタンをクリックします。
通常のLoRAモデルとインストール方法は同じです。
「webui」→「models」→「Lora」フォルダにファイルを保存します。
Hugging faceからダウンロードした場合はファイル名がわかりにくいので、「sdxl_lcm.safetensors」などに変更しておきましょう。
(Civitaiのファイルは既にリネームされているので必要ありません)
LCM-LoRAの使い方
LCM-LoRAで画像生成する場合、普段と異なる設定が必要になります。
以下の手順で設定します。
モデル一覧からLCM-LoRAをクリックしてプロンプトに反映します。
LoRAの重みは0.5~1程度がおすすめです。
使用するモデルによって微調整が必要です。
以下設定を行います。
- サンプラーはEuler a
- サンプリングステップ数は4~8
- cfgスケールは1~2
解像度はお好みで問題ありません。
あとは画像生成するだけです。
LCM-LoRAでどの程度高速化されるのか計測してみた
LCM-LoRAを使った際の画質と、画像生成時間をテストしてみました。
(テストで使用したGPUはRTX4070tiです)
SD1.5モデルで画像生成テスト
meinamixを使用してテストしました。
解像度を512×512、バッチカウント5で生成しました。
結果は以下の通りです。
LCM-LoRA有無 | STEP数 | 生成速度 | 生成時間 |
---|---|---|---|
無し | 25step | 9.26it/s | 13.7sec(100%) |
有り | 6step | 8.12it/s | 3.8sec(27%) |
少し生成速度は落ちますが、まさに爆速です。
約4倍の速度で、画像一枚の場合、約0.8秒で生成されています。
生成された画像に問題は無いのか、比較してみました。
左から順に以下の通りです。
- LCM-LoRA無し25step
- LCM-LoRA無し6step
- LCM-LoRA有り6step
LCM-LoRAの効果は凄いですね。十分高画質といえます。
SDXLモデルで画像生成テスト
juggernautXLを使用してテストしました。
解像度を1024×1024、バッチカウント5で生成しました。
結果は以下の通りです。
LCM-LoRA有無 | STEP数 | 生成速度 | 生成時間 |
---|---|---|---|
無し | 30step | 2.61it/s | 59.8sec(100%) |
有り | 6step | 1.29it/s | 24.8sec(41%) |
こちらもSDXLとは思えないほど高速化されています。
画像一枚は、約5秒で生成されました。
次に画像を比較してみます。
左から順に以下の通りです。
- LCM-LoRA無し30step
- LCM-LoRA有り6step
SDXLでも高画質で、十分使える画像が生成できました。
LCM-LoRAを使用した画像のほうが、肌がリアルに見えるね
LCM-LoRAの各設定値の影響を確認
LCM-LoRAを使用する際に設定する、LCM-LoRAの重み、サンプラー、step数、CFGスケールがどのように画像に影響するのか確認しました。
LCM-LoRAの重み
LCM-LoRAの重みを変更して、画像にどのような影響があるのか確認しました。
LCM-LoRAの重みを1.0~0.1まで変化させた結果は以下の通りです。
次に2.0~1.1まで変化させてみました。
この結果を見ると0.4以下は画像がぼやけているので、使えないことがわかります。
重みを大きくした場合は、LoRAが構図に影響してくるので、使うにしても1.2程度が限界でしょうか。
おすすめの値は0.5~1だね
LCM-LoRAで使用するサンプラー
LCM-LoRAを使用する際の、サンプラーの影響を調査しました。
Euler a以外に使えそうなのは、DPM++ 2S a、DPM++ SDE、DPM++ 2S a Karrasでしょうか。
人により印象が異なると思うので、画像から判断頂ければ幸いです。
LCM-LoRA使用時のstep数
LCM-LoRAで画像生成する際の、step数の影響を調査しました。
step1~10まで変化させた結果は以下の通りです。
step3以下は、解像感が悪いので使えませんね。
注目するのは8以上です。
少し変化していますが、画質に関しては、ほぼ変化していませんね。
次に15~50stepまで5刻みでテストしました。
step20以上は構図が大きく変化していくことがわかります。
また書き込み量が減っているようにも見えますね。
以上のことからstep数は4~8がおすすめです。
LCM-LoRAを使用しているのに、step数を20など大きな値にすると、高速化の意味が無くなってしまうから注意してね。
LCM-LoRA使用時のCFGスケール値
LCM-LoRAで画像生成する際の、CFGスケール値の影響を調査しました。
CFGスケールを1~5まで変化させた結果は以下の通りです。
1もしくは1.5の画像が一番高画質に感じますね。
2までは使える印象ですが、2を超えると解像感が落ちていくことがわかります。
ちなみに使用頻度が高い、CFGスケール7の場合は以下のようになります。
7だと全く使えませんね。
以上のことからCFGスケールは1~2がおすすめです。
まとめ
今回は、Stable Diffusion WebUIでLCM-LoRAを使用する方法を紹介しました。
LCM-LoRAなら好みのチェックポイントモデルで使用できる点が良いですね。
LCM-LoRAは簡単に画像生成速度を高速化できるので、
画像生成速度で悩んでいる方は一度お試しください。
LCM-LoRAの使用方法について、動画でも解説しているので合わせてご参考ください。
コメント