こんにちは、じあです。
今回はStable Diffusionにて様々あるアップスケーラーのなかから、私的に納得のいったものと設定をご紹介していきたいと思います。
特にリアル系について着目してみていきますが、2次元系にも応用できるかとは思います。
2次元系(いわゆるアニメ塗り)よりもリアル系のアップスケーリングの方が粗が目立つのでより気にするべきという意味でもあります。
アップスケーリングでお困りの方へぜひ参考にしていただきたいです。
なお、本記事を執筆にあたり下記noteを参考にさせていただきました。ほぼ元記事ママですが…。
外部アップスケーラーの導入については本記事で解説しております。
アップスケーリングは2段階で行う
私の所持しているグラボ(1070)が貧弱であるということはおいておくとして、アップスケーリングは2回に分けて行うとキレイにできます。
たとえば、生成時に2倍に拡張、あとからExtrasで2倍に拡張など。
合計4倍拡張するにしても一気にやると上手くいかない経験をした方も多いかと思います。
今回使用するアップスケーラーの紹介
既存のアップスケーラーでもある程度のクオリティを出せますが、やはり突き詰めると外部のアップスケーラーが必要になってきます。
今回はおすすめのアップスケーラーを2つご紹介します。
なお、今回のやり方ではどちらも使います。
「4x_NickelbackFS_72000_G」
入手先:
参考記事に従って入手してください
「4x_NMKD-Siax_200k」
入手先:
これらを落としてきたら、sd.webui/webui/models/ESRGANの中にファイルを配置します。
これで外部アップスケーラーを導入することができます。簡単ですね。
実際にアップスケール(2段階)
今回は600×800をその4倍(2400×3200)に拡大することを例に取ります。
1段階目
通常サイズの画像生成に伴い、Hires.fixで2倍に拡大します。
Denoiseは好みですが0.5程度、Scaleは2、その他はデフォルトのままでいいと思います。
ここではアップスケーラーとして4x_NickelbackFS_72000_Gを選択します。
生成が完了したら、Extrasへ送ります。
2段階目
Upscaler1に先ほどと同様4x_NickelbackFS_72000_Gを選択し、2倍に設定します。
Upscaler2には4x_NMKD-Siax_200kを0.15~0.25くらいで設定します。
これでアップスケールは完了です。
比較
元画像(600×800)、1段階のみで4倍に拡大したもの、2段階で4倍に拡大したものの順で並べてみます。(※2段階を再現するために同じseedで再生成しているため多少雰囲気が異なります)
(クリックで拡大してみてみてください)
←1段階 | 2段階→
どうでしょうか。今回ご紹介した方法だと結構納得のいくアップスケールになっていませんか!?
本当に、先人の知恵さまさまです。
おわりに
今回はStable Diffusionのアップスケール手法のご紹介でした。
プロンプト技術なども市場として成熟してきましたが、最後はやはり試行回数ガチャに頼るところが大きいと思います。
当たりを引いた際に適切にアップスケールできる方法を頭に入れておくと後で後悔しないかと思いますので、今回の手法をぜひ参考にしてください。
それでは、また次の記事でお会いしましょう。