![見出し画像](https://assets.st-note.com/production/uploads/images/98398748/rectangle_large_type_2_d4cbbbc8f98d02c4107105b89c093796.png?width=800)
LDSR と SD Upscale による生成画像のアップスケール(高解像度化)
AI 生成画像のアップスケールの方法のうち、私が最近使ってみた中で最も気に入って活用しているアップスケール手法を比較を交えながら紹介します。
動作環境は google colab T4 インスタンスの Stable Diffusion web UI です。
LDSR & SD Upscale
Stable Diffusion web UI では Extras タブ内に複数のアップスケーラーが搭載されています。簡単に検索してみると R-ESRGAN 4x+ (Anime6B) などがよく利用されているようです。一方、今回ご紹介する手法では img2img タブで SD Upscale を使います。アップスケーラーとしては LDSR を選択します。この手法は google colab の T4 インスタンスで 20 分ほどの時間がかかってしまうものですが、とても強力に作用します。
事例の紹介
アップスケール対象の画像として、今回はイラコン用を兼ねて創薬ちゃんの生成画像を使用します。
💊開催告知💊 (賞金UP⤴条件の緩和等あり再掲)
— 叢雲くすり (創薬ちゃん) 🖌イラコン開催中💰AI可・手描き可 (細則: 固定ツイ参照) (@souyakuchan) January 30, 2023
私のイラコン第3弾。最大賞金¥100,000💴#創薬ちゃん生成チャレンジ と同様に純粋にAIで生成してもよいし、手描きでもOK。審査には主観を交えず、RT数で競って頂く。応募は2/22(水)24時(JST)迄。複数回獲得可能な参加賞も用意した💸
細則: 添付画像参照 pic.twitter.com/jYoFYMURAy
ただし、創薬ちゃんの特徴は比較的シンプルで、アップスケールの効果が分かりにくいので異世界に旅立ってもらうことにします。
![](https://assets.st-note.com/img/1676782253820-a40bTDbRe4.png?width=800)
まずは左目のあたりをアップスケールした結果から見ていきます。すべて 4 倍にアップスケールしています。この画像の場合、 R-ESRGAN 4x+ Anime6B よりも R-ESRGAN 4x+ のほうが良い結果だったので比較対象としてそちらを採用しています。
![](https://assets.st-note.com/img/1676783813081-7CrrFnd4dc.png?width=800)
右に行くほど描写が高精細になるように並べています。 実際のところ R-ESRGAN 4x+、LDSR 単体でもそれなりの性能なのですが、SD Upscale を合わせると強力です。とくに LDSR & SD Upscale が良く見えます。次に、右手で宝石を触っている部分を見てみます。
![](https://assets.st-note.com/img/1676785725853-c0MhoaJjvM.png?width=800)
結果を見ると、単体では LDSR よりも R-ESRGAN 4x+ のほうが良好に見えますが、SD Upscale を合わせると指の描写は互角、背景の細工は LDSR & SD Upscale が高精細です。SD Upscale をかけると指先に爪ができるのも特徴的です。また、LDSR & SD Upscale では球体の宝石を指先でつまんでいるような描写に変化しているものもありました(画像は 5 枚の出力の中から選んでいます。宝石の形が変わっていないものも出力されましたが、おもしろいのでこれを採用しています)。なお、爪ができたのは R-ESRGAN 4x+ & SD Upscale では 1/5、LDSR & SD Upscale では 5/5 の割合でした。
R-ESRGAN 4x+ & SD Upscale と LDSR & SD Upscale の出力画像を以下に載せておきます。
![](https://assets.st-note.com/img/1676787914168-rVh3FDIwTG.jpg?width=800)
![](https://assets.st-note.com/img/1676787702995-nirs1qGQdA.jpg?width=800)
元画像の再現度という視点では、LDSR & SD Upscale にはやりすぎ感もあるのですが、絵としては良くなっているのでヨシとします。
設定方法
img2img で幅 768、高さ 512 ピクセルの画像へ LDSR & SD Upscale をかける際は以下のように設定します。プロンプトは生成時と同じものを使います。
![](https://assets.st-note.com/img/1676788421481-XU7zXa6wMI.png?width=800)
Sampling method を Euler a、Denoising strength を 0.1 ~ 0.2、Script で SD upscale を選択して Scale Factor を 4、Upscaler を LDSR にします。Batch count は 5 ~ 10 に設定しておくとよいと思います。SD Upscale のマニュアルでは Denoising strength 0.2 がお勧めされていますが、0.2 で変化が強すぎる場合は 0.1 などに下げてみてください。ChilloutMix のような実写系のモデルを使う場合は 0.05 くらいまで下げたほうが安定します。Batch count は LDSR 後の SD Upscale の回数を決めるものなので、複数枚出力させて気に入ったものを選ぶのがお勧めです。
設定完了後、Generate します。初回実行時には 2 GB 程度の学習済みモデルのダウンロードが行われます。処理には、google colab の T4 インスタンスで 20 分ほどの時間がかかります。
おわりに
以上、LDSR & SD Upscale によるアップスケールを紹介しました。なぜこの組み合わせで良い結果が出るのかはよくわかりませんが、LDSR は Latent Diffusion Super Resolution の略で、画像生成モデルとは兄弟のような関係にあるものなので、もともと相性が良いのかもしれません。個人的には、画像生成からアップスケールまで Diffusion モデルで完結できているのが美しく感じられるのでヨシとしています。
以下、投稿ツイートです。
異世界創薬ちゃん #AIイラスト
— ɐʇǝɯ/めたはら鵺 (@meta_a1) February 19, 2023
この画像を題材に、最近使っているアップスケーラー (LDSR & SD Upscale) について記事を書きました。https://t.co/UBsgahAvE2 pic.twitter.com/Ujg7vJ133C
変更履歴
Denoising strength の設定に関する記載を修正しました。
R-ESRGAN 4x+、LDSR 単体の処理は Extras タブから行いました。
実写系モデルの Upscale 時の設定について追記しました。
この記事が気に入ったらサポートをしてみませんか?