今回はStable Diffusionで生成画像(実写系)をなるべく綺麗にアップスケールする方法を解説します。
ネットで見かけた数々のアップスケール手順を様々試して、なんとか納得のできるアップスケール方法ですが、環境によっては上手く行かない場合もあるとは思いますので、その際はご容赦ください。
アップスケール環境
まず、大前提としてStable Diffusion Webui(AUTOMATIC1111)のインストールが完了していることとします。
まだされていない方は、他ブログなどを参考にインストールしてください。
私が取った方法は、大きく2つの作業に別れます。
- txt2txtで高解像度補助(Hires.fix)を使う
- その他(Extras)でさらに拡大
以上が拡大手順です。
シンプルでしょ?
あくまで私がたどり着いた方法です、これから変わることもあるし、もっといい方法を他の方がブログで紹介しているかもしれません。そして、イラスト系の画像生成には使えない方法かもしれません、並びに皆様がお使いの環境によっても動かない場合もあるかと思いますので、その辺を予めご考慮いただきたく思います。
では早速、作業を進めてまいりましょう。
1. 高解像度補助(Hires.fix)の設定
まずは通常通りtxt2txtで画像を生成します。
プロンプトは
(masterpiece:1.4, best quality), (masterpiece, best quality), (photo realistic:1.4), 1girl, upper_body, grin, t shirt, super detailed skin,
ネガティブプロンプトは
Easy Negative (worst quality:2), (low quality:2), (normal quality:2), lowers, normal quality, (monochrome), (grayscale) skin spots, acnes, skin blemishes, age spot, ugly face, fat, missing fingers, extra fingers, extra arms, open chest, thick eyebrows, huge breasts,
Steps: 60, Sampler: DPM++ SDE Karras, CFG scale: 7, Seed: 2854109948, Size: 512×512,
使用させていただいたModelは Brav6 です。
で生成された画像がこちら
この画像を生成する際に高解像度補助(Hires.fix)にチェックを入れます。
そして、使うアップスケーラーを4x_NickelbackFS_72000_Gにします。
入手先はこちら NickelbackFS
なお、ダウンロードしたファイルの設置パスとインストール方法は割愛させていただきます。
このアップスケーラーは日本語で書かれたStableDiffusion関連ブログで登場しているところは、殆ど見たことがありません。純粋に使いづらいのか、有名じゃないのかわかりませんが、こちらのアップスケールwikiの Realistic Photos では
This model aims to improve further on what has been achieved by the old Nickelback which was an improvement attempt over 4xESRGAN and also 4xBox. It can upscale most pictures/photos (granted they are clean enough) without destroying as much detail as Box and basic ESRGAN.
https://upscale.wiki/wiki/Model_Database
このモデルは、4xESRGANと4xBoxの改良の試みであった旧Nickelbackによって達成されたものをさらに改良することを目的としています。Boxや基本的なESRGANほどディテールを破壊することなく、ほとんどの画像/写真を(それらが十分にクリーンであることを前提として)アップスケールすることができます。
と説明されています。
そして、アップスケール倍率は3倍に設定します。理由は単純に重いからです。
txt2txtでの生成からアップスケールの説明はここまでです、次はその他(Extras)での拡大について説明してまりいます。
2.その他(Extras)での拡大方法
生成が終わったらその他に転送をクリックし、その他(Extras)に画像を送るか、手動でドラッグ・アンド・ドロップします。
次に、その他のタブに移動し以下の画像のように設定します。
Upscaler1は先程と一緒のアップスケーラー 4x_NickelbackFS_72000_Gを
Upscaler2にはまた違うアップスケーラーが登場しますので、こちらからダウンロードしてください。
上の設定が完了したら生成ボタンを押してください。
そうしてアップスケーリングされた画像がこちらです。
下は比較用に二枚並べた画像です。
若干黄色みが増えましたが、大幅に絵が変わることもなく拡大できたと思います。
目元と口元の拡大画像も見てみましょう。
眉毛やまつ毛が細かく書き込まれ、歯もほぼ破綻なく描かれているかと思います。
が、このアップスケーラーで拡大すると、若干ピントがあまく、そしてノイズが増える傾向にあります。
そのあたり、言ってみればカメラで撮ったときに出るノイズみたいな感じでしょうか。
マシンパワーによっては同じピクセル数まで拡大出来ない場合もあるかもしれませんし、この画質に納得できない方もいるかと思いますが、img2imgでControl netを使ったり、Ultimate SD Upscalerのスクリプトを利用したり、と導入が必要な機能を使わなくてもここまで拡大することが出来ました。
生成結果に関しては各々の判断に委ねますが、以上が現状でたどり着いた自分の中で納得のできる拡大方法でした。
よかったらみなさんもお試しください!
コメント