SDXL系・Pony系を高速化する方法【LCM&TurboMix LoRA】|Stable Diffusion
前回はSDXL系・Pony系の使い方についてですが、画質や解像度が上がるぶん、処理にも時間がかかってしまいます。
とくにノートPCだと、RTX3060でも1枚つくるのに分単位でかかったりします。
他のサイトで「pytorch_lora_weights.safetensors」でできるらしいことが書かれていたのですが、筆者のノートPC(RTX3060)の環境ではうまくいきませんでした。
それでいろいろ探して試したところ、「LCM&TurboMix LoRA」というLoRAが機能して高速化に成功しましたので、今回はその使い方についてわかりやすく解説していきます。
LCM&TurboMix LoRAの導入と使い方
すでにSDXL系・Pony系のモデルを導入し、LoRAの使い方など基本的なStable Diffusion(以下「SD」)の操作方法がわかるという前提で話をします。
導入方法
他のLoRAとおなじで、ファイルをダウンロードしてLoRAフィルダに入れるだけです。
上記のサイトからファイルを落とし(筆者が落としたのは「Euler a.fix」)、SDをインストールしたフォルダの
stable-diffusion-webui\models\Lora
に入れればOKです。
使用方法
他のLoRAと使い方はおなじです。モデルはとりあえず前回紹介したSDXL系の「Animagine XL V3.1」を使ってみてください。これで動作確認しています。Pony系だと動かない(画像が変になる)場合があります。
ポジティブプロンプトにLoRAを記述し(<lora:LCMTurboMix_Euler_A_fix:1> )、重みは1のままにします。
あとは以下のように設定してください。
Sampling method:Euler a
Sampling steps:8
CFG Scale:2
ようするになんで高速化するかというと、少ないSampling stepsで描画できるからです。普通だったら25とか30とか必要なところが8になるので、単純にそのぶん時間が少なくなるわけです(たぶん)。
Clip skipは1でも2でも好きなほうで。どっちも試しましたが、画像に変化はありませんでした。Clip skipの意味がわからない方は前回の記事を参照してください。
あとは普通にいつものように生成すればいいだけです。
ただ注意してほしいのは、初起動時の1回目は生成が遅いです。2回目、3回目以降から生成が速くなります。
ちなみに筆者のようにノートPCなどかつかつな環境で作業をしている方は、生成時にべつのことをしないほうがいいです。メモリ不足でエラーが起こったりしますので、生成時はなにもしないほうがいいでしょう。
具体的にどれぐらい速度が変わるのかですが、普通にやったら1枚2分(Sampling steps:25)ほどかかっていたものが40秒前後まで短縮しました(1回目は2分ぐらいかかります)。
それと生成される画像ですが、普通に生成するものとはちょっと画風が違う感じはありますね。おなじシード値の画像をそのまま高速化できるわけではないので、そこは注意してください。
それと高速化によって利かなくなるLoRAも出てくるようなので、そのあたりも注意しておくといいでしょう。
他の方法
このLoRAでうまくいかなかった場合は、以下のLoRAで試してみてください。やり方自体はおなじです。
pytorch_lora_weights.safetensors
(筆者の環境でうまくいきませんでした)
https://civitai.com/models/195519/lcm-lora-weights-stable-diffusion-acceleration-module
(SD1.5用のものもありますが試していません)
まとめ
高速化は、筆者のようなノートPCなど非力な環境ではだいぶ助かります。生成時間が長いものほど、短縮効果は大きくなりますしね。
SDXL系やPony系でいろいろ作ってみたいけど、PCの性能が足りなくて時間がかかりすぎるので心が折れたみたいな方は、ぜひとも使ってみてください。