Skip to content

ComfyUIでの画像のインペイント方法

画像の部分的な再描画とは、画像の一部を再生成または再描画するプロセスを指します。

ComfyUI Githubリポジトリの部分的な再描画ワークフローの例では、部分的な再描画の例を見つけることができます。しかし、私の使用では、VAE Internal Patch Encoderの効果はあまり良くありません。この記事では、VAE Internal Patch EncoderLaton Noise Maskを比較し、対応する例の効果を示します。

準備段階: 部分的な再描画の前提条件

まず、画像の修正が必要な領域をマークする必要があります。これはマスクを描くことで達成されます。マスクの役割は、修正したい特定の位置をモデルに知らせることです。

マスクの描画

画像編集の開始時に、修正が必要な領域を指定する必要があります。マスクを描くことで、モデルに修正の具体的な範囲を示します。

ワークフローノードの更新

元のVAEエンコーダーはマスクをサポートしていないため、マスクを統合できるノードを選択する必要があります。この記事では、VAE Internal Patch EncoderLaton Noise Maskの使用を推奨します。これらは実装においてそれぞれの特徴を持っています。

実装プロセス: 部分的な再描画の詳細な手順

ステップ1: 画像の読み込みとマスクの描画

  • Load Imageノードで画像をインポートします。
  • マスクツールを使用して特定の領域に描画し、その後のノードへの入力として使用します。

ステップ2: ComfyUI部分的な再描画ワークフローの構築

特定のワークフローについては、この記事に添付されたワークフローファイルをダウンロードして実行してください。

  • 潜在ノードで画像とマスクを選択し、K Samplerに接続します。
  • プロンプトの単語を調整し、例えば「cat」を「dog」に変更し、新しいランダムシードを設定します。
  • 画像生成を実行し、結果の変化を観察します。

ステップ3: 部分的な再描画のための2つのComfyUIノードの効果を比較

  • VAE Encode For InpaintSet Latent Noise Maskを適用して部分的な再描画を行います。
  • 異なるデノイズ値での2つの技術の性能を比較します。
    • VAE Encode For Inpaintは、低いデノイズ値でマスクされた領域の内容が歪む可能性があります。
    • Set Latent Noise Maskは、低いデノイズ値で元の画像と高い類似性を維持できます。
  • 2つの技術の適用シナリオと利点を議論します。
    • VAE Encode For Inpaintは、元の画像と無関係な新しいコンテンツを作成するのに適しています。
    • Set Latent Noise Maskは、元の画像の特徴を保持しながら局所的な調整を行うのに適しており、例えば動物の種類を置き換えることができます。