クリエイティブ実践ガイド

ComfyUIのインペイントで画像の一部だけを直す方法

ComfyUIのインペイントで画像の一部だけを直す方法
目次
公式

公式ページで入手・手順を確認

画像の一部分だけを直したいとき、画像全体をimg2imgで作り直すより、inpainting(インペイント)を使う方が目的に合う場合がある。

インペイントでは、マスクで「ここを編集する」という範囲を指定し、その部分を中心に再生成する。顔はそのままに服だけ変える、背景の一部だけ直す、といった用途で使いやすい。

ComfyUI公式には、マスクとVAE Encode for Inpaintingを使うワークフローが案内されている。最初はその構成を基準にし、関係のないモデルやノードを同時に入れ替えない。

最初にマスク範囲を決める

インペイントでは、プロンプトより先に「どこを編集するか」を決める。

たとえば人物の服だけを直したいなら、顔や背景まで広くマスクしない。必要な範囲を選び、元画像を残したい部分と描き直したい部分を分ける。

比較用に次を残しておくと分かりやすい。

元画像
マスク
プロンプト
ワークフロー
生成結果

マスクを変えた影響と、プロンプトを変えた影響を混ぜないためだ。

通常のimg2imgと同じ処理だと思わない

通常のimg2imgも元画像を条件として使うが、インペイントとは目的と構成が異なる。

ComfyUIの公式例では、マスクとインペイント向けのエンコード処理をワークフローへ組み込む。使うモデルによっては、インペイント向けのチェックポイントや追加部品が必要になる場合もある。

そのため、テキストから画像を生成するワークフローへマスク用ノードを一つ足せば、どのモデルでも同じように使えるとは考えない。

最初に次を確認する。

  • 公式ワークフローが想定しているモデル系列
  • 必要なVAEやエンコーダー、ノード
  • モデルファイルの保存場所

denoiseは修正量に合わせて決める

インペイントでもdenoiseは変化量に関係する。

小さな修正で元画像を強く残したい場合と、マスク内を大きく描き直したい場合では、適した値は違う。

比較するときは、同じマスク、同じプロンプト、同じシードなどを固定し、denoiseだけを低・中・高の3段階に変えてみる。

見るのは次の2点だ。

  1. マスク内が目的どおり変わったか
  2. マスク外や境界まで必要以上に崩れていないか

編集部分だけでなく境界を見る

インペイントでは、編集した場所の中心だけでなく、元画像との境界が自然かも重要だ。

色、光、輪郭、質感が境目で急に切れている場合は、マスクの範囲、ワークフロー、denoiseなどを一度に全部変えず、一項目ずつ比べる。

たとえば、まずマスクだけ少し広げる。その次に元へ戻し、今度はdenoiseだけ変える。このように比較すると、どの条件が境界へ影響したのか分かりやすい。

元画像・マスク・結果をセットで残す

成功した画像だけを保存すると、あとで再現しにくい。

original.png
mask.png
workflow.json
result-low.png
result-mid.png
result-high.png

この程度でも、次に同じ種類の修正をするときの基準になる。

初めて使うなら、小さな領域を一つ選び、まずマスクとdenoiseの違いだけを確認する。複数のLoRAやControlNetを足すのは、その基本ワークフローをもう一度再現できてからでよい。

画像全体の変化量を調整したい場合は、ComfyUIでimg2imgを始める方法の方が目的に近い。

まとめ

  • インペイントはマスクで編集したい範囲を指定し、画像全体を作り直すimg2imgとは分けて考える
  • 使うモデルに合ったインペイント用ワークフローと、必要なVAEやノード構成を確認する
  • `denoise`は一つの万能値に固定せず、元画像をどこまで残したいかで比較する
  • 元画像、マスク、結果をセットで保存し、境界が崩れる条件を再現できるようにする
同じテーマから

サイト内検索