昔の写真をAIでアップスケールする
昔ガラケーで撮った写真や昔ダウンロードしたムフフな画像が実はたくさんあるのではないでしょうか。
はい、先ほどドライブを整理しているとムフフな画像が大量に保存されているフォルダを発見し、ビューワーで見ようとするとアイコンかよ!!!ってぐらい小さい・・・見れなくはないけど小さい。
そもそもこの動画時代にこんな画像いるのか?見るのか???という疑問もあるがこの写真が活躍した時代の興奮は今も持ち得るモノと自分に言い聞かせ、再活用できるようサイズアップ、アップスケールに挑む物語である。
画像を単にアップスケールするだけなら画像処理ソフト(gimpなど)でも十分だけど、画質アップや大量処理を考えると画質アップは弱いし、何より大量処理が出来ない。
よくわからないクソ怪しいWebサービスも乱立していてそれを使うのも選択肢の1つではあろうがそもそも処理が遅い。
ではどうするか
Stable Diffusion Web UI(以後SD)があるじゃないか
SDであればアップスケールする術はたくさんありますが今回やりたいことはどれで出来るのか
やりたいこと
・手持ち画像の画質を上げてアップスケール(サイズアップ)したい
・数百枚、数千枚単位の画像を一括処理したい
・無料
結果
Extras
ということでExtrasでのやり方を記していきます。
SD(A1111)でもreforgeでも普通に環境構築すればExtrasは使えますのでインストール手順は省きます。
手持ち画像のアップスケール方法
(1)SD(or reforge)起動し、Extrasタブに切り替える
以下画面になり、今回はフォルダ内の画像を一括変換したいので
Single ImageタブからBatch from Directoryタブに切り替えます。
出力に際し、必要最低限の設定箇所です。
(1)Input directory
変換元の画像を保存しているフォルダ(ディレクトリ)のパスを入力します。
フォルダツリーから保存先を選ぶようなGUIが無いのでエクスプローラからパス取得してコピペすると良いかと思います。
(2)Output directory
変化処理後の画像保存先です。設定方法はinputと同じでパスをコピペ
(3)Resize
リサイズ倍率です。2にすると元画像を2倍にリサイズします。
(4)Upscaler1
アップスケールする際に使用するアルゴリズムを選びます。
上記4つを設定し、画像生成と同様にgenerateボタンを押下すると処理開始します。
設定例
RTX3080での処理時間です。
R-ESRGAN4x: 2秒
R-ESRGAN4x+Anime6B: 2秒
LDSR: 1分40秒
ScuNET PSNR: 2秒
ScuNET GAN: 2秒
SwinIR4x: 8秒
初回はモデルのダウンロードがあるため、開始に時間がかかりますが二回目以降は画像処理のみで終わります。
※注意点
色んなアルゴリズムで出来具合を確かめたくなりますがoutput directory指定する場合は同一ファイル名で上書きされてしまうため、気をつけて。
おまけ
元ファイル
Lanczos
Nearest
ESRGAN4x
LDSR
R-ESRGAN4x
R-ESRGAN-4x+ANIME6B
ScuNET GAN
ScuNET PSNR
SwinIR4x
どこの部分かはさておき、難しいと思われる布の表現がどこまで崩れず、かつ画質アップされているかに注目してみると
Lanczos、Nearest、ESRGAN4xはノイジーな感じが残っています。
ただ逆にそのノイジーな感じが布のざらざら感を演出しているようにも見えます。
上記3つ以外はかなりシャープ。
特段R-ESRGAN-4x+ANIME6Bは濃淡無くしてバキバキな印象。ANIME6Bとあるのでアニメ系特化なんでしょうね。実写系には不向き。
布に絞ってみるとScuNETの2つが良いように見えます。ほどよくざらつきがあり、ほどよくシャープ。
どこを重視するかやリサイズする素材によって使うアルゴリズムを使い分ける必要がありますがAI処理をすると単純にリサイズするLanczos、Nearestとはレベル違いな処理結果になるのがわかります。
最後に
ExtrasはUpscaler2を設定することでアップスキャンの多段掛けが出来ますがしょせんは昔のムフフ画像・・・そこまでする時間と労力は必要ないと思うのでUpscaler1のみで十分かと思います。私は一生この画像、写真集でやりくりするんだ!!!という強い意志をお持ちの方は是非多段でどうぞ。