ジャコ Lab

プログラミング関連のメモ帳的ブログです

AnimateLCM の出力では LCMScheduler とか大事!

偶然ですが、 AnimateLCM を触っていて気付いたことがあります。

LCMScheduler 大事!」

たぶんこれは、 AnimateDiff だけじゃなくて LCM 系で重要な気がしてきます。

他の LCM はまだ触っていないので知らんけど

少なくとも diffusers v0.22.0 で紹介されていた LCM のモデルでは LCMScheduler が使われていそうでした。

LCM (Latent Consistency Models) の振り返り

リリースノートを見る限りだと、4ステップでかなり品質の高い画像が出力されています。

つまり、僅かなステップで高品質な動画が出力されるもののようです。

その中でも AnimateLCMAnimateDiff 向けの Latent Consistency Models ということのようです。

前提

MeinaMix のモデルを試すときは、いつも DPM++ 2M Karras 相当の DPMSolverMultistepScheduler(use_karras_sigmas=True) を使っています。

これを試していて気付いた!

LCMScheduler と DPMSolverMultistepScheduler で試した結果

以下のような結果に現れました

LCMScheduler で出力した絵DPMSolverMultistepScheduler(use_karras_sigmas=True) で出力した絵
(左) LCMScheduler | (右) DPMSolverMultistepScheduler(use_karras_sigmas=True)

AnimateLCM では guidance_scale=1.5 も重要だった

通常のパイプラインで使われている guidance_scale のデフォルト値は 7.5 だと思います。
AnimateLCM のコードでは 1.5 になっていることに気づき、7.5 を指定してみました。

guidance_scale=7.5 で出力した絵
guidance_scale=7.5 で出力した AnimateLCM

絵らしいものが出なくなった!

まとめ

パラメータをいじるのは手軽だけど、いじっちゃいけないところもありそうなので、
どこがどう影響するかわからず、なかなか難しいですね。。。