今回はStable DiffusionのWebUIに搭載されているInpaintの機能について解説します。
この機能は、画像の一部を選択し、その部分をAIが自動的に修正することを可能にします。この機能を最大限に活用するためには、その背後にあるパラメータと設定を理解することが重要です。
本記事では、Inpaintを使った画像生成手順とパラメータについて解説します。
Stable Diffusionとは
Stable Diffusion(ステーブル・ディフュージョン)は2022年8月に無償公開された描画AIです。ユーザーがテキストでキーワードを指定することで、それに応じた画像が自動生成される仕組みとなっています。
NVIDIAのGPUを搭載していれば、ユーザ自身でStable Diffusionをインストールし、ローカル環境で実行することも可能です。
(出典:wikipedia)
Stable DiffusionのWeb UI AUTOMATIC1111
AUTOMATIC1111はStable Diffusionをブラウザから利用するためのWebアプリケーションです。
AUTOMATIC1111を使用することで、プログラミングを一切必要とせずにStable Diffusionで画像生成を行うことが可能になります。
Web UI AUTOMATIC1111のインストール方法
Web UIであるAUTOMATIC1111を実行する環境は、ローカル環境(自宅のゲーミングPCなど)を使用するか、クラウドコンピューティングサービスを利用する2通りの方法があります。
以下の記事ではそれぞれの環境構築方法について詳し解説していますので、合わせてご覧ください。

Inpaintとは

Inpaintは、Stable DiffusionのWebUIに搭載されている機能で、画像の一部を選択し、その部分をAIが自動的に修正します。これにより、生成された画像の一部に問題がある場合でも、それ以外の領域は保持したまま部分的に修正することが可能になります。
例えば、生成されたイラストで、全体的には良いイラストであっても、特定の部位(手が破綻しているなど)にだけ問題があるといったことはよくあります。そのような場合にInpaintをうまく活用することで、画像の一部を修正することができます。
Inpaintで画像を修正する手順
ここからは、実際にInpaintを使って画像の一部を修正する手順について解説します。
まずはWebUIで通常通りプロンプトとパラメータを入力し、画像を生成します。
生成が完了したら、プレビュー画面下のSend to Inpaint
をクリックします。

Inpaintに生成した画像をパラメータを送信すると、以下のようにimg2img
タブのInpaint
タブが選択された状態となります。

先ほど生成した画像が、以下のようにInpaintの画面に表示されています。
過去に生成した画像に対して、Inpaintで修正を行いたい場合は、この赤枠の欄に画像をドラッグ&ドロップしてください。

Inpaintに関するパラメータを設定します。
詳細は「Inpaintのパラメータ解説」の項で解説します。

最後に、画像の中の修正したい部分をマウスで塗りつぶして指定します。
今回は以下のように赤枠の手の部分を塗りつぶしました。

以上で準備は完了です。Genrate
ボタンをクリックして画像生成を行います。

Inpaintのパラメータ解説
Mask blur
マスク部分(マウスで塗りつぶす領域)のぼかしの度合いを設定します。値が高いほどマスク部分とそうでない部分の境界が滑らかになります。
Mask mode
マスク部分(マウスで塗りつぶす領域)を選択範囲とするか、非選択範囲とするかを設定します。
Masked content
Masked contentで選択できるパラメータは以下のようになっています。
- Fill(フィル) 「Fill」を選択すると、Inpaintの結果は入力画像の極度にぼかされたバージョンを基に生成されます。これにより、修正部分は元の画像の色調や形状をある程度保持しつつ、全体的にぼかされた状態から修正が始まります。
- Original(オリジナル) 「Original」を選択すると、修正結果は画像の修正を指定した部分の元の内容に基づいて生成されます。これは、修正部分を元の画像の状態から始めて、そこから修正を行いたいときに最も適しています。
- Latent Noise(潜在ノイズ) 「Latent Noise」を選択すると、指定したエリアはシード番号から生成されたノイズに基づいて修正されます。これは、修正部分をほぼランダムな状態から始めて、そこから修正を行いたいときに適しています。
- Latent Nothing(潜在ナッシング) 「Latent Nothing」を選択すると、Stable Diffusionは指定したエリアを周囲のピクセルの色から混合された単一の固定色で塗りつぶします。これは、修正部分を周囲の色調を保持した単色の状態から始めて、そこから修正を行いたいときに適しています。
通常はデフォルトのOriginal
を選択しておけば大丈夫です。
Inpaint area
Inpaintが修正を行う範囲を指定するための設定です。特定の部分のみを描き直すときは、Whole picture
からOnly masked
に変更します。これにより、マスクされた領域だけが修正の対象となり、その他の部分は元の画像が保持されます。

