ComfyUIで切り抜いた画像を背景に重ねる方法|透過PNGの合成入門
確認日:2026-09-20 / 検証ラベルは本文記載の条件・範囲に限ります。
この記事の内容
用語のリンクを押すと、用語集の説明を開きます。
切り抜いた器や人物を別の背景に置きたいときは、2枚の画像を重ねて1枚にします。これを「合成」と呼びます。
今回は、すでに切り抜いてあるPNGと背景画像を使います。新しい絵をAIで描き直す作業は入れません。まだ切り抜いていない方は、背景を削除して透過PNGを作る記事を先に読んでください。
背景1枚と、透明な部分があるPNG1枚を用意する
背景には、使ってよい写真や自分で作った画像を選びます。その上に置く素材は、背景が透明なPNGを用意してください。JPEGでは透明な部分を保持できません。
練習では、背景を512×512、素材も512×512にそろえ、素材の周囲に透明な余白がある状態から始めると位置を確認しやすくなります。これは練習用の寸法で、必須のサイズではありません。
チェック柄が描かれた画像を、透過PNGと間違えないようにしましょう。画像の中にチェック柄自体が描かれていると、合成した後も模様が残ります。
練習用に、5ノードの合成JSON、水色の背景、赤い器の透過PNGを用意しました。JSONを「ファイル → 開く」で読み込み、2つのLoad Imageで「アップロードするファイルを選択」から対応するPNGを選びます。モデル本体の追加は不要です。
重ねる場所を決める「白黒の範囲」も渡す
画像だけでなく、どの部分を重ねるかという範囲も必要です。この範囲を表す白黒のデータを「マスク」と呼びます。
今回使う合成処理では、白いところに素材を重ね、黒いところは背景を残します。灰色なら、その割合に応じて素材と背景が混ざります。
透過PNGを標準のLoad Imageで読み込むと、MASKの出力は透明部分が白い向きになります。そのまま合成に使うと、残したい側が逆になります。Invert Maskで白黒を反転してから渡すのが、今回の接続の注意点です。
この説明は、透過PNGをLoad Imageで読み込む場合のものです。別の箱で作ったマスクまで、必ず反転するわけではありません。
1. 画像を読む箱を2つ用意する
箱を追加する検索で「Load Image」を探し、2つ追加します。片方で背景を選び、もう片方で透過PNGを選んでください。
どちらも似た箱なので、背景用と素材用を左右に分けて置くと見分けやすくなります。箱の中に表示された画像を見て、読み込むファイルを取り違えていないか確認します。
さらに、次の3つを追加します。日本語表示が違う場合は、英語名でも探してください。
- Invert Mask:範囲の白黒を反転する
- Image Composite Masked:指定した範囲で画像を重ねる
- Save Image:合成した画像を保存する
この構成では、生成用モデルやKSamplerは使いません。
今回の日本語画面では、Load Imageは「画像を読み込む」、Invert Maskは「マスクを反転」、Image Composite Maskedは「マスクされた画像合成」、Save Imageは「画像を保存」と表示されました。配布JSONなら、この5つの箱と線がそろった状態から試せます。
2. 背景・素材・範囲を、それぞれつなぐ
合成する箱には、背景と素材で別々の入口があります。次の表の順に線を引きます。
| どこから | どこへ |
|---|---|
| 背景用Load ImageのIMAGE | Image Composite Maskedのdestination |
| 素材用Load ImageのIMAGE | Image Composite Maskedのsource |
| 素材用Load ImageのMASK | Invert Maskのmask |
| Invert MaskのMASK | Image Composite Maskedのmask |
| Image Composite MaskedのIMAGE | Save Imageのimages |
destinationは下に敷く画像、sourceは上に置く画像です。接続口が分かりにくい場合は、ComfyUIの始め方で基本画面を確認してください。

3. まずは左上に置き、1枚保存する
Image Composite Maskedのxとyを0にします。xは左右、yは上下の位置です。どちらも、素材の画像全体の左上をどこに置くか指定します。透明な余白も画像の大きさに含まれます。
resize_sourceはfalseにします。これは「素材を背景と同じ寸法へ引き伸ばさない」という指定です。縦横比を保って、ちょうどよい大きさにしてくれる機能ではありません。
1回実行し、Save Imageの結果を開きます。背景が見え、その上に切り抜いた部分が重なっていれば、基本の接続を確認できます。最後に保存先のファイルも開いてください。

4. 位置を動かすときは、xかyを一つずつ変える
右へ動かしたいときはx、下へ動かしたいときはyを増やします。たとえばxだけを0から64へ変え、もう1回実行して位置を見比べます。
今回の画面では、xの数値欄をダブルクリックして64を入力し、「OK」を押してから「実行する」を押しました。

保存された画像も見てみましょう。まず、位置を動かす前のxが0の結果です。

次はxを64にした結果です。器だけでなく、透過PNG全体が右へ動いています。

素材が背景の外へはみ出した部分は表示されません。xとyを増やせば背景が広がる、という意味ではありません。
大きさを変える練習は、位置が分かってからにしましょう。最初は画像編集ソフトで透過PNGを縮小し、そのファイルを素材用Load Imageで選び直す方法で十分です。透明な部分を残したPNGとして保存してください。ComfyUI内での画像とマスクの拡縮は、今回の基本手順には加えません。
四角い背景が付く・被写体が消えるときの見直し方
| 見え方 | 最初に確かめること |
|---|---|
| 素材が四角いまま重なる | 本当に透過PNGか。maskへ線が入っているか |
| 残したい被写体が消える | Load ImageのMASKを反転しているか |
| 何も変わらない | 素材が画面外にないか。背景と素材が逆でないか |
| 素材が横に伸びる | resize_sourceをtrueにしていないか |
| 周囲に白い縁が残る | 元の透過PNGの切り抜き境界に白い色が残っていないか |
輪郭の白い縁や、背景との光の違いは、位置を変えるだけでは直りません。まず別の背景でも見て、切り抜き素材に原因があるか確認します。画像の一部を描き直す必要がある場合は、部分修正の記事が別の選択肢になります。
実際に保存できた結果と、検証の範囲
公式の合成ノード説明とマスク処理の実装、Load Imageの実装を参照しています。2026年9月19日確認。
2026年9月19日、WindowsのComfyUI 0.33.4で、本文の5ノード構成をプログラムから実行しました。512×512の水色の背景と、同じ大きさの透過PNGを使い、xが0と64の2条件で1回ずつ保存しています。yは0、resize_sourceはfalseです。生成用モデルや追加ノードは使っていません。
保存画像では、透明な部分に水色の背景が残り、赤い器が重なりました。xを64にした画像では器が右へ移り、右端からはみ出した取っ手が切れています。切り抜き素材には器が2つあり、左の器は元から一部が欠けています。位置を変えても、素材にない部分が補われるわけではありません。
この2枚は編集部の使用例です。保存した画像を透明度に応じた合成の計算結果とも照合しました。2026年9月20日には日本語画面(frontend 1.48.7)でも透過PNGの選択、反転したマスクの接続、xの数値変更を実施し、2条件ともPNGを保存しました。掲載した結果は、この画面操作で保存したものです。切り抜きの精度や背景との光の一致までを保証するテストではありません。