作画崩壊への応用
img2imgとInpaintを用いて、画像が“作画崩壊”した時の修正方法を紹介します。
BRAV5でも、人数を多く出すと作画が崩れやすくなります。以下は「boys and girls」だけで出力したものです。わざと作画崩壊させるためにクオリティタグを入れていません。
BRAV5でも、人数を多く出すと作画が崩れやすくなります。以下は「boys and girls」だけで出力したものです。わざと作画崩壊させるためにクオリティタグを入れていません。
女性陣に比べて男性陣がより崩れているので、まずはこれを修正していきましょう。
男性陣の箇所だけ正方形で切り抜きます。
男性陣の箇所だけ正方形で切り抜きます。
これをimg2imgで、Denoising strengthを0.6、プロンプトを「boys」として生成します。また、ネガティブプロンプトには「(worst quality:2.0), mutation hands and fingers」を入れます。
すると、まだ手がおかしいですが、先ほどよりはだいぶマシになりました。
Denoising strengthの値は高すぎると元の画像からかけ離れてしまい、低すぎるとあまり修正されなくなってしまいます。0.6前後がよいことが多いですが、画像によって異なるので、数値を変えて微調整しながら試してみてください。
これを元画像に重ねて、Inpaintで境界を消すことで修正をします。
画像を重ねるのは画像修正ソフトであればどれでもよいのですが、今回はあえて誰でも簡単に使えるツールとして、Googleスライドを利用してみます。
まず画像に合わせて正方形のスライドにします。Googleスライドのメニューから「ファイル→ページ設定」を選んでください。
Denoising strengthの値は高すぎると元の画像からかけ離れてしまい、低すぎるとあまり修正されなくなってしまいます。0.6前後がよいことが多いですが、画像によって異なるので、数値を変えて微調整しながら試してみてください。
これを元画像に重ねて、Inpaintで境界を消すことで修正をします。
画像を重ねるのは画像修正ソフトであればどれでもよいのですが、今回はあえて誰でも簡単に使えるツールとして、Googleスライドを利用してみます。
まず画像に合わせて正方形のスライドにします。Googleスライドのメニューから「ファイル→ページ設定」を選んでください。
すると次のようなダイアログが出るので、「カスタム」を選び正方形になるように数値を入力します。
あとは元の画像、修正画像の順にドラッグ&ドロップをして大きさを合わせます。
このあと、画像重ね合わせ箇所をInpaintで修正するのですが、顔そして輪郭にInpaintの修正が入ると顔の形が変わってしまい具合がよくありません。そこで、画像の切り抜きで形が変わってほしくないところに被らないよう、切り抜く大きさを調整します。
このあと、画像重ね合わせ箇所をInpaintで修正するのですが、顔そして輪郭にInpaintの修正が入ると顔の形が変わってしまい具合がよくありません。そこで、画像の切り抜きで形が変わってほしくないところに被らないよう、切り抜く大きさを調整します。
最終的にはこのようにしてみました。
これを画像としてダウンロードします。「ダウンロード→PNG画像」を選択してください。
そうすると、このように重ね合わせた画像をダウンロードできます。
あとはこの重ね合わせた境界をInpaintで消します。服や髪の箇所も変換されているので、そこも塗りつぶすように境界を塗りつぶします。余計なところまで塗りつぶさないように、ブラシの太さは細めにしています。
境界線を消す時は、Denoising strengthの数値は高めの方がよいです。今回は0.75にしています。では、境界線を修正した生成をしてみましょう。
まだ不自然なところは残っていますが、そこもInpaintingをしていくと自然になっていきます。
男性陣のクオリティがアップすると、今度は女性陣のクオリティが気になってきます。これも同じ手順を用いればよいだけです。
顔が切れてしまった時にInpaintで修正する
AIで画像を作成すると、顔が途中で切れて表示されることがあります。BRAV5では、他モデルに比べると顔が途中で切れることはあまりないのですが、ときどきは発生します。
こちらは「boy on street , masterpiece , best quality , natural lighting , hdr , uhd , professional , raw , highly detailed , 32K , 8K」で出力したものです。顔の上半分が切れてしまっています。
こちらは「boy on street , masterpiece , best quality , natural lighting , hdr , uhd , professional , raw , highly detailed , 32K , 8K」で出力したものです。顔の上半分が切れてしまっています。
ここから顔の上半分が表示されるようにしてみましょう。最新のPhotoshopでは「生成塗りつぶし」で切れている部分の描画ができますが、同じようなことをStable Diffusion Web UIでもできるのです。“簡易Photoshop”といった感じでしょうか。
先ほどと同じように、Googleスライドを使って修正用画像を作ります。画像を顔の部分を確保できるように下にずらし、画像の端の部分が繰り返されるように画像をコピーして貼り付けていきます。
言葉での説明だとわかりづらいですが、以下のように顔の下半分が繰り返されるようになればOKです。
先ほどと同じように、Googleスライドを使って修正用画像を作ります。画像を顔の部分を確保できるように下にずらし、画像の端の部分が繰り返されるように画像をコピーして貼り付けていきます。
言葉での説明だとわかりづらいですが、以下のように顔の下半分が繰り返されるようになればOKです。
この繰り返し箇所をInpaintして、繰り返し部分が塗りつぶされるようにします。
元と同じプロンプト「boy on street , masterpiece , best quality , natural lighting , hdr , uhd , professional , raw , highly detailed , 32K , 8K」を入力しますが、この場合のDenoising strengthは画像によって適切な値が変わります。今回は低めの0.45にします。
また、ネガティブプロンプトには顔の変形を抑えるために「(worst quality:2.0)」に加えて「mutation face, ugly」を追加しておきます。
元と同じプロンプト「boy on street , masterpiece , best quality , natural lighting , hdr , uhd , professional , raw , highly detailed , 32K , 8K」を入力しますが、この場合のDenoising strengthは画像によって適切な値が変わります。今回は低めの0.45にします。
また、ネガティブプロンプトには顔の変形を抑えるために「(worst quality:2.0)」に加えて「mutation face, ugly」を追加しておきます。
出力してみると、切れていた顔が出てきました。まだ、ちょっと不自然なところはありますが、そこもさらにInpaintして自然にすることができます。
よりお手軽に自然にする方法として「Sampling steps」の値を上げるという方法があります。
「Sampling steps」は次の場所にあります。
よりお手軽に自然にする方法として「Sampling steps」の値を上げるという方法があります。
「Sampling steps」は次の場所にあります。
通常は20になっているのですが、今回は100にしてみます。100にして再度生成すると、次のようにいくらか自然になっています。
「AIは引きの絵が苦手」といわれることがよくあります。それは引きの絵だと画像内の人物が小さい領域に描かれることになるため、人物が崩れて描画されやすくなるためです。
この引きの絵の対策でも、同じ手法を利用できます。以下は顔の上半分を表示するために使ったのと同じ方法を、2度繰り返したものです。
この引きの絵の対策でも、同じ手法を利用できます。以下は顔の上半分を表示するために使ったのと同じ方法を、2度繰り返したものです。
完全にはカメラが引けていませんし、手もおかしいままですが、顔は描画を保ったまま、小さくできています。
この作業を繰り返していけば、十分引きの絵まで持っていけます。また、背景を指定して引きの絵を生成したければ、この手法で生成した人物を、指定したい背景に重ねて境界をInpaintしていけばよいでしょう。
*****
今回は、プロンプトの指示だけでは難しい画像生成を、別の画像をもとに生成する手法を紹介しました。便利な手法ですが、くれぐれも他人の著作物の加工には使わないようにしましょう。
この作業を繰り返していけば、十分引きの絵まで持っていけます。また、背景を指定して引きの絵を生成したければ、この手法で生成した人物を、指定したい背景に重ねて境界をInpaintしていけばよいでしょう。
*****
今回は、プロンプトの指示だけでは難しい画像生成を、別の画像をもとに生成する手法を紹介しました。便利な手法ですが、くれぐれも他人の著作物の加工には使わないようにしましょう。
小泉 勝志郎
株式会社テセラクト 代表取締役社長
シニアプログラミングネットワーク代表
震災復興活動の中で海藻・アカモクをモチーフにつくったキャラクター「渚の妖精ぎばさちゃん」を運営。Appleの開発者カンファレンスに「81歳のアプリ開発者」として招待された若宮正子さんへの教育をきっかけに、高齢者向けのプログラミング教育にも力を入れ、現在はコミュニティ「シニアプログラミングネットワーク」を運営する。2023年3月「第1回AIアートグランプリ」において「渚の妖精ぎばさちゃん」をテーマにした漫画で準グランプリを受賞するなど、生成AIにも造詣が深い。