たねやつの木

Photographs, Keyboards and Programming

【ComfyUI画像生成】Inpainting(インペインティング)で画像の一部を修正・変更する

こんにちは、たねやつです。

ComfyUI講座の続きです。前回はワークフローの保存と復元について学びました。今回は、画像生成で非常によく使われるテクニック「Inpainting(インペインティング)」をComfyUIで実践する方法を解説します。

Inpaintingとは、生成した画像の一部分だけを指定し、その部分だけを再生成(描き直し)する技術です。「キャラクターの表情だけ変えたい」「持ち物だけ違うものにしたい」「指の形が崩れたので修正したい」といった、細かな修正作業に絶大な威力を発揮します。

前の記事

www.taneyats.com

この記事でできること

  • Inpaintingの基本的な仕組みがわかる
  • ComfyUIでInpainting用のワークフローを組める
  • 画像の特定の部分(顔、手、物など)だけを修正・変更する方法がわかる

事前に必要なもの

  • 基本的なText to Imageワークフロー
  • Inpainting用のチェックポイントモデル: 通常のモデルでもInpaintingは可能ですが、Inpainting専用にファインチューニングされたモデルを使うと、より高品質な結果が得られます。(例: v1-5-inpainting.safetensors
  • 修正したい画像: 過去に生成した画像など。

Inpaintingの仕組み

Inpaintingの基本的な考え方は、「画像の一部をマスク(塗りつぶし)で指定し、そのマスクされた領域だけを、周囲の画像と馴染むように再生成する」というものです。ComfyUIでは、この「マスク」を作成し、それをKSamplerに渡すことでInpaintingを実現します。

手順

Inpainting用ワークフローの構築

基本的なText to Imageワークフローを少し変更して、Inpaintingに対応させます。

  1. Load Image (画像の読み込み):

    • Empty Latent Imageノードの代わりにLoad Imageノードを使い、修正したい画像を読み込みます。
  2. VAE Encode (画像をLatentに変換):

    • Load Imageで読み込んだピクセル画像を、KSamplerが扱えるLatent(潜在表現)に変換する必要があります。
    • VAE Encodeノードを追加し、Load ImageIMAGE出力を接続します。このノードのLATENT出力をKSamplerlatent_image入力に接続します。
    • VAELoad Checkpointから供給します。
  3. Maskの作成:

    • Load Imageで読み込んだ画像を右クリックし、「Open in MaskEditor」を選択します。
    • マスクエディタがポップアップで開くので、修正したい領域をマウスで塗りつぶします。塗りつぶした部分が、再生成される範囲になります。今回は、背景に看板のような文字列が表示されてしまったので消したいと思います。

    • 塗り終わったら「Save to node」をクリックします。Load Imageノードの出力にMASKが追加されます。

  1. Set Latent Noise Mask (マスクの適用):
    • KSamplerには直接マスクを渡す入力がありません。代わりにSet Latent Noise Maskというノードを使います。
    • このノードを追加し、VAE EncodeLATENT出力とLoad ImageMASK出力をそれぞれ接続します。
    • そして、このノードのLATENT出力をKSamplerlatent_image入力に接続します。(VAE Encodeから繋がっていた線をこちらに繋ぎ替えます)

最終的なワークフローは以下のようになります。

画像の生成と調整

ワークフローが完成したら、プロンプトとパラメータを調整して画像を生成します。

  1. モデルの選択: Load CheckpointでInpainting用のモデルを選択すると、より良い結果が期待できます。
  2. プロンプトの入力: ポジティブプロンプトには、「マスクで指定した部分に新しく生成したいもの」を具体的に記述します。(例: beautiful face, holding a red apple
  3. KSamplerの設定: denoiseの値を調整します。1.0に近いほど元絵を無視して強力に再描画し、低い値だと元絵の雰囲気を残しつつ修正します。最初は0.70.9あたりで試すのがおすすめです。
  4. 「Queue Prompt」をクリックして生成を実行します。

マスクで指定した部分だけが、プロンプトの内容を反映して再生成され、周囲と自然に馴染んだ画像が出力されるはずです。

最後に

今回は、生成AIの必須テクニックであるInpaintingをComfyUIで実践する方法を解説しました。完璧な一枚絵を一発で生成するのは難しいですが、Inpaintingを使いこなすことで、細かな修正を繰り返して作品の完成度を極限まで高めることができます。

特に、崩れやすい「手」や「指」の修正には欠かせないテクニックです。ぜひマスターして、作品のクオリティアップに役立ててください。

次の記事