ComfyUIで画像の一部分を修正する方法|インペイント入門

執筆・検証:Ainavora編集部 · 訂正の連絡先

ARTICLE実機検証済み初心者向け比較無料Workflow

確認日:2026-09-08 / 検証ラベルは本文記載の条件・範囲に限ります。

この記事の内容

用語のリンクを押すと、用語集の説明を開きます。

画像の中から変更したい場所を指定して描き直す方法を「インペイント」と呼びます。今回は、左の小さな器を消し、その場所に机や窓の続きを描く練習です。

修正前:右の大きな器を残し、左の小さな器をなくしたい生成画像
修正前:右の大きな器を残し、左の小さな器をなくしたい生成画像
広めのマスクで修正した結果:左の器がなくなり、机と窓の下部が描き直されました
広めのマスクで修正した結果:左の器がなくなり、机と窓の下部が描き直されました

最初に塗った範囲では、器は消えたものの境目が残りました。後半で、範囲を狭くした場合・広くした場合も比べます。まずはマスクを塗って1枚保存するところまで進み、仕上がりに違和感があれば比較を参照してください。

対象は、最小ワークフローで1枚生成できた方です。本記事では通常の画像生成用モデルRealistic Vision V5.1 (VAE)を使います。専用のinpaintingモデルは使っていません。ComfyUI公式のインペイント例とは採用モデルが異なるので、ファイルだけを混ぜて読み込まないでください。

配布した画像と8ノードのワークフローを開く

用意するものファイル・確認先
ワークフローainavora-inpaint.jsonを保存
元画像512×512の赤い器のPNGを保存
通常のSD1.5系モデルRealistic Vision V5.1 (VAE)。取得・配置の手順
追加ノード・LoRA不要

上のモデル取得手順を使う場合、選ぶファイルは `realisticVisionV60B1_v51VAE.safetensors` のfull/fp32版です。画面に出る旧名の `020.realisticVisionV51_v51VAE.safetensors` と同じ中身を使っています。ファイル名を旧名に変更する必要はありません。

ComfyUIで `Ctrl + O` を押し、配布JSONを開きます。「チェックポイントを読み込む」(Load Checkpoint)でモデルを選び、「画像を読み込む」(Load Image)のアップロードボタンから元画像を読み込んでください。

インペイントの8ノード構成。画像とマスクをVAE Encode for Inpaintingへ渡します。画面はマスク保存・生成後の状態です
インペイントの8ノード構成。画像とマスクをVAE Encode for Inpaintingへ渡します。画面はマスク保存・生成後の状態です

JSONだけでは元画像やモデルは入りません。初回は必ず読み込んでください。まだマスクを塗っていない段階では、実行せず次へ進みます。

変更する場所を標準マスクエディターで塗る

変更する範囲を示す印が「マスク」です。今回は画像を黒く塗りつぶして完成させるのではなく、ComfyUIへ「この部分を描き直して」と伝えるために使います。

1.元画像の右クリックからマスクエディターを開く

Load Imageの画像を右クリックし、`Open in MaskEditor | Image Canvas` を選びます。検証時の表示では、メニューの下の方にあります。

Load Imageの右クリックメニュー。下部のOpen in MaskEditorから開きます
Load Imageの右クリックメニュー。下部のOpen in MaskEditorから開きます

画像を選択したときの小さなツールバーにも、マスクエディターを開くボタンがあります。開き方の違いは公式のマスクエディター解説で確認できます。

2.マスクペンを選び、左の器を塗る

編集画面の左端にある、いちばん上の「マスクペン」を選びます。2段目の通常のペンは画像そのものに色を描く道具なので、今回は使いません。

マスクを塗る前の画面。左端のいちばん上がマスクペン、右側がブラシの設定です
マスクを塗る前の画面。左端のいちばん上がマスクペン、右側がブラシの設定です

検証ではブラシの太さを90、不透明度を1、硬さを1にしました。左の器の本体だけでなく、取っ手と影の周りも含めて、マウスを押したままなぞります。右の大きな器には、できるだけかからない範囲から始めます。

