ComfyUI.Tokyo

SD1.5 inpainting Remove オブジェクト除去

Windows版ComfyUIのStable Diffusion 1.5(SD1.5)環境におけるInpainting(Remove)の事例です。

704x448の草原画像から一本の木を削除するケースで、"Realistic_Vision_V5.1-inpainting.safetensors"と;"vae-ft-mse-840000-ema-pruned.safetensors"を使用し、ComfyUI Mask Editorで木をマスクし、特定のプロンプトを用いたこの手法の原理と特徴を解説します。

* 64×7=448、64×11=704

Inpainting (Remove) の原理

Inpaintingにおける「削除(Remove)」は、指定したオブジェクトを周囲の背景に溶け込ませる形で埋めることを目的とします。その基本的な原理は、前述の髪の毛の色の変更と同様ですが、特に「何を埋めるか」という部分で異なります。

  1. 入力画像のエンコード:
    • 元の草原の画像が、VAE("vae-ft-mse-840000-ema-pruned.safetensrs")によって潜在空間にエンコードされます。
  2. マスクの適用:
    • ComfyUI Mask Editorで作成された、削除したい一本の木の部分を白くマスクした画像が使用されます。このマスクが、AIに対して「この白い領域を修正する」という指示を与えます。
  3. ノイズの追加(拡散プロセス):
    • エンコードされた画像とマスクされた領域にノイズが加えられます。ここが「削除」の鍵となります。
    • マスクされた領域(木の部分)の潜在表現は、ノイズによって破壊され、元の情報が失われます。これにより、AIはそこに「新しい何か」を生成する準備ができます。
  4. ノイズ除去(逆拡散プロセス):
    • Stable Diffusionモデル("Realistic_Vision_V5.1-inpainting.safetansors")は、入力されたプロンプトと、マスクされていない周囲の画像情報、そしてマスク内のノイズを参考にしながら、ステップバイステップでノイズを除去していきます。
    • 重要な点:
    • 周囲のコンテキストからの類推: マスクされていない周囲の「草原」の情報が、AIにとって非常に重要なヒントとなります。AIは、その周囲の草原のテクスチャ、色合い、遠近感などを分析し、「もしこの場所に木がなかったら、どんな草原が広がっていたか」を推測して生成します。
    • プロンプトの役割:
      • ポジティブプロンプトの` (((Remove))) `や空のプロンプトは、AIに「何かを生成する」という明確な指示ではなく、「マスクされた領域を埋める」という方向性を与えます。特にInpainting特化モデルでは、プロンプトを空にしたり、`remove`のようなキーワードを入れることで、周辺環境に馴染ませるように作用します。
      • `highly detailed, profession photography`は、生成される領域のディテールと品質を高め、写真のようなリアルな草原を期待するための指示です。
      • ネガティブプロンプトの`blurry, illustration, horror`は、生成される草原がぼやけたり、イラスト調になったり、不自然になったりするのを防ぎます。
  5. デコード:
    • ノイズ除去が完了し、木が削除され、周囲の草原と自然に繋がった潜在表現がVAEによってピクセル空間の画像にデコードされ、最終的な出力画像が得られます。

Inpainting (Remove) の特徴

この削除手法の成功には、いくつかの重要な特徴と考慮点があります。

  1. 背景の自然な補完能力:
    • Stable DiffusionのInpaintingは、マスクされた領域を周囲の画像コンテキストに基づいて埋める能力に優れています。これにより、削除されたオブジェクトがあった場所が、まるで最初から何もなかったかのように自然に見えるように再構築されます。
    • 今回の成功は、この「周囲の草原」という強いコンテキストがあったことが大きな要因です。
  2. Inpainting特化モデルの有効性:
    • "Realistic_Vision_V5.1-inpainting.safetansors"のようなInpaintingに特化して学習されたモデルの使用が、成功の鍵です。
    • これらのモデルは、マスクされた領域とマスクされていない領域の境界をより自然に繋ぎ、欠損部分を周囲に溶け込ませることに長けています。通常のText-to-ImageモデルでInpaintingを行うよりも、はるかに高品質でシームレスな結果が得られます。
  3. プロンプトとネガティブプロンプトの調整:
    • ポジティブプロンプト: `(((Remove)))`というプロンプトは、明示的に「消去」を意図する際に効果的です。また、単にプロンプトを空にする、あるいは周辺の背景を表現するプロンプト(例:「grass field」など)を入れることも有効な場合があります。今回は高品質な写真表現を求めるプロンプトが機能しています。
    • ネガティブプロンプト: `blurry, illustration, horror`といったネガティブプロンプトは、生成される画像の品質を損なう要素を排除し、よりリアルで自然な結果に導くために不可欠です。
  4. マスクの精度:
    • ComfyUI Mask Editorで木を正確にマスクできたことも重要です。マスクが不正確だと、木の境界が残ったり、周囲の草原が不自然になったりする可能性があります。
  5. VAEの役割:
    • "vae-ft-mse-840000-ema-pruned.safetensrs"は、色空間の表現が豊かでディテールを保持するのに優れているため、生成された草原の色彩やテクスチャが元の画像と自然に統合されるのに貢献しています。
  6. 適用範囲と限界:
    • 今回のように「草原に立つ一本の木」など、比較的背景が均一で予測しやすい場合は非常に高い成功率を誇ります。
    • しかし、削除したいオブジェクトの背後に複雑な構造物がある場合や、周囲のコンテキストから予測が難しい場合は、不自然な生成結果になることがあります。その場合は、より複雑なプロンプトや、複数回のInpainting、さらにはPhotoshopなどの画像編集ソフトによる微調整が必要になることもあります。

このInpainting (Remove) の手法は、写真からの不要なオブジェクトの除去、風景のクリーンアップ、合成写真の作成など、非常に幅広い応用が可能な強力なツールです。Inpainting特化モデルと適切なプロンプト、正確なマスクの組み合わせが、その成功の鍵となります。

workflow

SD15_inpainting_Remove.json

Open in Musk Editor でマスクをかけます。


結果です。

なんか、木のマスクの跡がうっすらと残っていますね。

他のinpainting checkpoint

stable-diffusion-2-inpainting.safetensors

ポジティブプロンプト

「grass field」など効果があります

次の例題は、木を緑の草原になじませる「grass field」を用いたworkflowです。

SD15_object_remove+object_fill_in


Link

Big lama Remover オブジェクト除去