サンプラー毎の違いを検証する

 前回終わりにサンプラーやスケジューラ毎の違いを試すと記載したので試してみたいと思います。

テスト内容

以下のサンプラーで出力の差を見ます。スケジューラーはすべてKarrasで固定します。ステップ数はパス毎に調整します。

  • DPM++ 2M
  • DMP++ 2M SDE
  • DMP++ 3M SDE

テスト手法

初回の絵は固定して、その後2倍のアップスケールを2回繰り返し出力の差を見ます。なお、アップスケール時は通常のアップスケールを使用すると、シャギーが出たり、ぼやけたりするのでRealESGAN 2xを使用します。

元画像

512 x 384

これを料理していきます。

テスト結果

DPM++ 2M

DPM++ 2M SDE

DPM++ 3M SDE

ちょっと元が難しかったのか2Mだと顔に問題があります。3Mだとまだ精細さは足りていないものの、まぁこんなもんかという感じです。

画像を変えてみましょう。

元画像

512 x 384

テスト結果

DPM ++ 2M

DPM ++ 2M SDE

DPM++ 3M SDE

まとめ

今回はさほど大きくは変わりませんでしたが、DPM++ 3M SDEのほうがより細かいように見えます。そもそもDPM++ 3M SDEの用途はより精細なものにフォーカスしているそうなので、まぁそれはそうだろうなという感じです。逆に言えばポートレートとかであればDPM++ 2Mで十分だそうです。

SDEのありなしですが、SDEはStochastic Differential Equation(確率微分方程式)方式といいまして、画像生成にランダム性を残します。なので同じシードで実行しても微妙に違う画像ができあがるかと思います。ここは好みかなと思います。

サンプラー毎の違いはさほど出なかったので(同系統なので当たり前かもしれませんが)今度はスケジューラーによる違いを見てみたいと思います。

今回のモデル:Perfect World 完美世界

コメント