通常マスクを塗った画面。左の器とその周りが黒い表示で覆われています
通常マスクを塗った画面。左の器とその周りが黒い表示で覆われています

この画面では、黒く重なって見える部分が変更する範囲です。元画像を黒い絵に描き替えたわけではありません。大きく塗りすぎたら「元に戻す」、全部塗り直すなら「クリア」を使います。

3.保存して、マスクの接続を確認する

右上の「保存」を押すとワークフローへ戻ります。Load Imageのプレビューでも、塗った場所が覆われて見えることを確認します。

マスク保存後のLoad Image。左の器の部分にマスクが付いた状態です
マスク保存後のLoad Image。左の器の部分にマスクが付いた状態です

配布JSONでは、Load Imageの「画像」と「マスク」の両方を、「VAEエンコード(インペイント用)」へつないでいます。通常のVAE Encodeにはマスク入力がないため、ここを取り違えないでください。

VAE Encode for Inpaintingの接続。画像・VAE・マスクの3入力と、マスクの拡大6の設定です
VAE Encode for Inpaintingの接続。画像・VAE・マスクの3入力と、マスクの拡大6の設定です

`grow_mask_by` は日本語画面では「マスクの拡大」と表示されます。境界付近の処理範囲を広げる設定で、今回は配布値の6のままです。まずはこの値まで同時に変えず、手で塗る範囲を確認してください。

修正したい内容を入力して1枚生成する

Positive欄には、描いてほしい完成状態を入れます。今回の文章は「右に赤い器が1つあり、左は空いた木のテーブル」という指定です。

```text

a single red ceramic mug on the right side of a wooden table, empty wooden table on the left, soft window light, product photography

```

Negative欄は次のとおりです。

```text

blurry, low quality, text, watermark

```

設定今回の値
モデルRealistic Vision V5.1 (VAE)、通常の生成用
Seed・生成後の制御20260908、fixed
Steps・CFG20、7
Sampler・Schedulereuler、normal
denoise1
grow_mask_by6
入力・出力サイズ512×512

この構成では、マスクで指定した範囲を描き直すためにdenoiseを1にしています。全体を変えるimg2imgの比較値0.5を、そのまま引き継ぐ手順ではありません。

「実行する」を1回押し、完了を待ちます。Save Imageに結果が出たら、ComfyUIの出力先にある `Ainavora_inpaint` で始まるPNGを開きます。元画像と別のファイルとして保存されます。

Save Imageに出た通常マスクの結果。左の器はなくなりました
Save Imageに出た通常マスクの結果。左の器はなくなりました
通常マスクの出力全体。左の器は消えましたが、机と窓の下部に境目が残っています
通常マスクの出力全体。左の器は消えましたが、机と窓の下部に境目が残っています

変更する場所を指定して描き直せれば、操作の確認はできています。ただし、保存できたことと、掲載できる仕上がりになったことは別です。次に境目を見ます。

マスクが狭い・広い場合と、境目の違いを比べる

ここでは、入力画像の色や形、モデル、文章、Seed、生成設定を固定し、マスクの範囲だけを変えました。比較用の白黒画像は、白が変更する範囲、黒が残す側です。エディターの黒い重ね表示とは見え方が違います。

狭いマスクでは、取っ手の一部が残った

狭いマスク:左の器を覆う範囲が足りません。白が変更する部分です
狭いマスク:左の器を覆う範囲が足りません。白が変更する部分です
狭いマスクの結果:取っ手のような部分が取り残され、左下に別の物体も現れました
狭いマスクの結果:取っ手のような部分が取り残され、左下に別の物体も現れました

器の中央を塗るだけでは、周りにある取っ手や輪郭まで消せませんでした。消したい物の形を確認し、本体の外へ続く部分も範囲に含める必要があります。

通常マスクでは、器は消えたが境目が目立つ

通常マスク:標準エディターで塗った範囲。器と周りを覆っています
通常マスク:標準エディターで塗った範囲。器と周りを覆っています
通常マスクの出力の境界を3倍表示。窓の下部や机に縦の継ぎ目が見えます
通常マスクの出力の境界を3倍表示。窓の下部や机に縦の継ぎ目が見えます

