見出し画像

風景中の人物を高画質化させよう!

概要

風景画像中の小さな人物が荒くて潰れてしまった場合の修正方法について紹介します。パソコンのスペックが低くても使えますよ!

どんな状況で使うの?

風景がいい感じの絵ができたのですが、人物の顔が荒らくてちょっと微妙なときがありませんか?
例えばこんな絵です。

元画像(サイズは1536×1024)

シーンも構図も良いのですが、人物の顔が荒くて潰れています。人物の顔を綺麗にしたいですよね。

なぜ荒くなってしまうのか?

原因の一つは、絵の構図的に顔を表現するピクセル数が少ないことです。この画像では顔領域が100x100が以下になっています。

顔をクロップした画像(サイズは100x100)

100x100でも綺麗な顔画像は存在しますが、画像生成AIが100x100のままで綺麗な顔画像を作ることは難しく、img2imgのインペイントやControlNetのTileを使っても中々上手くいきません。
また、画像全体を2倍に大きくしてから高画質化するのは非常に有効ですが、パソコンのスペックが低い場合は大きく出来ないこともあります。

どうやって直すの?

今回はパソコンのスペックが低くても使える修正方法を紹介します。
一言でいうと、人物だけのサイズを大きくしてからインペイントで修正して、最後に元画像のはめ戻すというものです。

人物の切り出し

まずは元画像から人物部分を切り出します。

切り出した人物画像(サイズは586 × 651)

人物を2倍のサイズにする

人物画像をWebUIのExtrasで2倍のサイズにします。
Scaled byのResizeを2にしてUpscaler1はSwinIR_4xとしています。
※ 5/27追記 Upscaler1はLanczosのほうが良さそうです

Extrasの設定

インペイントで修正

次にサイズを大きくした人物画像をimg2imgでインペイントします。
設定はすべて元画像から引き継いで、画像サイズだけは切り出した画像に合わせます。荒いと思う箇所をマスクしてインペイントします。

マスク画像
左:インペイント前、右:インペイント後

綺麗になりました!

元画像にはめ戻し

最後に元画像にはめ戻します。
修正した画像を半分のサイズにリサイズして元画像に貼り付けて位置合わせをします。
※ 私はMacのプレビューで作業しています。

元画像に綺麗にした人物をペースト

そして位置合わせをして完成です!(右側も同様に直しました)

完成画像

きちんと位置合わせをすれば、境界線はほぼ気になりません。もし境界線が気になるような場合は、境界線を含むようにインペイントすれば修正できます。
※ 5/27追記 Upscaler1がLanczosであればほぼ違和感がありません

ちょっと手間がかかりますが、パソコンのスペックが低くて画像全体のサイズを大きく出来ないというときに試してみてください!

蛇足

このはめ戻しの作業はこちらの記事でも使いました。

他にも色んなところで使うテクニックですが結構手間がかかるので誰かWebUIの拡張機能にしてくれないかな…

この記事が気に入ったらサポートをしてみませんか?