実行結果
Inpaintを使って画像生成した結果です。
元々の画像がそれほど破綻していなかったため、あまり変化がありませんが、Inpaintで塗りつぶした手の部分が修正されていることが確認できました。

プロンプトの作成が難しいと思われている方には、AIでプロンプトを自動生成するのがおすすめです。「StableDiffusionのプロンプト(呪文)を自然言語処理モデルGPT-3(Catchy)で自動生成する方法」で詳細を解説しています。
Stable Diffusionの理想的な環境を構築する
Stable Diffusionを使用する際にGoogle ColaboratoryやWebサービスを利用されている方も多いかと思います。しかし、最近Google Colabの無料での使用範囲が大きく制限されたり、Webサービスでは月額費用がかかったりします。
欲しいイラストを生成するにはかなりの回数をトライする必要があるため、これらの制約に縛られることなく使用できるローカル環境を構築するのがおすすめです。
ローカルのPCに搭載するグラフィックボード
ローカルマシンで実行する上で重要になってくるのがグラフィックボードです。
グラフィックボードの性能によって画像の生成速度や最大生成サイズが決まります。Stable Diffusionで使用するのにおすすめのグラフィックボードを以下の記事で解説していますので、あわせてご覧ください。

Stable Diffusionで生成される画像のクオリティを上げる
動画学習プラットフォームUdemyでは、画像生成AIで高品質なイラストを生成する方法や、AIの内部で使われているアルゴリズムについて学べる講座が用意されています。
Udemyは講座単体で購入できるため安価で(セール時1500円くらいから購入できます)、PCが無くてもスマホでいつでもどこでも手軽に学習できます。
画像生成AIの使い方を学ぶ
Stable DiffusionやMidjourneyなどを使ったAIアート全般について勉強したい方には、以下の講座がおすすめです。

Stable Diffusionに特化して学ぶ
Stable Diffusionに特化し、クラウドコンピューティングサービスPaperspaceでの環境構築方法から、モデルのマージ方法、ControlNetを使った構図のコントロールなど、中級者以上のレベルを目指したい方に最適な講座です。

画像生成AIの仕組みを学ぶ
画像生成AIの仕組みについて学びたい方には、以下の講座がおすすめです。
画像生成AIで使用される変分オートエンコーダやGANのアーキテクチャを理解することで、よりクオリティの高いイラストを生成することができます。

まとめ
Inpaintの使い方について解説しました。
Inpaintを使うことにより、生成された画像の一部に問題がある場合でも、全体を作り直すことなく部分的に修正することが可能になります。さらに、各パラメータを理解して適切に選択することで、修正の結果をより細かく制御し、理想的な画像を生成することが可能になります。
ぜひStable Diffusionを使った画像生成で活用してみてください。
また、以下の記事で効率的にPythonのプログラミングスキルを学べるプログラミングスクールの選び方について解説しています。最近ではほとんどのスクールがオンラインで授業を受けられるようになり、仕事をしながらでも自宅で自分のペースで学習できるようになりました。
スキルアップや副業にぜひ活用してみてください。

スクールではなく、自分でPythonを習得したい方には、いつでもどこでも学べる動画学習プラットフォームのUdemyがおすすめです。
講座単位で購入できるため、スクールに比べ非常に安価(セール時1200円程度~)に学ぶことができます。私も受講しているおすすめの講座を以下の記事でまとめていますので、ぜひ参考にしてみてください。

それでは、また次の記事でお会いしましょう。