不要な器はなくなりましたが、窓の下部や机の色が切り替わる箇所が残りました。小さなプレビューでは見逃しやすいので、保存したPNGを原寸でも確認します。

広いマスクでは境目が目立ちにくくなったが、変更範囲も増えた

広いマスク:机と窓の下部を広く含み、右の大きな器の左端にもかかっています
広いマスク:机と窓の下部を広く含み、右の大きな器の左端にもかかっています
広いマスクの結果:今回の例では継ぎ目が目立ちにくくなりました。机の影や右の器の周辺も変化しています
広いマスクの結果:今回の例では継ぎ目が目立ちにくくなりました。机の影や右の器の周辺も変化しています

今回の広い範囲では、通常マスクで目立った縦の境目が分かりにくくなりました。その代わり、窓の下部、机の影、右の器の左端も描き直す範囲に入っています。広ければ必ずよい、という結果ではありません。残したい物にかかっていないかも確認してください。

比較用の狭い・広いマスクは、通常マスクをそれぞれ30px縮めたものと55px広げたものです。画像の色のデータは変えていません。この数値は差を確認するための条件で、手で塗るときに同じ幅を測る必要はありません。

マスクの外側も、元画像と完全に同じとは限らない

今回の構成では画像全体をVAEで変換するため、塗っていない場所にも細かな色・輪郭の違いが出ました。下は、通常マスクから離れた右の器を同じ位置で切り抜き、2倍表示した比較です。

元画像:通常マスクの外にある右の器を2倍表示
元画像:通常マスクの外にある右の器を2倍表示
通常マスクの生成後:同じ範囲を2倍表示。見た目が近くても画素は完全には一致しません
通常マスクの生成後:同じ範囲を2倍表示。見た目が近くても画素は完全には一致しません

通常マスクの外側で画素を照合すると、元画像との差はゼロではありませんでした。「マスク外は1画素も変わらない」用途には、この配布構成だけでは対応できません。元画像の保持が厳密に必要な作業では、変更部分だけを元画像に合成する工程も必要になります。本記事の配布版には、その合成処理は入れていません。

困った状態まず確認すること
何も変わらないマスクを保存したか、Load Imageのマスク出力がつながっているか
画像自体が塗り替わった通常のペンではなく、マスクペンで塗ったか
消した物の一部が残る取っ手・輪郭・影まで範囲に含めたか
境目が不自然原寸で場所を確認し、周辺を含める範囲を少しずつ調整
残したかった物も変わるマスクがその物にかかっていないか。広げすぎた場合は戻す

ノードやモデルのエラーは動かないときの対処で確認できます。この練習は机上の小物を対象にしており、手・顔・細い文字の修正結果は検証していません。

再現用ファイルと検証条件

自分で塗る練習には元のPNGを使い、掲載結果と同じ範囲を試したい場合は、マスク付きの通常・狭い・広いのPNGをLoad Imageへ読み込みます。これらは透明部分としてマスク情報を持つため、通常の画像ビューアーでは一部が抜けて見えます。

同じ比較をする間は、モデル・文章・Seed・設定を変えないでください。必要ファイルの一覧と手順はREADMEにもあります。モデル本体は配布していません。

検証日:2026年9月8日。WindowsのローカルComfyUI、標準8ノード、CPU処理で実行しました。SD1.5の通常生成用モデルを使ったこの条件での結果であり、専用のinpaintingモデルや別系列での結果は含みません。

用語この記事での意味
インペイント画像の一部分を指定して描き直す方法
マスク変更する場所を示す範囲の情報
VAE Encode for Inpainting画像とマスクを、部分修正用の計算データへ変換するノード
grow_mask_byマスクの境界付近で処理する範囲を広げる設定

操作仕様は公式のマスクエディター解説で確認できます。記事や配布物の不具合はお問い合わせへお知らせください。

次に読む記事・手順

仕上がった画像を大きく使いたい方は
アップスケール入門
残したい結果を別名で保存し、拡大後の輪郭と質感を比べます。

動かないときの対処 · 記事一覧から探す