🦊画像合成
👉️ |
二つの画像を重ねたり横並べしたりする…
Photoshopなら画像をドラッグして上に持っていくだけの簡単なものですが、ノードでこれをやろうとすると一苦労です
inpainting処理などで避けられない場面もありますが、難しいことは諦めてペイントツール使うのも全然ありです
重ねる
https://gyazo.com/a74929158d8bfd7eb816692247b61520
destinationが背面、sourceが全面です
左上を基準にx/yで位置を調整することができます
https://gyazo.com/1140f8fa94c67dc07bb785dc215c3eb3
CSSでおなじみposition: absolute;での中央揃えのような処理を挟めば中央に配置できますが、まあ、めんどくさいですね(;・∀・)nomadoor.icon
🟨resize_sourceをtrueにすると、destinationを基準にsource画像が引き伸ばされます
下処理として二つの画像のアスペクト比を同じにしてから使うことが多いです
前面に透過画像を重ねる
改めて、Stable Diffusionではアルファチャンネルを扱えないため、ComfyUIでは透過画像は、RGB画像 + マスクという形で読み込まれます https://gyazo.com/487364e44dcd24a53398c31325abfc23
透過画像の透過部分はマスクとして読み込まれます
このマスクの部分をsource画像(ピンクの空画像)に置き換えます
出力される画像のサイズは、destinationに入力している画像に合わせられます
resize_sourceをtrueにすると、source画像がdestinationと同じサイズになるように引き伸ばされます
🫠source画像歪んじゃう対策
https://gyazo.com/4c01fc5fa88b9744f8d0e0759df3f510
source画像はdestination画像と同じサイズにリサイズされるため、それぞれの画像の大きさが違う場合、source画像が歪んでしまいます
🟨一番簡単な解決方法は、同じサイズになるようにクロップすることです
with セグメンテーション
大事な処理なのでもう一つ例を出しましょう
https://gyazo.com/c848c0f8e8d3ee590ba7ae09e8db7e68
今度はマスクされた部分を単色で埋めます
🟪入力画像からマスク(今回はdressでセグメンテーション)を作ります
🟨今度は前面sourceにEmptyImageノードを繋げます
背面と前面の大きさが違いますね、今回前面は単色なので歪みを気にする必要がありません
🟩resize_sourceをtrueにして大きさを合わせます
最初は感覚が掴みづらいとは思いますが、徐々に慣れていきましょう
画像をつなぎ合わせる
https://gyazo.com/4ce9346ef269709f6456f0fcd5832a9c
横並び/縦並び、向きを設定できます
https://gyazo.com/18d0555fd1d0bd01ead60b3992662cb0
画像のブレンド
https://gyazo.com/0c3dbad0a36a0399e7e12301a4b58638
他アプリでいうレイヤーの合成モードのようなものの内、ごく単純なものが実装されています