AIで生成した顔画像の微妙な不自然さを後から簡単に修正する方法

この記事では、Stable Diffusionのような画像生成AIによって生成した顔画像が部分的に不自然であったときに、後から簡単に修正し、自然な顔に見せる方法を紹介します。

概要

画像生成AIでポートレートを生成した際、プロンプトのイメージどおりですごく良いんだけど、顔の一部分だけが不自然になってしまって残念没…ということはままあると思います。

他の記事でも紹介されていますが、そのようなときは残念画像を高画質化AIにかけると劇的に改善することが多いです。

デモ

実際に、どの程度改善するか確認してみましょう。

まずは、以下の記事に従って女性のポートレートを生成してみます。

プロンプトはこちらの記事を参考にさせていただき、"Photographic portrait of beautiful women, glowing skin, Sony α7, 35mm Lens, f1.8, film grain, golden hour, soft lighting, by Daniel F Gerhartz"としました。

まずは、うまくいった結果から。

美しいですね。素晴らしいプロンプトだと思います。

次に、微妙な残念画像がこちら。

雰囲気はとても良いのですが、いずれも顔がやや不自然です。

この画像をCodeFormerという高画質化AIで処理してみます。CodeFormerの概要や実行方法については、以下の記事をご覧ください。

結果はこちら。左が処理前、右が処理後です。

目の付近を中心に、不自然さが解消されていることが分かります。これは、元画像中の不自然な部分が、高画質化AIによって「不鮮明」だと判断され、人の顔として自然になるように情報が復元されたことによります。

ちなみに、これでも修正しきれない場合、CodeFormerのパラメータである元画像への忠実度(CODEFORMER_FIDELITY)を下げると不自然さが解消されることが多いですが、この方法では大きく雰囲気が変わってしまします。

その場合は、画像サイズを小さくし、復元領域を増やしてから高画質化することで、元画像の雰囲気をキープしたまま、自然な仕上がりにできることがあります。併せて試してみてください。

参考文献

High-Resolution Image Synthesis with Latent Diffusion Models

CodeFormer

【公開】Stable Diffusionで美しい女性のポートレートを描くprompt(呪文)を公開するチュートリアル🚀【入門編】